30#include "system/System.hpp"
31#include "thermostat.hpp"
92 npt_inst_pressure.
p_vel = {};
93 for (
auto &p : particles) {
94 for (
auto j = 0
u;
j < 3u; ++
j) {
95 if (!p.is_fixed_along(
j)) {
99 p.v()[
j] += p.force()[
j] * time_step / (2. * p.mass());
112 npt_inst_pressure.
p_vel = {};
114 for (
auto &p : particles) {
115 for (
auto j = 0
u;
j < 3u; ++
j) {
116 if (!p.is_fixed_along(
j)) {
117 p.v()[
j] += p.force()[
j] * time_step / (2. * p.mass());
cudaStream_t stream[1]
CUDA streams for parallel computing on CPU and GPU.
DEVICE_QUALIFIER constexpr T sqr(T x)
Calculates the SQuaRe of x.
Exports for the NpT code.
Instantaneous pressure during force calculation for NPT integration.
Utils::Vector3d p_vel
ideal gas components of p_inst, derived from the velocities
Thermostat for isotropic NPT dynamics.
Parameters of the isotropic NpT-integration scheme.
int geometry
geometry information for the NpT integrator.
static constexpr std::array< int, 3 > nptgeom_dir
PropagationPredicateNPT(int default_propagation)
bool operator()(int prop) const
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_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.
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_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_Andersen_step_2(ParticleRangeNPT const &particles, double time_step, System::System &system)
Final integration step of the Velocity Verlet+NpT integrator for Andersen method.