OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
LField< T, Dim > Class Template Reference

#include <LField.h>

Public Types

typedef CompressedBrickIterator< T, Dimiterator
 
typedef NDIndex< DimDomain_t
 
typedef std::vector< LField< T, Dim > * >::iterator OverlapIterator
 

Public Member Functions

 LField (const NDIndex< Dim > &owned, const NDIndex< Dim > &allocated, int vnode=-1)
 
 LField (const NDIndex< Dim > &owned, const NDIndex< Dim > &allocated, int vnode, bool p)
 
 LField (const LField< T, Dim > &)
 
 ~LField ()
 
int size (unsigned d) const
 
const NDIndex< Dim > & getAllocated () const
 
const NDIndex< Dim > & getOwned () const
 
T * getP ()
 
int getVnode () const
 
const iteratorbegin () const
 
const iteratorend () const
 
iterator begin (const NDIndex< Dim > &domain)
 
iterator begin (const NDIndex< Dim > &domain, T &)
 
bool IsCompressed () const
 
bool TryCompress (bool baseOnPhysicalCells=false)
 
bool CanCompress () const
 
bool CanCompress (T x) const
 
void Compress ()
 
void Compress (const T &val)
 
void Uncompress (bool fill_domain=true)
 
T & getCompressedData ()
 
const T & getCompressedData () const
 
bool OverlapCacheInitialized ()
 
void AddToOverlapCache (LField< T, Dim > *newCacheItem)
 
OverlapIterator BeginOverlap ()
 
OverlapIterator EndOverlap ()
 
void swapData (LField< T, Dim > &a)
 
void write (std::ostream &) const
 

Private Member Functions

bool CanCompressBasedOnPhysicalCells () const
 
void ReallyUncompress (bool fill_domain)
 
void CompressBasedOnPhysicalCells ()
 
void allocateStorage (int newsize)
 
void deallocateStorage ()
 
 LField ()
 
const LField< T, Dim > & operator= (const LField< T, Dim > &)
 

Private Attributes

int vnode_m
 
T * P
 
bool Pinned
 
NDIndex< DimOwned
 
NDIndex< DimAllocated
 
CompressedData
 
iterator Begin
 
iterator End
 
std::vector< LField< T, Dim > * > overlap
 
bool overlapCacheInited
 
int allocCompressIndex
 
int ownedCompressIndex
 
long offsetBlocks
 

Detailed Description

template<class T, unsigned Dim>
class LField< T, Dim >

Definition at line 57 of file LField.h.

Member Typedef Documentation

◆ Domain_t

template<class T , unsigned Dim>
typedef NDIndex<Dim> LField< T, Dim >::Domain_t

Definition at line 65 of file LField.h.

◆ iterator

template<class T , unsigned Dim>
typedef CompressedBrickIterator<T,Dim> LField< T, Dim >::iterator

Definition at line 62 of file LField.h.

◆ OverlapIterator

template<class T , unsigned Dim>
typedef std::vector<LField<T,Dim>*>::iterator LField< T, Dim >::OverlapIterator

Definition at line 196 of file LField.h.

Constructor & Destructor Documentation

◆ LField() [1/4]

template<class T , unsigned Dim>
LField< T, Dim >::LField ( const NDIndex< Dim > &  owned,
const NDIndex< Dim > &  allocated,
int  vnode = -1 
)

Definition at line 85 of file LField.hpp.

◆ LField() [2/4]

template<class T , unsigned Dim>
LField< T, Dim >::LField ( const NDIndex< Dim > &  owned,
const NDIndex< Dim > &  allocated,
int  vnode,
bool  p 
)

Definition at line 115 of file LField.hpp.

References LFieldInitializer< T >::apply(), LField< T, Dim >::Begin, IpplInfo::noFieldCompression, and LField< T, Dim >::ReallyUncompress().

Here is the call graph for this function:

◆ LField() [3/4]

template<class T , unsigned Dim>
LField< T, Dim >::LField ( const LField< T, Dim > &  lf)

◆ ~LField()

template<class T , unsigned Dim>
LField< T, Dim >::~LField ( )

Definition at line 202 of file LField.hpp.

◆ LField() [4/4]

template<class T , unsigned Dim>
LField< T, Dim >::LField ( )
private

Member Function Documentation

◆ AddToOverlapCache()

template<class T , unsigned Dim>
void LField< T, Dim >::AddToOverlapCache ( LField< T, Dim > *  newCacheItem)
inline

◆ allocateStorage()

