Loading [MathJax]/extensions/TeX/AMSmath.js
ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
Toggle main menu visibility
Main Page
Related Pages
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
Functions
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
Variables
_
a
b
c
f
g
i
k
m
n
o
p
r
s
w
Typedefs
a
b
c
d
e
f
g
h
i
l
m
o
p
q
t
v
Enumerations
Enumerator
d
h
m
n
r
s
t
Concepts
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
z
~
Variables
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
_
a
b
c
d
e
f
i
j
k
l
m
o
p
q
r
s
t
u
v
Enumerations
Enumerator
a
i
l
n
o
p
s
u
v
Related Symbols
Files
File List
File Members
All
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
Functions
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
v
w
Variables
a
b
c
g
h
i
m
p
s
t
u
v
w
Typedefs
Enumerations
Enumerator
Macros
c
d
f
g
h
i
k
m
n
o
p
q
r
s
t
u
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
Concepts
Loading...
Searching...
No Matches
fetch_particles.hpp
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2010-2022 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
#ifndef FETCH_PARTICLES_HPP
21
#define FETCH_PARTICLES_HPP
22
23
#include "
PidObservable.hpp
"
24
#include "
cell_system/CellStructure.hpp
"
25
#include "system/System.hpp"
26
27
#include <algorithm>
28
#include <iterator>
29
#include <set>
30
#include <vector>
31
32
/** Fetch a group of particles.
33
*
34
* @param ids particle identifiers
35
* @return array of particle copies, with positions in the current box.
36
*/
37
inline
auto
fetch_particles
(std::vector<int>
const
&ids) {
38
auto
const
&
system
=
System::get_system
();
39
auto
const
ids_set
= std::set<int>{ids.begin(), ids.end()};
40
auto
const
local_particles =
system
.cell_structure->local_particles();
41
Observables::ParticleReferenceRange
local_particle_refs
;
42
std::copy_if(local_particles.begin(), local_particles.end(),
43
std::back_inserter(
local_particle_refs
),
44
[&
ids_set
](
auto
const
&p) { return ids_set.contains(p.id()); });
45
return
local_particle_refs
;
46
}
37
inline
auto
fetch_particles
(std::vector<int>
const
&ids) {
…
}
47
#endif
CellStructure.hpp
stream
cudaStream_t stream[1]
CUDA streams for parallel computing on CPU and GPU.
Definition
common_cuda.cu:34
fetch_particles
auto fetch_particles(std::vector< int > const &ids)
Fetch a group of particles.
Definition
fetch_particles.hpp:37
Observables::ParticleReferenceRange
std::vector< std::reference_wrapper< Particle const > > ParticleReferenceRange
Definition
core/observables/PidObservable.hpp:47
System::get_system
System & get_system()
Definition
core/system/System.cpp:126
PidObservable.hpp
src
core
observables
fetch_particles.hpp
Generated on Sat Apr 19 2025 01:15:00 for ESPResSo by
1.9.8