OPAL (Object Oriented Parallel Accelerator Library)
2022.1
OPAL
src
ippl
src
Particle
PairBuilder
BasicPairBuilder.h
Go to the documentation of this file.
1
#ifndef BASIC_PAIR_BUILDER_H
2
#define BASIC_PAIR_BUILDER_H
3
4
#include <algorithm>
5
6
template
<
class
PBase>
7
class
BasicPairBuilder
8
{
9
public
:
10
enum
{
Dim
=
PBase::Dim
};
11
typedef
typename
PBase::Position_t
Position_t
;
12
13
BasicPairBuilder
(PBase &p) :
particles
(p) { }
14
15
template
<
class
Pred,
class
OP>
16
void
for_each
(
const
Pred& pred,
const
OP &op)
17
{
18
std::size_t size =
particles
.getLocalNum()+
particles
.getGhostNum();
19
for
(std::size_t i = 0;i<size;++i)
20
for
(std::size_t j = i+1;j<size;++j)
21
if
(pred(
particles
.R[i],
particles
.R[j]))
22
op(i, j,
particles
);
23
}
24
private
:
25
PBase &
particles
;
26
};
27
28
#endif
Dim
const unsigned Dim
Definition:
P3MPoissonSolver.h:26
Position_t
Position_t
Definition:
Types.h:43
BasicPairBuilder
Definition:
BasicPairBuilder.h:8
BasicPairBuilder::Dim
@ Dim
Definition:
BasicPairBuilder.h:10
BasicPairBuilder::Position_t
PBase::Position_t Position_t
Definition:
BasicPairBuilder.h:11
BasicPairBuilder::for_each
void for_each(const Pred &pred, const OP &op)
Definition:
BasicPairBuilder.h:16
BasicPairBuilder::particles
PBase & particles
Definition:
BasicPairBuilder.h:25
BasicPairBuilder::BasicPairBuilder
BasicPairBuilder(PBase &p)
Definition:
BasicPairBuilder.h:13
Generated on Thu Oct 20 2022 17:40:08 for OPAL (Object Oriented Parallel Accelerator Library) by
1.9.3