Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members

BackwardEulerSolver Class Reference

#include <BackwardEulerSolver.H>

Inheritance diagram for BackwardEulerSolver:

Inheritance graph
[legend]
Collaboration diagram for BackwardEulerSolver:

Collaboration graph
[legend]
List of all members.

Detailed Description

Implements BackwardEuler algorithm to update solution to heat equation.

The BackwardEulerSolver class implements the backward Euler algorithm for solving the heat equation.


Public Member Functions

 BackwardEulerSolver ()
 default constructor

 BackwardEulerSolver (const DisjointBoxLayout &a_levelGrids, const DisjointBoxLayout *a_crseGrids, const ProblemDomain &a_domain, Real a_dxLevel, int a_nRefCrse, const BaseHelmholtzOp *a_helmop, int a_ncomp=1)
 full constructor

virtual ~BackwardEulerSolver ()
 destructor

void define (const DisjointBoxLayout &a_levelGrids, const DisjointBoxLayout *a_crseGrids, const ProblemDomain &a_domain, Real a_dxLevel, int a_nRefCrse, const BaseHelmholtzOp *a_helmop, int a_ncomp=1)
 define statement

void updateSoln (LevelData< FArrayBox > &a_phiNew, LevelData< FArrayBox > &a_phiOld, LevelFluxRegister *a_FineFluxRegPtr, LevelFluxRegister *a_CrseFluxRegPtr, const LevelData< FArrayBox > *a_crsePhiOldPtr, Real crseOldTime, const LevelData< FArrayBox > *a_crsePhiNewPtr, Real crseNewTime, LevelData< FArrayBox > &a_src, Real oldTime, Real dt)
 do solve

void computeDiffusion (LevelData< FArrayBox > &a_DiffusiveTerm, LevelData< FArrayBox > &a_phiOld, LevelFluxRegister *a_FineFluxRegPtr, LevelFluxRegister *a_crseFluxRegPtr, const LevelData< FArrayBox > *a_crsePhiOldPtr, Real crseOldTime, const LevelData< FArrayBox > *a_crsePhiNewPtr, Real crseNewTime, LevelData< FArrayBox > &a_src, Real oldTime, Real dt)
 computes time-centered diffusive term for explicit updating

virtual BaseHeatSolvernew_heatSolver () const
 "virtual constructor"

virtual void setSolverTolerance (Real a_solverTol)
 set solver tolerance

virtual Real solverTolerance () const
 accessor


Protected Attributes

Real m_dx
Real m_solverTol
BaseHelmholtzOpm_helmop
BaseHelmholtzOpm_noBetaOp
LevelHelmholtzSolver m_levelSolver
ProblemDomain m_domain


Constructor & Destructor Documentation

BackwardEulerSolver::BackwardEulerSolver  ) 
 

default constructor

BackwardEulerSolver::BackwardEulerSolver const DisjointBoxLayout a_levelGrids,
const DisjointBoxLayout a_crseGrids,
const ProblemDomain a_domain,
Real  a_dxLevel,
int  a_nRefCrse,
const BaseHelmholtzOp a_helmop,
int  a_ncomp = 1
 

full constructor

Note that the HelholtzOp passed in must already have the diffusion coefficient (nu) set.

virtual BackwardEulerSolver::~BackwardEulerSolver  )  [virtual]
 

destructor


Member Function Documentation

void BackwardEulerSolver::define const DisjointBoxLayout a_levelGrids,
const DisjointBoxLayout a_crseGrids,
const ProblemDomain a_domain,
Real  a_dxLevel,
int  a_nRefCrse,
const BaseHelmholtzOp a_helmop,
int  a_ncomp = 1
[virtual]
 

define statement

Note that the HelholtzOp passed in must already have the diffusion coefficient (nu) set.

Implements BaseHeatSolver.

void BackwardEulerSolver::updateSoln LevelData< FArrayBox > &  a_phiNew,
LevelData< FArrayBox > &  a_phiOld,
LevelFluxRegister a_FineFluxRegPtr,
LevelFluxRegister a_CrseFluxRegPtr,
const LevelData< FArrayBox > *  a_crsePhiOldPtr,
Real  crseOldTime,
const LevelData< FArrayBox > *  a_crsePhiNewPtr,
Real  crseNewTime,
LevelData< FArrayBox > &  a_src,
Real  oldTime,
Real  dt
[virtual]
 

do solve

update phi

Parameters:
a_src  note that a_src isn't const because of C/F bcs

Implements BaseHeatSolver.

void BackwardEulerSolver::computeDiffusion LevelData< FArrayBox > &  a_DiffusiveTerm,
LevelData< FArrayBox > &  a_phiOld,
LevelFluxRegister a_FineFluxRegPtr,
LevelFluxRegister a_crseFluxRegPtr,
const LevelData< FArrayBox > *  a_crsePhiOldPtr,
Real  crseOldTime,
const LevelData< FArrayBox > *  a_crsePhiNewPtr,
Real  crseNewTime,
LevelData< FArrayBox > &  a_src,
Real  oldTime,
Real  dt
[virtual]
 

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).

Implements BaseHeatSolver.

virtual BaseHeatSolver* BackwardEulerSolver::new_heatSolver  )  const [virtual]
 

"virtual constructor"

Implements BaseHeatSolver.

virtual void BackwardEulerSolver::setSolverTolerance Real  a_solverTol  )  [virtual]
 

set solver tolerance

Implements BaseHeatSolver.

virtual Real BackwardEulerSolver::solverTolerance  )  const [virtual]
 

accessor

Implements BaseHeatSolver.


Member Data Documentation

Real BackwardEulerSolver::m_dx [protected]
 

Real BackwardEulerSolver::m_solverTol [protected]
 

BaseHelmholtzOp* BackwardEulerSolver::m_helmop [protected]
 

BaseHelmholtzOp* BackwardEulerSolver::m_noBetaOp [protected]
 

LevelHelmholtzSolver BackwardEulerSolver::m_levelSolver [protected]
 

ProblemDomain BackwardEulerSolver::m_domain [protected]
 


The documentation for this class was generated from the following file:
Generated on Fri May 4 13:31:33 2007 for Chombo by doxygen 1.3.6