Dendro  5.01
Dendro in Greek language means tree. The Dendro library is a large scale (262K cores on ORNL's Titan) distributed memory adaptive octree framework. The main goal of Dendro is to perform large scale multiphysics simulations efficeiently in mordern supercomputers. Dendro consists of efficient parallel data structures and algorithms to perform variational ( finite element) methods and finite difference mthods on 2:1 balanced arbitary adaptive octrees which enables the users to perform simulations raning from black holes (binary black hole mergers) to blood flow in human body, where applications ranging from relativity, astrophysics to biomedical engineering.
Public Member Functions | List of all members
ts::NUTS Class Reference

Basic: class for performing non-uniform time stepping. In order to perform non uniform time stepping the octree to block decomposition needed to be completed. We assume that the blocks are setup in the mesh class. More...

#include <nuts.h>

Public Member Functions

 NUTS (ot::Mesh *octMesh, unsigned int s, double tb, double te, Point ptMin, Point ptMax, double cfl=0.25)
 : constructor More...
 
 ~NUTS ()
 : default destructor
 
template<typename T >
void zip_to_unzip (T **in, T **out, bool isGSync=false, unsigned int dof=1)
 : converts an zip vector to unzip format. More...
 
template<typename T >
void unzip_to_zip (T **in, T **out, bool isGSync=false, unsigned int dof=1)
 : converts the unzip vector to zip vector More...
 
template<typename T >
void unzip_sync (T **in, unsigned int blk, unsigned int dof=1)
 : We need to perform block level sync operation More...
 
template<typename T >
void unzip_sync_all (T **in, unsigned int dof=1)
 : Sync operation accross all the blocks. More...
 
void sync_ts ()
 : sync to the next coarsest time step
 
template<typename T >
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 More...
 

Detailed Description

Basic: class for performing non-uniform time stepping. In order to perform non uniform time stepping the octree to block decomposition needed to be completed. We assume that the blocks are setup in the mesh class.

Constructor & Destructor Documentation

◆ NUTS()

ts::NUTS::NUTS ( ot::Mesh octMesh,
unsigned int  s,
double  tb,
double  te,
Point  ptMin,
Point  ptMax,
double  cfl = 0.25 
)

: constructor

Parameters
[in]octMeshoctree mesh
[in]snumber of rk stages.
[in]tbtime begin
[in]tetime end
[in]cflcfl factor

Member Function Documentation

◆ timestep()

template<typename T >
void ts::NUTS::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

Parameters
[in]in: input vector (previous time step)
[out]outoutput vector (next timestep)
[in]f_rhsfunctional to compute the right hand side of the PDE(s)
[in]atime integrator coefficient matrix
[in]bdifferent stage combination coefficients
[in]cdifferent time stage coefficients
[in]dofnumber of degrees of freedoms

◆ unzip_sync()

template<typename T >
void ts::NUTS::unzip_sync ( T **  in,
unsigned int  blk,
unsigned int  dof = 1 
)

: We need to perform block level sync operation

Parameters
[in]ininput vector of multiple vars (unzip version).
[in]blkblock ID, (should be sync on local blocks only. )
[in]dofnumber of variables

◆ unzip_sync_all()

template<typename T >
void ts::NUTS::unzip_sync_all ( T **  in,
unsigned int  dof = 1 
)

: Sync operation accross all the blocks.

Parameters
[in]ininput vector
[in]dofnumber of vars

◆ unzip_to_zip()

template<typename T >
void ts::NUTS::unzip_to_zip ( T **  in,
T **  out,
bool  isGSync = false,
unsigned int  dof = 1 
)

: converts the unzip vector to zip vector

Parameters
[in]ininput unzip vector
[out]outoutput zip vector
[in]isGsync: perform ghost sync after zip operation
[in]dofnumber of degrees of freedoms

◆ zip_to_unzip()

template<typename T >
void ts::NUTS::zip_to_unzip ( T **  in,
T **  out,
bool  isGSync = false,
unsigned int  dof = 1 
)

: converts an zip vector to unzip format.

Parameters
[in]ininput zip vector
[out]out: output unzip vector
[in]isGSynctrue if the ghost sync is performed
[in]dofnumber of degrees of freedoms.

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