ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
Loading...
Searching...
No Matches
particle_coupling.hpp File Reference
#include "BoxGeometry.hpp"
#include "LocalBox.hpp"
#include "Particle.hpp"
#include "ParticleRange.hpp"
#include "PropagationMode.hpp"
#include "cell_system/CellStructure.hpp"
#include "lb/Solver.hpp"
#include "thermostat.hpp"
#include <utils/Vector.hpp>
#include <utils/math/sqr.hpp>
#include <cmath>
#include <unordered_set>
#include <vector>
+ Include dependency graph for particle_coupling.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  LB::ParticleCoupling
 
class  LB::CouplingBookkeeping
 Keep track of ghost particles that have already been coupled once. More...
 

Namespaces

namespace  LB
 

Functions

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.
 
std::vector< Utils::Vector3dpositions_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.
 
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.
 
bool LB::is_tracer (Particle const &p)
 

Function Documentation

◆ 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.

Returns
True iff the point is inside of the domain.

Definition at line 108 of file particle_coupling.cpp.

References in_local_domain(), and pos.

◆ lb_drag_force()

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].

Parameters
[in]lbThe coupled fluid
[in]lb_gammaThe friction coefficient
[in]pThe coupled particle
[in]shifted_posThe particle position in MD units with optional shift
Returns
The viscous coupling force

Definition at line 77 of file particle_coupling.cpp.

References LB::Solver::get_coupling_interpolated_velocity(), and lb_drag_force().

◆ positions_in_halo()

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 147 of file particle_coupling.cpp.

References Utils::Vector< T, N >::broadcast(), BoxGeometry::folded_position(), in_box(), LocalBox::my_left(), LocalBox::my_right(), pos, positions_in_halo_impl(), and res.

Referenced by lb_tracers_add_particle_force_to_fluid().