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

#include <FFT.h>

Public Types

typedef
CompressedBrickIterator< T,
Dim
iterator
 
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 27 of file FFT.h.

Member Typedef Documentation

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

Definition at line 65 of file LField.h.

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

Definition at line 62 of file LField.h.

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

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 LFieldInitializer< T >::apply(), and IpplInfo::noFieldCompression.

Here is the call graph for this function:

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 LFieldInitializer< T >::apply(), LField< T, Dim >::Begin, IpplInfo::noFieldCompression, and LField< T, Dim >::ReallyUncompress().

Here is the call graph for this function:

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

Definition at line 199 of file LField.hpp.

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

Member Function Documentation

template<class T, unsigned Dim>
void LField< T, Dim >::AddToOverlapCache ( LField< T, Dim > *  newCacheItem)
inline
template<class T , unsigned Dim>
void LField< T, Dim >::allocateStorage ( int  newsize)
private
template<class T, unsigned Dim>
const iterator& LField< T, Dim >::begin ( ) const
inline
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.

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.

template<class T, unsigned Dim>
OverlapIterator LField< T, Dim >::BeginOverlap ( )
inline
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:

template<class T, unsigned Dim>
bool LField< T, Dim >::CanCompress ( x) const
template<class T , unsigned Dim>
bool LField< T, Dim >::CanCompressBasedOnPhysicalCells ( ) const
private
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(), DiscField< Dim >::read(), BareField< T, Dim >::setGuardCells(), and TryCompressLHS().

Here is the call graph for this function:

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:

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

Definition at line 527 of file LField.hpp.

References begin, and IpplInfo::noFieldCompression.

template<class T , unsigned Dim>
void LField< T, Dim >::deallocateStorage ( )
private
template<class T, unsigned Dim>
const iterator& LField< T, Dim >::end ( ) const
inline
template<class T, unsigned Dim>
OverlapIterator LField< T, Dim >::EndOverlap ( )
inline
template<class T, unsigned Dim>
const NDIndex<Dim>& LField< T, Dim >::getAllocated ( ) const
inline
template<class T, unsigned Dim>
T& LField< T, Dim >::getCompressedData ( )
inline
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.

template<class T, unsigned Dim>
const NDIndex<Dim>& LField< T, Dim >::getOwned ( ) const
inline
template<class T, unsigned Dim>
T* LField< T, Dim >::getP ( )
inline
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.

template<class T, unsigned Dim>
bool LField< T, Dim >::IsCompressed ( ) const
inline
template<class T, unsigned Dim>
const LField<T,Dim>& LField< T, Dim >::operator= ( const LField< T, Dim > &  )
private
template<class T, unsigned Dim>
bool LField< T, Dim >::OverlapCacheInitialized ( )
inline
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 >::LField(), and LField< T, Dim >::Uncompress().

Here is the call graph for this function:

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().

template<class T, unsigned Dim>
void LField< T, Dim >::swapData ( LField< T, Dim > &  a)
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:

template<class T, unsigned Dim>
void LField< T, Dim >::Uncompress ( bool  fill_domain = true)
inline
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.

Member Data Documentation

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

Definition at line 263 of file LField.h.

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

template<class T, unsigned Dim>
iterator LField< T, Dim >::Begin
private
template<class T, unsigned Dim>
T LField< T, Dim >::CompressedData
private
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().

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

Definition at line 269 of file LField.h.

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

template<class T, unsigned Dim>
std::vector< LField<T, Dim> * > LField< T, Dim >::overlap
private
template<class T, unsigned Dim>
bool LField< T, Dim >::overlapCacheInited
private
template<class T, unsigned Dim>
NDIndex<Dim> LField< T, Dim >::Owned
private
template<class T, unsigned Dim>
int LField< T, Dim >::ownedCompressIndex
mutableprivate

Definition at line 264 of file LField.h.

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

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

Definition at line 230 of file LField.h.

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: