OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
FieldLayout< Dim > Class Template Reference

#include <FieldLayout.h>

Inheritance diagram for FieldLayout< Dim >:
Collaboration diagram for FieldLayout< Dim >:

Public Types

typedef vmap< Unique::type, my_auto_ptr< Vnode< Dim > > > ac_id_vnodes
typedef DomainMap< NDIndex< Dim >, RefCountedP< Vnode< Dim > >, Touches< Dim >, Contains< Dim >, Split< Dim > > ac_domain_vnodes
typedef vmap< GuardCellSizes< Dim >, my_auto_ptr< ac_domain_vnodes > > ac_gc_domain_vnodes
typedef ac_id_vnodes::iterator iterator_iv
typedef ac_id_vnodes::const_iterator const_iterator_iv
typedef ac_domain_vnodes::iterator iterator_dv
typedef ac_domain_vnodes::touch_iterator touch_iterator_dv
typedef std::pair< touch_iterator_dv, touch_iterator_dvtouch_range_dv
typedef ac_gc_domain_vnodes::iterator iterator_gdv
typedef iterator_user iterator_if
typedef size_type_user size_type_if

Public Member Functions

 FieldLayout ()
 FieldLayout (const char *filename)
 FieldLayout (const Index &i1, e_dim_tag p1=PARALLEL, int vnodes=-1)
 FieldLayout (const Index &i1, const Index &i2, e_dim_tag p1=PARALLEL, e_dim_tag p2=PARALLEL, int vnodes=-1)
 FieldLayout (const Index &i1, const Index &i2, const Index &i3, e_dim_tag p1=PARALLEL, e_dim_tag p2=PARALLEL, e_dim_tag p3=PARALLEL, int vnodes=-1)
 FieldLayout (const Index &i1, const Index &i2, const Index &i3, const Index &i4, e_dim_tag p1=PARALLEL, e_dim_tag p2=PARALLEL, e_dim_tag p3=PARALLEL, e_dim_tag p4=PARALLEL, int vnodes=-1)
 FieldLayout (const Index &i1, const Index &i2, const Index &i3, const Index &i4, const Index &i5, e_dim_tag p1=PARALLEL, e_dim_tag p2=PARALLEL, e_dim_tag p3=PARALLEL, e_dim_tag p4=PARALLEL, e_dim_tag p5=PARALLEL, int vnodes=-1)
 FieldLayout (const Index &i1, const Index &i2, const Index &i3, const Index &i4, const Index &i5, const Index &i6, e_dim_tag p1=PARALLEL, e_dim_tag p2=PARALLEL, e_dim_tag p3=PARALLEL, e_dim_tag p4=PARALLEL, e_dim_tag p5=PARALLEL, e_dim_tag p6=PARALLEL, int vnodes=-1)
 FieldLayout (const Index &i1, e_dim_tag p1, unsigned vnodes1, bool recurse=false, int vnodes=-1)
 FieldLayout (const Index &i1, const Index &i2, e_dim_tag p1, e_dim_tag p2, unsigned vnodes1, unsigned vnodes2, bool recurse=false, int vnodes=-1)
 FieldLayout (const Index &i1, const Index &i2, const Index &i3, e_dim_tag p1, e_dim_tag p2, e_dim_tag p3, unsigned vnodes1, unsigned vnodes2, unsigned vnodes3, bool recurse=false, int vnodes=-1)
 FieldLayout (const Index &i1, const Index &i2, const Index &i3, const Index &i4, e_dim_tag p1, e_dim_tag p2, e_dim_tag p3, e_dim_tag p4, unsigned vnodes1, unsigned vnodes2, unsigned vnodes3, unsigned vnodes4, bool recurse=false, int vnodes=-1)
 FieldLayout (const Index &i1, const Index &i2, const Index &i3, const Index &i4, const Index &i5, e_dim_tag p1, e_dim_tag p2, e_dim_tag p3, e_dim_tag p4, e_dim_tag p5, unsigned vnodes1, unsigned vnodes2, unsigned vnodes3, unsigned vnodes4, unsigned vnodes5, bool recurse=false, int vnodes=-1)
 FieldLayout (const Index &i1, const Index &i2, const Index &i3, const Index &i4, const Index &i5, const Index &i6, e_dim_tag p1, e_dim_tag p2, e_dim_tag p3, e_dim_tag p4, e_dim_tag p5, e_dim_tag p6, unsigned vnodes1, unsigned vnodes2, unsigned vnodes3, unsigned vnodes4, unsigned vnodes5, unsigned vnodes6, bool recurse=false, int vnodes=-1)
 FieldLayout (const NDIndex< Dim > &domain, e_dim_tag *p=0, int vnodes=-1)
 FieldLayout (const NDIndex< Dim > &domain, e_dim_tag *p, unsigned *vnodesPerDirection, bool recurse=false, int vnodes=-1)
 FieldLayout (const NDIndex< Dim > &Domain, const NDIndex< Dim > *begin, const NDIndex< Dim > *end)
 FieldLayout (const NDIndex< Dim > &Domain, const Vnode< Dim > *begin, const Vnode< Dim > *end)
 FieldLayout (const NDIndex< Dim > &Domain, const NDIndex< Dim > *dombegin, const NDIndex< Dim > *domend, const int *nbegin, const int *nend)
