OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
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
39 
40 // the same, but taking a uniform layout (this will not actually do anything)
41 template<class T, unsigned Dim>
42 bool
44 
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 
void BinaryRepartition(FieldLayout< Dim > &layout, BareField< double, Dim > &weights)