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

#include <BareField.h>

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

Public Types

enum  { Dim_u = Dim }
enum  { IsExpr = 0 }
typedef T T_t
typedef FieldLayout< DimLayout_t
typedef LField< T, DimLField_t
typedef vmap< typename Unique::type, my_auto_ptr< LField< T, Dim > > > ac_id_larray
typedef ac_id_larray::iterator iterator_if
typedef ac_id_larray::const_iterator const_iterator_if
typedef LField< T, Dim >::iterator LFI
typedef BareFieldIterator< T, Dimiterator
typedef iterator PETE_Expr_t
typedef Unique::type ID_t
typedef BareField< T, DimWrapped

Public Member Functions

 BareField ()
 BareField (const BareField< T, Dim > &)
 BareField (Layout_t &)
 BareField (Layout_t &, const GuardCellSizes< Dim > &)
 ~BareField ()
void initialize (Layout_t &)
void initialize (Layout_t &, const bool)
void initialize (Layout_t &, const GuardCellSizes< Dim > &)
iterator_if begin_if ()
iterator_if end_if ()
const_iterator_if begin_if () const
const_iterator_if end_if () const
ac_id_larray::size_type size_if () const
virtual void fillGuardCells (bool reallyFill=true) const
void setGuardCells (const T &) const
void accumGuardCells ()
bool isDirty () const
void setDirtyFlag ()
void clearDirtyFlag ()
void fillGuardCellsIfNotDirty () const
Layout_tgetLayout () const
IndexedBareField< T, Dim, 1 > operator[] (const Index &idx)
IndexedBareField< T, Dim, 1 > operator[] (int i)
IndexedBareField< T, Dim, Dimoperator[] (const NDIndex< Dim > &nidx)
SubBareField< T, Dim, SIndex< Dim > > operator[] (const SIndex< Dim > &)
const GuardCellSizes< Dim > & getGC () const
const GuardCellSizes< Dim > & getGuardCellSizes () const
unsigned leftGuard (unsigned d) const
unsigned rightGuard (unsigned d) const
const IndexgetIndex (unsigned d) const
const NDIndex< Dim > & getDomain () const
const BareField< T, Dim > & operator= (T x)
const BareField< T, Dim > & operator= (const BareField< T, Dim > &x)
template<class X>
const BareField< T, Dim > & operator= (const BareField< X, Dim > &x)
template<class B>
const BareField< T, Dim > & operator= (const PETE_Expr< B > &x)
bool compressible () const
double CompressedFraction () const
void Compress () const
void Uncompress () const
void setCompression (bool compress)
virtual void Repartition (UserList *)
virtual void notifyUserOfDelete (UserList *)
iterator begin () const
iterator end () const
iterator beginLoc (const FieldLoc< Dim > &loc) const
void prepareForScalarCode (bool tryfill=true)
void finishScalarCode (bool modified=true)
T & localElement (const NDIndex< Dim > &) const
void getsingle (const NDIndex< Dim > &, T &) const
void write (std::ostream &)
iterator MakeExpression () const
ID_t get_Id () const
BareField< T, Dim > & PETE_unwrap ()

Protected Attributes

ac_id_larray Locals_ac
ID_t Id

Private Member Functions

void setup ()
void getsingle_bc (const NDIndex< Dim > &, T &) const

Private Attributes

Layout_tLayout
GuardCellSizes< DimGc
bool dirty_m
bool compressible_m
bool pinned

Friends

class BareFieldIterator< T, Dim >

Detailed Description

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

The FFT class performs complex-to-complex, real-to-complex, or sine transforms on IPPL Fields. FFT is templated on the type of transform to be performed, the dimensionality of the Field to transform, and the floating-point precision type of the Field (float or double).

Definition at line 54 of file BareField.h.

Member Typedef Documentation

◆ ac_id_larray

