OPAL (Object Oriented Parallel Accelerator Library)
2.2.0
OPAL
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
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
ParticleSpatialLayout
Definition:
BoxParticleCachingPolicy.h:19
ParticleBalancer.hpp
BinaryRepartition
void BinaryRepartition(FieldLayout< Dim > &layout, BareField< double, Dim > &weights)
Definition:
BinaryBalancer.h:68
IpplParticleBase
Definition:
MakeDataSource.h:26
ParticleUniformLayout
Definition:
ParticleBalancer.h:30
Generated on Sat Jan 4 2020 14:47:37 for OPAL (Object Oriented Parallel Accelerator Library) by
1.8.5