FERS 1.0.0
The Flexible Extensible Radar Simulator
Loading...
Searching...
No Matches
sim_threading.cpp File Reference

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.
 

Detailed Description

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.