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

#include <MFBackwardEuler.H>

Public Member Functions

 ~MFBackwardEuler ()
 
 MFBackwardEuler (const RefCountedPtr< AMRMultiGrid< LevelData< MFCellFAB > > > &a_solver, const AMRLevelOpFactory< LevelData< MFCellFAB > > &a_factory, const ProblemDomain &a_level0Domain, const Vector< int > &a_refRat, int a_numLevels=-1, int a_verbosity=3)
 
void oneStep (Vector< LevelData< MFCellFAB > *> &a_phiNew, Vector< LevelData< MFCellFAB > *> &a_phiOld, Vector< LevelData< MFCellFAB > *> &a_source, const Real &a_dt, int a_lbase, int a_lmax, Real a_told=0, bool a_zeroPhi=true)
 
void residual (Vector< LevelData< MFCellFAB > * > &a_error, Vector< LevelData< MFCellFAB > * > &a_phiNew, Vector< LevelData< MFCellFAB > * > &a_phiOld, Vector< LevelData< MFCellFAB > * > &a_source, const Real &a_dt, int a_lbase, int a_lmax, Real a_told)
 
void resetAlphaAndBeta (const Real &a_alpha, const Real &a_beta)
 
void setTime (Real a_time)
 

Protected Member Functions

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

Private Member Functions

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

Private Attributes

Vector< RefCountedPtr< TGAHelmOp< LevelData< MFCellFAB > > > > m_ops
 
Vector< LevelData< MFCellFAB > *> m_rhst
 
ProblemDomain m_level0Domain
 
Vector< int > m_refRat
 
RefCountedPtr< AMRMultiGrid< LevelData< MFCellFAB > > > 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

◆ ~MFBackwardEuler()

MFBackwardEuler::~MFBackwardEuler ( )

◆ MFBackwardEuler() [1/3]

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

◆ MFBackwardEuler() [2/3]

MFBackwardEuler::MFBackwardEuler ( const MFBackwardEuler a_opin)
inlineprivate

References MayDay::Error().

◆ MFBackwardEuler() [3/3]

MFBackwardEuler::MFBackwardEuler ( )
inlineprivate

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

References MayDay::Error().

Member Function Documentation

◆ oneStep()

void MFBackwardEuler::oneStep ( Vector< LevelData< MFCellFAB > *> &  a_phiNew,
Vector< LevelData< MFCellFAB > *> &  a_phiOld,
Vector< LevelData< MFCellFAB > *> &  a_source,
const Real a_dt,
int  a_lbase,
int  a_lmax,
Real  a_told = 0,
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

◆ residual()

void MFBackwardEuler::residual ( Vector< LevelData< MFCellFAB > * > &  a_error,
Vector< LevelData< MFCellFAB > * > &  a_phiNew,
Vector< LevelData< MFCellFAB > * > &  a_phiOld,
Vector< LevelData< MFCellFAB > * > &  a_source,
const Real a_dt,
int  a_lbase,
int  a_lmax,
Real  a_told 
)

◆ resetAlphaAndBeta()

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

◆ setTime()

void MFBackwardEuler::setTime ( Real  a_time)

◆ solveHelm()

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

◆ applyHelm()

void MFBackwardEuler::applyHelm ( Vector< LevelData< MFCellFAB > *> &  a_ans,
Vector< LevelData< MFCellFAB > *> &  a_phi,
int  a_lbase,
int  a_lmax,
Real  a_mu,
Real  a_dt,
bool  a_homogeneousBC 
)
protected

◆ createEulerRHS()

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

◆ createData()

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

◆ newOp()

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

◆ operator=()

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

References MayDay::Error().

Member Data Documentation

◆ m_ops

Vector<RefCountedPtr<TGAHelmOp<LevelData<MFCellFAB> > > > MFBackwardEuler::m_ops
private

◆ m_rhst

Vector< LevelData<MFCellFAB>* > MFBackwardEuler::m_rhst
private

◆ m_level0Domain

ProblemDomain MFBackwardEuler::m_level0Domain
private

◆ m_refRat

Vector<int> MFBackwardEuler::m_refRat
private

◆ m_solver

RefCountedPtr<AMRMultiGrid< LevelData<MFCellFAB> > > MFBackwardEuler::m_solver
private

◆ m_verbosity

int MFBackwardEuler::m_verbosity
private

◆ m_numLevels

int MFBackwardEuler::m_numLevels
private

◆ m_dataCreated

bool MFBackwardEuler::m_dataCreated
private

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