OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
LField< T, Dim > Class Template Reference

#include <LField.h>

Inheritance diagram for LField< T, Dim >:
Collaboration diagram for LField< T, Dim >:

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.

References Allocated, allocCompressIndex, LFieldInitializer< T >::apply(), Begin, CompressedData, Dim, End, IPPL_OFFSET_BLOCKS, LField(), IpplInfo::noFieldCompression, offsetBlocks, overlapCacheInited, Owned, ownedCompressIndex, P, Pinned, ReallyUncompress(), and vnode_m.

Referenced by CanCompressBasedOnPhysicalCells(), LField(), LField(), and swapData().

Here is the call graph for this function:

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

References Allocated, allocCompressIndex, LFieldInitializer< T >::apply(), Begin, CompressedData, End, IPPL_OFFSET_BLOCKS, IpplInfo::noFieldCompression, offsetBlocks, overlapCacheInited, Owned, ownedCompressIndex, P, Pinned, ReallyUncompress(), and vnode_m.

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)

Definition at line 148 of file LField.hpp.

References Allocated, allocCompressIndex, Begin, CompressedData, End, IPPL_OFFSET_BLOCKS, IsCompressed(), LField(), offsetBlocks, overlapCacheInited, Owned, ownedCompressIndex, P, Pinned, and vnode_m.

Here is the call graph for this function:

◆ ~LField()

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

Definition at line 199 of file LField.hpp.

References deallocateStorage().

Here is the call graph for this function:

◆ 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

Definition at line 188 of file LField.h.

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

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

References Allocated, CompressedData, and P.

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

References Allocated, CompressedData, IsCompressed(), and P.

Here is the call graph for this function:

◆ BeginOverlap()

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

Definition at line 198 of file LField.h.

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.

Referenced by LField< Complex_t, Dim >::CanCompress(), and TryCompress().

◆ CanCompress() [2/2]

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

Definition at line 256 of file LField.hpp.

References ADDIPPLSTAT, allocCompressIndex, endl(), IpplInfo::extraCompressChecks, getAllocated(), IsCompressed(), LFIELDMSG, IpplInfo::noFieldCompression, P, 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 389 of file LField.hpp.

References ADDIPPLSTAT, begin(), endl(), IpplInfo::extraCompressChecks, getAllocated(), getOwned(), INFORM_ALL_NODES, IsCompressed(), LField(), LFIELDMSG, IpplInfo::noFieldCompression, ownedCompressIndex, P, PAssert_LT, and size().

Referenced by TryCompress().

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

References Begin, begin(), CompressedData, deallocateStorage(), end(), endl(), getOwned(), INFORM_ALL_NODES, IsCompressed(), 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, begin(), CompressedData, deallocateStorage(), getOwned(), IsCompressed(), and IpplInfo::noFieldCompression.

Referenced by TryCompress().

Here is the call graph for this function:

◆ deallocateStorage()

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

◆ end()

◆ EndOverlap()

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

Definition at line 199 of file LField.h.

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

◆ getAllocated()

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

◆ getOwned()

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

Definition at line 99 of file LField.h.

Referenced by BareField< T, Dim >::accumGuardCells(), PatchBC< T, D, M, C >::apply(), assign(), assign(), assign(), assign(), assign(), CanCompressBasedOnPhysicalCells(), ComponentFunctionFaceBCApply(), ComponentFunctionFaceBCApply(), ComponentFunctionFaceBCApply(), ComponentFunctionFaceBCApply(), Compress(), CompressBasedOnPhysicalCells(), BareField< T, Dim >::CompressedFraction(), ExtrapolateAndZeroFaceBCApply(), ExtrapolateAndZeroFaceBCApply(), ExtrapolateAndZeroFaceBCApply(), ExtrapolateAndZeroFaceBCApply(), ExtrapolateFaceBCApply(), ExtrapolateFaceBCApply(), ExtrapolateFaceBCApply(), ExtrapolateFaceBCApply(), FieldDebugWriteb(), FunctionFaceBCApply(), FunctionFaceBCApply(), FunctionFaceBCApply(), FunctionFaceBCApply(), FieldDataSource< T, Dim, M, C >::gather_data(), Interpolator::getFieldIter(), IndexedLocalAssign(), IndexedReceive(), IndexedSend(), InterpolationFaceBCApply(), PeriodicFaceBCApply(), PeriodicFaceBCApply(), PeriodicFaceBCApply(), PeriodicFaceBCApply(), FieldDebugPrint< T, Dim >::print(), FieldPrint< T, Dim >::print(), DiscField< Dim >::read(), ReallyUncompress(), BareField< T, Dim >::setGuardCells(), SubFieldIter< T, Dim, SOffset< Dim > >::setLFieldData(), Cartesian< Dim, MFLOAT >::storeSpacingFields(), Cartesian< Dim, MFLOAT >::storeSpacingFields(), UniformCartesian< Dim, MFLOAT >::storeSpacingFields(), UniformCartesian< Dim, MFLOAT >::storeSpacingFields(), TryCompress(), TryCompressLHS(), BareField< T, Dim >::write(), and DiscField< Dim >::write().

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

◆ IsCompressed()

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

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 Allocated, allocateStorage(), Begin, CompressedData, endl(), getOwned(), INFORM_ALL_NODES, LFIELDMSG, Owned, P, and PAssert_NE.

Referenced by LField(), LField(), and LField< Complex_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

◆ 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, Allocated, allocCompressIndex, Begin, CompressedData, LField(), offsetBlocks, Owned, ownedCompressIndex, P, and PAssert.

Here is the call graph for this function:

◆ TryCompress()

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

Definition at line 214 of file LField.hpp.

References CanCompress(), CanCompressBasedOnPhysicalCells(), Compress(), CompressBasedOnPhysicalCells(), endl(), getOwned(), INFORM_ALL_NODES, IsCompressed(), LFIELDMSG, and IpplInfo::noFieldCompression.

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

Here is the call graph for this function:

◆ Uncompress()

◆ 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 begin(), begin(), LField(), LField(), LField(), ReallyUncompress(), and swapData().

◆ allocCompressIndex

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

Definition at line 263 of file LField.h.

Referenced by CanCompress(), LField(), LField(), LField(), and swapData().

◆ 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 246 of file LField.h.

Referenced by LField(), LField(), and LField().

◆ offsetBlocks

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

Definition at line 269 of file LField.h.

Referenced by allocateStorage(), deallocateStorage(), LField(), LField(), LField(), and swapData().

◆ overlap

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

Definition at line 254 of file LField.h.

◆ overlapCacheInited

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

Definition at line 255 of file LField.h.

Referenced by LField(), LField(), and LField().

◆ Owned

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

Definition at line 234 of file LField.h.

Referenced by LField(), LField(), LField(), ReallyUncompress(), and swapData().

◆ ownedCompressIndex

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

Definition at line 264 of file LField.h.

Referenced by CanCompressBasedOnPhysicalCells(), LField(), LField(), LField(), and swapData().

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

Referenced by LField(), LField(), and LField().

◆ 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(), LField(), and LField().


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