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
RefElement Class Reference

Public Member Functions

 RefElement ()
 
 RefElement (unsigned int dim, unsigned int order)
 
int getOrder () const
 
int getDim () const
 
int get1DNumInterpolationPoints ()
 
const double * getIMChild0 () const
 
const double * getIMChild1 () const
 
const double * getIMTChild0 () const
 
const double * getIMTChild1 () const
 
const double * getQ1d () const
 
const double * getQT1d () const
 
const double * getDg1d () const
 
const double * getDgT1d () const
 
const double * getDr1d () const
 
const double * getFr1D () const
 
double * getImVec1 ()
 
double * getImVec2 ()
 
const double * getWgq () const
 
const double * getWgll () const
 
const double getElementSz () const
 
void I3D_Parent2Child (const double *in, double *out, unsigned int childNum) const
 This is computed in way that 3d coordinates changes in the order of z, y, x Which means first we need to fill all the z values in plane(x=0,y=0) then all the z values in plane (x=0,y=0+h) and so forth. More...
 
void I3D_Parent2Child_FD (const double *in, double *out, unsigned int pw=3) const
 performs parent to child interpolation in FD stencil. More...
 
void I3D_Child2Parent (const double *in, double *out, unsigned int childNum) const
 This is computed in way that 3d coordinates changes in the order of z, y, x Which means first we need to fill all the z values in plane(x=0,y=0) then all the z values in plane (x=0,y=0+h) and so forth. More...
 
void I2D_Parent2Child (const double *in, double *out, unsigned int childNum) const
 
void I2D_Child2Parent (const double *in, double *out, unsigned int childNum) const
 
void I1D_Parent2Child (const double *in, double *out, unsigned int childNUm) const
 
void I1D_Child2Parent (const double *in, double *out, unsigned int childNUm) const
 
void generateHeaderFile (char *fName)
 
void computeFilterOp (unsigned int nc, unsigned int s)
 

Constructor & Destructor Documentation

◆ RefElement()

RefElement::RefElement ( )
Author
Milinda Fernando
Hari Sundar Contains data structures to store the reference element information.

: Based of HOMG code written in matlab.

Member Function Documentation

◆ I1D_Child2Parent()

void RefElement::I1D_Child2Parent ( const double *  in,
double *  out,
unsigned int  childNUm 
) const
inline
Parameters
[in]ininput function values
[in]childNumMorton ID of the child number
[out]childto parent contribution values. (used in FEM integral ivaluation)

◆ I1D_Parent2Child()

void RefElement::I1D_Parent2Child ( const double *  in,
double *  out,
unsigned int  childNUm 
) const
inline
Parameters
[in]ininput function values
[in]childNumMorton ID of the child number
[out]interpolatedvalues from parent to child.

◆ I2D_Child2Parent()

void RefElement::I2D_Child2Parent ( const double *  in,
double *  out,
unsigned int  childNum 
) const
inline
Parameters
[in]ininput function values.
[in]childNumMorton ID of the child number where the interpolation is needed.
[out]outchild to parent contribution values. (used in FEM integral ivaluation)

◆ I2D_Parent2Child()

void RefElement::I2D_Parent2Child ( const double *  in,
double *  out,
unsigned int  childNum 
) const
inline
Parameters
[in]ininput function values.
[in]childNumMorton ID of the child number where the interpolation is needed.
[out]outinterpolated values.

◆ I3D_Child2Parent()

void RefElement::I3D_Child2Parent ( const double *  in,
double *  out,
unsigned int  childNum 
) const
inline

This is computed in way that 3d coordinates changes in the order of z, y, x Which means first we need to fill all the z values in plane(x=0,y=0) then all the z values in plane (x=0,y=0+h) and so forth.

Parameters
[in]ininput function values.
[in]childNumMorton ID of the child number where the contribution needed to be computed.
[out]outchild to parent contribution values. (used in FEM integral ivaluation)

◆ I3D_Parent2Child()

void RefElement::I3D_Parent2Child ( const double *  in,
double *  out,
unsigned int  childNum 
) const
inline

This is computed in way that 3d coordinates changes in the order of z, y, x Which means first we need to fill all the z values in plane(x=0,y=0) then all the z values in plane (x=0,y=0+h) and so forth.

Parameters
[in]ininput function values.
[in]childNumMorton ID of the child number where the interpolation is needed.
[out]outinterpolated values.

◆ I3D_Parent2Child_FD()

void RefElement::I3D_Parent2Child_FD ( const double *  in,
double *  out,
unsigned int  pw = 3 
) const
inline

performs parent to child interpolation in FD stencil.

Parameters
in: input values of the parent. with 3 point padding on each x,y,z direction
outvalues of the child.
cnumchild number
pwdithpadding width

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