virtual ~FieldLayout ()
void initialize (const Index &i1, e_dim_tag p1=PARALLEL, int vnodes=-1)
void initialize (const Index &i1, const Index &i2, e_dim_tag p1=PARALLEL, e_dim_tag p2=PARALLEL, int vnodes=-1)
void initialize (const Index &i1, const Index &i2, const Index &i3, e_dim_tag p1=PARALLEL, e_dim_tag p2=PARALLEL, e_dim_tag p3=PARALLEL, int vnodes=-1)
void initialize (const Index &i1, const Index &i2, const Index &i3, const Index &i4, e_dim_tag p1=PARALLEL, e_dim_tag p2=PARALLEL, e_dim_tag p3=PARALLEL, e_dim_tag p4=PARALLEL, int vnodes=-1)
void initialize (const Index &i1, const Index &i2, const Index &i3, const Index &i4, const Index &i5, e_dim_tag p1=PARALLEL, e_dim_tag p2=PARALLEL, e_dim_tag p3=PARALLEL, e_dim_tag p4=PARALLEL, e_dim_tag p5=PARALLEL, int vnodes=-1)
void initialize (const Index &i1, const Index &i2, const Index &i3, const Index &i4, const Index &i5, const Index &i6, e_dim_tag p1=PARALLEL, e_dim_tag p2=PARALLEL, e_dim_tag p3=PARALLEL, e_dim_tag p4=PARALLEL, e_dim_tag p5=PARALLEL, e_dim_tag p6=PARALLEL, int vnodes=-1)
void initialize (const NDIndex< Dim > &domain, e_dim_tag *p=0, int vnodes=-1)
void initialize (const Index &i1, e_dim_tag p1, unsigned vnodes1, bool recurse=false, int vnodes=-1)
void initialize (const Index &i1, const Index &i2, e_dim_tag p1, e_dim_tag p2, unsigned vnodes1, unsigned vnodes2, bool recurse=false, int vnodes=-1)
void initialize (const Index &i1, const Index &i2, const Index &i3, e_dim_tag p1, e_dim_tag p2, e_dim_tag p3, unsigned vnodes1, unsigned vnodes2, unsigned vnodes3, bool recurse=false, int vnodes=-1)
void initialize (const Index &i1, const Index &i2, const Index &i3, const Index &i4, e_dim_tag p1, e_dim_tag p2, e_dim_tag p3, e_dim_tag p4, unsigned vnodes1, unsigned vnodes2, unsigned vnodes3, unsigned vnodes4, bool recurse=false, int vnodes=-1)
void initialize (const Index &i1, const Index &i2, const Index &i3, const Index &i4, const Index &i5, e_dim_tag p1, e_dim_tag p2, e_dim_tag p3, e_dim_tag p4, e_dim_tag p5, unsigned vnodes1, unsigned vnodes2, unsigned vnodes3, unsigned vnodes4, unsigned vnodes5, bool recurse=false, int vnodes=-1)
void initialize (const Index &i1, const Index &i2, const Index &i3, const Index &i4, const Index &i5, const Index &i6, e_dim_tag p1, e_dim_tag p2, e_dim_tag p3, e_dim_tag p4, e_dim_tag p5, e_dim_tag p6, unsigned vnodes1, unsigned vnodes2, unsigned vnodes3, unsigned vnodes4, unsigned vnodes5, unsigned vnodes6, bool recurse=false, int vnodes=-1)
void initialize (const NDIndex< Dim > &domain, e_dim_tag *p, unsigned *vnodesPerDirection, bool recurse=false, int vnodes=-1)
void initialize (const NDIndex< Dim > &Domain, const NDIndex< Dim > *dombegin, const NDIndex< Dim > *domend, const int *nbegin, const int *nend)
void Repartition (const NDIndex< Dim > *, const NDIndex< Dim > *)
void Repartition (const NDIndex< Dim > &domain)
void Repartition (const Vnode< Dim > *, const Vnode< Dim > *)
const NDIndex< Dim > & getDomain () const
template<unsigned Dim2>
bool operator== (const FieldLayout< Dim2 > &x) const
bool read (const char *filename)
bool write (const char *filename)
int numVnodes (void) const
ac_id_vnodes::size_type size_iv () const
iterator_iv begin_iv ()
iterator_iv end_iv ()
const_iterator_iv begin_iv () const
const_iterator_iv end_iv () const
ac_gc_domain_vnodes::size_type size_rgdv () const
iterator_gdv begin_rgdv ()
iterator_gdv end_rgdv ()
ac_domain_vnodes::size_type size_rdv (const GuardCellSizes< Dim > &gc=gc0()) const
iterator_dv begin_rdv (const GuardCellSizes< Dim > &gc=gc0())
iterator_dv end_rdv (const GuardCellSizes< Dim > &gc=gc0())
touch_range_dv touch_range_rdv (const NDIndex< Dim > &domain, const GuardCellSizes< Dim > &gc=gc0()) const
size_type_if size_if () const
iterator_if begin_if ()
iterator_if end_if ()
bool fitsGuardCells (const GuardCellSizes< Dim > &gc) const
e_dim_tag getDistribution (unsigned int d) const
e_dim_tag getRequestedDistribution (unsigned int d) const
unsigned getVnodesPerDirection (unsigned dir)
UserList::ID_t get_Id () const
void checkin (FieldLayoutUser &f, const GuardCellSizes< Dim > &gc=gc0())
void checkout (FieldLayoutUser &f)
NDIndex< DimgetLocalNDIndex ()
void write (std::ostream &) const

Private Types

typedef User::ID_t Key
typedef vmap< Key, User * > UserList_t
typedef UserList_t::iterator iterator_user
typedef UserList_t::size_type size_type_user
typedef User::ID_t ID_t

Private Member Functions

void calcWidths ()
void new_gc_layout (const GuardCellSizes< Dim > &)
void setup (const NDIndex< Dim > &, e_dim_tag *, int)
void setup (const NDIndex< Dim > &, e_dim_tag *, unsigned *, bool, int)
size_type_user getNumUsers () const
ID_t getUserListID () const
bool haveUser (Key key) const
UsergetUser (Key key)
iterator_user begin_user ()
iterator_user end_user ()
virtual ID_t checkinUser (User &user)
virtual void checkoutUser (Key key, bool informuser=false)
virtual void checkoutUser (const User &user, bool informuser=false)

