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/Span.hpp>
#include <utils/Vector.hpp>
#include <utils/math/tensor_product.hpp>
#include <boost/optional.hpp>
#include <boost/variant.hpp>
#include <string>
#include <tuple>
+ 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, 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.
 
boost::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)
 
boost::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)
 
boost::optional< Utils::Matrix< double, 3, 3 > > calc_bonded_pressure_tensor (Bonded_IA_Parameters const &iaparams, Particle const &p1, Utils::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 171 of file pressure_inline.hpp.

References Particle::is_virtual(), Observable_stat::kinetic, Particle::mass(), and Particle::v().

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,
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.
kernel_forcesCoulomb force kernel.
kernel_pressureCoulomb pressure kernel.
[in,out]obs_pressurepressure observable.

Definition at line 57 of file pressure_inline.hpp.

References Observable_stat::add_non_bonded_contribution(), calc_central_radial_charge_force(), calc_central_radial_force(), calc_non_central_force(), Observable_stat::coulomb, do_nonbonded(), Utils::Span< T >::empty(), ParticleForce::f, force, Dipoles::get_dipoles(), Particle::mol_id(), Particle::q(), Utils::tensor_product(), and Particle::type().

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

◆ calc_bonded_pressure_tensor()

boost::optional< Utils::Matrix< double, 3, 3 > > calc_bonded_pressure_tensor ( Bonded_IA_Parameters const &  iaparams,
Particle const &  p1,
Utils::Span< Particle * >  partners,
BoxGeometry const &  box_geo,
Coulomb::ShortRangeForceKernel::kernel_type const *  kernel 
)
inline

◆ calc_bonded_three_body_pressure_tensor()

boost::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()

boost::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