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 <stdexcept>
#include <vector>
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 101 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 92 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 107 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 76 of file particle_coupling.cpp.
References LB::Solver::get_coupling_interpolated_velocity(), and lb_drag_force().
|
static |
Definition at line 63 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 48 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 183 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 163 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 113 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().