Static Private Member Functions

static GuardCellSizes< Dimgc0 ()

Private Attributes

ac_id_vnodes Local_ac
ac_gc_domain_vnodes Remotes_ac
NDIndex< DimDomain
unsigned int MinWidth [Dim]
e_dim_tag RequestedLayout [Dim]
unsigned * vnodesPerDirection_m
UserList_t userlist
ID_t userlistID

Detailed Description

template<unsigned Dim>
class FieldLayout< Dim >

Definition at line 61 of file FieldLayout.h.

Member Typedef Documentation

◆ ac_domain_vnodes

template<unsigned Dim>
typedef DomainMap<NDIndex<Dim>,RefCountedP< Vnode<Dim> >, Touches<Dim>,Contains<Dim>,Split<Dim> > FieldLayout< Dim >::ac_domain_vnodes

Definition at line 68 of file FieldLayout.h.

◆ ac_gc_domain_vnodes

template<unsigned Dim>
typedef vmap<GuardCellSizes<Dim>,my_auto_ptr<ac_domain_vnodes> > FieldLayout< Dim >::ac_gc_domain_vnodes

Definition at line 70 of file FieldLayout.h.

◆ ac_id_vnodes

template<unsigned Dim>
typedef vmap<Unique::type,my_auto_ptr<Vnode<Dim> > > FieldLayout< Dim >::ac_id_vnodes

Definition at line 66 of file FieldLayout.h.

◆ const_iterator_iv

template<unsigned Dim>
typedef ac_id_vnodes::const_iterator FieldLayout< Dim >::const_iterator_iv

Definition at line 74 of file FieldLayout.h.

◆ ID_t

typedef User::ID_t UserList::ID_t
inherited

Definition at line 46 of file UserList.h.

◆ iterator_dv

template<unsigned Dim>
typedef ac_domain_vnodes::iterator FieldLayout< Dim >::iterator_dv

Definition at line 75 of file FieldLayout.h.

◆ iterator_gdv

template<unsigned Dim>
typedef ac_gc_domain_vnodes::iterator FieldLayout< Dim >::iterator_gdv

Definition at line 78 of file FieldLayout.h.

◆ iterator_if

template<unsigned Dim>
typedef iterator_user FieldLayout< Dim >::iterator_if

Definition at line 79 of file FieldLayout.h.

◆ iterator_iv

template<unsigned Dim>
typedef ac_id_vnodes::iterator FieldLayout< Dim >::iterator_iv

Definition at line 73 of file FieldLayout.h.

◆ iterator_user

Definition at line 43 of file UserList.h.

◆ Key

typedef User::ID_t UserList::Key
inherited

Definition at line 41 of file UserList.h.

◆ size_type_if

template<unsigned Dim>
typedef size_type_user FieldLayout< Dim >::size_type_if

Definition at line 80 of file FieldLayout.h.

◆ size_type_user

Definition at line 45 of file UserList.h.

◆ touch_iterator_dv

template<unsigned Dim>
typedef ac_domain_vnodes::touch_iterator FieldLayout< Dim >::touch_iterator_dv

Definition at line 76 of file FieldLayout.h.

◆ touch_range_dv

template<unsigned Dim>
typedef std::pair<touch_iterator_dv,touch_iterator_dv> FieldLayout< Dim >::touch_range_dv

Definition at line 77 of file FieldLayout.h.

◆ UserList_t

typedef vmap<Key, User *> UserList::UserList_t
inherited

Definition at line 42 of file UserList.h.

Constructor & Destructor Documentation

◆ FieldLayout() [1/19]

template<unsigned Dim>
FieldLayout< Dim >::FieldLayout ( )

Definition at line 44 of file FieldLayout.hpp.

References Dim, PARALLEL, RequestedLayout, and vnodesPerDirection_m.

Referenced by Repartition(), and Repartition().

◆ FieldLayout() [2/19]

template<unsigned Dim>
FieldLayout< Dim >::FieldLayout ( const char * filename)

Definition at line 67 of file FieldLayout.hpp.

References Dim, PARALLEL, read(), RequestedLayout, and vnodesPerDirection_m.

Here is the call graph for this function:

◆ FieldLayout() [3/19]

template<unsigned Dim>
FieldLayout< Dim >::FieldLayout ( const Index & i1,
e_dim_tag p1 = PARALLEL,
int vnodes = -1 )
inline

Definition at line 479 of file FieldLayout.h.

References initialize().

Here is the call graph for this function:

◆ FieldLayout() [4/19]

template<unsigned Dim>
FieldLayout< Dim >::FieldLayout ( const Index & i1,
const Index & i2,
e_dim_tag p1 = PARALLEL,
e_dim_tag p2 = PARALLEL,
int vnodes = -1 )
inline

Definition at line 486 of file FieldLayout.h.

References initialize().

Here is the call graph for this function:

◆ FieldLayout() [5/19]

template<unsigned Dim>
FieldLayout< Dim >::FieldLayout ( const Index & i1,
const Index & i2,
const Index & i3,
e_dim_tag p1 = PARALLEL,
e_dim_tag p2 = PARALLEL,
e_dim_tag p3 = PARALLEL,
int vnodes = -1 )
inline

Definition at line 494 of file FieldLayout.h.

References initialize().

Here is the call graph for this function:

◆ FieldLayout() [6/19]

template<unsigned Dim>
FieldLayout< Dim >::FieldLayout ( const Index & i1,
const Index & i2,
const Index & i3,
const Index & i4,
e_dim_tag p1 = PARALLEL,
e_dim_tag p2 = PARALLEL,
e_dim_tag p3 = PARALLEL,
e_dim_tag p4 = PARALLEL,
int vnodes = -1 )
inline

