#include <BaseLevelBackwardEuler.H>
LevelDataType | The type used to store data at a grid level. This is usually LevelData<T>, where T is some cell-centered FArrayBox type. | |
FluxDataType | The type used to store flux data at a grid level. This is usually an array box clas that stores fluxes. | |
FluxRegisterType | The type used to store flux register data for interactions between different grid levels. This is usually a flux register class. |
Public Member Functions | |
BaseLevelBackwardEuler (const Vector< DisjointBoxLayout > &a_grids, const Vector< int > &a_refRat, const ProblemDomain &a_level0Domain, RefCountedPtr< AMRLevelOpFactory< LevelDataType > > &a_opFact, const RefCountedPtr< AMRMultiGrid< LevelDataType > > &a_solver) | |
virtual | ~BaseLevelBackwardEuler () |
Destructor, called after destructors of BaseLevelBackwardEuler subclasses. | |
void | updateSoln (LevelDataType &a_phiNew, LevelDataType &a_phiOld, LevelDataType &a_src, LevelData< FluxDataType > &a_flux, FluxRegisterType *a_fineFluxRegPtr, FluxRegisterType *a_crseFluxRegPtr, const LevelDataType *a_crsePhiOldPtr, const LevelDataType *a_crsePhiNewPtr, Real a_oldTime, Real a_crseOldTime, Real a_crseNewTime, Real a_dt, int a_level, bool a_zeroPhi=true, bool a_rhsAlreadyKappaWeighted=false, int a_fluxStartComponent=0) |
Private Member Functions | |
BaseLevelBackwardEuler & | operator= (const BaseLevelBackwardEuler &) |
BaseLevelBackwardEuler (const BaseLevelBackwardEuler &a_opin) | |
BaseLevelBackwardEuler () |
BaseLevelBackwardEuler< LevelDataType, FluxDataType, FluxRegisterType >::BaseLevelBackwardEuler | ( | const Vector< DisjointBoxLayout > & | a_grids, | |
const Vector< int > & | a_refRat, | |||
const ProblemDomain & | a_level0Domain, | |||
RefCountedPtr< AMRLevelOpFactory< LevelDataType > > & | a_opFact, | |||
const RefCountedPtr< AMRMultiGrid< LevelDataType > > & | a_solver | |||
) | [inline] |
Initializes the base class of a BackwardEuler time integrator. This must be called by any subclass of BaseLevelBackwardEuler.
a_grids | The DisjointBoxLayout on which the BackwardEuler scheme is to operate. | |
a_refRatio | An array containing the refinement ratios between the hierarchical AMR grid levels for the domain. | |
a_level0Domain | The domain at the coarsest AMR grid level. | |
a_opFact | A factory typename LevelDataTypehat is used to generate Helmholtz operators to be used by the scheme. | |
a_solver | An AMR Multigrid solver for solving the linear systems at each stage of the BackwardEuler integration scheme. |
virtual BaseLevelBackwardEuler< LevelDataType, FluxDataType, FluxRegisterType >::~BaseLevelBackwardEuler | ( | ) | [inline, virtual] |
Destructor, called after destructors of BaseLevelBackwardEuler subclasses.
BaseLevelBackwardEuler< LevelDataType, FluxDataType, FluxRegisterType >::BaseLevelBackwardEuler | ( | const BaseLevelBackwardEuler< LevelDataType, FluxDataType, FluxRegisterType > & | a_opin | ) | [private] |
BaseLevelBackwardEuler< LevelDataType, FluxDataType, FluxRegisterType >::BaseLevelBackwardEuler | ( | ) | [private] |
void BaseLevelBackwardEuler< LevelDataType, FluxDataType, FluxRegisterType >::updateSoln | ( | LevelDataType & | a_phiNew, | |
LevelDataType & | a_phiOld, | |||
LevelDataType & | a_src, | |||
LevelData< FluxDataType > & | a_flux, | |||
FluxRegisterType * | a_fineFluxRegPtr, | |||
FluxRegisterType * | a_crseFluxRegPtr, | |||
const LevelDataType * | a_crsePhiOldPtr, | |||
const LevelDataType * | a_crsePhiNewPtr, | |||
Real | a_oldTime, | |||
Real | a_crseOldTime, | |||
Real | a_crseNewTime, | |||
Real | a_dt, | |||
int | a_level, | |||
bool | a_zeroPhi = true , |
|||
bool | a_rhsAlreadyKappaWeighted = false , |
|||
int | a_fluxStartComponent = 0 | |||
) | [inline, virtual] |
Integrates the helmholtz equation represented by this object, placing the new solution in a_phiNew.
a_phiNew | The new solution (the value of phi at time n + 1) will be stored here. | |
a_phiOld | The old solution (the value of phi at time n). | |
a_src | The source term on the right hand side of the Helmholtz equation. | |
a_flux | This will store the flux computed at the current grid level during the solution of the Helmholtz equation. | |
a_fineFluxRegPtr | A pointer to the flux register representing the finer grid level adjacent to this one, or NULL if there is no finer grid level. | |
a_crseFluxRegPtr | A pointer to the flux register representing the coarser grid level adjacent to this one, or NULL if there is no coarser grid level. | |
a_oldTime | The time at the beginning of the integration step at the current grid level. | |
a_crseOldTime | The time at the beginning of the integration step at the coarser adjacent grid level. This parameter is ignored if there is no coarser grid level. | |
a_crseNewTime | The time at the end of the integration step at the coarser adjacent grid level. This parameter is ignored if there is no coarser grid level. | |
a_dt | The size of the integration step at the current grid level. | |
a_level | The current grid level. | |
a_zeroPhi | If set to true, a_phiNew will be set to zero before the integration takes place. Otherwise, a_phiNew is assumed to be an initial estimate for the solution in the iterative linear solve. | |
a_fluxStartComponent | An index identifying the component at which flux data begins within a_fineFluxRegPtr and a_crseFluxRegPtr. |
Implements BaseLevelHeatSolver< LevelDataType, FluxDataType, FluxRegisterType >.
BaseLevelBackwardEuler& BaseLevelBackwardEuler< LevelDataType, FluxDataType, FluxRegisterType >::operator= | ( | const BaseLevelBackwardEuler< LevelDataType, FluxDataType, FluxRegisterType > & | ) | [private] |