LevelBackwardEuler Class Reference

#include <LevelTGA.H>

Inheritance diagram for LevelBackwardEuler:

Inheritance graph
[legend]

List of all members.


Detailed Description

Implements BackwardEuler algorithm to update solution to heat equation.

The LevelBackwardEuler class implements the Runge-Kutta-based approach to solving the heat equation due to Twizell, Gumel, and Arigu.

Public Member Functions

 LevelBackwardEuler (const Vector< DisjointBoxLayout > &a_grids, const Vector< int > &a_refRat, const ProblemDomain &a_level0Domain, RefCountedPtr< AMRLevelOpFactory< LevelData< FArrayBox > > > &a_opFact, const RefCountedPtr< AMRMultiGrid< LevelData< FArrayBox > > > &a_solver)
 full constructor
virtual ~LevelBackwardEuler ()
 destructor
void computeDiffusion (LevelData< FArrayBox > &a_DiffusiveTerm, LevelData< FArrayBox > &a_phiOld, LevelData< FArrayBox > &a_src, LevelFluxRegister *a_FineFluxRegPtr, LevelFluxRegister *a_crseFluxRegPtr, const LevelData< FArrayBox > *a_crsePhiOldPtr, const LevelData< FArrayBox > *a_crsePhiNewPtr, Real a_oldTime, Real a_crseOldTime, Real a_crseNewTime, Real a_dt, int a_level)
 computes time-centered diffusive term for explicit updating
void updateSoln (LevelData< FArrayBox > &a_phiNew, LevelData< FArrayBox > &a_phiOld, LevelData< FArrayBox > &a_src, LevelFluxRegister *a_fineFluxRegPtr, LevelFluxRegister *a_crseFluxRegPtr, const LevelData< FArrayBox > *a_crsePhiOldPtr, const LevelData< FArrayBox > *a_crsePhiNewPtr, Real a_oldTime, Real a_crseOldTime, Real a_crseNewTime, Real a_dt, int a_level, bool a_zeroPhi=true, int a_fluxStartComponent=0)
 do solve
void setSourceGhostCells (LevelData< FArrayBox > &a_src, const DisjointBoxLayout &a_grids, int a_level)


Constructor & Destructor Documentation

LevelBackwardEuler::LevelBackwardEuler ( const Vector< DisjointBoxLayout > &  a_grids,
const Vector< int > &  a_refRat,
const ProblemDomain a_level0Domain,
RefCountedPtr< AMRLevelOpFactory< LevelData< FArrayBox > > > &  a_opFact,
const RefCountedPtr< AMRMultiGrid< LevelData< FArrayBox > > > &  a_solver 
) [inline]

full constructor

virtual LevelBackwardEuler::~LevelBackwardEuler (  )  [inline, virtual]

destructor


Member Function Documentation

void LevelBackwardEuler::computeDiffusion ( LevelData< FArrayBox > &  a_DiffusiveTerm,
LevelData< FArrayBox > &  a_phiOld,
LevelData< FArrayBox > &  a_src,
LevelFluxRegister a_FineFluxRegPtr,
LevelFluxRegister a_crseFluxRegPtr,
const LevelData< FArrayBox > *  a_crsePhiOldPtr,
const LevelData< FArrayBox > *  a_crsePhiNewPtr,
Real  a_oldTime,
Real  a_crseOldTime,
Real  a_crseNewTime,
Real  a_dt,
int  a_level 
)

computes time-centered diffusive term for explicit updating

compute time-centered L(phi) for use in subsequent update operations. In this case, we do solve for phiNew, then subtract source and old phi back out to get L(phi).

void LevelBackwardEuler::updateSoln ( LevelData< FArrayBox > &  a_phiNew,
LevelData< FArrayBox > &  a_phiOld,
LevelData< FArrayBox > &  a_src,
LevelFluxRegister a_fineFluxRegPtr,
LevelFluxRegister a_crseFluxRegPtr,
const LevelData< FArrayBox > *  a_crsePhiOldPtr,
const LevelData< FArrayBox > *  a_crsePhiNewPtr,
Real  a_oldTime,
Real  a_crseOldTime,
Real  a_crseNewTime,
Real  a_dt,
int  a_level,
bool  a_zeroPhi = true,
int  a_fluxStartComponent = 0 
)

do solve

update phi to a_phiNew

void LevelBackwardEuler::setSourceGhostCells ( LevelData< FArrayBox > &  a_src,
const DisjointBoxLayout a_grids,
int  a_level 
)


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

Generated on Sun Oct 22 03:27:11 2017 for Chombo + EB + MF by  doxygen 1.5.5