Definition at line 504 of file FieldLayout.h.

References initialize().

Here is the call graph for this function:

◆ FieldLayout() [7/19]

template<unsigned Dim>
FieldLayout< Dim >::FieldLayout ( const Index & i1,
const Index & i2,
const Index & i3,
const Index & i4,
const Index & i5,
e_dim_tag p1 = PARALLEL,
e_dim_tag p2 = PARALLEL,
e_dim_tag p3 = PARALLEL,
e_dim_tag p4 = PARALLEL,
e_dim_tag p5 = PARALLEL,
int vnodes = -1 )
inline

Definition at line 515 of file FieldLayout.h.

References initialize().

Here is the call graph for this function:

◆ FieldLayout() [8/19]

template<unsigned Dim>
FieldLayout< Dim >::FieldLayout ( const Index & i1,
const Index & i2,
const Index & i3,
const Index & i4,
const Index & i5,
const Index & i6,
e_dim_tag p1 = PARALLEL,
e_dim_tag p2 = PARALLEL,
e_dim_tag p3 = PARALLEL,
e_dim_tag p4 = PARALLEL,
e_dim_tag p5 = PARALLEL,
e_dim_tag p6 = PARALLEL,
int vnodes = -1 )
inline

Definition at line 527 of file FieldLayout.h.

References initialize().

Here is the call graph for this function:

◆ FieldLayout() [9/19]

template<unsigned Dim>
FieldLayout< Dim >::FieldLayout ( const Index & i1,
e_dim_tag p1,
unsigned vnodes1,
bool recurse = false,
int vnodes = -1 )
inline

Definition at line 546 of file FieldLayout.h.

References endl(), ERRORMSG, and initialize().

Here is the call graph for this function:

◆ FieldLayout() [10/19]

template<unsigned Dim>
FieldLayout< Dim >::FieldLayout ( const Index & i1,
const Index & i2,
e_dim_tag p1,
e_dim_tag p2,
unsigned vnodes1,
unsigned vnodes2,
bool recurse = false,
int vnodes = -1 )
inline

Definition at line 565 of file FieldLayout.h.

References endl(), ERRORMSG, and initialize().

Here is the call graph for this function:

◆ FieldLayout() [11/19]

template<unsigned Dim>
FieldLayout< Dim >::FieldLayout ( const Index & i1,
const Index & i2,
const Index & i3,
e_dim_tag p1,
e_dim_tag p2,
e_dim_tag p3,
unsigned vnodes1,
unsigned vnodes2,
unsigned vnodes3,
bool recurse = false,
int vnodes = -1 )
inline

Definition at line 584 of file FieldLayout.h.

References endl(), ERRORMSG, and initialize().

Here is the call graph for this function:

◆ FieldLayout() [12/19]

template<unsigned Dim>
FieldLayout< Dim >::FieldLayout ( const Index & i1,
const Index & i2,
const Index & i3,
const Index & i4,
e_dim_tag p1,
e_dim_tag p2,
e_dim_tag p3,
e_dim_tag p4,
unsigned vnodes1,
unsigned vnodes2,
unsigned vnodes3,
unsigned vnodes4,
bool recurse = false,
int vnodes = -1 )
inline

Definition at line 606 of file FieldLayout.h.

References endl(), ERRORMSG, and initialize().

Here is the call graph for this function:

◆ FieldLayout() [13/19]

template<unsigned Dim>
FieldLayout< Dim >::FieldLayout ( const Index & i1,
const Index & i2,
const Index & i3,
const Index & i4,
const Index & i5,
e_dim_tag p1,
e_dim_tag p2,
e_dim_tag p3,
e_dim_tag p4,
e_dim_tag p5,
unsigned vnodes1,
unsigned vnodes2,
unsigned vnodes3,
unsigned vnodes4,
unsigned vnodes5,
bool recurse = false,
int vnodes = -1 )
inline

Definition at line 630 of file FieldLayout.h.

References endl(), ERRORMSG, and initialize().

Here is the call graph for this function:

◆ FieldLayout() [14/19]

template<unsigned Dim>
FieldLayout< Dim >::FieldLayout ( const Index & i1,
const Index & i2,
const Index & i3,
const Index & i4,
const Index & i5,
const Index & i6,
e_dim_tag p1,
e_dim_tag p2,
e_dim_tag p3,
e_dim_tag p4,
e_dim_tag p5,
e_dim_tag p6,
unsigned vnodes1,
unsigned vnodes2,
unsigned vnodes3,
unsigned vnodes4,
unsigned vnodes5,
unsigned vnodes6,
bool recurse = false,
int vnodes = -1 )
inline

Definition at line 657 of file FieldLayout.h.

References endl(), ERRORMSG, and initialize().

Here is the call graph for this function:

◆ FieldLayout() [15/19]

template<unsigned Dim>
FieldLayout< Dim >::FieldLayout ( const NDIndex< Dim > & domain,
e_dim_tag * p = 0,
int vnodes = -1 )
inline

Definition at line 172 of file FieldLayout.h.

◆ FieldLayout() [16/19]

template<unsigned Dim>
FieldLayout< Dim >::FieldLayout ( const NDIndex< Dim > & domain,
e_dim_tag * p,
unsigned * vnodesPerDirection,
bool recurse = false,
int vnodes = -1 )
inline

Definition at line 191 of file FieldLayout.h.

◆ FieldLayout() [17/19]

template<unsigned Dim>
FieldLayout< Dim >::FieldLayout ( const NDIndex< Dim > & Domain,
const NDIndex< Dim > * begin,
const NDIndex< Dim > * end )

Definition at line 933 of file FieldLayout.hpp.

