ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
Loading...
Searching...
No Matches
core/collision_detection/BindCenters.hpp
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2011-2024 The ESPResSo project
3
*
4
* This file is part of ESPResSo.
5
*
6
* ESPResSo is free software: you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation, either version 3 of the License, or
9
* (at your option) any later version.
10
*
11
* ESPResSo is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program. If not, see <http://www.gnu.org/licenses/>.
18
*/
19
20
#pragma once
21
22
#include <
config/config.hpp
>
23
24
#ifdef COLLISION_DETECTION
25
26
#include "
CollisionPair.hpp
"
27
#include "
common.hpp
"
28
29
#include "
Particle.hpp
"
30
#include "system/System.hpp"
31
32
#include <vector>
33
34
namespace
CollisionDetection
{
35
36
class
BindCenters
{
37
public
:
38
/// Distance at which particle are bound
39
double
distance
;
40
/// Square of distance at which particle are bound
41
double
distance_sq
;
42
/// bond type used between centers of colliding particles
43
int
bond_centers
;
44
45
BindCenters
(
double
distance
,
int
bond_centers
)
46
:
distance
{
distance
},
distance_sq
{
distance
*
distance
},
47
bond_centers
{
bond_centers
} {}
48
49
void
initialize
(
System::System
&system);
50
51
auto
cutoff
()
const
{
return
distance
; }
52
53
void
handle_collisions
(
System::System
&system,
54
std::vector<CollisionPair> &local_collision_queue);
55
56
bool
detect_collision
(
Particle
const
&p1,
Particle
const
&p2,
57
double
const
dist_sq)
const
{
58
if
(dist_sq >
distance_sq
)
59
return
false
;
60
61
return
detect_collision_common
(p1, p2,
bond_centers
);
62
}
63
};
64
65
}
// namespace CollisionDetection
66
#endif
// COLLISION_DETECTION
CollisionPair.hpp
Particle.hpp
CollisionDetection::BindCenters
Definition
core/collision_detection/BindCenters.hpp:36
CollisionDetection::BindCenters::detect_collision
bool detect_collision(Particle const &p1, Particle const &p2, double const dist_sq) const
Definition
core/collision_detection/BindCenters.hpp:56
CollisionDetection::BindCenters::cutoff
auto cutoff() const
Definition
core/collision_detection/BindCenters.hpp:51
CollisionDetection::BindCenters::distance_sq
double distance_sq
Square of distance at which particle are bound.
Definition
core/collision_detection/BindCenters.hpp:41
CollisionDetection::BindCenters::handle_collisions
void handle_collisions(System::System &system, std::vector< CollisionPair > &local_collision_queue)
Definition
BindCenters.cpp:59
CollisionDetection::BindCenters::initialize
void initialize(System::System &system)
Definition
BindCenters.cpp:42
CollisionDetection::BindCenters::BindCenters
BindCenters(double distance, int bond_centers)
Definition
core/collision_detection/BindCenters.hpp:45
CollisionDetection::BindCenters::bond_centers
int bond_centers
bond type used between centers of colliding particles
Definition
core/collision_detection/BindCenters.hpp:43
CollisionDetection::BindCenters::distance
double distance
Distance at which particle are bound.
Definition
core/collision_detection/BindCenters.hpp:39
System::System
Main system class.
Definition
core/system/System.hpp:77
config.hpp
This file contains the defaults for ESPResSo.
CollisionDetection
Definition
ActiveProtocol.hpp:33
CollisionDetection::detect_collision_common
auto detect_collision_common(Particle const &p1, Particle const &p2, int const bond_centers)
Definition
collision_detection/common.hpp:31
common.hpp
Common functions for dipolar and charge P3M.
Particle
Struct holding all information for one particle.
Definition
Particle.hpp:395
src
core
collision_detection
BindCenters.hpp
Generated on Thu Dec 19 2024 02:13:16 for ESPResSo by
1.9.8