![]() |
ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
|
#include "rattle.hpp"#include "BoxGeometry.hpp"#include "Particle.hpp"#include "ParticleRange.hpp"#include "bonded_interactions/bonded_interaction_data.hpp"#include "bonded_interactions/rigid_bond.hpp"#include "cell_system/CellStructure.hpp"#include "communication.hpp"#include "errorhandling.hpp"#include <boost/mpi/collectives/all_reduce.hpp>#include <boost/range/algorithm.hpp>#include <cmath>#include <functional>#include <span>#include <variant>
Include dependency graph for rattle.cpp:Go to the source code of this file.
Variables | |
| static constexpr auto | shake_max_iterations = 1000 |
| Maximal number of iterations before the RATTLE algorithm bails out. | |
|
static |
Apply positional corrections.
| particles | particle range |
Definition at line 150 of file rattle.cpp.
References Particle::pos(), Particle::rattle_params(), and Particle::v().
Referenced by correct_position_shake().
|
static |
Apply velocity corrections.
| particles | particle range |
Definition at line 227 of file rattle.cpp.
References Particle::rattle_params(), and Particle::v().
Referenced by correct_velocity_shake().
|
static |
Calculate the positional correction for the particles.
| ia_params | Parameters |
| box_geo | Box geometry. |
| p1 | First particle. |
| p2 | Second particle. |
Definition at line 90 of file rattle.cpp.
References BoxGeometry::get_mi_vector(), and stream.
Referenced by correct_position_shake().
|
static |
Calculate the velocity correction for the particles.
The position correction is accumulated in the forces of the particles so that it can be reduced over the ghosts.
| ia_params | Parameters |
| box_geo | Box geometry. |
| p1 | First particle. |
| p2 | Second particle. |
Definition at line 201 of file rattle.cpp.
References BoxGeometry::get_mi_vector(), and stream.
Referenced by correct_velocity_shake().
Definition at line 46 of file rattle.cpp.
References runtimeErrorMsg, shake_max_iterations, and stream.
Referenced by correct_position_shake(), and correct_velocity_shake().
|
static |
Compute the correction vectors using given kernel.
| cs | cell structure |
| box_geo | Box geometry |
| bonded_ias | Bonded interactions |
| kernel | kernel function |
Definition at line 123 of file rattle.cpp.
References BondedInteractionsMap::at(), CellStructure::bond_loop(), and stream.
Referenced by correct_position_shake(), and correct_velocity_shake().
| void correct_position_shake | ( | CellStructure & | cs, |
| BoxGeometry const & | box_geo, | ||
| BondedInteractionsMap const & | bonded_ias | ||
| ) |
Propagate velocity and position while using SHAKE algorithm for bond constraint.
Definition at line 157 of file rattle.cpp.
References apply_positional_correction(), calculate_positional_correction(), check_convergence(), CellStructure::check_resort_required(), comm_cart, compute_correction_vector(), Cells::DATA_PART_MOMENTUM, Cells::DATA_PART_POSITION, Cells::DATA_PART_PROPERTIES, CellStructure::ghost_particles(), CellStructure::ghosts_reduce_rattle_correction(), CellStructure::ghosts_update(), init_correction_vector(), CellStructure::local_particles(), Cells::RESORT_LOCAL, Cells::RESORT_NONE, CellStructure::set_resort_particles(), shake_max_iterations, stream, and CellStructure::update_ghosts_and_resort_particle().
Referenced by System::System::integrate().
| void correct_velocity_shake | ( | CellStructure & | cs, |
| BoxGeometry const & | box_geo, | ||
| BondedInteractionsMap const & | bonded_ias | ||
| ) |
Correction of current velocities using RATTLE algorithm.
Definition at line 232 of file rattle.cpp.
References apply_velocity_correction(), calculate_velocity_correction(), check_convergence(), comm_cart, compute_correction_vector(), Cells::DATA_PART_MOMENTUM, Cells::DATA_PART_POSITION, CellStructure::ghost_particles(), CellStructure::ghosts_reduce_rattle_correction(), CellStructure::ghosts_update(), init_correction_vector(), CellStructure::local_particles(), shake_max_iterations, and stream.
Referenced by System::System::integrate().
|
static |
reset correction vectors to zero
| particles | particle range |
| ghost_particles | ghost particle range |
Definition at line 73 of file rattle.cpp.
Referenced by correct_position_shake(), and correct_velocity_shake().
| void save_old_position | ( | const ParticleRange & | particles, |
| const ParticleRange & | ghost_particles | ||
| ) |
copy current position
Transfer the current particle positions from Particle::pos to Particle::pos_last_time_step.
| particles | particle range |
| ghost_particles | ghost particle range |
Definition at line 59 of file rattle.cpp.
References stream.
Referenced by System::System::integrate().
Maximal number of iterations before the RATTLE algorithm bails out.
Definition at line 44 of file rattle.cpp.
Referenced by check_convergence(), correct_position_shake(), and correct_velocity_shake().