ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
Loading...
Searching...
No Matches
velocity_verlet_npt.hpp File Reference
#include "config/config.hpp"
#include "ParticleRange.hpp"
#include "PropagationMode.hpp"
#include "PropagationPredicate.hpp"
#include "npt.hpp"
#include "system/System.hpp"
#include "thermostat.hpp"
#include <utils/math/sqr.hpp>
+ Include dependency graph for velocity_verlet_npt.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  PropagationPredicateNPT
 

Namespaces

namespace  System
 

Typedefs

using ParticleRangeNPT = ParticleRangeFiltered< PropagationPredicateNPT >
 

Functions

void velocity_verlet_npt_Andersen_step_1 (ParticleRangeNPT const &particles, IsotropicNptThermostat const &npt_iso, double time_step, System::System &system)
 Special propagator for NpT isotropic for Andersen method.
 
void velocity_verlet_npt_MTK_step_1 (ParticleRangeNPT const &particles, IsotropicNptThermostat const &npt_iso, double time_step, System::System &system)
 Special propagator for NpT isotropic for MTK approach.
 
void velocity_verlet_npt_Andersen_step_2 (ParticleRangeNPT const &particles, double time_step, System::System &system)
 Final integration step of the Velocity Verlet+NpT integrator for Andersen method.
 
void velocity_verlet_npt_MTK_step_2 (ParticleRangeNPT const &particles, double time_step, System::System &system)
 Final integration step of the Velocity Verlet+NpT integrator for Andersen method.
 
void velocity_verlet_npt_propagate_vel_final (NptIsoParameters const &nptiso, InstantaneousPressure &npt_inst_pressure, ParticleRangeNPT const &particles, double time_step)
 Propagate the particle's velocity.
 
void velocity_verlet_npt_propagate_vel (NptIsoParameters const &nptiso, InstantaneousPressure &npt_inst_pressure, ParticleRangeNPT const &particles, double time_step)
 Propagate the particle's velocity.
 

Typedef Documentation

◆ ParticleRangeNPT

Function Documentation

◆ velocity_verlet_npt_Andersen_step_1()

void velocity_verlet_npt_Andersen_step_1 ( ParticleRangeNPT const particles,
IsotropicNptThermostat const npt_iso,
double  time_step,
System::System system 
)

Special propagator for NpT isotropic for Andersen method.

Propagate the velocities and positions. Integration steps before force calculation of the Velocity Verlet integrator:

\[ v(t+0.5 \Delta t) = v(t) + 0.5 \Delta t \cdot F(t)/m \]

\[ x(t+\Delta t) = x(t) + \Delta t \cdot v(t+0.5 \Delta t) \]

Propagate pressure, box_length (2 times) and positions, rescale positions and velocities and check Verlet list criterion (only NpT).

Definition at line 211 of file velocity_verlet_npt_Andersen.cpp.

References stream, velocity_verlet_npt_propagate_AVOVA_And(), and velocity_verlet_npt_propagate_vel().

Referenced by integrator_step_1().

◆ velocity_verlet_npt_Andersen_step_2()

void velocity_verlet_npt_Andersen_step_2 ( ParticleRangeNPT const particles,
double  time_step,
System::System system 
)

Final integration step of the Velocity Verlet+NpT integrator for Andersen method.

Finalize instantaneous pressure calculation:

\[ v(t+\Delta t) = v(t+0.5 \Delta t) + 0.5 \Delta t \cdot F(t+\Delta t)/m \]

Definition at line 223 of file velocity_verlet_npt_Andersen.cpp.

References stream, velocity_verlet_npt_finalize_p_inst(), and velocity_verlet_npt_propagate_vel_final().

Referenced by integrator_step_2().

◆ velocity_verlet_npt_MTK_step_1()

void velocity_verlet_npt_MTK_step_1 ( ParticleRangeNPT const particles,
IsotropicNptThermostat const npt_iso,
double  time_step,
System::System system 
)

◆ velocity_verlet_npt_MTK_step_2()

void velocity_verlet_npt_MTK_step_2 ( ParticleRangeNPT const particles,
double  time_step,
System::System system 
)

Final integration step of the Velocity Verlet+NpT integrator for Andersen method.

Definition at line 234 of file velocity_verlet_npt_MTK.cpp.

References stream, velocity_verlet_npt_propagate_p_eps(), velocity_verlet_npt_propagate_vel(), and velocity_verlet_npt_propagate_vel_MTK().

Referenced by integrator_step_2().

◆ velocity_verlet_npt_propagate_vel()

void velocity_verlet_npt_propagate_vel ( NptIsoParameters const nptiso,
InstantaneousPressure npt_inst_pressure,
ParticleRangeNPT const particles,
double  time_step 
)
inline

Propagate the particle's velocity.

\( v(t+0.5*dt) = v(t) + 0.5*dt * a(t) \)

Definition at line 109 of file velocity_verlet_npt.hpp.

References NptIsoParameters::geometry, NptIsoParameters::nptgeom_dir, InstantaneousPressure::p_vel, Utils::sqr(), and stream.

Referenced by velocity_verlet_npt_Andersen_step_1(), velocity_verlet_npt_MTK_step_1(), and velocity_verlet_npt_MTK_step_2().

◆ velocity_verlet_npt_propagate_vel_final()

void velocity_verlet_npt_propagate_vel_final ( NptIsoParameters const nptiso,
InstantaneousPressure npt_inst_pressure,
ParticleRangeNPT const particles,
double  time_step 
)
inline

Propagate the particle's velocity.

\( v(t+dt) = v(t+0.5*dt) + 0.5*dt * a(t+dt) \)

Definition at line 88 of file velocity_verlet_npt.hpp.

References NptIsoParameters::geometry, NptIsoParameters::nptgeom_dir, InstantaneousPressure::p_vel, Utils::sqr(), and stream.

Referenced by velocity_verlet_npt_Andersen_step_2().