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

PatchGodunov Class Reference

#include <PatchGodunov.H>

Collaboration diagram for PatchGodunov:

Collaboration graph
[legend]
List of all members.

Public Methods

 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, FArrayBox a_F[CH_SPACEDIM], 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 (FArrayBox a_WHalf[CH_SPACEDIM], 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, FArrayBox a_Flux[CH_SPACEDIM], const FArrayBox &a_U, const FArrayBox a_WHalf[CH_SPACEDIM], const Real &a_dt, const Box &a_box)
 Compute the increment in the conserved variables from face variables.

void computeFluxes (FArrayBox a_F[CH_SPACEDIM], const FArrayBox a_wHalf[CH_SPACEDIM], const Box &a_box)
 Compute fluxes from primitive variables on faces.

void PLMNormalPred (FArrayBox &a_WMinus, FArrayBox &a_WPlus, const Real &a_dtbydx, 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_dtbydx, const FArrayBox &a_W, const FArrayBox &a_flat, const int &a_dir, const Box &a_box)
 PPM normal predictor.

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 FArrayBox    a_F[CH_SPACEDIM],
const FArrayBox    a_wHalf[CH_SPACEDIM],
const Box   a_box
 

Compute fluxes from primitive variables on faces.

virtual void PatchGodunov::computeUpdate FArrayBox   a_dU,
FArrayBox    a_Flux[CH_SPACEDIM],
const FArrayBox   a_U,
const FArrayBox    a_WHalf[CH_SPACEDIM],
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 FArrayBox    a_WHalf[CH_SPACEDIM],
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.

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_dtbydx,
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_dtbydx,
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,
FArrayBox    a_F[CH_SPACEDIM],
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 Jan 19 17:56:24 2005 for Chombo&INSwithParticles by doxygen1.2.16