ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
|
#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 "npt.hpp"
#include "system/System.hpp"
#include "thermostat.hpp"
#include "thermostats/npt_inline.hpp"
#include <utils/Vector.hpp>
#include <utils/math/sqr.hpp>
#include <boost/mpi/collectives.hpp>
#include <cmath>
#include <functional>
Go to the source code of this file.
Functions | |
static void | velocity_verlet_npt_propagate_vel_final (ParticleRangeNPT const &particles, IsotropicNptThermostat const &npt_iso, double time_step) |
static void | velocity_verlet_npt_finalize_p_inst (IsotropicNptThermostat const &npt_iso, double time_step) |
Scale and communicate instantaneous NpT pressure. | |
static void | velocity_verlet_npt_propagate_pos (ParticleRangeNPT const &particles, IsotropicNptThermostat const &npt_iso, double time_step, System::System &system) |
static void | velocity_verlet_npt_propagate_vel (ParticleRangeNPT const &particles, IsotropicNptThermostat const &npt_iso, double time_step) |
void | velocity_verlet_npt_step_1 (ParticleRangeNPT const &particles, IsotropicNptThermostat const &npt_iso, double time_step, System::System &system) |
Special propagator for NpT isotropic. | |
void | velocity_verlet_npt_step_2 (ParticleRangeNPT const &particles, IsotropicNptThermostat const &npt_iso, double time_step) |
Final integration step of the Velocity Verlet+NpT integrator. | |
Variables | |
static constexpr Utils::Vector3i | nptgeom_dir {{1, 2, 4}} |
|
static |
Scale and communicate instantaneous NpT pressure.
Definition at line 70 of file velocity_verlet_npt.cpp.
References comm_cart, NptIsoParameters::dimension, friction_thermV_nptiso(), NptIsoParameters::geometry, nptgeom_dir, nptiso, NptIsoParameters::p_diff, NptIsoParameters::p_ext, NptIsoParameters::p_inst, NptIsoParameters::p_vel, NptIsoParameters::p_vir, Utils::sqr(), this_node, and NptIsoParameters::volume.
Referenced by velocity_verlet_npt_propagate_pos(), and velocity_verlet_npt_step_2().
|
static |
Definition at line 91 of file velocity_verlet_npt.cpp.
References System::System::box_geo, System::System::cell_structure, comm_cart, NptIsoParameters::cubic_box, NptIsoParameters::dimension, NptIsoParameters::geometry, NptIsoParameters::inv_piston, NptIsoParameters::non_const_dim, nptgeom_dir, nptiso, System::System::on_boxl_change(), NptIsoParameters::p_diff, NptIsoParameters::piston, Cells::RESORT_LOCAL, runtimeErrorMsg, Utils::sqr(), this_node, velocity_verlet_npt_finalize_p_inst(), and NptIsoParameters::volume.
Referenced by velocity_verlet_npt_step_1().
|
static |
Definition at line 166 of file velocity_verlet_npt.cpp.
References NptIsoParameters::geometry, nptgeom_dir, nptiso, NptIsoParameters::p_vel, and Utils::sqr().
Referenced by velocity_verlet_npt_step_1().
|
static |
Definition at line 47 of file velocity_verlet_npt.cpp.
References NptIsoParameters::geometry, nptgeom_dir, nptiso, NptIsoParameters::p_vel, and Utils::sqr().
Referenced by velocity_verlet_npt_step_2().
void velocity_verlet_npt_step_1 | ( | ParticleRangeNPT const & | particles, |
IsotropicNptThermostat const & | npt_iso, | ||
double | time_step, | ||
System::System & | system | ||
) |
Special propagator for NpT isotropic.
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 187 of file velocity_verlet_npt.cpp.
References velocity_verlet_npt_propagate_pos(), and velocity_verlet_npt_propagate_vel().
Referenced by integrator_step_1().
void velocity_verlet_npt_step_2 | ( | ParticleRangeNPT const & | particles, |
IsotropicNptThermostat const & | npt_iso, | ||
double | time_step | ||
) |
Final integration step of the Velocity Verlet+NpT integrator.
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 194 of file velocity_verlet_npt.cpp.
References velocity_verlet_npt_finalize_p_inst(), and velocity_verlet_npt_propagate_vel_final().
Referenced by integrator_step_2().
|
staticconstexpr |
Definition at line 44 of file velocity_verlet_npt.cpp.
Referenced by NptIsoParameters::get_direction(), NptIsoParameters::NptIsoParameters(), velocity_verlet_npt_finalize_p_inst(), velocity_verlet_npt_propagate_pos(), velocity_verlet_npt_propagate_vel(), and velocity_verlet_npt_propagate_vel_final().