References calcWidths(), IpplInfo::Comm, COMM_ANY_NODE, Dim, Domain, F_REPARTITION_BCAST_TAG, F_TAG_CYCLE, gc0(), Message::get(), Unique::get(), NDIndex< Dim >::getMessage(), DomainMap< Key, T, Touches, Contains, Split >::insert(), Local_ac, PARALLEL, PAssert, Message::put(), putMessage(), Remotes_ac, RequestedLayout, NDIndex< Dim >::size(), and vnodesPerDirection_m.

Here is the call graph for this function:

◆ FieldLayout() [18/19]

template<unsigned Dim>
FieldLayout< Dim >::FieldLayout ( const NDIndex< Dim > & Domain,
const Vnode< Dim > * begin,
const Vnode< Dim > * end )

◆ FieldLayout() [19/19]

template<unsigned Dim>
FieldLayout< Dim >::FieldLayout ( const NDIndex< Dim > & Domain,
const NDIndex< Dim > * dombegin,
const NDIndex< Dim > * domend,
const int * nbegin,
const int * nend )
inline

Definition at line 684 of file FieldLayout.h.

References Domain, and initialize().

Here is the call graph for this function:

◆ ~FieldLayout()

template<unsigned Dim>
FieldLayout< Dim >::~FieldLayout ( )
virtual

Definition at line 90 of file FieldLayout.hpp.

References vnodesPerDirection_m.

Member Function Documentation

◆ begin_if()

template<unsigned Dim>
iterator_if FieldLayout< Dim >::begin_if ( )
inline

Definition at line 379 of file FieldLayout.h.

Referenced by Repartition(), and Repartition().

◆ begin_iv() [1/2]

◆ begin_iv() [2/2]

template<unsigned Dim>
FieldLayout< Dim >::const_iterator_iv FieldLayout< Dim >::begin_iv ( ) const
inline

Definition at line 723 of file FieldLayout.h.

References Local_ac.

◆ begin_rdv()

template<unsigned Dim>
FieldLayout< Dim >::iterator_dv FieldLayout< Dim >::begin_rdv ( const GuardCellSizes< Dim > & gc = gc0())
inline

◆ begin_rgdv()

template<unsigned Dim>
FieldLayout< Dim >::iterator_gdv FieldLayout< Dim >::begin_rgdv ( )
inline

Definition at line 744 of file FieldLayout.h.

References Remotes_ac.

◆ begin_user()

UserList::iterator_user UserList::begin_user ( )
inherited

◆ calcWidths()

template<unsigned Dim>
void FieldLayout< Dim >::calcWidths ( )
private

Definition at line 1513 of file FieldLayout.hpp.

References DomainMap< Key, T, Touches, Contains, Split >::begin(), begin_iv(), Dim, DomainMap< Key, T, Touches, Contains, Split >::end(), end_iv(), gc0(), getDomain(), MinWidth, and Remotes_ac.

Referenced by FieldLayout(), FieldLayout(), Repartition(), Repartition(), setup(), and setup().

Here is the call graph for this function:

◆ checkin()

template<unsigned Dim>
void FieldLayout< Dim >::checkin ( FieldLayoutUser & f,
const GuardCellSizes< Dim > & gc = gc0() )

Definition at line 1554 of file FieldLayout.hpp.

References UserList::checkinUser(), new_gc_layout(), and Remotes_ac.

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

Here is the call graph for this function:

◆ checkinUser()

UserList::ID_t UserList::checkinUser ( User & user)
virtualinherited

Definition at line 109 of file UserList.cpp.

References User::get_Id(), haveUser(), userlist, and userlistID.

Referenced by FieldLayout< Dim >::checkin(), Mesh< Dim >::checkin(), and RegionLayout< T, Dim, Mesh >::checkin().

Here is the call graph for this function:

◆ checkout()

template<unsigned Dim>
void FieldLayout< Dim >::checkout ( FieldLayoutUser & f)

Definition at line 1571 of file FieldLayout.hpp.

References UserList::checkoutUser().

Here is the call graph for this function:

◆ checkoutUser() [1/2]

void UserList::checkoutUser ( const User & user,
bool informuser = false )
virtualinherited

Definition at line 138 of file UserList.cpp.

References checkoutUser(), and User::get_Id().

Here is the call graph for this function:

◆ checkoutUser() [2/2]

void UserList::checkoutUser ( Key key,
bool informuser = false )
virtualinherited

Definition at line 124 of file UserList.cpp.

References end_user(), and userlist.

Referenced by FieldLayout< Dim >::checkout(), Mesh< Dim >::checkout(), RegionLayout< T, Dim, Mesh >::checkout(), and checkoutUser().

Here is the call graph for this function:

◆ end_if()

template<unsigned Dim>
iterator_if FieldLayout< Dim >::end_if ( )
inline

Definition at line 380 of file FieldLayout.h.

Referenced by Repartition(), and Repartition().

◆ end_iv() [1/2]

◆ end_iv() [2/2]

template<unsigned Dim>
FieldLayout< Dim >::const_iterator_iv FieldLayout< Dim >::end_iv ( ) const
inline

Definition at line 730 of file FieldLayout.h.

References Local_ac.

◆ end_rdv()

template<unsigned Dim>
FieldLayout< Dim >::iterator_dv FieldLayout< Dim >::end_rdv ( const GuardCellSizes< Dim > & gc = gc0())
inline

◆ end_rgdv()

template<unsigned Dim>
FieldLayout< Dim >::iterator_gdv FieldLayout< Dim >::end_rgdv ( )
inline

Definition at line 751 of file FieldLayout.h.

References Remotes_ac.

◆ end_user()

◆ fitsGuardCells()

template<unsigned Dim>
bool FieldLayout< Dim >::fitsGuardCells ( const GuardCellSizes< Dim > & gc) const
inline

Definition at line 387 of file FieldLayout.h.

◆ gc0()