template<class T , unsigned Dim>
void LField< T, Dim >::allocateStorage ( int  newsize)
private

◆ begin() [1/3]

template<class T , unsigned Dim>
const iterator & LField< T, Dim >::begin ( ) const
inline

◆ begin() [2/3]

template<class T , unsigned Dim>
LField< T, Dim >::iterator LField< T, Dim >::begin ( const NDIndex< Dim > &  domain)

Definition at line 604 of file LField.hpp.

◆ begin() [3/3]

template<class T , unsigned Dim>
LField< T, Dim >::iterator LField< T, Dim >::begin ( const NDIndex< Dim > &  domain,
T &  compstore 
)

Definition at line 623 of file LField.hpp.

◆ BeginOverlap()

template<class T , unsigned Dim>
OverlapIterator LField< T, Dim >::BeginOverlap ( )
inline

Definition at line 198 of file LField.h.

References LField< T, Dim >::overlap.

Referenced by BareField< T, Dim >::accumGuardCells().

◆ CanCompress() [1/2]

template<class T , unsigned Dim>
bool LField< T, Dim >::CanCompress ( ) const
inline

Definition at line 146 of file LField.h.

References LField< T, Dim >::Begin, LField< T, Dim >::CanCompress(), and LField< T, Dim >::IsCompressed().

Referenced by LField< T, Dim >::CanCompress().

Here is the call graph for this function:

◆ CanCompress() [2/2]

template<class T , unsigned Dim>
bool LField< T, Dim >::CanCompress ( x) const

Definition at line 259 of file LField.hpp.

References ADDIPPLSTAT, endl(), IpplInfo::extraCompressChecks, LFIELDMSG, IpplInfo::noFieldCompression, PAssert, PAssert_GE, PAssert_GT, and PAssert_LT.

Here is the call graph for this function:

◆ CanCompressBasedOnPhysicalCells()

template<class T , unsigned Dim>
bool LField< T, Dim >::CanCompressBasedOnPhysicalCells ( ) const
private

Definition at line 392 of file LField.hpp.

References ADDIPPLSTAT, begin(), endl(), IpplInfo::extraCompressChecks, INFORM_ALL_NODES, LFIELDMSG, IpplInfo::noFieldCompression, PAssert_LT, and BrickCounter< Dim >::size().

Here is the call graph for this function:

◆ Compress() [1/2]

template<class T , unsigned Dim>
void LField< T, Dim >::Compress ( )
inline

◆ Compress() [2/2]

template<class T , unsigned Dim>
void LField< T, Dim >::Compress ( const T &  val)

Definition at line 480 of file LField.hpp.

References begin(), end(), endl(), INFORM_ALL_NODES, LFIELDMSG, and IpplInfo::noFieldCompression.

Here is the call graph for this function:

◆ CompressBasedOnPhysicalCells()

template<class T , unsigned Dim>
void LField< T, Dim >::CompressBasedOnPhysicalCells ( )
private

Definition at line 530 of file LField.hpp.

References begin(), and IpplInfo::noFieldCompression.

Here is the call graph for this function:

◆ deallocateStorage()

template<class T , unsigned Dim>
void LField< T, Dim >::deallocateStorage ( )
private

Definition at line 726 of file LField.hpp.

References IPPL_CACHE_LINE_SIZE, and IpplInfo::offsetStorage.

◆ end()

template<class T , unsigned Dim>
const iterator & LField< T, Dim >::end ( ) const
inline

◆ EndOverlap()

template<class T , unsigned Dim>
OverlapIterator LField< T, Dim >::EndOverlap ( )
inline

Definition at line 199 of file LField.h.

References LField< T, Dim >::overlap.

Referenced by BareField< T, Dim >::accumGuardCells().

◆ getAllocated()

template<class T , unsigned Dim>
const NDIndex< Dim > & LField< T, Dim >::getAllocated ( ) const
inline

◆ getCompressedData() [1/2]

template<class T , unsigned Dim>
T & LField< T, Dim >::getCompressedData ( )
inline

◆ getCompressedData() [2/2]

template<class T , unsigned Dim>
const T & LField< T, Dim >::getCompressedData ( ) const
inline

Definition at line 180 of file LField.h.

References LField< T, Dim >::CompressedData.

◆ getOwned()

template<class T , unsigned Dim>
const NDIndex< Dim > & LField< T, Dim >::getOwned ( ) const
inline

◆ getP()

template<class T , unsigned Dim>
T * LField< T, Dim >::getP ( )
inline

