50 explicit operator std::string()
const override;
double sample_every_x_percent
void saveCurrentParticlePositions(const Simulation &simulation)
void operator()(size_t iteration, Simulation &simulation) override
This function is called on every nth iteration. It counts the number of particle updates which have b...
std::unique_ptr< CSVWriter > csv_writer
void onSimulationEnd(size_t iteration, Simulation &simulation) override
This function is empty as the thermostat doesnt need to do anything at the end of the simulation.
void logSummary(int depth) const override
Logs the summary of the radial distribution function.
std::vector< std::array< double, 3 > > old_particle_positions
void onSimulationStart(Simulation &simulation) override
This function is sets the particle_updates to 0 and initializes the start time of the simulation.
DiffusionFunctionInterceptor(double sample_every_x_percent)
Construct a new Thermostat Interceptor object.
double calculateCurrentDiffusion(const Simulation &simulation) const
size_t last_sampled_iteration
Class to run a simulation.