template<unsigned Dim>
GuardCellSizes< Dim > FieldLayout< Dim >::gc0 ( )
inlinestaticprivate

Definition at line 84 of file FieldLayout.h.

Referenced by calcWidths(), FieldLayout(), FieldLayout(), new_gc_layout(), setup(), setup(), and write().

◆ get_Id()

template<unsigned Dim>
UserList::ID_t FieldLayout< Dim >::get_Id ( ) const
inline

Definition at line 417 of file FieldLayout.h.

◆ getDistribution()

template<unsigned Dim>
e_dim_tag FieldLayout< Dim >::getDistribution ( unsigned int d) const
inline

Definition at line 396 of file FieldLayout.h.

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

◆ getDomain()

◆ getLocalNDIndex()

template<unsigned Dim>
NDIndex< Dim > FieldLayout< Dim >::getLocalNDIndex ( )

Definition at line 1579 of file FieldLayout.hpp.

References begin_iv(), end_iv(), Vnode< Dim >::getDomain(), Vnode< Dim >::getNode(), and IpplInfo::myNode().

Referenced by H5PartWrapperForPC::writeStepData(), and H5PartWrapperForPT::writeStepData().

Here is the call graph for this function:

◆ getNumUsers()

UserList::size_type_user UserList::getNumUsers ( ) const
inherited

Definition at line 47 of file UserList.cpp.

References userlist.

Referenced by FieldLayout< Dim >::read(), FieldLayout< 1U >::size_if(), and Mesh< Dim >::size_if().

◆ getRequestedDistribution()

template<unsigned Dim>
e_dim_tag FieldLayout< Dim >::getRequestedDistribution ( unsigned int d) const
inline

Definition at line 405 of file FieldLayout.h.

◆ getUser()

User & UserList::getUser ( Key key)
inherited

Definition at line 68 of file UserList.cpp.

◆ getUserListID()

◆ getVnodesPerDirection()

template<unsigned Dim>
unsigned FieldLayout< Dim >::getVnodesPerDirection ( unsigned dir)

Definition at line 890 of file FieldLayout.hpp.

References PAssert, and vnodesPerDirection_m.

◆ haveUser()

bool UserList::haveUser ( Key key) const
inherited

Definition at line 61 of file UserList.cpp.

References userlist.

Referenced by checkinUser().

◆ initialize() [1/15]

template<unsigned Dim>
void FieldLayout< Dim >::initialize ( const Index & i1,
const Index & i2,
const Index & i3,
const Index & i4,
const Index & i5,
const Index & i6,
e_dim_tag p1,
e_dim_tag p2,
e_dim_tag p3,
e_dim_tag p4,
e_dim_tag p5,
e_dim_tag p6,
unsigned vnodes1,
unsigned vnodes2,
unsigned vnodes3,
unsigned vnodes4,
unsigned vnodes5,
unsigned vnodes6,
bool recurse = false,
int vnodes = -1 )

Definition at line 389 of file FieldLayout.hpp.

References Dim, and PInsist.

◆ initialize() [2/15]

template<unsigned Dim>
void FieldLayout< Dim >::initialize ( const Index & i1,
const Index & i2,
const Index & i3,
const Index & i4,
const Index & i5,
const Index & i6,
e_dim_tag p1 = PARALLEL,
e_dim_tag p2 = PARALLEL,
e_dim_tag p3 = PARALLEL,
e_dim_tag p4 = PARALLEL,
e_dim_tag p5 = PARALLEL,
e_dim_tag p6 = PARALLEL,
int vnodes = -1 )

Definition at line 213 of file FieldLayout.hpp.

References Dim, and PInsist.

◆ initialize() [3/15]

template<unsigned Dim>
void FieldLayout< Dim >::initialize ( const Index & i1,
const Index & i2,
const Index & i3,
const Index & i4,
const Index & i5,
e_dim_tag p1,
e_dim_tag p2,
e_dim_tag p3,
e_dim_tag p4,
e_dim_tag p5,
unsigned vnodes1,
unsigned vnodes2,
unsigned vnodes3,
unsigned vnodes4,
unsigned vnodes5,
bool recurse = false,
int vnodes = -1 )

Definition at line 356 of file FieldLayout.hpp.

References Dim, PInsist, and setup().

Here is the call graph for this function:

◆ initialize() [4/15]

template<unsigned Dim>
void FieldLayout< Dim >::initialize ( const Index & i1,
const Index & i2,
const Index & i3,
const Index & i4,
const Index & i5,
e_dim_tag p1 = PARALLEL,
e_dim_tag p2 = PARALLEL,
e_dim_tag p3 = PARALLEL,
e_dim_tag p4 = PARALLEL,
e_dim_tag p5 = PARALLEL,
int vnodes = -1 )

Definition at line 189 of file FieldLayout.hpp.

References Dim, PInsist, and setup().

Here is the call graph for this function:

◆ initialize() [5/15]

template<unsigned Dim>
void FieldLayout< Dim >::initialize ( const Index & i1,
const Index & i2,
const Index & i3,
const Index & i4,
e_dim_tag p1,
e_dim_tag p2,
e_dim_tag p3,
e_dim_tag p4,
unsigned vnodes1,
unsigned vnodes2,
unsigned vnodes3,
unsigned vnodes4,
bool recurse = false,
int vnodes = -1 )

Definition at line 327 of file FieldLayout.hpp.

References Dim, and PInsist.

◆ initialize() [6/15]

template<unsigned Dim>
void FieldLayout< Dim >::initialize ( const Index & i1,
const Index & i2,
const Index & i3,
const Index & i4,
e_dim_tag p1 = PARALLEL,
e_dim_tag p2 = PARALLEL,
e_dim_tag p3 = PARALLEL,
e_dim_tag p4 = PARALLEL,
int vnodes = -1 )

