OPAL (Object Oriented Parallel Accelerator Library)
2021.1.99
OPAL
src
ippl
src
Particle
ParticleBalancer.h
Go to the documentation of this file.
1
// -*- C++ -*-
2
/***************************************************************************
3
*
4
* The IPPL Framework
5
*
6
*
7
* Visit http://people.web.psi.ch/adelmann/ for more details
8
*
9
***************************************************************************/
10
11
#ifndef PARTICLE_BALANCER_H
12
#define PARTICLE_BALANCER_H
13
14
/***************************************************************************
15
*
16
* ParticleBalancer - functions for performing load balancing for
17
* particles using a particle density field.
18
*
19
* Load balancing for particles is performed by constructing a BareField
20
* object over the domain occupied by the particles, and filling this field
21
* with the density of the particles. The Field is then repartitioned by
22
* using one of the Field repartitioning algorithms, and the resulting
23
* Field layout is given to the Particle object, which then redistributes
24
* the particles.
25
*
26
***************************************************************************/
27
28
// forward declarations
29
template
<
class
T,
unsigned
Dim,
class
Mesh,
class
CachingPolicy>
class
ParticleSpatialLayout
;
30
template
<
class
T,
unsigned
Dim>
class
ParticleUniformLayout
;
31
template
<
class
PLayout>
class
IpplParticleBase
;
32
33
34
// calculate a new RegionLayout for a given IpplParticleBase, and distribute the
35
// new RegionLayout to all the nodes. This uses a Field BinaryBalancer.
36
template
<
class
T,
unsigned
Dim,
class
Mesh,
class
CachingPolicy>
37
bool
38
BinaryRepartition
(
IpplParticleBase
<
ParticleSpatialLayout<T,Dim,Mesh,CachingPolicy>
>&,
double
= 0.0);
39
40
// the same, but taking a uniform layout (this will not actually do anything)
41
template
<
class
T,
unsigned
Dim>
42
bool
43
BinaryRepartition
(
IpplParticleBase
<
ParticleUniformLayout<T,Dim>
>&,
double
= 0.0);
44
45
#include "
Particle/ParticleBalancer.hpp
"
46
47
#endif
// PARTICLE_BALANCER_H
48
49
/***************************************************************************
50
* $RCSfile: ParticleBalancer.h,v $ $Author: adelmann $
51
* $Revision: 1.1.1.1 $ $Date: 2003/01/23 07:40:28 $
52
* IPPL_VERSION_ID: $Id: ParticleBalancer.h,v 1.1.1.1 2003/01/23 07:40:28 adelmann Exp $
53
***************************************************************************/
54
55
BinaryRepartition
bool BinaryRepartition(IpplParticleBase< ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy > > &, double=0.0)
Definition:
ParticleBalancer.hpp:46
ParticleBalancer.hpp
IpplParticleBase
Definition:
IpplParticleBase.h:126
ParticleSpatialLayout
Definition:
ParticleSpatialLayout.h:62
ParticleUniformLayout
Definition:
ParticleUniformLayout.h:39
Generated on Wed Aug 25 2021 16:40:59 for OPAL (Object Oriented Parallel Accelerator Library) by
1.9.1