template<class T, unsigned Dim>
typedef vmap< typename Unique::type, my_auto_ptr< LField<T,Dim> > > BareField< T, Dim >::ac_id_larray

Definition at line 91 of file BareField.h.

◆ const_iterator_if

template<class T, unsigned Dim>
typedef ac_id_larray::const_iterator BareField< T, Dim >::const_iterator_if

Definition at line 93 of file BareField.h.

◆ ID_t

typedef Unique::type User::ID_t
inherited

Definition at line 35 of file User.h.

◆ iterator

template<class T, unsigned Dim>
typedef BareFieldIterator<T,Dim> BareField< T, Dim >::iterator

Definition at line 97 of file BareField.h.

◆ iterator_if

template<class T, unsigned Dim>
typedef ac_id_larray::iterator BareField< T, Dim >::iterator_if

Definition at line 92 of file BareField.h.

◆ Layout_t

template<class T, unsigned Dim>
typedef FieldLayout<Dim> BareField< T, Dim >::Layout_t

Definition at line 61 of file BareField.h.

◆ LFI

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

Definition at line 94 of file BareField.h.

◆ LField_t

template<class T, unsigned Dim>
typedef LField<T,Dim> BareField< T, Dim >::LField_t

Definition at line 62 of file BareField.h.

◆ PETE_Expr_t

template<class T, unsigned Dim>
typedef iterator BareField< T, Dim >::PETE_Expr_t

Definition at line 326 of file BareField.h.

◆ T_t

template<class T, unsigned Dim>
typedef T BareField< T, Dim >::T_t

Definition at line 60 of file BareField.h.

◆ Wrapped

typedef BareField< T, Dim > PETE_Expr< BareField< T, Dim > >::Wrapped
inherited

Definition at line 79 of file PETE.h.

Member Enumeration Documentation

◆ anonymous enum

template<class T, unsigned Dim>
anonymous enum
Enumerator
IsExpr 

Definition at line 325 of file BareField.h.

◆ anonymous enum

template<class T, unsigned Dim>
anonymous enum
Enumerator
Dim_u 

Definition at line 63 of file BareField.h.

Constructor & Destructor Documentation

◆ BareField() [1/4]

◆ BareField() [2/4]

template<class T, unsigned Dim>
BareField< T, Dim >::BareField ( const BareField< T, Dim > & a)

Definition at line 48 of file BareField.hpp.

References a, BareField(), FieldLayout< Dim >::checkin(), clearDirtyFlag(), compressible_m, Gc, getLayout(), Layout, Locals_ac, and pinned.

Here is the call graph for this function:

◆ BareField() [3/4]

template<class T, unsigned Dim>
BareField< T, Dim >::BareField ( Layout_t & l)
inline

Definition at line 384 of file BareField.h.

References compressible_m, Dim, Gc, Layout, pinned, and setup().

Here is the call graph for this function:

◆ BareField() [4/4]

template<class T, unsigned Dim>
BareField< T, Dim >::BareField ( Layout_t & l,
const GuardCellSizes< Dim > & g )
inline

Definition at line 401 of file BareField.h.

References compressible_m, Gc, Layout, pinned, and setup().

Here is the call graph for this function:

◆ ~BareField()

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

Definition at line 83 of file BareField.hpp.

Member Function Documentation

◆ accumGuardCells()

◆ begin()

◆ begin_if() [1/2]

template<class T, unsigned Dim>
iterator_if BareField< T, Dim >::begin_if ( )
inline

◆ begin_if() [2/2]

template<class T, unsigned Dim>
const_iterator_if BareField< T, Dim >::begin_if ( ) const
inline

Definition at line 102 of file BareField.h.

◆ beginLoc()

template<class T, unsigned Dim>
iterator BareField< T, Dim >::beginLoc ( const FieldLoc< Dim > & loc) const
inline

Definition at line 249 of file BareField.h.

◆ clearDirtyFlag()

template<class T, unsigned Dim>
void BareField< T, Dim >::clearDirtyFlag ( )
inline

