ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
|
#include "config/config.hpp"
#include "cell_system/CellStructure.hpp"
#include "BondList.hpp"
#include "Particle.hpp"
Go to the source code of this file.
Classes | |
class | Collision_parameters |
Enumerations | |
enum class | CollisionModeType : int { OFF = 0 , BIND_CENTERS = 1 , BIND_VS = 2 , GLUE_TO_SURF = 3 , BIND_THREE_PARTICLES = 4 } |
Protocols for collision handling. More... | |
Functions | |
void | prepare_local_collision_queue () |
void | handle_collisions (CellStructure &cell_structure) |
Handle the collisions recorded in the queue. | |
void | queue_collision (int part1, int part2) |
Add the collision between the given particle ids to the collision queue. | |
bool | glue_to_surface_criterion (Particle const &p1, Particle const &p2) |
Check additional criteria for the glue_to_surface collision mode. | |
void | detect_collision (Particle const &p1, Particle const &p2, double const dist2) |
Detect (and queue) a collision between the given particles. | |
double | collision_detection_cutoff () |
Variables | |
Collision_parameters | collision_params |
Parameters for collision detection. | |
|
strong |
Protocols for collision handling.
Definition at line 30 of file collision.hpp.
|
inline |
Definition at line 154 of file collision.hpp.
References collision_params, Collision_parameters::distance, Collision_parameters::mode, and OFF.
Referenced by System::System::calculate_forces(), and System::System::maximal_cutoff().
Detect (and queue) a collision between the given particles.
Definition at line 120 of file collision.hpp.
References Collision_parameters::bond_centers, Particle::bonds(), collision_params, Collision_parameters::distance2, GLUE_TO_SURF, glue_to_surface_criterion(), Particle::id(), Particle::is_ghost(), Particle::is_virtual(), Collision_parameters::mode, pair_bond_exists_on(), and queue_collision().
Referenced by System::System::calculate_forces().
Check additional criteria for the glue_to_surface collision mode.
Definition at line 112 of file collision.hpp.
References collision_params, Collision_parameters::part_type_to_attach_vs_to, Collision_parameters::part_type_to_be_glued, and Particle::type().
Referenced by detect_collision().
void handle_collisions | ( | CellStructure & | cell_structure | ) |
Handle the collisions recorded in the queue.
Definition at line 482 of file collision.cpp.
References Utils::Mpi::all_compare(), bind_at_poc_create_bond_between_vs(), bind_at_point_of_collision_calc_vs_pos(), bind_centers(), BIND_THREE_PARTICLES, BIND_VS, Collision_parameters::bond_centers, Particle::bonds(), collision_params, comm_cart, Cells::DATA_PART_BONDS, Cells::DATA_PART_PROPERTIES, gather_global_collision_queue(), CellStructure::get_local_particle(), CellStructure::get_max_local_particle_id(), anonymous_namespace{collision.cpp}::get_part(), System::get_system(), GLUE_TO_SURF, glue_to_surface_bind_part_to_vs(), glue_to_surface_calc_vs_pos(), Particle::id(), Particle::is_ghost(), local_collision_queue, Collision_parameters::mode, Collision_parameters::part_type_after_glueing, Collision_parameters::part_type_to_be_glued, place_vs_and_relate_to_particle(), pos, Cells::RESORT_GLOBAL, Particle::set_can_rotate_all_axes(), CellStructure::set_resort_particles(), three_particle_binding_domain_decomposition(), Particle::type(), and CellStructure::update_ghosts_and_resort_particle().
Referenced by System::System::integrate().
void prepare_local_collision_queue | ( | ) |
Definition at line 234 of file collision.cpp.
References local_collision_queue.
Referenced by System::System::calculate_forces().
void queue_collision | ( | int | part1, |
int | part2 | ||
) |
Add the collision between the given particle ids to the collision queue.
Definition at line 236 of file collision.cpp.
References local_collision_queue.
Referenced by detect_collision().
|
extern |
Parameters for collision detection.
Definition at line 73 of file collision.cpp.
Referenced by bind_at_poc_create_bond_between_vs(), bind_at_point_of_collision_calc_vs_pos(), bind_centers(), System::System::calculate_forces(), coldet_do_three_particle_bond(), collision_detection_cutoff(), ScriptInterface::CollisionDetection::CollisionDetection::CollisionDetection(), detect_collision(), ScriptInterface::CollisionDetection::CollisionDetection::do_call_method(), System::System::get_global_ghost_flags(), glue_to_surface_bind_part_to_vs(), glue_to_surface_calc_vs_pos(), glue_to_surface_criterion(), handle_collisions(), Collision_parameters::initialize(), and place_vs_and_relate_to_particle().