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 | Protected Attributes | List of all members
ode::solver::RK Class Reference
Inheritance diagram for ode::solver::RK:
Inheritance graph
[legend]
Collaboration diagram for ode::solver::RK:
Collaboration graph
[legend]

Public Member Functions

 RK (ot::Mesh *pMesh, double pTBegin, double pTEnd, double pTh)
 
virtual void performSingleIteration ()
 
virtual void applyInitialConditions ()
 
virtual void applyBoundaryConditions ()
 
virtual void rkSolve ()
 
void freeMesh ()
 free memeory of the mesh
 

Protected Attributes

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

◆ RK()

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

Constructor initializing minmum required parameters.

Member Function Documentation

◆ applyBoundaryConditions()

virtual void ode::solver::RK::applyBoundaryConditions ( )
inlinevirtual

function to apply boundary conditions.

Reimplemented in ode::solver::RK45Transport, and ode::solver::RK45Maxwell.

◆ applyInitialConditions()

virtual void ode::solver::RK::applyInitialConditions ( )
inlinevirtual

apply intial conditions

Reimplemented in ode::solver::RK45Transport.

◆ performSingleIteration()

virtual void ode::solver::RK::performSingleIteration ( )
inlinevirtual

stet the begin value for time stepper. stet the end value for time stepper. set the current time step set the current time value set the dt value for the solver One time step iteration iteration for RK45 update

Reimplemented in ode::solver::RK45Transport.

Member Data Documentation

◆ m_uiCoarsenOctIDs

std::vector<unsigned int> ode::solver::RK::m_uiCoarsenOctIDs
protected

TO store the coarsened oct IDs

◆ m_uiComm

MPI_Comm ode::solver::RK::m_uiComm
protected

MPI communicator

◆ m_uiCurrentStep

unsigned int ode::solver::RK::m_uiCurrentStep
protected

current step

◆ m_uiCurrentTime

double ode::solver::RK::m_uiCurrentTime
protected

current time value.

◆ m_uiMesh

ot::Mesh* ode::solver::RK::m_uiMesh
protected

pointer for geometric grid (the grid generated by tree construction and balancing)

◆ m_uiNrp

unsigned int ode::solver::RK::m_uiNrp
protected

number of nodes in 1D element.

◆ m_uiOrder

unsigned int ode::solver::RK::m_uiOrder
protected

element (octant) order.

◆ m_uiRefinedOctIDs

std::vector<unsigned int > ode::solver::RK::m_uiRefinedOctIDs
protected

To store the refined oct IDs

◆ m_uiT_h

double ode::solver::RK::m_uiT_h
protected

size of a one time sten

◆ m_uiT_h_prev

double ode::solver::RK::m_uiT_h_prev
protected

size of the previous time step

◆ m_uiTimeBegin

double ode::solver::RK::m_uiTimeBegin
protected

starting time value for simulation

◆ m_uiTimeEnd

double ode::solver::RK::m_uiTimeEnd
protected

Ending time value for simulation

◆ m_uiTimeStepCurrent

double ode::solver::RK::m_uiTimeStepCurrent
protected

current time step

◆ RK45_STAGE_1_COEF

const double ode::solver::RK::RK45_STAGE_1_COEF =16.0/135.0
protected

RK45 stage 1 coefficient

◆ RK45_STAGE_2_COEF

const double ode::solver::RK::RK45_STAGE_2_COEF =0.0
protected

RK45 stage 2 coefficient

◆ RK45_STAGE_3_COEF

const double ode::solver::RK::RK45_STAGE_3_COEF =6656.0/12825.0
protected

RK45 stage 3 coefficient

◆ RK45_STAGE_4_COEF

const double ode::solver::RK::RK45_STAGE_4_COEF =28561.0/56430
protected

RK45 stage 4 coefficient

◆ RK45_STAGE_5_COEF

const double ode::solver::RK::RK45_STAGE_5_COEF =-9.0/50.0
protected

RK45 stage 5 coefficient

◆ RK45_STAGE_6_COEF

const double ode::solver::RK::RK45_STAGE_6_COEF =2.0/55.0
protected

RK45 stage 6 coefficient


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