Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

LevelGodunov Class Reference

Level Godunov - really a hyperbolic level integrator. More...

#include <LevelGodunov.H>

Collaboration diagram for LevelGodunov:

Collaboration graph
[legend]
List of all members.

Public Methods

 LevelGodunov ()
 Default constructor.

 ~LevelGodunov ()
 Destructor.

void define (const DisjointBoxLayout &a_thisDisjointBoxLayout, const DisjointBoxLayout &a_coarserDisjointBoxLayout, const ProblemDomain &a_domain, const int &a_refineCoarse, const Real &a_dx, const PatchGodunov *const a_patchGodunovFactory, const bool &a_hasCoarser, const bool &a_hasFiner)
 Actual constructor.

Real step (LevelData< FArrayBox > &a_U, LevelFluxRegister &a_finerFluxRegister, LevelFluxRegister &a_coarserFluxRegister, const LevelData< FArrayBox > &a_S, const LevelData< FArrayBox > &a_UCoarseOld, const Real &a_TCoarseOld, const LevelData< FArrayBox > &a_UCoarseNew, const Real &a_TCoarseNew, const Real &a_time, const Real &a_dt)
 Take one timestep for this grid level.

Real getMaxWaveSpeed (const LevelData< FArrayBox > &a_U)
 Get maximum wave speed.


Protected Attributes

bool m_defined
DisjointBoxLayout m_grids
PatchGodunovm_patchGodunov
int m_numGhost
PiecewiseLinearFillPatch m_patcher
Real m_dx
ProblemDomain m_domain
int m_refineCoarse
int m_numCons
int m_numFluxes
bool m_hasCoarser
bool m_hasFiner

Private Methods

void operator= (const LevelGodunov &a_input)
 LevelGodunov (const LevelGodunov &a_input)

Detailed Description

Level Godunov - really a hyperbolic level integrator.


Constructor & Destructor Documentation

LevelGodunov::LevelGodunov  
 

Default constructor.

Object requires define() to be called before all other functions.

LevelGodunov::~LevelGodunov  
 

Destructor.

Destroys all objects created by define(). Passed in data references of define() are left alone.

LevelGodunov::LevelGodunov const LevelGodunov &    a_input [inline, private]
 


Member Function Documentation

void LevelGodunov::define const DisjointBoxLayout   a_thisDisjointBoxLayout,
const DisjointBoxLayout   a_coarserDisjointBoxLayout,
const ProblemDomain   a_domain,
const int &    a_refineCoarse,
const Real   a_dx,
const PatchGodunov *const    a_patchGodunovFactory,
const bool &    a_hasCoarser,
const bool &    a_hasFiner
 

Actual constructor.

Inside the routine, we cast away const-ness on the data members for the assignment. The arguments passed in are maintained const (coding standards). a_refine is the refinement ratio between this level and the next coarser level. For the coarsest level, an empty DisjointBoxLayout is passed in for coarserDisjointBoxLayout.

Real LevelGodunov::getMaxWaveSpeed const LevelData< FArrayBox > &    a_U
 

Get maximum wave speed.

void LevelGodunov::operator= const LevelGodunov &    a_input [inline, private]
 

Real LevelGodunov::step LevelData< FArrayBox > &    a_U,
LevelFluxRegister   a_finerFluxRegister,
LevelFluxRegister   a_coarserFluxRegister,
const LevelData< FArrayBox > &    a_S,
const LevelData< FArrayBox > &    a_UCoarseOld,
const Real   a_TCoarseOld,
const LevelData< FArrayBox > &    a_UCoarseNew,
const Real   a_TCoarseNew,
const Real   a_time,
const Real   a_dt
 

Take one timestep for this grid level.

For the coarsest level, UcoarseOld and UCoarseNew are empty LevelData<FArrayBox> objects. Also, either UCoarseOld or UCoarseNew might be empty to indicate that t(nf) = t(nc) the one grid is at the current time and interpolation is not required for boundary condition generation. U must be defined on the same DisjointBoxLayouts as were used in define(). Coarse flux register is flux register with the next coarser level. Fine flux register is the flux register with the next finer level. To the finer level FR, this level is the coarse level. To the coarser level FR, this level is the fine level. If source terms do not exist, "a_S" should be null constructed and not defined (i.e. its define() should not be called).


Member Data Documentation

bool LevelGodunov::m_defined [protected]
 

ProblemDomain LevelGodunov::m_domain [protected]
 

Real LevelGodunov::m_dx [protected]
 

DisjointBoxLayout LevelGodunov::m_grids [protected]
 

bool LevelGodunov::m_hasCoarser [protected]
 

bool LevelGodunov::m_hasFiner [protected]
 

int LevelGodunov::m_numCons [protected]
 

int LevelGodunov::m_numFluxes [protected]
 

int LevelGodunov::m_numGhost [protected]
 

PiecewiseLinearFillPatch LevelGodunov::m_patcher [protected]
 

PatchGodunov* LevelGodunov::m_patchGodunov [protected]
 

int LevelGodunov::m_refineCoarse [protected]
 


The documentation for this class was generated from the following file:
Generated on Tue Jul 2 10:44:11 2002 for Chombo by doxygen1.2.16