OPAL (Object Oriented Parallel Accelerator Library)  2021.1.99
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
 
iterator Begin
 
iterator End
 
CompressedData
 
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 114 of file LField.hpp.

◆ LField() [3/4]

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

Definition at line 148 of file LField.hpp.

◆ ~LField()

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

Definition at line 199 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 601 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 620 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, and LField< T, Dim >::IsCompressed().

Here is the call graph for this function:

◆ CanCompress() [2/2]

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

◆ CanCompressBasedOnPhysicalCells()

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

◆ Compress() [1/2]

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

Definition at line 161 of file LField.h.

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

Referenced by assign(), IndexedLocalAssign(), IndexedReceive(), DiscField< Dim >::read(), BareField< T, Dim >::setGuardCells(), and TryCompressLHS().

Here is the call graph for this function:

◆ Compress() [2/2]

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

Definition at line 477 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 527 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

◆ 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 558 of file LField.hpp.

References endl(), INFORM_ALL_NODES, LFIELDMSG, Hypervolume::n, PAssert_NE, and Attrib::Legacy::Distribution::T.

Referenced by 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 637 of file LField.hpp.

References a, PAssert, and Attrib::Legacy::Distribution::T.

◆ TryCompress()

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

Definition at line 214 of file LField.hpp.

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

Referenced by 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 746 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().

◆ 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

Definition at line 242 of file LField.h.

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

◆ CompressedData

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

Definition at line 250 of file LField.h.

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

◆ End

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

Definition at line 246 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

Definition at line 234 of file LField.h.

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

◆ 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: