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

Routines to use DPD as thermostat or pair force [42]. More...

#include <config/config.hpp>
#include "BoxGeometry.hpp"
#include "Particle.hpp"
#include "nonbonded_interactions/nonbonded_interaction_data.hpp"
#include "system/System.hpp"
#include "thermostat.hpp"
#include <utils/Vector.hpp>
#include <cmath>
+ Include dependency graph for dpd.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  boost
 
namespace  boost::mpi
 

Functions

Utils::Vector3d dpd_pair_force (DPDParameters const &params, Utils::Vector3d const &v, double dist, Utils::Vector3d const &noise)
 
Utils::Vector3d dpd_pair_force (Utils::Vector3d const &p1_position, Utils::Vector3d const &p1_velocity, int const &p1_id, Utils::Vector3d const &p2_position, Utils::Vector3d const &p2_velocity, int const &p2_id, DPDThermostat const &dpd, BoxGeometry const &box_geo, IA_parameters const &ia_params, Utils::Vector3d const &d, double dist, double dist2)
 
Utils::Vector9d dpd_stress (System::System &system, boost::mpi::communicator const &comm)
 Viscous stress tensor of the DPD interaction.
 
Utils::Vector9d dpd_pressure_local (System::System &system)
 Local contribution to the pressure tensor.
 

Detailed Description

Routines to use DPD as thermostat or pair force [42].

Implementation in dpd.cpp.

Definition in file dpd.hpp.

Function Documentation

◆ dpd_pair_force() [1/2]

Utils::Vector3d dpd_pair_force ( DPDParameters const params,
Utils::Vector3d const v,
double  dist,
Utils::Vector3d const noise 
)
inline

◆ dpd_pair_force() [2/2]

Utils::Vector3d dpd_pair_force ( Utils::Vector3d const p1_position,
Utils::Vector3d const p1_velocity,
int const p1_id,
Utils::Vector3d const p2_position,
Utils::Vector3d const p2_velocity,
int const p2_id,
DPDThermostat const dpd,
BoxGeometry const box_geo,
IA_parameters const ia_params,
Utils::Vector3d const d,
double  dist,
double  dist2 
)

◆ dpd_pressure_local()

Utils::Vector9d dpd_pressure_local ( System::System system)

Local contribution to the pressure tensor.

Needs to be rescaled by the box volume.

Definition at line 139 of file dpd.cpp.

References dpd_viscous_stress_local(), Utils::flatten(), and stream.

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

◆ dpd_stress()

Utils::Vector9d dpd_stress ( System::System system,
boost::mpi::communicator const comm 
)

Viscous stress tensor of the DPD interaction.

This calculates the total viscous stress contribution of the DPD interaction. It contains only the dissipative contributions of the interaction without noise. It's calculated as the sum over all pair virials as

\[ \sigma^{\nu\mu} = V^{-1}\sum_i \sum_{j < i} r_{i,j}^{\nu} (- \gamma_{i,j} v_{i,j})^{\mu} \]

where \(\gamma_{i,j}\) is the (in general tensor valued) DPD friction coefficient for particles i and j, \(v_{i,j}\), \(r_{i,j}\) are their relative velocity and distance and \(V\) is the box volume.

Returns
Stress tensor contribution.

Definition at line 159 of file dpd.cpp.

References dpd_viscous_stress_local(), Utils::flatten(), and stream.

Referenced by ScriptInterface::Analysis::Analysis::do_call_method(), and Observables::DPDStress::operator()().