|
FERS 1.0.0
The Flexible Extensible Radar Simulator
|
Implements the core event-driven simulation engine. More...
#include "sim_threading.h"#include <algorithm>#include <atomic>#include <chrono>#include <cmath>#include <format>#include <functional>#include <memory>#include <thread>#include <utility>#include <vector>#include "logging.h"#include "parameters.h"#include "processing/finalizer.h"#include "radar/receiver.h"#include "radar/target.h"#include "radar/transmitter.h"#include "sim_events.h"#include "simulation/channel_model.h"#include "thread_pool.h"#include "world.h"
Include dependency graph for sim_threading.cpp:Go to the source code of this file.
Namespaces | |
| namespace | core |
Functions | |
| void | core::runEventDrivenSim (World *world, pool::ThreadPool &pool, const std::function< void(const std::string &, int, int)> &progress_callback) |
| Runs the unified, event-driven radar simulation. | |
Implements the core event-driven simulation engine.
This file contains the primary simulation loop, which orchestrates the entire simulation process. It operates on a unified, event-driven model capable of handling both pulsed and continuous-wave (CW) radar systems concurrently. The loop advances simulation time by processing events from a priority queue.
A key feature is the time-stepped inner loop that calculates physics for active CW systems between discrete events. This hybrid approach allows for efficient simulation of both event-based (pulsed) and continuous (CW) phenomena. To maintain performance, expensive post-processing tasks are offloaded to worker threads, decoupling the main physics calculations from I/O and signal rendering.
Definition in file sim_threading.cpp.