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

PatchGodunov Class Reference

#include <PatchGodunov.H>

Collaboration diagram for PatchGodunov:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 PatchGodunov ()
 Constructor.
virtual ~PatchGodunov ()
 Destructor.
virtual void define (const ProblemDomain &a_domain, const Real &a_dx, const GodunovPhysics *const a_gdnvPhysicsPtr, const int &a_normalPredOrder, const bool &a_useFourthOrderSlopes, const bool &a_usePrimLimiting, const bool &a_useCharLimiting, const bool &a_useFlattening, const bool &a_useArtificialViscosity, const Real &a_artificialViscosity)
 Define the object.
virtual void setCurrentTime (const Real &a_currentTime)
 Set the current time before calling updateState, computeWHalf, computeUpdate.
virtual void setCurrentBox (const Box &a_currentBox)
 Set the current box before calling updateState, computeWHalf, computeUpdate.
virtual void updateState (FArrayBox &a_U, FluxBox &a_F, Real &a_maxWaveSpeed, const FArrayBox &a_S, const Real &a_dt, const Box &a_box)
 Update the conserved variables and return the fluxes used to do this.
virtual void computeWHalf (FluxBox &a_WHalf, const FArrayBox &a_U, const FArrayBox &a_S, const Real &a_dt, const Box &a_box)
 Compute the time-centered values of the primitive variables on cell faces.
virtual void computeUpdate (FArrayBox &a_dU, FluxBox &a_Flux, const FArrayBox &a_U, const FluxBox &a_WHalf, const Real &a_dt, const Box &a_box)
 Compute the increment in the conserved variables from face variables.
void computeFluxes (FluxBox &a_F, const FluxBox &a_wHalf, const Box &a_box)
 Compute fluxes from primitive variables on faces.
void PLMNormalPred (FArrayBox &a_WMinus, FArrayBox &a_WPlus, const Real &a_dt, const Real &a_dx, const FArrayBox &a_W, const FArrayBox &a_flat, const int &a_dir, const Box &a_box)
 PLM normal predictor.
void PPMNormalPred (FArrayBox &a_WMinus, FArrayBox &a_WPlus, const Real &a_dt, const Real &a_dx, const FArrayBox &a_W, const FArrayBox &a_flat, const int &a_dir, const Box &a_box)
 PPM normal predictor.
GodunovPhysicsgetGodunovPhysicsPtr ()
 Accessor to get at the GodunovPhysics object.
virtual bool isDefined () const
 Is the object completely defined.

Protected Attributes

ProblemDomain m_domain
Real m_dx
GodunovPhysicsm_gdnvPhysics
GodunovUtilities m_util
int m_normalPredOrder
bool m_useFourthOrderSlopes
bool m_usePrimLimiting
bool m_useCharLimiting
bool m_useFlattening
bool m_useArtificialViscosity
Real m_artificialViscosity
Real m_currentTime
bool m_isCurrentTimeSet
Box m_currentBox
bool m_isCurrentBoxSet
bool m_isDefined

Detailed Description

The base class PatchGodunov provides an implementation of a second-order, unsplit Godunov method acting on a single grid/patch. PatchGodunov provides an interface to the level integrator, LevelGodunov, which manages the entire level and flux corrections (via flux registers) to the coarser and finer levels.


Constructor & Destructor Documentation

PatchGodunov::PatchGodunov  ) 
 

Constructor.

virtual PatchGodunov::~PatchGodunov  )  [virtual]
 

Destructor.


Member Function Documentation

void PatchGodunov::computeFluxes FluxBox a_F,
const FluxBox a_wHalf,
const Box a_box
 

Compute fluxes from primitive variables on faces.

virtual void PatchGodunov::computeUpdate FArrayBox a_dU,
FluxBox a_Flux,
const FArrayBox a_U,
const FluxBox a_WHalf,
const Real a_dt,
const Box a_box
[virtual]
 

Compute the increment in the conserved variables from face variables.

Compute dU = dt*dUdt, the change in the conserved variables over the time step. The fluxes are returned are suitable for use in refluxing.