Definition at line 118 of file BareField.h.

Referenced by BareField(), and setup().

◆ Compress()

template<class T, unsigned Dim>
void BareField< T, Dim >::Compress ( ) const

Definition at line 991 of file BareField.hpp.

References BareField(), begin_if(), compressible_m, end_if(), and isDirty().

Referenced by accumGuardCells(), assign(), assign(), ParticleAttrib< Index_t >::gather(), ParticleAttrib< Index_t >::gather(), ParticleAttrib< Index_t >::gather(), DiscField< Dim >::read(), and BareField< Complex_t, Dim >::setCompression().

Here is the call graph for this function:

◆ CompressedFraction()

template<class T, unsigned Dim>
double BareField< T, Dim >::CompressedFraction ( ) const

Definition at line 1021 of file BareField.hpp.

References begin_if(), end_if(), LField< T, Dim >::getOwned(), LField< T, Dim >::IsCompressed(), and reduce().

Here is the call graph for this function:

◆ compressible()

template<class T, unsigned Dim>
bool BareField< T, Dim >::compressible ( ) const
inline

◆ end()

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

◆ end_if() [1/2]

template<class T, unsigned Dim>
iterator_if BareField< T, Dim >::end_if ( )
inline

◆ end_if() [2/2]

template<class T, unsigned Dim>
const_iterator_if BareField< T, Dim >::end_if ( ) const
inline

Definition at line 103 of file BareField.h.

◆ fillGuardCells()

◆ fillGuardCellsIfNotDirty()

template<class T, unsigned Dim>
void BareField< T, Dim >::fillGuardCellsIfNotDirty ( ) const
inline

◆ finishScalarCode()

template<class T, unsigned Dim>
void BareField< T, Dim >::finishScalarCode ( bool modified = true)
inline

Definition at line 280 of file BareField.h.

◆ get_Id()

ID_t User::get_Id ( ) const
inlineinherited

Definition at line 46 of file User.h.

References Id.

Referenced by UserList::checkinUser(), and UserList::checkoutUser().

◆ getDomain()

◆ getGC()

template<class T, unsigned Dim>
const GuardCellSizes< Dim > & BareField< T, Dim >::getGC ( ) const
inline

◆ getGuardCellSizes()

◆ getIndex()

template<class T, unsigned Dim>
const Index & BareField< T, Dim >::getIndex ( unsigned d) const
inline

Definition at line 151 of file BareField.h.

◆ getLayout()

◆ getsingle()

template<class T, unsigned int Dim>
void BareField< T, Dim >::getsingle ( const NDIndex< Dim > & Indexes,
T & r ) const

Definition at line 1201 of file BareField.hpp.

References AddGuardCells(), LField< T, Dim >::begin(), begin_if(), IpplInfo::Comm, COMM_ANY_NODE, end_if(), endl(), ERRORMSG, F_GETSINGLE_TAG, F_TAG_CYCLE, Gc, getMessage(), IpplInfo::getNodes(), getsingle_bc(), Layout, putMessage(), and NDIndex< Dim >::touches().

Here is the call graph for this function:

◆ getsingle_bc()

template<class T, unsigned Dim>
void BareField< T, D >::getsingle_bc ( const NDIndex< Dim > & ,
T &  ) const
private

Definition at line 1271 of file BareField.hpp.

References LField< T, Dim >::begin(), begin_if(), IpplInfo::Comm, end_if(), F_GETSINGLE_TAG, F_TAG_CYCLE, Gc, getMessage(), IpplInfo::getNodes(), Layout, IpplInfo::myNode(), and putMessage().

Referenced by getsingle().

Here is the call graph for this function:

◆ initialize() [1/3]

◆ initialize() [2/3]

template<class T, unsigned Dim>
void BareField< T, Dim >::initialize ( Layout_t & l,
const bool p )

Definition at line 114 of file BareField.hpp.

