ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
Loading...
Searching...
No Matches
exclusions.hpp
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2010-2022 The ESPResSo project
3
* Copyright (C) 2002,2003,2004,2005,2006,2007,2008,2009,2010
4
* Max-Planck-Institute for Polymer Research, Theory Group
5
*
6
* This file is part of ESPResSo.
7
*
8
* ESPResSo is free software: you can redistribute it and/or modify
9
* it under the terms of the GNU General Public License as published by
10
* the Free Software Foundation, either version 3 of the License, or
11
* (at your option) any later version.
12
*
13
* ESPResSo is distributed in the hope that it will be useful,
14
* but WITHOUT ANY WARRANTY; without even the implied warranty of
15
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
* GNU General Public License for more details.
17
*
18
* You should have received a copy of the GNU General Public License
19
* along with this program. If not, see <http://www.gnu.org/licenses/>.
20
*/
21
#ifndef ESPRESSO_EXCLUSIONS_HPP
22
#define ESPRESSO_EXCLUSIONS_HPP
23
24
#include "
config/config.hpp
"
25
26
#include "
Particle.hpp
"
27
28
#include <algorithm>
29
30
#ifdef EXCLUSIONS
31
32
/** Determine if the non-bonded interactions between @p p1 and @p p2 should be
33
* calculated.
34
*/
35
inline
bool
do_nonbonded
(
Particle
const
&p1,
Particle
const
&p2) {
36
/* check for particle 2 in particle 1's exclusion list. The exclusion list is
37
* symmetric, so this is sufficient. */
38
return
std::none_of(p1.
exclusions
().begin(), p1.
exclusions
().end(),
39
[&p2](
int
id
) { return p2.id() == id; });
40
}
41
42
/** Remove exclusion from particle if possible */
43
void
delete_exclusion
(
Particle
&p,
int
p_id);
44
45
/** Insert an exclusion if not already set */
46
void
add_exclusion
(
Particle
&p,
int
p_id);
47
48
#endif
// EXCLUSIONS
49
#endif
// ESPRESSO_EXCLUSIONS_HPP
Particle.hpp
config.hpp
This file contains the defaults for ESPResSo.
delete_exclusion
void delete_exclusion(Particle &p, int p_id)
Remove exclusion from particle if possible.
Definition
exclusions.cpp:41
do_nonbonded
bool do_nonbonded(Particle const &p1, Particle const &p2)
Determine if the non-bonded interactions between p1 and p2 should be calculated.
Definition
exclusions.hpp:35
add_exclusion
void add_exclusion(Particle &p, int p_id)
Insert an exclusion if not already set.
Definition
exclusions.cpp:34
Particle
Struct holding all information for one particle.
Definition
Particle.hpp:395
Particle::exclusions
Utils::compact_vector< int > & exclusions()
Definition
Particle.hpp:574
src
core
exclusions.hpp
Generated on Thu Dec 19 2024 02:13:16 for ESPResSo by
1.9.8