![]() |
ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
|
#include "lb/particle_coupling.hpp"#include "BoxGeometry.hpp"#include "LocalBox.hpp"#include "Particle.hpp"#include "cell_system/CellStructure.hpp"#include "communication.hpp"#include "config/config.hpp"#include "errorhandling.hpp"#include "random.hpp"#include "system/System.hpp"#include "thermostat.hpp"#include <utils/Counter.hpp>#include <utils/Vector.hpp>#include <boost/mpi.hpp>#include <caliper/cali.h>#include <cmath>#include <cstdint>#include <initializer_list>#include <limits>#include <ranges>#include <stdexcept>#include <vector>
Include dependency graph for particle_coupling.cpp:Go to the source code of this file.
Namespaces | |
| namespace | LB |
Functions | |
| static Thermostat::GammaType | lb_handle_particle_anisotropy (Particle const &p, double lb_gamma) |
| static Utils::Vector3d | lb_drag_force (Particle const &p, double lb_gamma, Utils::Vector3d const &v_fluid) |
| Utils::Vector3d | lb_drag_force (LB::Solver const &lb, double lb_gamma, Particle const &p, Utils::Vector3d const &shifted_pos) |
| Calculate drag force on a single particle. | |
| static bool | in_local_domain (LocalBox const &local_box, Utils::Vector3d const &pos, double halo=0.) |
| Check if a position is within the local box + halo. | |
| static bool | in_box (Utils::Vector3d const &pos, Utils::Vector3d const &lower_corner, Utils::Vector3d const &upper_corner) |
| bool | in_local_halo (LocalBox const &local_box, Utils::Vector3d const &pos, double agrid) |
| Check if a position is within the local LB domain plus halo. | |
| static void | positions_in_halo_impl (Utils::Vector3d const &pos_folded, Utils::Vector3d const &halo_lower_corner, Utils::Vector3d const &halo_upper_corner, BoxGeometry const &box_geo, std::vector< Utils::Vector3d > &res) |
| std::vector< Utils::Vector3d > | positions_in_halo (Utils::Vector3d const &pos, BoxGeometry const &box_geo, LocalBox const &local_box, double agrid) |
| Return a vector of positions shifted by +,- box length in each coordinate. | |
| static auto | lees_edwards_vel_shift (Utils::Vector3d const &pos_shifted_by_box_l, Utils::Vector3d const &orig_pos, BoxGeometry const &box_geo) |
| static void | LB::lb_coupling_sanity_checks (Particle const &p) |
|
static |
Definition at line 102 of file particle_coupling.cpp.
Referenced by LB::ParticleCoupling::kernel(), positions_in_halo(), and positions_in_halo_impl().
|
static |
Check if a position is within the local box + halo.
| local_box | Local geometry |
| pos | Position to check |
| halo | Halo |
Definition at line 93 of file particle_coupling.cpp.
References Utils::Vector< T, N >::broadcast(), LocalBox::my_left(), and LocalBox::my_right().
Referenced by in_local_halo().
| bool in_local_halo | ( | LocalBox const & | local_box, |
| Utils::Vector3d const & | pos, | ||
| double | agrid | ||
| ) |
Check if a position is within the local LB domain plus halo.
Definition at line 108 of file particle_coupling.cpp.
References in_local_domain().
| Utils::Vector3d lb_drag_force | ( | LB::Solver const & | lb, |
| double | lb_gamma, | ||
| Particle const & | p, | ||
| Utils::Vector3d const & | shifted_pos | ||
| ) |
Calculate drag force on a single particle.
See section II.C. and eq. 9 in [2].
| [in] | lb | The coupled fluid |
| [in] | lb_gamma | The friction coefficient |
| [in] | p | The coupled particle |
| [in] | shifted_pos | The particle position in MD units with optional shift |
Definition at line 77 of file particle_coupling.cpp.
References LB::Solver::get_coupling_interpolated_velocity(), and lb_drag_force().
|
static |
Definition at line 64 of file particle_coupling.cpp.
References Utils::hadamard_product(), lb_handle_particle_anisotropy(), Particle::mu_E(), and Particle::v().
Referenced by LB::ParticleCoupling::kernel(), and lb_drag_force().
|
static |
Definition at line 49 of file particle_coupling.cpp.
References Utils::Vector< T, N >::broadcast(), Particle::gamma(), and Thermostat::handle_particle_gamma().
Referenced by LB::ParticleCoupling::get_noise_term(), and lb_drag_force().
|
static |
Definition at line 177 of file particle_coupling.cpp.
References LEES_EDWARDS, BoxGeometry::lees_edwards_bc(), and BoxGeometry::type().
Referenced by LB::ParticleCoupling::kernel().
| std::vector< Utils::Vector3d > positions_in_halo | ( | Utils::Vector3d const & | pos, |
| BoxGeometry const & | box_geo, | ||
| LocalBox const & | local_box, | ||
| double | agrid | ||
| ) |
Return a vector of positions shifted by +,- box length in each coordinate.
Definition at line 157 of file particle_coupling.cpp.
References Utils::Vector< T, N >::broadcast(), BoxGeometry::folded_position(), in_box(), LocalBox::my_left(), LocalBox::my_right(), and positions_in_halo_impl().
Referenced by lb_tracers_add_particle_force_to_fluid().
|
static |
Definition at line 114 of file particle_coupling.cpp.
References Utils::hadamard_product(), in_box(), LEES_EDWARDS, BoxGeometry::lees_edwards_bc(), BoxGeometry::length(), Algorithm::periodic_fold(), and BoxGeometry::type().
Referenced by LB::ParticleCoupling::kernel(), and positions_in_halo().