NEST main@caf0ae8
 
Loading...
Searching...
No Matches
nest::SimulationManager Class Reference

#include <simulation_manager.h>

Inheritance diagram for nest::SimulationManager:
[legend]
Collaboration diagram for nest::SimulationManager:
[legend]

Public Member Functions

 SimulationManager ()
 
void initialize (const bool) override
 Prepare manager for operation.
 
void finalize (const bool) override
 Take down manager after operation.
 
void set_status (const Dictionary &) override
 Set the status of the manager.
 
void get_status (Dictionary &) override
 Retrieve the status of the manager.
 
void assert_valid_simtime (Time const &)
 Check for errors in time before run.
 
void prepare () override
 Initialize simulation for a set of run calls.
 
void run (Time const &)
 Run a simulation for another Time.
 
void cleanup () override
 Closes a set of runs, doing finalizations such as file closures.
 
bool use_wfr () const
 Returns true if waveform relaxation is used.
 
double get_wfr_comm_interval () const
 Get the desired communication interval for the waveform relaxation.
 
double get_wfr_tol () const
 Get the convergence tolerance of the waveform relaxation method.
 
size_t get_wfr_interpolation_order () const
 Get the interpolation order of the waveform relaxation method.
 
Time const & get_slice_origin () const
 Get the time at the beginning of the current time slice.
 
Time const get_previous_slice_origin () const
 Get the time at the beginning of the previous time slice.
 
Time const get_time () const
 Precise time of simulation.
 
bool has_been_simulated () const
 Return true, if the SimulationManager has already been simulated for some time.
 
bool has_been_prepared () const
 Return true, if the SimulationManager has been prepared for simulation.
 
size_t get_slice () const
 Get slice number.
 
Time const & get_clock () const
 Return current simulation time.
 
Time run_duration () const
 Get the simulation duration in the current call to run().
 
Time run_start_time () const
 Get the start time of the current call to run().
 
Time run_end_time () const
 Get the simulation's time at the end of the current call to run().
 
long get_from_step () const
 Return start of current time slice, in steps.
 
long get_to_step () const
 Return end of current time slice, in steps.
 
void update_connection_infrastructure (const size_t tid)
 Sorts source table and connections and create new target table.
 
