Chombo + EB  3.2
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
BackwardEuler Class Reference

#include <BackwardEuler.H>

Public Member Functions

 ~BackwardEuler ()
 
 BackwardEuler (const RefCountedPtr< AMRMultiGrid< LevelData< FArrayBox > > > &a_solver, const AMRLevelOpFactory< LevelData< FArrayBox > > &a_factory, const ProblemDomain &a_level0Domain, const Vector< int > &a_refRat, int a_numLevels=-1, int a_verbosity=3)
 
void oneStep (Vector< LevelData< FArrayBox > *> &a_phiNew, Vector< LevelData< FArrayBox > *> &a_phiOld, Vector< LevelData< FArrayBox > *> &a_source, const Real &a_dt, int a_lbase, int a_lmax, bool a_zeroPhi=true)
 
void resetAlphaAndBeta (const Real &a_alpha, const Real &a_beta)
 
void computeDiffusion (Vector< LevelData< FArrayBox > * > &a_diffusiveTerm, Vector< LevelData< FArrayBox > * > &a_phiOld, Vector< LevelData< FArrayBox > * > &a_src, Real a_oldTime, Real a_dt, int a_lbase, int a_lmax, bool a_zeroPhi)
 

Protected Member Functions

void solveHelm (Vector< LevelData< FArrayBox > * > &a_ans, Vector< LevelData< FArrayBox > * > &a_rhs, int a_lbase, int a_lmax, Real a_dt, bool a_zeroPhi)
 
void createEulerRHS (Vector< LevelData< FArrayBox > * > &a_ans, Vector< LevelData< FArrayBox > * > &a_source, Vector< LevelData< FArrayBox > * > &a_phiOld, int a_lbase, int a_lmax, Real a_dt)
 
void createData (Vector< LevelData< FArrayBox > * > &a_source, int a_lbase, int a_lmax)
 
TGAHelmOp< LevelData< FArrayBox > > * newOp (const ProblemDomain &a_indexSpace, const AMRLevelOpFactory< LevelData< FArrayBox > > &a_opFact)
 

Private Member Functions

 BackwardEuler (const BackwardEuler &a_opin)
 
void operator= (const BackwardEuler &a_opin)
 
 BackwardEuler ()
 weak construction is bad. Ref Counted pointers are your friends. More...
 

Private Attributes

Vector< TGAHelmOp< LevelData< FArrayBox > > *> m_ops
 
Vector< LevelData< FArrayBox > *> m_rhst
 
ProblemDomain m_level0Domain
 
Vector< int > m_refRat
 
RefCountedPtr< AMRMultiGrid< LevelData< FArrayBox > > > m_solver
 
int m_verbosity
 
int m_numLevels
 
bool m_dataCreated
 

Detailed Description

Solves dphi/dt = L phi + rho using backward euler. Uses TGAHelmOp functionaltity.

Constructor & Destructor Documentation

◆ ~BackwardEuler()

BackwardEuler::~BackwardEuler ( )

◆ BackwardEuler() [1/3]

BackwardEuler::BackwardEuler ( const RefCountedPtr< AMRMultiGrid< LevelData< FArrayBox > > > &  a_solver,
const AMRLevelOpFactory< LevelData< FArrayBox > > &  a_factory,
const ProblemDomain a_level0Domain,
const Vector< int > &  a_refRat,
int  a_numLevels = -1,
int  a_verbosity = 3 
)

◆ BackwardEuler() [2/3]

BackwardEuler::BackwardEuler ( const BackwardEuler a_opin)
inlineprivate

References MayDay::Error().

◆ BackwardEuler() [3/3]

BackwardEuler::BackwardEuler ( )
inlineprivate

weak construction is bad. Ref Counted pointers are your friends.

References MayDay::Error().

Member Function Documentation

◆ oneStep()

void BackwardEuler::oneStep ( Vector< LevelData< FArrayBox > *> &  a_phiNew,
Vector< LevelData< FArrayBox > *> &  a_phiOld,
Vector< LevelData< FArrayBox > *> &  a_source,
const Real a_dt,
int  a_lbase,
int  a_lmax,
bool  a_zeroPhi = true 
)

This advances a parabolic pde from a_phiOld to a_phiNew using TGA on a non-moving domain with source term a_source

◆ resetAlphaAndBeta()

void BackwardEuler::resetAlphaAndBeta ( const Real a_alpha,
const Real a_beta 
)

◆ computeDiffusion()

void BackwardEuler::computeDiffusion ( Vector< LevelData< FArrayBox > * > &  a_diffusiveTerm,
Vector< LevelData< FArrayBox > * > &  a_phiOld,
Vector< LevelData< FArrayBox > * > &  a_src,
Real  a_oldTime,
Real  a_dt,
int  a_lbase,
int  a_lmax,
bool  a_zeroPhi 
)

◆ solveHelm()

void BackwardEuler::solveHelm ( Vector< LevelData< FArrayBox > * > &  a_ans,
Vector< LevelData< FArrayBox > * > &  a_rhs,
int  a_lbase,
int  a_lmax,
Real  a_dt,
bool  a_zeroPhi 
)
protected

◆ createEulerRHS()

void BackwardEuler::createEulerRHS ( Vector< LevelData< FArrayBox > * > &  a_ans,
Vector< LevelData< FArrayBox > * > &  a_source,
Vector< LevelData< FArrayBox > * > &  a_phiOld,
int  a_lbase,
int  a_lmax,
Real  a_dt 
)
protected

◆ createData()

void BackwardEuler::createData ( Vector< LevelData< FArrayBox > * > &  a_source,
int  a_lbase,
int  a_lmax 
)
protected

◆ newOp()

TGAHelmOp<LevelData<FArrayBox> >* BackwardEuler::newOp ( const ProblemDomain a_indexSpace,
const AMRLevelOpFactory< LevelData< FArrayBox > > &  a_opFact 
)
protected

◆ operator=()

void BackwardEuler::operator= ( const BackwardEuler a_opin)
inlineprivate

References MayDay::Error().

Member Data Documentation

◆ m_ops

Vector<TGAHelmOp<LevelData<FArrayBox> > * > BackwardEuler::m_ops
private

◆ m_rhst

Vector< LevelData<FArrayBox>* > BackwardEuler::m_rhst
private

◆ m_level0Domain

ProblemDomain BackwardEuler::m_level0Domain
private

◆ m_refRat

Vector<int> BackwardEuler::m_refRat
private

◆ m_solver

RefCountedPtr<AMRMultiGrid< LevelData<FArrayBox> > > BackwardEuler::m_solver
private

◆ m_verbosity

int BackwardEuler::m_verbosity
private

◆ m_numLevels

int BackwardEuler::m_numLevels
private

◆ m_dataCreated

bool BackwardEuler::m_dataCreated
private

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