◆ getVnode()

template<class T , unsigned Dim>
int LField< T, Dim >::getVnode ( ) const
inline

Definition at line 103 of file LField.h.

References LField< T, Dim >::vnode_m.

◆ IsCompressed()

template<class T , unsigned Dim>
bool LField< T, Dim >::IsCompressed ( ) const
inline

◆ operator=()

template<class T , unsigned Dim>
const LField< T, Dim > & LField< T, Dim >::operator= ( const LField< T, Dim > &  )
private

◆ OverlapCacheInitialized()

template<class T , unsigned Dim>
bool LField< T, Dim >::OverlapCacheInitialized ( )
inline

Definition at line 186 of file LField.h.

References LField< T, Dim >::overlapCacheInited.

Referenced by BareField< T, Dim >::accumGuardCells().

◆ ReallyUncompress()

template<class T , unsigned Dim>
void LField< T, Dim >::ReallyUncompress ( bool  fill_domain)
private

Definition at line 561 of file LField.hpp.

References endl(), INFORM_ALL_NODES, LFIELDMSG, and PAssert_NE.

Referenced by LField< T, Dim >::LField(), and LField< T, Dim >::Uncompress().

Here is the call graph for this function:

◆ size()

template<class T , unsigned Dim>
int LField< T, Dim >::size ( unsigned  d) const
inline

Definition at line 97 of file LField.h.

References LField< T, Dim >::Owned.

Referenced by FieldDebugWriteb(), and FFT< CCTransform, Dim, T >::transform().

◆ swapData()

template<class T , unsigned Dim>
void LField< T, Dim >::swapData ( LField< T, Dim > &  a)

Definition at line 640 of file LField.hpp.

References a, and PAssert.

◆ TryCompress()

template<class T , unsigned Dim>
bool LField< T, Dim >::TryCompress ( bool  baseOnPhysicalCells = false)

Definition at line 217 of file LField.hpp.

References endl(), INFORM_ALL_NODES, LFIELDMSG, and IpplInfo::noFieldCompression.

Referenced by assign(), assign(), assign(), and assign().

Here is the call graph for this function:

◆ Uncompress()

template<class T , unsigned Dim>
void LField< T, Dim >::Uncompress ( bool  fill_domain = true)
inline

◆ write()

template<class T , unsigned Dim>
void LField< T, Dim >::write ( std::ostream &  out) const

Definition at line 749 of file LField.hpp.

References begin(), and end().

Here is the call graph for this function:

Member Data Documentation

◆ Allocated

template<class T , unsigned Dim>
NDIndex<Dim> LField< T, Dim >::Allocated
private

Definition at line 238 of file LField.h.

Referenced by LField< T, Dim >::getAllocated(), and LField< T, Dim >::LField().

◆ allocCompressIndex

template<class T , unsigned Dim>
int LField< T, Dim >::allocCompressIndex
mutableprivate

Definition at line 263 of file LField.h.

◆ Begin

template<class T , unsigned Dim>
iterator LField< T, Dim >::Begin
private

◆ CompressedData

template<class T , unsigned Dim>
T LField< T, Dim >::CompressedData
private

◆ End

template<class T , unsigned Dim>
iterator LField< T, Dim >::End
private

Definition at line 250 of file LField.h.

Referenced by LField< T, Dim >::end().

◆ offsetBlocks

template<class T , unsigned Dim>
long LField< T, Dim >::offsetBlocks
private

Definition at line 269 of file LField.h.

◆ overlap

template<class T , unsigned Dim>
std::vector< LField<T, Dim> * > LField< T, Dim >::overlap
private

◆ overlapCacheInited

template<class T , unsigned Dim>
bool LField< T, Dim >::overlapCacheInited
private

◆ Owned

template<class T , unsigned Dim>
NDIndex<Dim> LField< T, Dim >::Owned
private

◆ ownedCompressIndex

template<class T , unsigned Dim>
int LField< T, Dim >::ownedCompressIndex
mutableprivate

Definition at line 264 of file LField.h.

◆ P

template<class T , unsigned Dim>
T* LField< T, Dim >::P
private

◆ Pinned

template<class T , unsigned Dim>
bool LField< T, Dim >::Pinned
private

Definition at line 230 of file LField.h.

◆ vnode_m

template<class T , unsigned Dim>
int LField< T, Dim >::vnode_m
private

Definition at line 222 of file LField.h.

Referenced by LField< T, Dim >::getVnode().


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