References Layout, pinned, and setup().

Here is the call graph for this function:

◆ initialize() [3/3]

template<class T, unsigned Dim>
void BareField< T, Dim >::initialize ( Layout_t & l,
const GuardCellSizes< Dim > & gc )

Definition at line 128 of file BareField.hpp.

References Gc, Layout, and setup().

Here is the call graph for this function:

◆ isDirty()

◆ leftGuard()

◆ localElement()

template<class T, unsigned Dim>
T & BareField< T, Dim >::localElement ( const NDIndex< Dim > & Indexes) const

Definition at line 1154 of file BareField.hpp.

References IpplInfo::abort(), begin_if(), Dim, end_if(), endl(), ERRORMSG, LField< T, Dim >::getAllocated(), getLayout(), LField< T, Dim >::getP(), IpplInfo::myNode(), PtrOffset(), and LField< T, Dim >::Uncompress().

Referenced by MGPoissonSolver::computePotential().

Here is the call graph for this function:

◆ MakeExpression()

template<class T, unsigned Dim>
iterator BareField< T, Dim >::MakeExpression ( ) const
inline

Definition at line 327 of file BareField.h.

◆ notifyUserOfDelete()

template<class T, unsigned Dim>
void BareField< T, Dim >::notifyUserOfDelete ( UserList * userlist)
virtual

Implements User.

Reimplemented in Field< T, Dim, M, C >, Field< double, 3, Mesh_t, Center_t >, Field< int, 3, Mesh_t, Center_t >, Field< std::complex< double >, 3, Mesh_t, Center_t >, Field< T, Dim, M, C >, and Field< Vector_t, 3, Mesh_t, Center_t >.

Definition at line 1079 of file BareField.hpp.

References endl(), UserList::getUserListID(), Layout, and WARNMSG.

Referenced by Field< T, Dim, M, C >::notifyUserOfDelete().

Here is the call graph for this function:

◆ operator=() [1/4]

template<class T, unsigned Dim>
const BareField< T, Dim > & BareField< T, Dim >::operator= ( const BareField< T, Dim > & x)
inline

Definition at line 163 of file BareField.h.

◆ operator=() [2/4]

template<class T, unsigned Dim>
template<class X>
const BareField< T, Dim > & BareField< T, Dim >::operator= ( const BareField< X, Dim > & x)
inline

Definition at line 171 of file BareField.h.

◆ operator=() [3/4]

template<class T, unsigned Dim>
template<class B>
const BareField< T, Dim > & BareField< T, Dim >::operator= ( const PETE_Expr< B > & x)
inline

Definition at line 180 of file BareField.h.

◆ operator=() [4/4]

template<class T, unsigned Dim>
const BareField< T, Dim > & BareField< T, Dim >::operator= ( T x)
inline

Definition at line 155 of file BareField.h.

◆ operator[]() [1/4]

template<class T, unsigned Dim>
IndexedBareField< T, Dim, 1 > BareField< T, Dim >::operator[] ( const Index & idx)
inline

Definition at line 416 of file BareField.h.

◆ operator[]() [2/4]

template<class T, unsigned Dim>
IndexedBareField< T, Dim, Dim > BareField< T, Dim >::operator[] ( const NDIndex< Dim > & nidx)
inline

Definition at line 430 of file BareField.h.

◆ operator[]() [3/4]

template<class T, unsigned Dim>
SubBareField< T, Dim, SIndex< Dim > > BareField< T, Dim >::operator[] ( const SIndex< Dim > & s)
inline

Definition at line 437 of file BareField.h.

◆ operator[]() [4/4]

template<class T, unsigned Dim>
IndexedBareField< T, Dim, 1 > BareField< T, Dim >::operator[] ( int i)
inline

Definition at line 423 of file BareField.h.

◆ PETE_unwrap()

BareField< T, Dim > & PETE_Expr< BareField< T, Dim > >::PETE_unwrap ( )
inlineinherited

