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
ode::solver::RK45Transport Class Reference
Inheritance diagram for ode::solver::RK45Transport:
Inheritance graph
[legend]
Collaboration diagram for ode::solver::RK45Transport:
Collaboration graph
[legend]

Public Member Functions

 RK45Transport (ot::Mesh *pMesh, double pTBegin, double pTEnd, double pTh)
 Default constructor. More...
 
 ~RK45Transport ()
 
void setParameters (double *b, std::function< double(double, double, double)>g, std::function< double(double, double, double, double)> f, const char *fprefix, double wltTol)
 : set parameters for transport equation More...
 
void setLDImbParameters (double ldTol=0.1, unsigned int sfK=2)
 Used to set the load balancing parameters for the solver. More...
 
void applyInitialConditions ()
 
void performSingleIteration ()
 : Implementation of the base class time step function
 
void applyBoundaryConditions ()
 : Implementation of the base class function to apply boundary conditions.
 
template<typename T >
void applyBoundaryConditions (const double time, T *vec)
 : apply boundary conditions for the each stage of rk45
 
void rkSolve ()
 : starts the rk-45 solver.
 
int storeCheckPoint (const char *fNamePrefix)
 : stores the all the variables that is required to restore the rk45 solver at a given stage. More...
 
int restoreRK45Solver (const char *fNamePrefix, const unsigned int step, const MPI_Comm comm)
 : restore rk45 solver from a given checkpoint. This will overwrite the parameters given in the original constructor More...
 
- Public Member Functions inherited from ode::solver::RK
 RK (ot::Mesh *pMesh, double pTBegin, double pTEnd, double pTh)
 
void freeMesh ()
 free memeory of the mesh
 

Additional Inherited Members

- Protected Attributes inherited from ode::solver::RK
ot::Meshm_uiMesh
 
unsigned int m_uiOrder
 
unsigned int m_uiNrp
 
MPI_Comm m_uiComm
 
double m_uiTimeBegin
 
double m_uiTimeEnd
 
double m_uiT_h
 
double m_uiCurrentTime
 
double m_uiT_h_prev
 
double m_uiTimeStepCurrent
 
unsigned int m_uiCurrentStep
 
const double RK45_STAGE_1_COEF =16.0/135.0
 
const double RK45_STAGE_1_T =1.0
 
const double RK45_STAGE_1_U =1.0
 
const double RK45_STAGE_2_COEF =0.0
 
const double RK45_STAGE_2_T =(1.0/4.0)
 
const double RK45_STAGE_2_U =(1.0/4.0)
 
const double RK45_STAGE_3_COEF =6656.0/12825.0
 
const double RK45_STAGE_3_T =(3.0/8.0)
 
const double RK45_STAGE_3_U1 =(3.0/32.0)
 
const double RK45_STAGE_3_U2 =(9.0/32.0)
 
const double RK45_STAGE_4_COEF =28561.0/56430
 
const double RK45_STAGE_4_T =(12.0/13.0)
 
const double RK45_STAGE_4_U1 =(1932.0/2197.0)
 
const double RK45_STAGE_4_U2 =(-7200.0/2197.0)
 
const double RK45_STAGE_4_U3 =(7296.0/2197.0)
 
const double RK45_STAGE_5_COEF =-9.0/50.0
 
const double RK45_STAGE_5_T =1.0
 
const double RK45_STAGE_5_U1 =(439.0/216.0)
 
const double RK45_STAGE_5_U2 =(-8.0)
 
const double RK45_STAGE_5_U3 =(3680.0/513.0)
 
const double RK45_STAGE_5_U4 =(-845.0/4104.0)
 
const double RK45_STAGE_6_COEF =2.0/55.0
 
const double RK45_STAGE_6_T =0.5
 
const double RK45_STAGE_6_U1 =(-8.0/27.0)
 
const double RK45_STAGE_6_U2 =(2.0)
 
const double RK45_STAGE_6_U3 =(-3544.0/2565.0)
 
const double RK45_STAGE_6_U4 =(1859.0/4104.0)
 
const double RK45_STAGE_6_U5 =(-11.0/40.0)
 
std::vector< unsigned int > m_uiRefinedOctIDs
 
std::vector< unsigned int > m_uiCoarsenOctIDs
 

Constructor & Destructor Documentation

◆ RK45Transport()

ode::solver::RK45Transport::RK45Transport ( ot::Mesh pMesh,
double  pTBegin,
double  pTEnd,
double  pTh 
)

Default constructor.

Parameters
[in]pMeshmesh that we will use to solve transport equation.
[in]pTBeginbegin time of time step.
[in]pTEndend time of time step.

◆ ~RK45Transport()

ode::solver::RK45Transport::~RK45Transport ( )

: Destructor to release the memory for the allocated variables

Member Function Documentation

◆ applyInitialConditions()

void ode::solver::RK45Transport::applyInitialConditions ( )
virtual

apply intial conditions

Reimplemented from ode::solver::RK.

◆ restoreRK45Solver()

int ode::solver::RK45Transport::restoreRK45Solver ( const char *  fNamePrefix,
const unsigned int  step,
const MPI_Comm  comm 
)

: restore rk45 solver from a given checkpoint. This will overwrite the parameters given in the original constructor

Parameters
[in]

◆ setLDImbParameters()

void ode::solver::RK45Transport::setLDImbParameters ( double  ldTol = 0.1,
unsigned int  sfK = 2 
)

Used to set the load balancing parameters for the solver.

Parameters
[in]ldTolload imbalance toelrance
[in]sfKsplitter fix value

◆ setParameters()

void ode::solver::RK45Transport::setParameters ( double *  b,
std::function< double(double, double, double)>  g,
std::function< double(double, double, double, double)>  f,
const char *  fprefix,
double  wltTol 
)

: set parameters for transport equation

Parameters
[in]constantvector b as given in transport equation. This should be an array size of 3.
[in]ginitial value when t=pTBegin.

◆ storeCheckPoint()

int ode::solver::RK45Transport::storeCheckPoint ( const char *  fNamePrefix)

: stores the all the variables that is required to restore the rk45 solver at a given stage.

Parameters
[in]fNamePrefixcheckpoint file pre-fix name.

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