36#ifdef ESPRESSO_DIPOLE_FIELD_TRACKING
40#include "system/System.hpp"
44#ifdef ESPRESSO_CALIPER
47#include <caliper/cali.h>
54#ifdef ESPRESSO_EXTERNAL_FORCES
56#ifdef ESPRESSO_ROTATION
74#ifdef ESPRESSO_CALIPER
81 auto const kT = thermostat.kT;
85 bool const langevin_active =
86 thermostat.langevin &&
87 (propagation.used_propagations &
91 cell_structure.for_each_local_particle([&](
Particle &p) {
96 if (langevin_active) {
97 auto const &langevin = *thermostat.langevin;
100#ifdef ESPRESSO_ROTATION
111 cell_structure.ghosts_reset_forces();
112#ifdef ESPRESSO_DIPOLE_FIELD_TRACKING
114 cell_structure.ghosts_reset_dipole_fields();
Zero-overhead Caliper guards for the inactive (no CALI_CONFIG) case.
#define ESPRESSO_CALI_MARK_FUNCTION
Guarded drop-in replacement for CALI_CXX_MARK_FUNCTION.
auto get_time_step() const
Get time_step.
std::shared_ptr< Propagation > propagation
std::shared_ptr< Thermostat::Thermostat > thermostat
std::shared_ptr< CellStructure > cell_structure
static ParticleForce external_force(Particle const &p)
External particle forces.
void init_forces_and_thermostat(System::System const &system)
Combined force initialization and Langevin noise application.
Utils::Vector3d friction_thermo_langevin(LangevinThermostat const &langevin, Particle const &p, double time_step, double kT)
Langevin thermostat for particle translational velocities.
Utils::Vector3d friction_thermo_langevin_rotation(LangevinThermostat const &langevin, Particle const &p, double time_step, double kT)
Langevin thermostat for particle angular velocities.
This file contains all subroutines required to process rotational motion.
Utils::Vector3d convert_vector_body_to_space(const Particle &p, const Utils::Vector3d &vec)
std::unique_ptr< Implementation > impl
Pointer-to-implementation.
Force information on a particle.
Utils::Vector3d torque
torque.
Struct holding all information for one particle.
constexpr auto calc_director() const
constexpr auto const & swimming() const
constexpr auto const & ext_force() const
constexpr auto const & ext_torque() const
constexpr auto const & force() const
constexpr auto const & force_and_torque() const
constexpr auto const & torque() const