OPALX (Object Oriented Parallel Accelerator Library for Exascal) master (dc2a29eed580)
OPALX
Loading...
Searching...
No Matches
LoadBalancer< T, Dim > Class Template Reference

#include <LoadBalancer.hpp>

Collaboration diagram for LoadBalancer< T, Dim >:
Collaboration graph

Public Member Functions

 LoadBalancer (double lbs, std::shared_ptr< FieldContainer< T, Dim > > &fc, std::shared_ptr< ParticleContainer< T, Dim > > &pc, std::shared_ptr< FieldSolver_t > &fs)
 
 ~LoadBalancer ()
 
double getLoadBalanceThreshold () const
 
void setLoadBalanceThreshold (double threshold)
 
Field_t< Dim > * getRho () const
 
void setRho (Field_t< Dim > *rho)
 
VField_t< T, Dim > * getE () const
 
void setE (VField_t< T, Dim > *E)
 
Field< T, Dim > * getPhi ()
 
void setPhi (Field< T, Dim > *phi)
 
std::shared_ptr< ParticleContainer< T, Dim > > getParticleContainer () const
 
void setParticleContainer (std::shared_ptr< ParticleContainer< T, Dim > > pc)
 
std::shared_ptr< FieldSolver_tgetFieldSolver () const
 
void setFieldSolver (std::shared_ptr< FieldSolver_t > fs)
 
void updateLayout (ippl::FieldLayout< Dim > *fl, ippl::UniformCartesian< T, Dim > *mesh, bool &isFirstRepartition)
 
void initializeORB (ippl::FieldLayout< Dim > *fl, ippl::UniformCartesian< T, Dim > *mesh)
 
void repartition (ippl::FieldLayout< Dim > *fl, ippl::UniformCartesian< T, Dim > *mesh, bool &isFirstRepartition)
 
bool balance (size_type totalP)
 

Private Types

using Base = ippl::ParticleBase< ippl::ParticleSpatialLayout< T, Dim >, Kokkos::DefaultExecutionSpace::memory_space >
 
using FieldSolver_t = ippl::FieldSolverBase< T, Dim >
 

Private Attributes

double loadbalancethreshold_m
 
Field_t< Dim > * rho_m
 
VField_t< T, Dim > * E_m
 
Field< T, Dim > * phi_m
 
std::shared_ptr< ParticleContainer< T, Dim > > pc_m
 
std::shared_ptr< FieldSolver_tfs_m
 
unsigned int loadbalancefreq_m
 
ORB< T, Dimorb
 

Detailed Description

template<typename T, unsigned Dim>
class LoadBalancer< T, Dim >

Definition at line 12 of file LoadBalancer.hpp.

Member Typedef Documentation

◆ Base

template<typename T , unsigned Dim>
using LoadBalancer< T, Dim >::Base = ippl::ParticleBase< ippl::ParticleSpatialLayout<T, Dim>, Kokkos::DefaultExecutionSpace::memory_space>
private

Definition at line 13 of file LoadBalancer.hpp.

◆ FieldSolver_t

template<typename T , unsigned Dim>
using LoadBalancer< T, Dim >::FieldSolver_t = ippl::FieldSolverBase<T, Dim>
private

Definition at line 15 of file LoadBalancer.hpp.

Constructor & Destructor Documentation

◆ LoadBalancer()

template<typename T , unsigned Dim>
LoadBalancer< T, Dim >::LoadBalancer ( double  lbs,
std::shared_ptr< FieldContainer< T, Dim > > &  fc,
std::shared_ptr< ParticleContainer< T, Dim > > &  pc,
std::shared_ptr< FieldSolver_t > &  fs 
)
inline

Definition at line 28 of file LoadBalancer.hpp.

◆ ~LoadBalancer()

template<typename T , unsigned Dim>
LoadBalancer< T, Dim >::~LoadBalancer ( )
inline

Definition at line 38 of file LoadBalancer.hpp.

Member Function Documentation

◆ balance()

template<typename T , unsigned Dim>
bool LoadBalancer< T, Dim >::balance ( size_type  totalP)
inline

◆ getE()

template<typename T , unsigned Dim>
VField_t< T, Dim > * LoadBalancer< T, Dim >::getE ( ) const
inline

Definition at line 46 of file LoadBalancer.hpp.

References LoadBalancer< T, Dim >::E_m.

◆ getFieldSolver()

template<typename T , unsigned Dim>
std::shared_ptr< FieldSolver_t > LoadBalancer< T, Dim >::getFieldSolver ( ) const
inline

Definition at line 55 of file LoadBalancer.hpp.

References LoadBalancer< T, Dim >::fs_m.

◆ getLoadBalanceThreshold()

template<typename T , unsigned Dim>
double LoadBalancer< T, Dim >::getLoadBalanceThreshold ( ) const
inline

Definition at line 40 of file LoadBalancer.hpp.

References LoadBalancer< T, Dim >::loadbalancethreshold_m.

◆ getParticleContainer()

template<typename T , unsigned Dim>
std::shared_ptr< ParticleContainer< T, Dim > > LoadBalancer< T, Dim >::getParticleContainer ( ) const
inline

Definition at line 52 of file LoadBalancer.hpp.

References LoadBalancer< T, Dim >::pc_m.

◆ getPhi()

template<typename T , unsigned Dim>
Field< T, Dim > * LoadBalancer< T, Dim >::getPhi ( )
inline

Definition at line 49 of file LoadBalancer.hpp.

References LoadBalancer< T, Dim >::phi_m.

◆ getRho()

template<typename T , unsigned Dim>
Field_t< Dim > * LoadBalancer< T, Dim >::getRho ( ) const
inline

Definition at line 43 of file LoadBalancer.hpp.

References LoadBalancer< T, Dim >::rho_m.

◆ initializeORB()

template<typename T , unsigned Dim>
void LoadBalancer< T, Dim >::initializeORB ( ippl::FieldLayout< Dim > *  fl,
ippl::UniformCartesian< T, Dim > *  mesh 
)
inline

Definition at line 85 of file LoadBalancer.hpp.

References LoadBalancer< T, Dim >::orb, and LoadBalancer< T, Dim >::rho_m.

◆ repartition()

template<typename T , unsigned Dim>
void LoadBalancer< T, Dim >::repartition ( ippl::FieldLayout< Dim > *  fl,
ippl::UniformCartesian< T, Dim > *  mesh,
bool &  isFirstRepartition 
)
inline

◆ setE()

template<typename T , unsigned Dim>
void LoadBalancer< T, Dim >::setE ( VField_t< T, Dim > *  E)
inline

Definition at line 47 of file LoadBalancer.hpp.

References LoadBalancer< T, Dim >::E_m.

◆ setFieldSolver()

template<typename T , unsigned Dim>
void LoadBalancer< T, Dim >::setFieldSolver ( std::shared_ptr< FieldSolver_t fs)
inline

Definition at line 56 of file LoadBalancer.hpp.

References LoadBalancer< T, Dim >::fs_m.

◆ setLoadBalanceThreshold()

template<typename T , unsigned Dim>
void LoadBalancer< T, Dim >::setLoadBalanceThreshold ( double  threshold)
inline

Definition at line 41 of file LoadBalancer.hpp.

References LoadBalancer< T, Dim >::loadbalancethreshold_m.

◆ setParticleContainer()

template<typename T , unsigned Dim>
void LoadBalancer< T, Dim >::setParticleContainer ( std::shared_ptr< ParticleContainer< T, Dim > >  pc)
inline

Definition at line 53 of file LoadBalancer.hpp.

References LoadBalancer< T, Dim >::pc_m.

◆ setPhi()

template<typename T , unsigned Dim>
void LoadBalancer< T, Dim >::setPhi ( Field< T, Dim > *  phi)
inline

Definition at line 50 of file LoadBalancer.hpp.

References LoadBalancer< T, Dim >::phi_m.

◆ setRho()

template<typename T , unsigned Dim>
void LoadBalancer< T, Dim >::setRho ( Field_t< Dim > *  rho)
inline

Definition at line 44 of file LoadBalancer.hpp.

References LoadBalancer< T, Dim >::rho_m.

◆ updateLayout()

template<typename T , unsigned Dim>
void LoadBalancer< T, Dim >::updateLayout ( ippl::FieldLayout< Dim > *  fl,
ippl::UniformCartesian< T, Dim > *  mesh,
bool &  isFirstRepartition 
)
inline

Member Data Documentation

◆ E_m

template<typename T , unsigned Dim>
VField_t<T, Dim>* LoadBalancer< T, Dim >::E_m
private

Definition at line 20 of file LoadBalancer.hpp.

Referenced by LoadBalancer< T, Dim >::getE(), and LoadBalancer< T, Dim >::setE().

◆ fs_m

◆ loadbalancefreq_m

template<typename T , unsigned Dim>
unsigned int LoadBalancer< T, Dim >::loadbalancefreq_m
private

Definition at line 24 of file LoadBalancer.hpp.

◆ loadbalancethreshold_m

template<typename T , unsigned Dim>
double LoadBalancer< T, Dim >::loadbalancethreshold_m
private

◆ orb

template<typename T , unsigned Dim>
ORB<T, Dim> LoadBalancer< T, Dim >::orb
private

◆ pc_m

◆ phi_m

template<typename T , unsigned Dim>
Field<T, Dim>* LoadBalancer< T, Dim >::phi_m
private

◆ rho_m


The documentation for this class was generated from the following file: