Molecular Dynamics Simulation  1.0
Simulation.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <map>
4 #include <memory>
5 #include <vector>
6 
8 #include "particles/Particle.h"
11 
13 class SimulationParams;
14 
20 class Simulation {
21  public:
29  Simulation(const std::vector<Particle>& particles, const SimulationParams& params,
30  IntegrationMethod integration_method = IntegrationMethod::VERLET);
31 
33 
40 
41  private:
46 
50  std::unique_ptr<ParticleContainer> particle_container;
51 
55  std::unique_ptr<IntegrationFunctor> integration_functor;
56 
60  friend class ProgressBarInterceptor;
61  friend class FrameWriterInterceptor;
63  friend class ThermostatInterceptor;
68 };
IntegrationMethod
Enum class to specify the integration method.
Class to store some overview data of an executed simulation.
Contains all parameters needed to run a simulation.
Class to run a simulation.
Definition: Simulation.h:20
Simulation(const std::vector< Particle > &particles, const SimulationParams &params, IntegrationMethod integration_method=IntegrationMethod::VERLET)
Construct a new Simulation object and initialize all the necessary components.
Definition: Simulation.cpp:21
std::unique_ptr< ParticleContainer > particle_container
Reference to the ParticleContainer on whose content the simulation is performed.
Definition: Simulation.h:50
SimulationOverview runSimulation()
Runs the simulation, using the parameters given at construction and returns a SimulationOverview obje...
Definition: Simulation.cpp:43
std::unique_ptr< IntegrationFunctor > integration_functor
Functor used to integrate the particles.
Definition: Simulation.h:55
const SimulationParams & params
Reference to the simulation parameters object.
Definition: Simulation.h:45