1 #ifndef _TEMPLATEFOREST_H_ 2 #define _TEMPLATEFOREST_H_ 17 using seed = std::unordered_map<morton<M>,
uint>;
21 template <
size_t N,
typename Nvalue,
size_t M,
typename Mvalue,
class T >
44 struct Zoltan_Struct *
zz=
nullptr;
63 TemplateForest<N, Nvalue, M, Mvalue, T>(
int argcs,
char *pArgs[], T &proc,
real *length,
real *coords,
uint nx,
uint ny,
uint nz );
130 void checkNbrsOfNbrsConsistency();
131 bool checkWithNbrs(
bool *sendbuf,
bool *recvbuf);
132 void rcvrMessageSize(
int *sendbuf,
int *recvbuf);
133 void constructCommWeak(
const vector<int>Nbr);
140 template <
size_t N1,
typename Nvalue1,
size_t M1,
typename Mvalue1,
class T1 >
std::list< morton< M > > bitlist
Definition: definitions.h:99
void refineEachTree(uint nlevel)
Definition: templateForest.cpp:328
MPI_Request * request
Definition: templateForest.h:47
uint npx
Definition: templateForest.h:27
void flipAll(morton< N > &key, uint *mylevel, uint *direction)
Definition: templateForest.cpp:600
void getListEachTree()
Definition: templateForest.cpp:515
This Class is specifically designed for weak analysis to operate on the fulltree topology in this cla...
Definition: tree.h:182
void nonCollectiveNbrComm()
Definition: templateForest.cpp:5183
void checkZoltanPartConsistency(Tree< M, Mvalue > &proc)
Definition: templateForest.cpp:5922
void constructElementKeyForRcvdMessage(const morton< N+M > &key, const uint &seedlevel, morton< N > &elementkey)
Definition: templateForest.cpp:766
void findSeedLevelForRcvdMessage(const morton< N+M > &key, uint *mylevel, Tree< M, Mvalue > &proc)
Definition: templateForest.cpp:695
void findFlipLevel(morton< N+M > key, uint *mylevel, uint *changedirectionlevel, uint *direction)
Definition: templateForest.cpp:820
Tree< M, real > geom
Definition: templateForest.h:38
void refineForestBalanced(uint nlevel, T &proc)
Definition: templateForest.cpp:4476
void retainFourToOneBalance(Tree< M, uint > &proc)
Definition: templateForest.cpp:5344
real ancestorlength[3]
Definition: templateForest.h:25
void getNbrSeedLevel(morton< N+M > &combinedkey, uint topologylevel, uint *nbrseedleve, Tree< M, Mvalue > &proc)
Definition: templateForest.cpp:984
uint getTotalSize()
Definition: templateForest.cpp:277
void currentDateTime()
Definition: templateForest.cpp:7136
std::vector< morton< N > > bitvector
Definition: definitions.h:102
vector< uint > recvtag
Definition: templateForest.h:41
Zoltan_Out zoltan_out
Definition: templateForest.h:45
struct Zoltan_Struct * zz
Definition: templateForest.h:44
uint npy
Definition: templateForest.h:28
vector< bitset< M+N > > * message
Definition: templateForest.h:43
std::list< T > treeList
Definition: templateForest.h:14
void recoverAllZeroSingularity(morton< N+M > &key, const uint &combinedlevel)
Definition: templateForest.cpp:653
bool isInSeed(morton< M > &key, uint *counter)
Definition: templateForest.cpp:575
void encodeGeometry()
Definition: templateForest.cpp:291
void fourToOneBalance(T &proc)
Definition: templateForest.cpp:1412
void checkGraphConsistency()
Definition: templateForest.cpp:6166
void pushToDerefineEachTree(uint nlevel, Tree< M, uint > &proc)
Definition: templateForest.cpp:5327
void assignSeeds(real *length, T &proc)
Definition: templateForest.cpp:242
void removeAllZeroSingularity(morton< N+M > &key, const uint &combinedlevel)
Definition: templateForest.cpp:778
~TemplateForest()
Definition: templateForest.cpp:193
Template Class designed to unify tree and full_tree topologies.
Definition: templateForest.h:22
MpiCom Com
Definition: templateForest.h:32
void appendToMessage(T &proc, morton< M > &seednbrkey, morton< M+N > &combinedkey, const uint combinedlevel)
Definition: templateForest.cpp:7014
void constructSeedKeyForRcvdMessage(const morton< N+M > &key, const uint &seedlevel, morton< M > &seedkey)
Definition: templateForest.cpp:755
uint forestsize()
Definition: templateForest.cpp:1042
void createCommGraph(uint Nnbr)
Definition: templateForest.cpp:5972
void combinedLevel(const morton< N+M > &key, uint *level)
Definition: templateForest.cpp:663
treeList< Tree< N, Nvalue > > trees
Definition: templateForest.h:34
void construct(int argcs, char *pArgs[], T &proc, real *length, real *coords, uint nx, uint ny, uint nz)
Definition: templateForest.cpp:89
void moveGeom(T &proc, real *geom_xyz, uint n, real x[3])
Definition: templateForest.cpp:347
int duplicated
Definition: templateForest.h:33
uint maxseedlevel
Definition: templateForest.h:37
void comPatternConstruct(Tree< M, Mvalue > &proc)
Definition: templateForest.cpp:1282
void createNbrsOfNbrs()
Definition: templateForest.cpp:6091
vector< uint > nbrsOfNbrs
Definition: templateForest.h:42
real ancestorcoords[3]
Definition: templateForest.h:26
vector< uint > destination
Definition: templateForest.h:39
void checkInputParams(int argcs, char *pArgs[])
Definition: templateForest.cpp:165
void flipForNbr(morton< N+M > &key, uint *mylevel, uint *changedirectionlevel, uint *direction)
Definition: templateForest.cpp:856
std::bitset< N > morton
Definition: definitions.h:45
void getTotalMeshSize()
Definition: templateForest.cpp:897
vector< uint > sendtag
Definition: templateForest.h:40
double real
Definition: definitions.h:37
uint findIndexInSeed(T &proc, morton< M > &seedkey)
Definition: templateForest.cpp:6984
unsigned int uint
Definition: definitions.h:38
uint npz
Definition: templateForest.h:29
void getElemNbrs(Tree< M, Mvalue > &proc, const morton< M > key, bitvector< M > &nbr)
Definition: templateForest.cpp:1054
void setMaxProcLevel(const uint refinelevel)
Definition: templateForest.cpp:814
bitlist< M > seeds
Definition: templateForest.h:36
void getMaxSeedsLevel(T &proc)
Definition: templateForest.cpp:796
void assignGeom(T &proc, real *geom_xyz, uint geom_nn)
Definition: templateForest.cpp:390
MPI_Request * request1
Definition: templateForest.h:48
unsigned long long meshSize
Definition: templateForest.h:50
This structure is an interface to store the output from Zoltan.
Definition: typedefs.h:29
Definition: templatePhdf5.h:15
class for embedding data related to the communicator
Definition: communicate.h:10
MPI_Comm graphComm
Definition: templateForest.h:46
std::unordered_map< morton< M >, uint > seed
Definition: forest.h:26
char nameAppendix[80]
Definition: templateForest.h:49
void MPIStartUp()
Definition: templateForest.cpp:7056
void getDirections(morton< N+M > &key, uint combinedlevel, vector< uint > &directions)
Definition: templateForest.cpp:613
void runInfo()
Definition: templateForest.cpp:7149
uint maxProcLevel
Definition: templateForest.h:35