ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
Loading...
Searching...
No Matches
sd_interface.cpp File Reference
#include "config/config.hpp"
#include "sd_interface.hpp"
#include "stokesian_dynamics/sd_cpu.hpp"
#include "BoxGeometry.hpp"
#include "Particle.hpp"
#include "communication.hpp"
#include "system/System.hpp"
#include "thermostat.hpp"
#include <utils/Vector.hpp>
#include <utils/mpi/gather_buffer.hpp>
#include <utils/mpi/scatter_buffer.hpp>
#include <boost/range/algorithm.hpp>
#include <boost/serialization/is_bitwise_serializable.hpp>
#include <algorithm>
#include <cmath>
#include <cstddef>
#include <iterator>
#include <stdexcept>
#include <string>
#include <utility>
#include <vector>
+ Include dependency graph for sd_interface.cpp:

Go to the source code of this file.

Classes

struct  SD_particle_data
 

Functions

void register_integrator (StokesianDynamicsParameters const &obj)
 
template<typename ParticleIterable >
void sd_update_locally (ParticleIterable const &parts)
 Update translational and rotational velocities of all particles.
 
void propagate_vel_pos_sd (ParticleRangeStokesian const &particles, StokesianThermostat const &stokesian, double const time_step, double const kT)
 Takes the forces and torques on all particles and computes their velocities.
 

Variables

static StokesianDynamicsParameters params {0., {}, 0}
 
static std::vector< double > v_sd {}
 Buffer that holds the (translational and angular) velocities of the local particles on each node, used for returning results.
 

Function Documentation

◆ propagate_vel_pos_sd()

void propagate_vel_pos_sd ( ParticleRangeStokesian const &  particles,
StokesianThermostat const &  stokesian,
double  time_step,
double  kT 
)

Takes the forces and torques on all particles and computes their velocities.

Acts globally on particles on all nodes; i.e. particle data is gathered from all nodes and their velocities and angular velocities are set according to the Stokesian Dynamics method.

Definition at line 128 of file sd_interface.cpp.

References comm_cart, StokesianDynamicsParameters::flags, Utils::Mpi::gather_buffer(), params, StokesianDynamicsParameters::radii, BaseThermostat::rng_counter(), BaseThermostat::rng_seed(), Utils::Mpi::scatter_buffer(), sd_update_locally(), ParticleRange::size(), v_sd, and StokesianDynamicsParameters::viscosity.

Referenced by stokesian_dynamics_step_1().

◆ register_integrator()

void register_integrator ( StokesianDynamicsParameters const &  obj)

Definition at line 78 of file sd_interface.cpp.

References System::System::box_geo, System::get_system(), and params.

◆ sd_update_locally()

template<typename ParticleIterable >
void sd_update_locally ( ParticleIterable const &  parts)

Update translational and rotational velocities of all particles.

Definition at line 89 of file sd_interface.cpp.

References v_sd.

Referenced by propagate_vel_pos_sd().

Variable Documentation

◆ params

StokesianDynamicsParameters params {0., {}, 0}
static

Definition at line 72 of file sd_interface.cpp.

Referenced by propagate_vel_pos_sd(), and register_integrator().

◆ v_sd

std::vector<double> v_sd {}
static

Buffer that holds the (translational and angular) velocities of the local particles on each node, used for returning results.

Definition at line 76 of file sd_interface.cpp.

Referenced by propagate_vel_pos_sd(), and sd_update_locally().