53 MPI_Comm m_uiCommActive;
56 MPI_Comm m_uiCommGlobal;
71 std::vector<unsigned int> m_uiSendSMLevelTag;
74 std::vector<unsigned int> m_uiRecvSMLevelTag;
77 unsigned int ** m_uiSendCountByLev;
80 unsigned int ** m_uiRecvCountByLev;
83 unsigned int ** m_uiSendOffsetByLev;
86 unsigned int ** m_uiRecvOffsetByLev;
89 std::vector< std::pair<unsigned int,unsigned int> > m_uiSendNodeRSM;
92 std::vector< std::pair<unsigned int,unsigned int> > m_uiRecvNodeRSM;
100 void compBlockFlags();
103 void computeBlockSM();
129 void zip_to_unzip(T** in, T** out,
bool isGSync=
false,
unsigned int dof=1);
139 void unzip_to_zip(T** in, T** out,
bool isGSync=
false,
unsigned int dof=1);
150 void unzip_sync(T** in,
unsigned int blk ,
unsigned int dof=1);
177 void timestep(
const T** in, T** out, std::function<
void(T,T**,T**)>f_rhs,
const double*a,
const double *b,
const double* c,
unsigned int dof=1);
190 for(
unsigned int v=0;v<dof;v++)
195 for(
unsigned int v=0;v<dof;v++)
196 m_uiOctGrid->
unzip(in[v],out[v]);
204 for(
unsigned int v=0;v<dof;v++)
205 m_uiOctGrid->
zip(in[v],out[v]);
209 for(
unsigned int v=0;v<dof;v++)
221 if(blk< blockLocalBegin || blk>= blockLocalEnd)
235 for(
unsigned int blk = blockLocalBegin; blk<blockLocalEnd ; blk++)
Basic: class for performing non-uniform time stepping. In order to perform non uniform time stepping ...
Definition: nuts.h:24
void unzip_sync_all(T **in, unsigned int dof=1)
: Sync operation accross all the blocks.
Definition: nuts.h:230
void performGhostExchange(std::vector< T > &vec)
Perform the ghost exchange for the vector vec.
void unzip(const T *zippedVec, T *unzippedVec)
Creates the decomposition of adaptive octree variables into blocklist variables that we computed...
A point class.
Definition: point.h:36
NUTS(ot::Mesh *octMesh, unsigned int s, double tb, double te, Point ptMin, Point ptMax, double cfl=0.25)
: constructor
Definition: nuts.cpp:15
unsigned int getElementLocalBegin() const
return the begin location of element local
Definition: mesh.h:1030
void sync_ts()
: sync to the next coarsest time step
void zip(const T *unzippedVec, T *zippedVec)
Performs the compression frrom regular block grid varable list to adaptive representation.
void unzip_sync(T **in, unsigned int blk, unsigned int dof=1)
: We need to perform block level sync operation
Definition: nuts.h:215
~NUTS()
: default destructor
Definition: nuts.cpp:94
void zip_to_unzip(T **in, T **out, bool isGSync=false, unsigned int dof=1)
: converts an zip vector to unzip format.
Definition: nuts.h:185
void timestep(const T **in, T **out, std::function< void(T, T **, T **)>f_rhs, const double *a, const double *b, const double *c, unsigned int dof=1)
: perform single time step
void unzip_to_zip(T **in, T **out, bool isGSync=false, unsigned int dof=1)
: converts the unzip vector to zip vector
Definition: nuts.h:202
unsigned int getElementLocalEnd() const
return the end location of element local
Definition: mesh.h:1032