virtual void reset_timers_for_preparation ()
 Set time measurements for internal profiling to zero (reg.
 
virtual void reset_timers_for_dynamics ()
 Set time measurements for internal profiling to zero (reg.
 
Time get_eprop_update_interval () const
 
Time get_eprop_learning_window () const
 
bool get_eprop_reset_neurons_on_update () const
 
- Public Member Functions inherited from nest::ManagerInterface
 ManagerInterface (ManagerInterface const &)=delete
 
void operator= (ManagerInterface const &)=delete
 
 ManagerInterface ()
 
virtual ~ManagerInterface ()
 

Private Member Functions

void call_update_ ()
 actually run simulation, aka wrap update_
 
void update_ ()
 
bool wfr_update_ (Node *)
 actually perform simulation
 
void advance_time_ ()
 Update time to next time step.
 
void print_progress_ ()
 TODO: Remove, replace by logging!
 

Private Attributes

Time clock_
 SimulationManager clock, updated once per slice.
 
long slice_
 current update slice
 
long to_do_
 number of pending steps
 
long to_do_total_
 number of requested steps in current simulation
 
long from_step_
 update clock_+from_step<=T<clock_+to_step_
 
long to_step_
 update clock_+from_step<=T<clock_+to_step_
 
timeval t_slice_begin_
 Wall-clock time at the begin of a time slice.
 
timeval t_slice_end_
 Wall-clock time at the end of time slice.
 
long t_real_
 Accumulated wall-clock time spent simulating (in us)
 
bool prepared_
 Indicates whether the SimulationManager is in a prepared state.
 
bool simulating_
 true if simulation in progress
 
bool simulated_
 indicates whether the SimulationManager has already been simulated for sometime
 
bool inconsistent_state_
 true after exception during update_ simulation must not be resumed
 
bool print_time_
 Indicates whether time should be printed during simulations (or not)
 
bool use_wfr_
 Indicates wheter waveform relaxation is used.
 
double wfr_comm_interval_
 Desired waveform relaxation communication interval (in ms)
 
double wfr_tol_
 Convergence tolerance of waveform relaxation method.
 
long wfr_max_iterations_
 maximal number of iterations used for waveform relaxation
 
size_t wfr_interpolation_order_
 interpolation order for waveform relaxation method
 
double update_time_limit_
 throw exception if single update cycle takes longer than update_time_limit_ (seconds, default inf)
 
double min_update_time_
 shortest update time seen so far (seconds)
 
double max_update_time_
 longest update time seen so far (seconds)
 
Stopwatch< StopwatchGranularity::Normal, StopwatchParallelism::MasterOnly > sw_simulate_
 
Stopwatch< StopwatchGranularity::Normal, StopwatchParallelism::Threaded > sw_communicate_prepare_
 
Stopwatch< StopwatchGranularity::Detailed, StopwatchParallelism::MasterOnly > sw_gather_spike_data_
 
Stopwatch< StopwatchGranularity::Detailed, StopwatchParallelism::MasterOnly > sw_gather_secondary_data_
 
Stopwatch< StopwatchGranularity::Detailed, StopwatchParallelism::Threaded > sw_update_
 
Stopwatch< StopwatchGranularity::Detailed, StopwatchParallelism::Threaded > sw_gather_target_data_
 
Stopwatch< StopwatchGranularity::Detailed, StopwatchParallelism::Threaded > sw_deliver_spike_data_
 
Stopwatch< StopwatchGranularity::Detailed, StopwatchParallelism::Threaded > sw_deliver_secondary_data_
 
double eprop_update_interval_
 
double eprop_learning_window_
 
bool eprop_reset_neurons_on_update_
 

Constructor & Destructor Documentation

◆ SimulationManager()

nest::SimulationManager::SimulationManager ( )

Member Function Documentation

◆ advance_time_()

void nest::SimulationManager::advance_time_ ( )
private

Update time to next time step.

References clock_, nest::KernelManager::connection_manager, nest::KernelManager::event_delivery_manager, from_step_, nest::ConnectionManager::get_min_delay(), nest::kernel(), slice_, to_do_, to_step_, and nest::EventDeliveryManager::update_moduli().

Referenced by update_().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ assert_valid_simtime()

void nest::SimulationManager::assert_valid_simtime ( Time const &  t)

Check for errors in time before run.

Exceptions
KernelExceptionif illegal time passed

References clock_, nest::ERROR, nest::Time::get_resolution(), nest::Time::is_finite(), LOG, and nest::Time::max().

Referenced by run().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ call_update_()

void nest::SimulationManager::call_update_ ( )
private

actually run simulation, aka wrap update_

References nest::Time::get_ms(), nest::NodeManager::get_num_active_nodes(), nest::MPIManager::get_num_processes(), nest::VPManager::get_num_threads(), nest::Time::get_resolution(), inconsistent_state_, nest::INFO, nest::kernel(), LOG, nest::KernelManager::mpi_manager, nest::KernelManager::node_manager, print_progress_(), print_time_, simulated_, simulating_, nest::MPIManager::synchronize(), to_do_, update_(), and nest::KernelManager::vp_manager.

Referenced by run().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ cleanup()

void nest::SimulationManager::cleanup ( )
overridevirtual

Closes a set of runs, doing finalizations such as file closures.

After cleanup() is called, no more run()s can be called before another prepare() call.

Reimplemented from nest::ManagerInterface.

References nest::ERROR, nest::NodeManager::finalize_nodes(), nest::kernel(), LOG, nest::KernelManager::node_manager, prepared_, and simulated_.

Here is the call graph for this function:

◆ finalize()

void nest::SimulationManager::finalize ( const bool  adjust_number_of_threads_or_rng_only)
overridevirtual

Take down manager after operation.

After this method has completed, all dynamic data structures created by the manager shall be deallocated and containers emptied. Plain variables need not be reset.

Note
Finalization of any given manager may depend on other managers not having been finalized yet. KernelManager::finalize() is responsible for calling the initialization routines on the specific managers in correct order, i.e., the opposite order of initialize() calls.
Parameters
adjust_number_of_threads_or_rng_onlyPass true if calling from kernel_manager::change_number_of_threads() to limit operations to those necessary for thread adjustment.
See also
initialize()

Implements nest::ManagerInterface.

◆ get_clock()

Time const & nest::SimulationManager::get_clock ( ) const
inline

Return current simulation time.

References clock_.

Referenced by nest::EventDeliveryManager::deliver_events_(), nest::EventDeliveryManager::init_moduli(), and nest::EventDeliveryManager::update_moduli().

Here is the caller graph for this function:

◆ get_eprop_learning_window()

Time nest::SimulationManager::get_eprop_learning_window ( ) const
inline

References eprop_learning_window_.

Referenced by nest::eprop_iaf_adapt_bsshslm_2020::compute_gradient(), nest::eprop_iaf_bsshslm_2020::compute_gradient(), nest::eprop_readout_bsshslm_2020::compute_gradient(), and nest::eprop_readout_bsshslm_2020::update().

Here is the caller graph for this function:

◆ get_eprop_reset_neurons_on_update()

bool nest::SimulationManager::get_eprop_reset_neurons_on_update ( ) const
inline

References eprop_reset_neurons_on_update_.

Referenced by nest::eprop_iaf_adapt_bsshslm_2020::update(), nest::eprop_iaf_bsshslm_2020::update(), and nest::eprop_readout_bsshslm_2020::update().

Here is the caller graph for this function:

◆ get_eprop_update_interval()

◆ get_from_step()

long nest::SimulationManager::get_from_step ( ) const
inline

Return start of current time slice, in steps.

References from_step_.

◆ get_previous_slice_origin()

Time const nest::SimulationManager::get_previous_slice_origin ( ) const

Get the time at the beginning of the previous time slice.

References clock_, and nest::kernel().

Here is the call graph for this function:

◆ get_slice()

size_t nest::SimulationManager::get_slice ( ) const
inline

Get slice number.

Increased by one for each slice. Can be used to choose alternating buffers.

References slice_.

Referenced by nest::EventDeliveryManager::write_toggle().

Here is the caller graph for this function:

◆ get_slice_origin()

Time const & nest::SimulationManager::get_slice_origin ( ) const
inline

Get the time at the beginning of the current time slice.

References clock_.

Referenced by nest::ConnectionManager::deliver_secondary_events().

Here is the caller graph for this function:

◆ get_status()

void nest::SimulationManager::get_status ( Dictionary &  )
overridevirtual

Retrieve the status of the manager.

Note
This would ideally be a const function. However, some managers delay the update of internal variables up to the point where they are needed (e.g., before reporting their values to the user, or before simulate is called). An example for this pattern is the call to update_delay_extrema_() right at the beginning of ConnectionManager::get_status().
See also
set_status()

Implements nest::ManagerInterface.

References nest::names::biological_time(), nest::names::cycle_time_log(), nest::names::eprop_learning_window(), eprop_learning_window_, nest::names::eprop_reset_neurons_on_update(), eprop_reset_neurons_on_update_, nest::names::eprop_update_interval(), eprop_update_interval_, nest::Time::get_ms(), nest::Time::get_ms_per_tic(), nest::Time::get_resolution(), nest::Stopwatch< detailed_timer, threaded_timer >::get_status(), nest::Time::get_tics_per_ms(), nest::Time::get_tics_per_step(), get_time(), nest::Time::max(), nest::names::max_update_time(), max_update_time_, nest::Time::min(), nest::names::min_update_time(), min_update_time_, nest::names::ms_per_tic(), nest::names::prepared(), prepared_, nest::names::print_time(), print_time_, nest::names::resolution(), sw_communicate_prepare_, sw_deliver_secondary_data_, sw_deliver_spike_data_, sw_gather_secondary_data_, sw_gather_spike_data_, sw_gather_target_data_, sw_simulate_, sw_update_, nest::names::T_max(), nest::names::T_min(), nest::names::tics_per_ms(), nest::names::tics_per_step(), nest::names::time_communicate_prepare(), nest::names::time_communicate_prepare_cpu(), nest::names::time_deliver_secondary_data(), nest::names::time_deliver_secondary_data_cpu(), nest::names::time_deliver_spike_data(), nest::names::time_deliver_spike_data_cpu(), nest::names::time_gather_secondary_data(), nest::names::time_gather_secondary_data_cpu(), nest::names::time_gather_spike_data(), nest::names::time_gather_spike_data_cpu(), nest::names::time_gather_target_data(), nest::names::time_gather_target_data_cpu(), nest::names::time_simulate(), nest::names::time_simulate_cpu(), nest::names::time_update(), nest::names::time_update_cpu(), nest::names::to_do(), to_do_, nest::names::update_time_limit(), update_time_limit_, nest::names::use_wfr(), use_wfr_, nest::names::wfr_comm_interval(), wfr_comm_interval_, nest::names::wfr_interpolation_order(), wfr_interpolation_order_, nest::names::wfr_max_iterations(), wfr_max_iterations_, nest::names::wfr_tol(), and wfr_tol_.

Here is the call graph for this function:

◆ get_time()

Time const nest::SimulationManager::get_time ( ) const
inline

Precise time of simulation.

Note
The precise time of the simulation is defined only while the simulation is not in progress.

References clock_, from_step_, and simulating_.

Referenced by nest::RecordingBackendSIONlib::close_files_(), get_status(), nest::RecordingBackendSIONlib::open_files_(), nest::ac_generator::pre_run_hook(), nest::noise_generator::pre_run_hook(), nest::pulsepacket_generator::pre_run_hook(), nest::sinusoidal_poisson_generator::pre_run_hook(), run_end_time(), and run_start_time().

Here is the caller graph for this function:

◆ get_to_step()

long nest::SimulationManager::get_to_step ( ) const
inline

Return end of current time slice, in steps.

References to_step_.

◆ get_wfr_comm_interval()

double nest::SimulationManager::get_wfr_comm_interval ( ) const
inline

Get the desired communication interval for the waveform relaxation.

References wfr_comm_interval_.

Referenced by nest::GenericConnectorModel< ConnectionT >::used_default_delay().

Here is the caller graph for this function:

◆ get_wfr_interpolation_order()

size_t nest::SimulationManager::get_wfr_interpolation_order ( ) const
inline

Get the interpolation order of the waveform relaxation method.

References wfr_interpolation_order_.

◆ get_wfr_tol()

double nest::SimulationManager::get_wfr_tol ( ) const
inline

Get the convergence tolerance of the waveform relaxation method.

References wfr_tol_.

Referenced by nest::rate_neuron_ipn< TNonlinearities >::update_(), nest::rate_neuron_opn< TNonlinearities >::update_(), and nest::rate_transformer_node< TNonlinearities >::update_().

Here is the caller graph for this function:

◆ has_been_prepared()

bool nest::SimulationManager::has_been_prepared ( ) const
inline

Return true, if the SimulationManager has been prepared for simulation.

This is the case from the time when the Prepare function is called until the simulation context is left by a call to Cleanup.

References prepared_.

◆ has_been_simulated()

bool nest::SimulationManager::has_been_simulated ( ) const
inline

Return true, if the SimulationManager has already been simulated for some time.

This does NOT indicate that simulate has been called (i.e. if Simulate is called with 0 as argument, the flag is still set to false.)

References simulated_.

Referenced by nest::KernelManager::change_number_of_threads(), and set_status().

Here is the caller graph for this function:

◆ initialize()

void nest::SimulationManager::initialize ( const bool  adjust_number_of_threads_or_rng_only)
overridevirtual

Prepare manager for operation.

After this method has completed, the manager should be completely initialized and "ready for action".

Note
Initialization of any given manager may depend on other managers having been initialized before. KernelManager::initialize() is responsible for calling the initialization routines on the specific managers in correct order.
Parameters
adjust_number_of_threads_or_rng_onlyPass true if calling from kernel_manager::change_number_of_threads() or RandomManager::get_status() to limit operations to those necessary for thread adjustment or switch or re-seeding of RNG.
See also
finalize()

Implements nest::ManagerInterface.

References nest::Time::calibrate(), clock_, from_step_, inconsistent_state_, max_update_time_, min_update_time_, prepared_, print_time_, nest::Time::reset_resolution(), reset_timers_for_dynamics(), reset_timers_for_preparation(), nest::Time::reset_to_defaults(), nest::Time::set_to_zero(), simulated_, simulating_, slice_, t_real_, to_do_, to_do_total_, to_step_, update_time_limit_, use_wfr_, wfr_comm_interval_, wfr_interpolation_order_, wfr_max_iterations_, and wfr_tol_.

Here is the call graph for this function:

◆ prepare()

◆ print_progress_()

void nest::SimulationManager::print_progress_ ( )
private

TODO: Remove, replace by logging!

References clock_, nest::Time::get_ms(), nest::Time::get_resolution(), t_real_, t_slice_begin_, t_slice_end_, to_do_, and to_do_total_.

Referenced by call_update_(), and update_().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ reset_timers_for_dynamics()

void nest::SimulationManager::reset_timers_for_dynamics ( )
virtual

Set time measurements for internal profiling to zero (reg.

sim. dyn.)

References nest::Stopwatch< detailed_timer, threaded_timer >::reset(), sw_deliver_secondary_data_, sw_deliver_spike_data_, sw_gather_secondary_data_, sw_gather_spike_data_, sw_simulate_, and sw_update_.

Referenced by nest::KernelManager::change_number_of_threads(), initialize(), and prepare().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ reset_timers_for_preparation()

void nest::SimulationManager::reset_timers_for_preparation ( )
virtual

Set time measurements for internal profiling to zero (reg.

prep.)

References nest::Stopwatch< detailed_timer, threaded_timer >::reset(), sw_communicate_prepare_, and sw_gather_target_data_.

Referenced by nest::KernelManager::change_number_of_threads(), and initialize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run()

void nest::SimulationManager::run ( Time const &  t)

Run a simulation for another Time.

Can be repeated ad infinitum with calls to get_status(), but any changes to the network are undefined, leading serious risk of incorrect results.

References assert_valid_simtime(), call_update_(), nest::RandomManager::check_rng_synchrony(), nest::ERROR, nest::KernelManager::event_delivery_manager, from_step_, nest::Time::get_steps(), nest::KernelManager::io_manager, nest::kernel(), LOG, nest::IOManager::post_run_hook(), nest::IOManager::pre_run_hook(), prepared_, nest::KernelManager::random_manager, nest::EventDeliveryManager::reset_counters(), nest::Stopwatch< detailed_timer, threaded_timer >::start(), nest::Stopwatch< detailed_timer, threaded_timer >::stop(), sw_simulate_, to_do_, to_do_total_, to_step_, and nest::WARNING.

Referenced by nest::run().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_duration()

Time nest::SimulationManager::run_duration ( ) const
inline

Get the simulation duration in the current call to run().

References nest::Time::get_resolution(), and to_do_total_.

Here is the call graph for this function:

◆ run_end_time()

Time nest::SimulationManager::run_end_time ( ) const
inline

Get the simulation's time at the end of the current call to run().

References nest::Time::get_resolution(), get_time(), simulating_, and to_do_.

Here is the call graph for this function:

◆ run_start_time()

Time nest::SimulationManager::run_start_time ( ) const
inline

Get the start time of the current call to run().

References nest::Time::get_resolution(), get_time(), simulating_, to_do_, and to_do_total_.

Here is the call graph for this function:

◆ set_status()

void nest::SimulationManager::set_status ( const Dictionary &  )
overridevirtual

◆ update_()

void nest::SimulationManager::update_ ( )
private

References nest::MUSICManager::advance_music_time(), advance_time_(), nest::SparseNodeArray::begin(), clock_, nest::KernelManager::connection_manager, nest::Node::decay_synaptic_elements_vacant(), nest::EventDeliveryManager::deliver_events(), nest::EventDeliveryManager::deliver_secondary_events(), nest::Stopwatch< detailed_timer, threaded_timer >::elapsed(), nest::SparseNodeArray::end(), nest::ERROR, nest::KernelManager::event_delivery_manager, from_step_, nest::EventDeliveryManager::gather_secondary_events(), nest::EventDeliveryManager::gather_spike_data(), nest::NodeManager::get_local_nodes(), nest::ConnectionManager::get_min_delay(), nest::Time::get_ms(), nest::KernelManager::get_omp_synchronization_simulation_stopwatch(), nest::Time::get_resolution(), nest::Time::get_steps(), nest::VPManager::get_thread_id(), nest::NodeManager::get_wfr_nodes_on_thread(), inconsistent_state_, nest::KernelManager::io_manager, nest::kernel(), LOG, max_update_time_, min_update_time_, nest::KernelManager::music_manager, nest::KernelManager::node_manager, nest::IOManager::post_step_hook(), print_progress_(), print_time_, simulating_, slice_, nest::KernelManager::sp_manager, nest::Stopwatch< detailed_timer, threaded_timer >::start(), nest::Stopwatch< detailed_timer, threaded_timer >::stop(), sw_deliver_secondary_data_, sw_deliver_spike_data_, sw_gather_secondary_data_, sw_gather_spike_data_, sw_simulate_, sw_update_, t_slice_begin_, t_slice_end_, to_do_, to_step_, update_connection_infrastructure(), nest::SPManager::update_structural_plasticity(), nest::Node::update_synaptic_elements(), update_time_limit_, nest::KernelManager::vp_manager, nest::WARNING, wfr_max_iterations_, and wfr_update_().

Referenced by call_update_().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_connection_infrastructure()

void nest::SimulationManager::update_connection_infrastructure ( const size_t  tid)

Sorts source table and connections and create new target table.

References nest::ConnectionManager::check_secondary_connections_exist(), nest::ConnectionManager::clear_compressed_spike_data_map(), nest::ConnectionManager::collect_compressed_spike_data(), nest::MPIManager::communicate_recv_counts_secondary_events(), nest::ConnectionManager::compress_secondary_send_buffer_pos(), nest::ConnectionManager::compute_compressed_secondary_recv_buffer_positions(), nest::ConnectionManager::compute_target_data_buffer_size(), nest::EventDeliveryManager::configure_secondary_buffers(), nest::KernelManager::connection_manager, nest::KernelManager::event_delivery_manager, nest::EventDeliveryManager::gather_target_data(), nest::EventDeliveryManager::gather_target_data_compressed(), nest::KernelManager::get_omp_synchronization_construction_stopwatch(), nest::ConnectionManager::initialize_iteration_state(), nest::kernel(), nest::KernelManager::mpi_manager, nest::KernelManager::node_manager, nest::EventDeliveryManager::resize_send_recv_buffers_target_data(), nest::ConnectionManager::restructure_connection_tables(), nest::NodeManager::set_have_nodes_changed(), nest::ConnectionManager::sort_connections(), nest::Stopwatch< detailed_timer, threaded_timer >::start(), nest::Stopwatch< detailed_timer, threaded_timer >::stop(), sw_communicate_prepare_, sw_gather_target_data_, nest::ConnectionManager::sync_has_primary_connections(), and nest::ConnectionManager::unset_connections_have_changed().

Referenced by nest::SPManager::disconnect(), nest::ConnectionManager::get_connections(), prepare(), and update_().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ use_wfr()

bool nest::SimulationManager::use_wfr ( ) const
inline

Returns true if waveform relaxation is used.

References use_wfr_.

◆ wfr_update_()

bool nest::SimulationManager::wfr_update_ ( Node *  n)
private

actually perform simulation

References clock_, from_step_, and to_step_.

Referenced by update_().

Here is the caller graph for this function:

Member Data Documentation

◆ clock_

◆ eprop_learning_window_

double nest::SimulationManager::eprop_learning_window_
private

◆ eprop_reset_neurons_on_update_

bool nest::SimulationManager::eprop_reset_neurons_on_update_
private

◆ eprop_update_interval_

double nest::SimulationManager::eprop_update_interval_
private

◆ from_step_

long nest::SimulationManager::from_step_
private

update clock_+from_step<=T<clock_+to_step_

Referenced by advance_time_(), get_from_step(), get_time(), initialize(), run(), set_status(), update_(), and wfr_update_().

◆ inconsistent_state_

bool nest::SimulationManager::inconsistent_state_
private

true after exception during update_ simulation must not be resumed

Referenced by call_update_(), initialize(), prepare(), and update_().

◆ max_update_time_

double nest::SimulationManager::max_update_time_
private

longest update time seen so far (seconds)

Referenced by get_status(), initialize(), and update_().

◆ min_update_time_

double nest::SimulationManager::min_update_time_
private

shortest update time seen so far (seconds)

Referenced by get_status(), initialize(), and update_().

◆ prepared_

bool nest::SimulationManager::prepared_
private

Indicates whether the SimulationManager is in a prepared state.

Referenced by cleanup(), get_status(), has_been_prepared(), initialize(), prepare(), and run().

◆ print_time_

bool nest::SimulationManager::print_time_
private

Indicates whether time should be printed during simulations (or not)

Referenced by call_update_(), get_status(), initialize(), set_status(), and update_().

◆ simulated_

bool nest::SimulationManager::simulated_
private

indicates whether the SimulationManager has already been simulated for sometime

Referenced by call_update_(), cleanup(), has_been_simulated(), initialize(), and prepare().

◆ simulating_

bool nest::SimulationManager::simulating_
private

true if simulation in progress

Referenced by call_update_(), get_time(), initialize(), run_end_time(), run_start_time(), and update_().

◆ slice_

long nest::SimulationManager::slice_
private

current update slice

Referenced by advance_time_(), get_slice(), initialize(), set_status(), and update_().

◆ sw_communicate_prepare_

◆ sw_deliver_secondary_data_

Stopwatch< StopwatchGranularity::Detailed, StopwatchParallelism::Threaded > nest::SimulationManager::sw_deliver_secondary_data_
private

◆ sw_deliver_spike_data_

Stopwatch< StopwatchGranularity::Detailed, StopwatchParallelism::Threaded > nest::SimulationManager::sw_deliver_spike_data_
private

◆ sw_gather_secondary_data_

Stopwatch< StopwatchGranularity::Detailed, StopwatchParallelism::MasterOnly > nest::SimulationManager::sw_gather_secondary_data_
private

◆ sw_gather_spike_data_

Stopwatch< StopwatchGranularity::Detailed, StopwatchParallelism::MasterOnly > nest::SimulationManager::sw_gather_spike_data_
private

◆ sw_gather_target_data_

◆ sw_simulate_

◆ sw_update_

◆ t_real_

long nest::SimulationManager::t_real_
private

Accumulated wall-clock time spent simulating (in us)

Referenced by initialize(), prepare(), and print_progress_().

◆ t_slice_begin_

timeval nest::SimulationManager::t_slice_begin_
private

Wall-clock time at the begin of a time slice.

Referenced by prepare(), print_progress_(), and update_().

◆ t_slice_end_

timeval nest::SimulationManager::t_slice_end_
private

Wall-clock time at the end of time slice.

Referenced by prepare(), print_progress_(), and update_().

◆ to_do_

long nest::SimulationManager::to_do_
private

◆ to_do_total_

long nest::SimulationManager::to_do_total_
private

number of requested steps in current simulation

Referenced by initialize(), print_progress_(), run(), run_duration(), and run_start_time().

◆ to_step_

long nest::SimulationManager::to_step_
private

update clock_+from_step<=T<clock_+to_step_

Referenced by advance_time_(), get_to_step(), initialize(), run(), update_(), and wfr_update_().

◆ update_time_limit_

double nest::SimulationManager::update_time_limit_
private

throw exception if single update cycle takes longer than update_time_limit_ (seconds, default inf)

Referenced by get_status(), initialize(), set_status(), and update_().

◆ use_wfr_

bool nest::SimulationManager::use_wfr_
private

Indicates wheter waveform relaxation is used.

Referenced by get_status(), initialize(), set_status(), and use_wfr().

◆ wfr_comm_interval_

double nest::SimulationManager::wfr_comm_interval_
private

Desired waveform relaxation communication interval (in ms)

Referenced by get_status(), get_wfr_comm_interval(), initialize(), and set_status().

◆ wfr_interpolation_order_

size_t nest::SimulationManager::wfr_interpolation_order_
private

interpolation order for waveform relaxation method

Referenced by get_status(), get_wfr_interpolation_order(), initialize(), and set_status().

◆ wfr_max_iterations_

long nest::SimulationManager::wfr_max_iterations_
private

maximal number of iterations used for waveform relaxation

Referenced by get_status(), initialize(), set_status(), and update_().

◆ wfr_tol_

double nest::SimulationManager::wfr_tol_
private

Convergence tolerance of waveform relaxation method.

Referenced by get_status(), get_wfr_tol(), initialize(), and set_status().


The documentation for this class was generated from the following files: