Chombo + EB  3.2
Public Member Functions | Protected Attributes | List of all members
CoDimCopyManager< T > Class Template Reference

Helper class to manage CoDim exchange operations. More...

#include <CoDimCopyManager.H>

Public Member Functions

 CoDimCopyManager ()
 null constructor More...
 
 CoDimCopyManager (const DisjointBoxLayout &a_grids, const BoxLayout &a_dest, const IntVect &a_ghostVect, bool a_exchange=false, int a_maxCoDim=SpaceDim)
 defining constructor – calls matching define function More...
 
 ~CoDimCopyManager ()
 destructor More...
 
void define (const DisjointBoxLayout &a_grids, const BoxLayout &a_dest, const IntVect &a_ghostVect, bool a_exchange=false, int a_maxCoDim=SpaceDim)
 define More...
 
void manageExchanges (LevelData< T > &a_data) const
 orchestrates CoDim exchanges More...
 
void manageCopies (const LevelData< T > &a_data, BoxLayoutData< T > &a_dest) const
 orchestrates CoDim copies More...
 
IntVect ghostVect () const
 returns ghostVect used to define this object (to check for compatibility) More...
 
const DisjointBoxLayout & srcGrids () const
 returns reference to src layout used to define this object More...
 
const BoxLayout & destGrids () const
 returns reference to dest layout used to define this object More...
 

Protected Attributes

Vector< Copier * > m_copierVect
 Vector of CoDimCopiers. More...
 
IntVect m_ghostVect
 keep ghostVect around just in case More...
 
DisjointBoxLayout m_srcGrids
 keep source and dest layouts around as well More...
 
BoxLayout m_destGrids
 

Detailed Description

template<class T>
class CoDimCopyManager< T >

Helper class to manage CoDim exchange operations.

CoDimCopiers are designed to be exercised in order, starting with CoDim=2 and increasing to SpaceDim. The CoDimCopyManager class manages these operations.

Constructor & Destructor Documentation

◆ CoDimCopyManager() [1/2]

template<class T >
CoDimCopyManager< T >::CoDimCopyManager ( )
inline

◆ CoDimCopyManager() [2/2]

template<class T >
CoDimCopyManager< T >::CoDimCopyManager ( const DisjointBoxLayout &  a_grids,
const BoxLayout &  a_dest,
const IntVect &  a_ghostVect,
bool  a_exchange = false,
int  a_maxCoDim = SpaceDim 
)

defining constructor – calls matching define function

by default, does all coDim copies from CoDim=2->SpaceDim. If you know you only need coDim ghost cells up to a Co-dimension less than SpaceDim, that can be specified, which will make things cheaper.

◆ ~CoDimCopyManager()

template<class T >
CoDimCopyManager< T >::~CoDimCopyManager ( )

destructor

clean up memory

Referenced by CoDimCopyManager< T >::CoDimCopyManager().

Member Function Documentation

◆ define()

template<class T >
void CoDimCopyManager< T >::define ( const DisjointBoxLayout &  a_grids,
const BoxLayout &  a_dest,
const IntVect &  a_ghostVect,
bool  a_exchange = false,
int  a_maxCoDim = SpaceDim 
)

◆ manageExchanges()

template<class T >
void CoDimCopyManager< T >::manageExchanges ( LevelData< T > &  a_data) const

orchestrates CoDim exchanges

References LevelData< T >::exchange().

Referenced by CoDimCopyManager< T >::CoDimCopyManager().

◆ manageCopies()

template<class T >
void CoDimCopyManager< T >::manageCopies ( const LevelData< T > &  a_data,
BoxLayoutData< T > &  a_dest 
) const

orchestrates CoDim copies

References LevelData< T >::copyTo().

Referenced by CoDimCopyManager< T >::CoDimCopyManager().

◆ ghostVect()

template<class T >
IntVect CoDimCopyManager< T >::ghostVect ( ) const
inline

returns ghostVect used to define this object (to check for compatibility)

References CoDimCopyManager< T >::m_ghostVect.

◆ srcGrids()

template<class T >
const DisjointBoxLayout& CoDimCopyManager< T >::srcGrids ( ) const
inline

returns reference to src layout used to define this object

References CoDimCopyManager< T >::m_srcGrids.

◆ destGrids()

template<class T >
const BoxLayout& CoDimCopyManager< T >::destGrids ( ) const
inline

returns reference to dest layout used to define this object

References CoDimCopyManager< T >::m_destGrids.

Member Data Documentation

◆ m_copierVect

template<class T >
Vector<Copier*> CoDimCopyManager< T >::m_copierVect
protected

Vector of CoDimCopiers.

◆ m_ghostVect

template<class T >
IntVect CoDimCopyManager< T >::m_ghostVect
protected

keep ghostVect around just in case

Referenced by CoDimCopyManager< T >::ghostVect().

◆ m_srcGrids

template<class T >
DisjointBoxLayout CoDimCopyManager< T >::m_srcGrids
protected

keep source and dest layouts around as well

Referenced by CoDimCopyManager< T >::srcGrids().

◆ m_destGrids

template<class T >
BoxLayout CoDimCopyManager< T >::m_destGrids
protected

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