ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
Loading...
Searching...
No Matches
velocity_verlet_npt_MTK.cpp File Reference
#include "config/config.hpp"
#include "velocity_verlet_npt.hpp"
#include "BoxGeometry.hpp"
#include "Particle.hpp"
#include "ParticleRange.hpp"
#include "cell_system/CellStructure.hpp"
#include "communication.hpp"
#include "errorhandling.hpp"
#include "thermostats/npt_inline.hpp"
#include <utils/Vector.hpp>
#include <boost/mpi/collectives.hpp>
#include <cmath>
#include <functional>
+ Include dependency graph for velocity_verlet_npt_MTK.cpp:

Go to the source code of this file.

Functions

static void velocity_verlet_npt_propagate_p_eps (NptIsoParameters &nptiso, InstantaneousPressure &npt_inst_pressure, double time_step)
 Scale and communicate instantaneous NpT pressure and propagate the conjugate momentum for volume.
 
static void velocity_verlet_npt_propagate_pos (ParticleRangeNPT const &particles, double time_step)
 
static void velocity_verlet_npt_propagate_pos_MTK (NptIsoParameters &nptiso, ParticleRangeNPT const &particles)
 
static void velocity_verlet_npt_propagate_AVOVA_MTK (ParticleRangeNPT const &particles, IsotropicNptThermostat const &npt_iso, double time_step, System::System &system)
 propagete positions and the volume and add thermal fluctuation.
 
static void velocity_verlet_npt_propagate_vel_MTK (NptIsoParameters const &nptiso, InstantaneousPressure &npt_inst_pressure, ParticleRangeNPT const &particles)
 
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_MTK_step_2 (ParticleRangeNPT const &particles, double time_step, System::System &system)
 Final integration step of the Velocity Verlet+NpT integrator for Andersen method.
 

Variables

static constexpr Utils::Vector3i nptgeom_dir {{1, 2, 4}}
 

Function Documentation

◆ 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_AVOVA_MTK()

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

propagete positions and the volume and add thermal fluctuation.

A and V are the position and volume propagators for half-time step. O is the propagator corresponding to Ornstein-Uhlenbeck process representing the stochastic thermostat. The time evolution follows the sequence A-V-O-V-A in this function, with propagators applied right to left.

Definition at line 124 of file velocity_verlet_npt_MTK.cpp.

References comm_cart, NptIsoParameters::nptgeom_dir, propagate_therm0_nptiso(), propagate_thermV_nptiso(), Cells::RESORT_LOCAL, stream, this_node, velocity_verlet_npt_propagate_pos(), and velocity_verlet_npt_propagate_pos_MTK().

Referenced by velocity_verlet_npt_MTK_step_1().

◆ velocity_verlet_npt_propagate_p_eps()

static void velocity_verlet_npt_propagate_p_eps ( NptIsoParameters nptiso,
InstantaneousPressure npt_inst_pressure,
double  time_step 
)
static

Scale and communicate instantaneous NpT pressure and propagate the conjugate momentum for volume.

\( p_{\epsilon}(t+dt) = p_{\epsilon}(t) + 3 V (P_{\text{inst}} - P_{\text{ext}}) dt / 2 \)

Definition at line 49 of file velocity_verlet_npt_MTK.cpp.

References comm_cart, NptIsoParameters::dimension, NptIsoParameters::geometry, NptIsoParameters::nptgeom_dir, NptIsoParameters::p_epsilon, NptIsoParameters::p_ext, InstantaneousPressure::p_inst, InstantaneousPressure::p_vel, InstantaneousPressure::p_vir, NptIsoParameters::particle_number, stream, this_node, and NptIsoParameters::volume.

Referenced by velocity_verlet_npt_MTK_step_1(), and velocity_verlet_npt_MTK_step_2().

◆ velocity_verlet_npt_propagate_pos()

static void velocity_verlet_npt_propagate_pos ( ParticleRangeNPT const particles,
double  time_step 
)
static

Definition at line 85 of file velocity_verlet_npt_MTK.cpp.

References stream.

Referenced by velocity_verlet_npt_propagate_AVOVA_MTK().

◆ velocity_verlet_npt_propagate_pos_MTK()

◆ velocity_verlet_npt_propagate_vel_MTK()

Variable Documentation

◆ nptgeom_dir

constexpr Utils::Vector3i nptgeom_dir {{1, 2, 4}}
staticconstexpr

Definition at line 40 of file velocity_verlet_npt_MTK.cpp.

Referenced by velocity_verlet_npt_propagate_vel_MTK().