ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
Loading...
Searching...
No Matches
forces_inline.hpp File Reference

Force calculation. More...

#include <config/config.hpp>
#include "BoxGeometry.hpp"
#include "actor/visitors.hpp"
#include "bond_breakage/bond_breakage.hpp"
#include "bonded_interactions/bonded_interaction_data.hpp"
#include "bonded_interactions/thermalized_bond_kernel.hpp"
#include "electrostatics/coulomb_inline.hpp"
#include "immersed_boundary/ibm_tribend.hpp"
#include "immersed_boundary/ibm_triel.hpp"
#include "magnetostatics/dipoles_inline.hpp"
#include "nonbonded_interactions/bmhtf-nacl.hpp"
#include "nonbonded_interactions/buckingham.hpp"
#include "nonbonded_interactions/gaussian.hpp"
#include "nonbonded_interactions/gay_berne.hpp"
#include "nonbonded_interactions/hat.hpp"
#include "nonbonded_interactions/hertzian.hpp"
#include "nonbonded_interactions/lj.hpp"
#include "nonbonded_interactions/ljcos.hpp"
#include "nonbonded_interactions/ljcos2.hpp"
#include "nonbonded_interactions/ljgen.hpp"
#include "nonbonded_interactions/morse.hpp"
#include "nonbonded_interactions/nonbonded_interaction_data.hpp"
#include "nonbonded_interactions/nonbonded_tab.hpp"
#include "nonbonded_interactions/smooth_step.hpp"
#include "nonbonded_interactions/soft_sphere.hpp"
#include "nonbonded_interactions/thole.hpp"
#include "nonbonded_interactions/wca.hpp"
#include "object-in-fluid/oif_global_forces.hpp"
#include "object-in-fluid/oif_local_forces.hpp"
#include "dpd.hpp"
#include "Particle.hpp"
#include "bond_error.hpp"
#include "errorhandling.hpp"
#include "exclusions.hpp"
#include "thermostat.hpp"
#include <utils/Vector.hpp>
#include <optional>
#include <span>
#include <tuple>
#include <variant>
+ Include dependency graph for forces_inline.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

ESPRESSO_ATTR_ALWAYS_INLINE Utils::Vector3d calc_central_radial_force (IA_parameters const &ia_params, Utils::Vector3d const &d, double const dist)
 
ParticleForce calc_non_central_force (Particle const &p1, Particle const &p2, IA_parameters const &ia_params, Utils::Vector3d const &d, double const dist)
 
ParticleForce calc_opposing_force (ParticleForce const &pf, Utils::Vector3d const &d)
 
ESPRESSO_ATTR_ALWAYS_INLINE std::optional< Utils::Vector3dcalc_bond_pair_force (Bonded_IA_Parameters const &iaparams, Utils::Vector3d const &dx, double const q1q2, Coulomb::ShortRangeForceKernel::kernel_type const *kernel)
 Compute the bonded interaction force between particle pairs.
 
ESPRESSO_ATTR_ALWAYS_INLINE std::optional< std::tuple< Utils::Vector3d, Utils::Vector3d, Utils::Vector3d > > calc_bonded_three_body_force (Bonded_IA_Parameters const &iaparams, Utils::Vector3d const &vec1, Utils::Vector3d const &vec2)
 
ESPRESSO_ATTR_ALWAYS_INLINE std::optional< std::tuple< Utils::Vector3d, Utils::Vector3d, Utils::Vector3d, Utils::Vector3d > > calc_bonded_four_body_force (Bonded_IA_Parameters const &iaparams, BoxGeometry const &box_geo, Utils::Vector3d const &pos1, Utils::Vector3d const &pos2, Utils::Vector3d const &pos3, Utils::Vector3d const &pos4, Utils::Vector3d const &vel1, Utils::Vector3d const &vel3, Utils::Vector3i const &image1)
 

Detailed Description

Force calculation.

Definition in file forces_inline.hpp.

Function Documentation

◆ calc_bond_pair_force()

ESPRESSO_ATTR_ALWAYS_INLINE std::optional< Utils::Vector3d > calc_bond_pair_force ( Bonded_IA_Parameters const &  iaparams,
Utils::Vector3d const &  dx,
double const  q1q2,
Coulomb::ShortRangeForceKernel::kernel_type const *  kernel 
)
inline

Compute the bonded interaction force between particle pairs.

Parameters
[in]iaparamsBonded parameters for the interaction.
[in]q1q2Product of the particle charges.
[in]dxVector between p1 and p2.
[in]kernelCoulomb force kernel.

Definition at line 177 of file forces_inline.hpp.

Referenced by calc_bonded_virial_pressure_tensor().

◆ calc_bonded_four_body_force()

ESPRESSO_ATTR_ALWAYS_INLINE std::optional< std::tuple< Utils::Vector3d, Utils::Vector3d, Utils::Vector3d, Utils::Vector3d > > calc_bonded_four_body_force ( Bonded_IA_Parameters const &  iaparams,
BoxGeometry const &  box_geo,
Utils::Vector3d const &  pos1,
Utils::Vector3d const &  pos2,
Utils::Vector3d const &  pos3,
Utils::Vector3d const &  pos4,
Utils::Vector3d const &  vel1,
Utils::Vector3d const &  vel3,
Utils::Vector3i const &  image1 
)
inline

◆ calc_bonded_three_body_force()

ESPRESSO_ATTR_ALWAYS_INLINE std::optional< std::tuple< Utils::Vector3d, Utils::Vector3d, Utils::Vector3d > > calc_bonded_three_body_force ( Bonded_IA_Parameters const &  iaparams,
Utils::Vector3d const &  vec1,
Utils::Vector3d const &  vec2 
)
inline

Definition at line 217 of file forces_inline.hpp.

Referenced by calc_bonded_three_body_pressure_tensor().

◆ calc_central_radial_force()

◆ calc_non_central_force()

ParticleForce calc_non_central_force ( Particle const &  p1,
Particle const &  p2,
IA_parameters const &  ia_params,
Utils::Vector3d const &  d,
double const  dist 
)
inline

◆ calc_opposing_force()

ParticleForce calc_opposing_force ( ParticleForce const &  pf,
Utils::Vector3d const &  d 
)
inline