Definition at line 166 of file FieldLayout.hpp.

References Dim, PInsist, and setup().

Here is the call graph for this function:

◆ initialize() [7/15]

template<unsigned Dim>
void FieldLayout< Dim >::initialize ( const Index & i1,
const Index & i2,
const Index & i3,
e_dim_tag p1,
e_dim_tag p2,
e_dim_tag p3,
unsigned vnodes1,
unsigned vnodes2,
unsigned vnodes3,
bool recurse = false,
int vnodes = -1 )

Definition at line 303 of file FieldLayout.hpp.

◆ initialize() [8/15]

template<unsigned Dim>
void FieldLayout< Dim >::initialize ( const Index & i1,
const Index & i2,
const Index & i3,
e_dim_tag p1 = PARALLEL,
e_dim_tag p2 = PARALLEL,
e_dim_tag p3 = PARALLEL,
int vnodes = -1 )

Definition at line 148 of file FieldLayout.hpp.

References Dim, PInsist, and setup().

Here is the call graph for this function:

◆ initialize() [9/15]

template<unsigned Dim>
void FieldLayout< Dim >::initialize ( const Index & i1,
const Index & i2,
e_dim_tag p1,
e_dim_tag p2,
unsigned vnodes1,
unsigned vnodes2,
bool recurse = false,
int vnodes = -1 )

Definition at line 283 of file FieldLayout.hpp.

◆ initialize() [10/15]

template<unsigned Dim>
void FieldLayout< Dim >::initialize ( const Index & i1,
const Index & i2,
e_dim_tag p1 = PARALLEL,
e_dim_tag p2 = PARALLEL,
int vnodes = -1 )

Definition at line 131 of file FieldLayout.hpp.

References Dim, PInsist, and setup().

Here is the call graph for this function:

◆ initialize() [11/15]

template<unsigned Dim>
void FieldLayout< Dim >::initialize ( const Index & i1,
e_dim_tag p1,
unsigned vnodes1,
bool recurse = false,
int vnodes = -1 )

Definition at line 270 of file FieldLayout.hpp.

◆ initialize() [12/15]

template<unsigned Dim>
void FieldLayout< Dim >::initialize ( const Index & i1,
e_dim_tag p1 = PARALLEL,
int vnodes = -1 )

◆ initialize() [13/15]

template<unsigned Dim>
void FieldLayout< Dim >::initialize ( const NDIndex< Dim > & Domain,
const NDIndex< Dim > * dombegin,
const NDIndex< Dim > * domend,
const int * nbegin,
const int * nend )

Definition at line 436 of file FieldLayout.hpp.

References Domain, and PInsist.

◆ initialize() [14/15]

template<unsigned Dim>
void FieldLayout< Dim >::initialize ( const NDIndex< Dim > & domain,
e_dim_tag * p,
unsigned * vnodesPerDirection,
bool recurse = false,
int vnodes = -1 )

Definition at line 247 of file FieldLayout.hpp.

◆ initialize() [15/15]

template<unsigned Dim>
void FieldLayout< Dim >::initialize ( const NDIndex< Dim > & domain,
e_dim_tag * p = 0,
int vnodes = -1 )

Definition at line 109 of file FieldLayout.hpp.

References setup().

Here is the call graph for this function:

◆ new_gc_layout()

template<unsigned Dim>
void FieldLayout< Dim >::new_gc_layout ( const GuardCellSizes< Dim > & gc)
private

Definition at line 906 of file FieldLayout.hpp.

References AddGuardCells(), DomainMap< Key, T, Touches, Contains, Split >::begin(), Domain, DomainMap< Key, T, Touches, Contains, Split >::end(), gc0(), DomainMap< Key, T, Touches, Contains, Split >::insert(), and Remotes_ac.

Referenced by checkin().

Here is the call graph for this function:

◆ numVnodes()

template<unsigned Dim>
int FieldLayout< Dim >::numVnodes ( void ) const
inline

Definition at line 353 of file FieldLayout.h.

Referenced by write(), and write().

◆ operator==()

template<unsigned Dim>
template<unsigned Dim2>
bool FieldLayout< Dim >::operator== ( const FieldLayout< Dim2 > & x) const
inline

Definition at line 336 of file FieldLayout.h.

◆ read()

template<unsigned Dim>
bool FieldLayout< Dim >::read ( const char * filename)

Definition at line 1259 of file FieldLayout.hpp.

References DiscMeta::begin(), IpplInfo::Comm, Dim, Domain, DiscMeta::end(), endl(), ERRORMSG, F_LAYOUT_IO_TAG, F_TAG_CYCLE, Message::get(), Message::get_iter(), Vnode< Dim >::getNode(), IpplInfo::getNodes(), UserList::getNumUsers(), IpplInfo::myNode(), PAssert, Message::put(), Repartition(), and vnodesPerDirection_m.

Referenced by FieldLayout().

Here is the call graph for this function:

◆ Repartition() [1/3]

template<unsigned Dim>
void FieldLayout< Dim >::Repartition ( const NDIndex< Dim > & domain)
inline

Definition at line 318 of file FieldLayout.h.

Referenced by FieldLayout< 1U >::Repartition().

◆ Repartition() [2/3]

template<unsigned Dim>
void FieldLayout< Dim >::Repartition ( const NDIndex< Dim > * idxBegin,
const NDIndex< Dim > * idxEnd )

Definition at line 1104 of file FieldLayout.hpp.

References begin_if(), calcWidths(), Dim, Domain, end_if(), FieldLayout(), Local_ac, Remotes_ac, FieldLayoutUser::Repartition(), and vnodesPerDirection_m.

Referenced by BinaryRepartition(), and read().

Here is the call graph for this function:

◆ Repartition() [3/3]

