ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
Loading...
Searching...
No Matches
relative.cpp File Reference
#include <config/config.hpp>
#include "BoxGeometry.hpp"
#include "Particle.hpp"
#include "PropagationMode.hpp"
#include "cell_system/CellStructure.hpp"
#include "cells.hpp"
#include "errorhandling.hpp"
#include "forces.hpp"
#include "lees_edwards/lees_edwards.hpp"
#include "rotation.hpp"
#include <utils/Vector.hpp>
#include <utils/math/quaternion.hpp>
#include <utils/math/tensor_product.hpp>
#include <utils/quaternion.hpp>
#include <cassert>
+ Include dependency graph for relative.cpp:

Go to the source code of this file.

Functions

static auto connection_vector (Particle const &p_ref, Particle const &p_vs)
 Vector pointing from the real particle to the virtual site.
 
static Utils::Vector3d velocity (Particle const &p_ref, Particle const &p_vs)
 Velocity of the virtual site.
 
Particleget_reference_particle (CellStructure &cell_structure, Particle const &p)
 Get real particle tracked by a virtual site.
 
static auto constraint_stress (Particle const &p_ref, Particle const &p_vs)
 Constraint force to hold the particle at its prescribed position.
 
static bool is_vs_relative_trans (Particle const &p)
 
static bool is_vs_relative_rot (Particle const &p)
 
static bool is_vs_independent_rot (Particle const &p)
 
static bool is_vs_rot (Particle const &p)
 
static bool is_vs (Particle const &p)
 
void vs_relative_update_particles (CellStructure &cell_structure, BoxGeometry const &box_geo)
 
void vs_relative_back_transfer_forces_and_torques (CellStructure &cell_structure)
 
Utils::Matrix< double, 3, 3 > vs_relative_pressure_tensor (CellStructure const &cell_structure)
 

Function Documentation

◆ connection_vector()

static auto connection_vector ( Particle const &  p_ref,
Particle const &  p_vs 
)
static

Vector pointing from the real particle to the virtual site.

Returns
Relative distance.

Definition at line 46 of file relative.cpp.

References Utils::convert_quaternion_to_director(), Particle::quat(), and Particle::vs_relative().

Referenced by constraint_stress(), velocity(), vs_relative_back_transfer_forces_and_torques(), and vs_relative_update_particles().

◆ constraint_stress()

static auto constraint_stress ( Particle const &  p_ref,
Particle const &  p_vs 
)
static

Constraint force to hold the particle at its prescribed position.

Parameters
p_refReference particle.
p_vsVirtual site.
Returns
Constraint force.

Definition at line 98 of file relative.cpp.

References connection_vector(), and Particle::force().

Referenced by vs_relative_pressure_tensor().

◆ get_reference_particle()

Particle * get_reference_particle ( CellStructure cell_structure,
Particle const &  p 
)

Get real particle tracked by a virtual site.

Parameters
cell_structureCell structure.
pVirtual site.
Returns
Pointer to real particle, or nullptr if lookup fails.

Definition at line 75 of file relative.cpp.

References CellStructure::get_local_particle(), Particle::id(), runtimeErrorMsg, and Particle::vs_relative().

Referenced by run_magnetodynamics(), vs_relative_back_transfer_forces_and_torques(), and vs_relative_update_particles().

◆ is_vs()

static bool is_vs ( Particle const &  p)
static

◆ is_vs_independent_rot()

static bool is_vs_independent_rot ( Particle const &  p)
static

Definition at line 111 of file relative.cpp.

References Particle::propagation(), and PropagationMode::ROT_VS_INDEPENDENT.

Referenced by is_vs_rot().

◆ is_vs_relative_rot()

static bool is_vs_relative_rot ( Particle const &  p)
static

◆ is_vs_relative_trans()

static bool is_vs_relative_trans ( Particle const &  p)
static

◆ is_vs_rot()

static bool is_vs_rot ( Particle const &  p)
static

◆ velocity()

static Utils::Vector3d velocity ( Particle const &  p_ref,
Particle const &  p_vs 
)
static

Velocity of the virtual site.

Parameters
p_refReference particle for the virtual site.
p_vsVirtual site.
Returns
Velocity of the virtual site.

Definition at line 65 of file relative.cpp.

References connection_vector(), convert_vector_body_to_space(), Particle::omega(), Particle::v(), and vector_product().

Referenced by bd_drag_vel(), bd_random_walk_vel(), walberla::LBWalberlaImpl< FloatType, Architecture >::VelocityVTKWriter< OutputType >::evaluate(), walberla::lbm::accessor::Force::kernel_set(), walberla::lbm::accessor::Velocity::kernel_set(), walberla::lbm::accessor::Force::kernel_set(), walberla::lbm::accessor::Velocity::kernel_set(), walberla::lbm::accessor::Population::kernel_set_vel(), walberla::lbm::accessor::Population::kernel_set_vel(), walberla::pystencils::InitialPDFsSetterDoublePrecision::run(), walberla::pystencils::InitialPDFsSetterSinglePrecision::run(), walberla::pystencils::UpdateVelFromPDFDoublePrecision::run(), walberla::pystencils::UpdateVelFromPDFDoublePrecisionAVX::run(), walberla::pystencils::UpdateVelFromPDFSinglePrecision::run(), walberla::pystencils::UpdateVelFromPDFSinglePrecisionAVX::run(), walberla::pystencils::InitialPDFsSetterDoublePrecisionCUDA::run(), walberla::pystencils::InitialPDFsSetterSinglePrecisionCUDA::run(), walberla::pystencils::UpdateVelFromPDFDoublePrecisionCUDA::run(), walberla::pystencils::UpdateVelFromPDFSinglePrecisionCUDA::run(), walberla::pystencils::InitialPDFsSetterDoublePrecision::runOnCellInterval(), walberla::pystencils::InitialPDFsSetterSinglePrecision::runOnCellInterval(), walberla::pystencils::UpdateVelFromPDFDoublePrecision::runOnCellInterval(), walberla::pystencils::UpdateVelFromPDFDoublePrecisionAVX::runOnCellInterval(), walberla::pystencils::UpdateVelFromPDFSinglePrecision::runOnCellInterval(), walberla::pystencils::UpdateVelFromPDFSinglePrecisionAVX::runOnCellInterval(), walberla::pystencils::InitialPDFsSetterDoublePrecisionCUDA::runOnCellInterval(), walberla::pystencils::InitialPDFsSetterSinglePrecisionCUDA::runOnCellInterval(), walberla::pystencils::UpdateVelFromPDFDoublePrecisionCUDA::runOnCellInterval(), walberla::pystencils::UpdateVelFromPDFSinglePrecisionCUDA::runOnCellInterval(), walberla::LBWalberlaImpl< FloatType, Architecture >::set_node_velocity_at_boundary(), walberla::LBWalberlaImpl< FloatType, Architecture >::set_slice_velocity(), walberla::LBWalberlaImpl< FloatType, Architecture >::set_slice_velocity_at_boundary(), and vs_relative_update_particles().

◆ vs_relative_back_transfer_forces_and_torques()

◆ vs_relative_pressure_tensor()

Utils::Matrix< double, 3, 3 > vs_relative_pressure_tensor ( CellStructure const &  cell_structure)

◆ vs_relative_update_particles()