ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
Loading...
Searching...
No Matches
pressure_inline.hpp File Reference
#include <config/config.hpp>
#include "bonded_interactions/bonded_interaction_data.hpp"
#include "magnetostatics/dipoles.hpp"
#include "nonbonded_interactions/nonbonded_interaction_data.hpp"
#include "BoxGeometry.hpp"
#include "Observable_stat.hpp"
#include "Particle.hpp"
#include "errorhandling.hpp"
#include "exclusions.hpp"
#include "forces_inline.hpp"
#include <utils/Vector.hpp>
#include <utils/math/tensor_product.hpp>
#include <cstdio>
#include <optional>
#include <span>
#include <string>
#include <tuple>
#include <variant>
+ Include dependency graph for pressure_inline.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void add_non_bonded_pair_virials (Particle const &p1, Particle const &p2, Utils::Vector3d const &d, double dist, IA_parameters const &ia_params, BondedInteractionsMap const &bonded_ias, Dipoles::Solver const &dipoles, Coulomb::ShortRangeForceKernel::kernel_type const *kernel_forces, Coulomb::ShortRangePressureKernel::kernel_type const *kernel_pressure, Observable_stat &obs_pressure)
 Calculate non-bonded energies between a pair of particles.
 
std::optional< Utils::Matrix< double, 3, 3 > > calc_bonded_virial_pressure_tensor (Bonded_IA_Parameters const &iaparams, Particle const &p1, Particle const &p2, BoxGeometry const &box_geo, Coulomb::ShortRangeForceKernel::kernel_type const *kernel)
 
std::optional< Utils::Matrix< double, 3, 3 > > calc_bonded_three_body_pressure_tensor (Bonded_IA_Parameters const &iaparams, Particle const &p1, Particle const &p2, Particle const &p3, BoxGeometry const &box_geo)
 
std::optional< Utils::Matrix< double, 3, 3 > > calc_bonded_pressure_tensor (Bonded_IA_Parameters const &iaparams, Particle const &p1, std::span< Particle * > partners, BoxGeometry const &box_geo, Coulomb::ShortRangeForceKernel::kernel_type const *kernel)
 
void add_kinetic_virials (Particle const &p1, Observable_stat &obs_pressure)
 Calculate kinetic pressure (aka energy) for one particle.
 

Function Documentation

◆ add_kinetic_virials()

void add_kinetic_virials ( Particle const p1,
Observable_stat obs_pressure 
)
inline

Calculate kinetic pressure (aka energy) for one particle.

Parameters
[in]p1particle for which to calculate pressure
[out]obs_pressurepressure observable

Definition at line 174 of file pressure_inline.hpp.

References stream.

Referenced by System::System::calculate_pressure().

◆ add_non_bonded_pair_virials()

void add_non_bonded_pair_virials ( Particle const p1,
Particle const p2,
Utils::Vector3d const d,
double  dist,
IA_parameters const ia_params,
BondedInteractionsMap const bonded_ias,
Dipoles::Solver const dipoles,
Coulomb::ShortRangeForceKernel::kernel_type const kernel_forces,
Coulomb::ShortRangePressureKernel::kernel_type const kernel_pressure,
Observable_stat obs_pressure 
)
inline

Calculate non-bonded energies between a pair of particles.

Parameters
p1pointer to particle 1.
p2pointer to particle 2.
dvector between p1 and p2.
distdistance between p1 and p2.
ia_paramsnon-bonded interaction kernels.
dipolesMagnetostatics solver.
bonded_iasbonded interaction kernels.
kernel_forcesCoulomb force kernel.
kernel_pressureCoulomb pressure kernel.
[in,out]obs_pressurepressure observable.

Definition at line 59 of file pressure_inline.hpp.

References calc_central_radial_force(), calc_non_central_force(), do_nonbonded(), ParticleForce::f, Dipoles::Solver::impl, stream, Utils::tensor_product(), and thole_pair_force().

Referenced by System::System::calculate_pressure().

◆ calc_bonded_pressure_tensor()

◆ calc_bonded_three_body_pressure_tensor()

std::optional< Utils::Matrix< double, 3, 3 > > calc_bonded_three_body_pressure_tensor ( Bonded_IA_Parameters const iaparams,
Particle const p1,
Particle const p2,
Particle const p3,
BoxGeometry const box_geo 
)
inline

◆ calc_bonded_virial_pressure_tensor()

std::optional< Utils::Matrix< double, 3, 3 > > calc_bonded_virial_pressure_tensor ( Bonded_IA_Parameters const iaparams,
Particle const p1,
Particle const p2,
BoxGeometry const box_geo,
Coulomb::ShortRangeForceKernel::kernel_type const kernel 
)
inline