Definition at line 81 of file PETE.h.

◆ prepareForScalarCode()

template<class T, unsigned Dim>
void BareField< T, Dim >::prepareForScalarCode ( bool tryfill = true)
inline

Definition at line 262 of file BareField.h.

◆ Repartition()

template<class T, unsigned Dim>
void BareField< T, Dim >::Repartition ( UserList * userlist)
virtual

Implements FieldLayoutUser.

Reimplemented in Field< T, Dim, M, C >, Field< double, 3, Mesh_t, Center_t >, Field< int, 3, Mesh_t, Center_t >, Field< std::complex< double >, 3, Mesh_t, Center_t >, Field< T, Dim, M, C >, and Field< Vector_t, 3, Mesh_t, Center_t >.

Definition at line 1054 of file BareField.hpp.

References BareField(), Gc, and Locals_ac.

Here is the call graph for this function:

◆ rightGuard()

◆ setCompression()

template<class T, unsigned Dim>
void BareField< T, Dim >::setCompression ( bool compress)
inline

◆ setDirtyFlag()

template<class T, unsigned Dim>
void BareField< T, Dim >::setDirtyFlag ( )
inline

◆ setGuardCells()

template<class T, unsigned Dim>
void BareField< T, Dim >::setGuardCells ( const T & val) const

◆ setup()

template<class T, unsigned Dim>
void BareField< T, Dim >::setup ( )
private

Definition at line 150 of file BareField.hpp.

References IpplInfo::abort(), AddGuardCells(), clearDirtyFlag(), end_if(), endl(), ERRORMSG, Gc, getLayout(), Locals_ac, and pinned.

Referenced by BareField(), BareField(), initialize(), and initialize().

Here is the call graph for this function:

◆ size_if()

template<class T, unsigned Dim>
ac_id_larray::size_type BareField< T, Dim >::size_if ( ) const
inline

Definition at line 104 of file BareField.h.

Referenced by assign().

◆ Uncompress()

template<class T, unsigned Dim>
void BareField< T, Dim >::Uncompress ( ) const

◆ write()

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

Definition at line 208 of file BareField.hpp.

References begin_if(), IpplInfo::Comm, end_if(), F_TAG_CYCLE, F_WRITE_TAG, LField< T, Dim >::getOwned(), and IpplInfo::myNode().

Referenced by operator<<().

Here is the call graph for this function:

◆ BareFieldIterator< T, Dim >

template<class T, unsigned Dim>
friend class BareFieldIterator< T, Dim >
friend

Definition at line 331 of file BareField.h.

Member Data Documentation

◆ compressible_m

template<class T, unsigned Dim>
bool BareField< T, Dim >::compressible_m
private

Definition at line 354 of file BareField.h.

Referenced by BareField(), BareField(), BareField(), BareField(), and Compress().

◆ dirty_m

template<class T, unsigned Dim>
bool BareField< T, Dim >::dirty_m
private

Definition at line 351 of file BareField.h.

◆ Gc

template<class T, unsigned Dim>
GuardCellSizes<Dim> BareField< T, Dim >::Gc
private

◆ Id

ID_t User::Id
protectedinherited

Definition at line 58 of file User.h.

Referenced by get_Id(), and User().

◆ Layout

template<class T, unsigned Dim>
Layout_t* BareField< T, Dim >::Layout
private

◆ Locals_ac

template<class T, unsigned Dim>
ac_id_larray BareField< T, Dim >::Locals_ac
protected

Definition at line 331 of file BareField.h.

Referenced by BareField(), Repartition(), Field< T, Dim, M, C >::Repartition(), and setup().

◆ pinned

template<class T, unsigned Dim>
bool BareField< T, Dim >::pinned
private

Definition at line 357 of file BareField.h.

Referenced by BareField(), BareField(), BareField(), BareField(), initialize(), and setup().


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