22 template <
size_t N,
typename value>
26 using seed = std::unordered_map<morton<M>,
uint>;
28 template <
size_t N,
typename Nvalue,
size_t M,
typename Mvalue>
46 struct Zoltan_Struct *
zz=
nullptr;
57 Forest<N, Nvalue, M, Mvalue>(
real *length,
real *coords,
Tree<M, Mvalue> &proc,
const int fixedlevel,
uint nx,
uint ny,
uint nz );
114 template <
size_t N1,
typename Nvalue1,
size_t M1,
typename Mvalue1>
void getMaxSeedsLevel(Tree< M, Mvalue > &proc)
std::list< morton< M > > bitlist
Definition: definitions.h:99
This Writes out Tree data in hdf5 format in parallel with *.xmf as metadata suitable for paraview and...
Definition: phdf5.h:15
struct Zoltan_Struct * zz
Definition: forest.h:46
void retainFourToOneBalance(Tree< M, uint > &proc)
~Forest()
Definition: forest.h:124
void debugDerefine(Tree< M, Mvalue > &proc)
void assignGeom(Tree< M, Mvalue > &proc, const uint fixedlevel, real *geom_xyz, uint geom_nn)
void fourToOneBalance(Tree< M, uint > &proc)
void refineEachTreeVoxel(uint nlevel)
vector< uint > nbrsOfNbrs
Definition: forest.h:45
void combinedLevel(const morton< N+M > &key, uint *level)
bool isInSeed(morton< M > &key, uint *counter)
void getElemNbrs(Tree< M, Mvalue > &proc, const morton< M > key, bitvector< M > &nbr)
void assignSeeds(real *length, Tree< M, Mvalue > &proc, const int ficedlevel)
void zoltanGeomrepart(Tree< M, Mvalue > &proc, uint setmethod)
void findSeedLevelForRcvdMessage(const morton< N+M > &key, uint *mylevel, Tree< M, Mvalue > &proc)
void recoverAllZeroSingularity(morton< N+M > &key, const uint &combinedlevel)
std::vector< morton< N > > bitvector
Definition: definitions.h:102
void rcvrMessageSize(int *sendbuf, int *recvbuf)
vector< uint > destination
Definition: forest.h:44
uint maxseedlevel
Definition: forest.h:42
void comPatternConstruct(Tree< M, Mvalue > &proc)
void constructSeedKeyForRcvdMessage(const morton< N+M > &key, const uint &seedlevel, morton< M > &seedkey)
bool checkWithNbrs(bool *sendbuf, bool *recvbuf)
void refineEachTree(uint nlevel)
void convertBitsToDouble(morton< N+M > key, double *val)
void debug(Tree< M, Mvalue > &proc)
void removeAllZeroSingularity(morton< N+M > &key, const uint &combinedlevel)
MpiCom Com
Definition: forest.h:39
void moveGeom(Tree< M, Mvalue > &proc, const uint fixedlevel, real *geom_xyz, uint n, real x[3])
MPI_Comm graphComm
Definition: forest.h:48
void pushToDerefineEachTree(uint nlevel, Tree< M, uint > &proc)
void constructElementKeyForRcvdMessage(const morton< N+M > &key, const uint &seedlevel, morton< N > &elementkey)
uint npx
Definition: forest.h:34
std::list< Tree< N, value > > treelist
Definition: forest.h:23
void checkZoltanPartConsistency(Tree< M, Mvalue > &proc)
std::bitset< N > morton
Definition: definitions.h:45
Tree< M, real > geom
Definition: forest.h:43
real ancestorcoords[3]
Definition: forest.h:33
double real
Definition: definitions.h:37
unsigned int uint
Definition: definitions.h:38
template class that is a forest of octrees with semi-structured process topology
Definition: forest.h:29
uint npz
Definition: forest.h:36
Zoltan_Out zoltan_out
Definition: forest.h:47
void refineForestBalanced(uint nlevel, Tree< M, Mvalue > &proc)
real ancestorlength[3]
Definition: forest.h:32
void flipForNbr(morton< N+M > &key, uint *mylevel, uint *changedirectionlevel, uint *direction)
void flipAll(morton< N > &key, uint *mylevel, uint *direction)
void checkGraphConsistency()
This structure is an interface to store the output from Zoltan.
Definition: typedefs.h:29
bitlist< M > seeds
Definition: forest.h:41
class for embedding data related to the communicator
Definition: communicate.h:10
void getDirections(morton< N+M > &key, uint combinedlevel, vector< uint > &directions)
void findFlipLevel(morton< N+M > key, uint *mylevel, uint *changedirectionlevel, uint *direction)
void constructCommWeak(const vector< int >Nbr)
std::unordered_map< morton< M >, uint > seed
Definition: forest.h:26
treelist< N, Nvalue > trees
Definition: forest.h:40
void createCommGraph(uint Nnbr)
uint npy
Definition: forest.h:35
void getNbrSeedLevel(morton< N+M > &combinedkey, uint topologylevel, uint *nbrseedleve, Tree< M, uint > &proc)
void checkNbrsOfNbrsConsistency()
void convertDoubleToBits(morton< N+M > &key, const double val)