template<unsigned Dim>
void FieldLayout< Dim >::Repartition ( const Vnode< Dim > * idxBegin,
const Vnode< Dim > * idxEnd )

Definition at line 1148 of file FieldLayout.hpp.

References begin_if(), calcWidths(), Dim, Domain, end_if(), FieldLayout(), Local_ac, Remotes_ac, FieldLayoutUser::Repartition(), and vnodesPerDirection_m.

Here is the call graph for this function:

◆ setup() [1/2]

template<unsigned Dim>
void FieldLayout< Dim >::setup ( const NDIndex< Dim > & domain,
e_dim_tag * userflags,
int vnodes )
private

Definition at line 523 of file FieldLayout.hpp.

References a, calcWidths(), Dim, Domain, gc0(), Unique::get(), IpplInfo::getNodes(), INFORM_ALL_NODES, DomainMap< Key, T, Touches, Contains, Split >::insert(), Local_ac, IpplInfo::myNode(), PARALLEL, PAssert_EQ, PInsist, Remotes_ac, RequestedLayout, NDIndex< Dim >::size(), NDIndex< Dim >::split(), and vnodesPerDirection_m.

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

Here is the call graph for this function:

◆ setup() [2/2]

template<unsigned Dim>
void FieldLayout< Dim >::setup ( const NDIndex< Dim > & domain,
e_dim_tag * userflags,
unsigned * vnodesPerDirection,
bool recurse,
int vnodes )
private

Definition at line 715 of file FieldLayout.hpp.

References calcWidths(), Dim, Domain, endl(), ERRORMSG, gc0(), Unique::get(), IpplInfo::getNodes(), DomainMap< Key, T, Touches, Contains, Split >::insert(), Local_ac, IpplInfo::myNode(), PARALLEL, PInsist, Remotes_ac, RequestedLayout, SERIAL, vnodeRecursiveBisection(), and vnodesPerDirection_m.

Here is the call graph for this function:

◆ size_if()

template<unsigned Dim>
size_type_if FieldLayout< Dim >::size_if ( ) const
inline

Definition at line 378 of file FieldLayout.h.

Referenced by write().

◆ size_iv()

template<unsigned Dim>
FieldLayout< Dim >::ac_id_vnodes::size_type FieldLayout< Dim >::size_iv ( ) const
inline

Definition at line 702 of file FieldLayout.h.

References Local_ac.

Referenced by FieldLayout< 1U >::numVnodes(), and DiscField< Dim >::write().

◆ size_rdv()

template<unsigned Dim>
FieldLayout< Dim >::ac_domain_vnodes::size_type FieldLayout< Dim >::size_rdv ( const GuardCellSizes< Dim > & gc = gc0()) const
inline

Definition at line 758 of file FieldLayout.h.

References Remotes_ac.

Referenced by FieldLayout< 1U >::numVnodes().

◆ size_rgdv()

template<unsigned Dim>
FieldLayout< Dim >::ac_gc_domain_vnodes::size_type FieldLayout< Dim >::size_rgdv ( ) const
inline

Definition at line 737 of file FieldLayout.h.

References Remotes_ac.

◆ touch_range_rdv()

template<unsigned Dim>
FieldLayout< Dim >::touch_range_dv FieldLayout< Dim >::touch_range_rdv ( const NDIndex< Dim > & domain,
const GuardCellSizes< Dim > & gc = gc0() ) const
inline

Definition at line 780 of file FieldLayout.h.

References Remotes_ac.

Referenced by assign(), CalcIndexedReceive(), IndexedSend(), and DiscField< Dim >::read().

◆ write() [1/2]

template<unsigned Dim>
bool FieldLayout< Dim >::write ( const char * filename)

Definition at line 1186 of file FieldLayout.hpp.

References begin_iv(), begin_rdv(), Dim, Domain, end_iv(), end_rdv(), endl(), ERRORMSG, Vnode< Dim >::getDomain(), Vnode< Dim >::getNode(), IpplInfo::getNodes(), Vnode< Dim >::getVnode(), IpplInfo::myNode(), numVnodes(), and vnodesPerDirection_m.

Referenced by operator<<().

Here is the call graph for this function:

◆ write() [2/2]

template<unsigned Dim>
void FieldLayout< Dim >::write ( std::ostream & out) const

Definition at line 1596 of file FieldLayout.hpp.

References DomainMap< Key, T, Touches, Contains, Split >::begin(), begin_iv(), Dim, Domain, DomainMap< Key, T, Touches, Contains, Split >::end(), end_iv(), gc0(), Local_ac, numVnodes(), Remotes_ac, DomainMap< Key, T, Touches, Contains, Split >::size(), size_if(), and vnodesPerDirection_m.

Here is the call graph for this function:

Member Data Documentation

◆ Domain

template<unsigned Dim>
NDIndex<Dim> FieldLayout< Dim >::Domain
private

◆ Local_ac

template<unsigned Dim>
ac_id_vnodes FieldLayout< Dim >::Local_ac
private

◆ MinWidth

template<unsigned Dim>
unsigned int FieldLayout< Dim >::MinWidth[Dim]
private

Definition at line 448 of file FieldLayout.h.

Referenced by calcWidths().

◆ Remotes_ac

◆ RequestedLayout

template<unsigned Dim>
e_dim_tag FieldLayout< Dim >::RequestedLayout[Dim]
private

Definition at line 449 of file FieldLayout.h.

Referenced by FieldLayout(), FieldLayout(), FieldLayout(), FieldLayout(), setup(), and setup().

◆ userlist

◆ userlistID

ID_t UserList::userlistID
privateinherited

Definition at line 103 of file UserList.h.

Referenced by checkinUser(), getUserListID(), and UserList().

◆ vnodesPerDirection_m

template<unsigned Dim>
unsigned* FieldLayout< Dim >::vnodesPerDirection_m
private

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