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
78 auto &cell_structure = *
system.cell_structure;
79 auto const &propagation = *
system.propagation;
80 auto const &thermostat = *
system.thermostat;
81 auto const kT = thermostat.kT;
82 auto const time_step =
system.get_time_step();
86 thermostat.langevin &&
87 (propagation.used_propagations &
91 cell_structure.for_each_local_particle([&](
Particle &p) {
97 auto const &langevin = *thermostat.langevin;
100#ifdef ESPRESSO_ROTATION
111 cell_structure.ghosts_reset_forces();
112#ifdef ESPRESSO_DIPOLE_FIELD_TRACKING
113 if (
system.dipoles.impl->solver.has_value()) {
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.
cudaStream_t stream[1]
CUDA streams for parallel computing on CPU and GPU.
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)
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