virtual void PatchGodunov::computeWHalf FluxBox a_WHalf,
const FArrayBox a_U,
const FArrayBox a_S,
const Real a_dt,
const Box a_box
[virtual]
 

Compute the time-centered values of the primitive variables on cell faces.

This API is used in cases where some operation over the whole level must be performed on the face-centered variables prior to the final difference update. Examples include incompressible flow and MHD, in which it is necessary to compute the projection of a face-centered vector field on its divergence-free part. To complete the differencing, it is necessary to call the member function computeUpdate.

virtual void PatchGodunov::define const ProblemDomain a_domain,
const Real a_dx,
const GodunovPhysics *const   a_gdnvPhysicsPtr,
const int &  a_normalPredOrder,
const bool &  a_useFourthOrderSlopes,
const bool &  a_usePrimLimiting,
const bool &  a_useCharLimiting,
const bool &  a_useFlattening,
const bool &  a_useArtificialViscosity,
const Real a_artificialViscosity
[virtual]
 

Define the object.

GodunovPhysics* PatchGodunov::getGodunovPhysicsPtr  ) 
 

Accessor to get at the GodunovPhysics object.

virtual bool PatchGodunov::isDefined  )  const [virtual]
 

Is the object completely defined.

Return true if the object is completely defined.

void PatchGodunov::PLMNormalPred FArrayBox a_WMinus,
FArrayBox a_WPlus,
const Real a_dt,
const Real a_dx,
const FArrayBox a_W,
const FArrayBox a_flat,
const int &  a_dir,
const Box a_box
 

PLM normal predictor.

Compute the increments in the characteristic amplitudes using PLM

void PatchGodunov::PPMNormalPred FArrayBox a_WMinus,
FArrayBox a_WPlus,
const Real a_dt,
const Real a_dx,
const FArrayBox a_W,
const FArrayBox a_flat,
const int &  a_dir,
const Box a_box
 

PPM normal predictor.

Compute the increments in the characteristic amplitudes using PPM

virtual void PatchGodunov::setCurrentBox const Box a_currentBox  )  [virtual]
 

Set the current box before calling updateState, computeWHalf, computeUpdate.

virtual void PatchGodunov::setCurrentTime const Real a_currentTime  )  [virtual]
 

Set the current time before calling updateState, computeWHalf, computeUpdate.

virtual void PatchGodunov::updateState FArrayBox a_U,
FluxBox a_F,
Real a_maxWaveSpeed,
const FArrayBox a_S,
const Real a_dt,
const Box a_box
[virtual]
 

Update the conserved variables and return the fluxes used to do this.

Update the conserved variables and return the final fluxes that were used for this. Compute the fluxes using a second-order, unsplit Godunov method based on the input conserved variables, a_U, and source terms, a_S. If there are no source terms then a_S should be null constructed. Also return the maximum wave speed.


Member Data Documentation

Real PatchGodunov::m_artificialViscosity [protected]
 

Box PatchGodunov::m_currentBox [protected]
 

Real PatchGodunov::m_currentTime [protected]
 

ProblemDomain PatchGodunov::m_domain [protected]
 

Real PatchGodunov::m_dx [protected]
 

GodunovPhysics* PatchGodunov::m_gdnvPhysics [protected]
 

bool PatchGodunov::m_isCurrentBoxSet [protected]
 

bool PatchGodunov::m_isCurrentTimeSet [protected]
 

bool PatchGodunov::m_isDefined [protected]
 

int PatchGodunov::m_normalPredOrder [protected]
 

bool PatchGodunov::m_useArtificialViscosity [protected]
 

bool PatchGodunov::m_useCharLimiting [protected]
 

bool PatchGodunov::m_useFlattening [protected]
 

bool PatchGodunov::m_useFourthOrderSlopes [protected]
 

bool PatchGodunov::m_usePrimLimiting [protected]
 

GodunovUtilities PatchGodunov::m_util [protected]
 


The documentation for this class was generated from the following file:
Generated on Wed Oct 5 14:01:41 2005 for Chombo&AMRSelfGravity by  doxygen 1.4.1