PatchConsOperator Class Reference

#include <PatchConsOperator.H>

Inheritance diagram for PatchConsOperator:

Inheritance graph
[legend]

List of all members.


Detailed Description

Patch Cons Operator - a class for evaluating the Laplacian.

Public Member Functions

 PatchConsOperator ()
 Default constructor.
virtual ~PatchConsOperator ()
 Destructor.
virtual void define (const ProblemDomain &a_domain, const Real &a_dx, const MOLPhysics *const a_molPhysics, const int &a_numStates)
 Actual constructor.
virtual void setCurrentTime (const Real &a_currentTime)
 Set the current time before calling evalRHS or addArtificialViscosity.
virtual void setCurrentBox (const Box &a_currentBox)
 Set the current box before calling evalRHS or addArtificialViscosity.
virtual void getNormalFlux (FluxBox &a_FfaceAvg, const FArrayBox &a_UavgFab, Real a_weight, bool a_setFlattening, FArrayBox &a_flatteningFab)
 Evaluate the normal flux.
virtual void updateODE (FArrayBox &a_solnFab, const FArrayBox &a_rhsFab, Real a_dt)
 update solution -- soln += dt*rhs (required by LevelRK4)
virtual void getFaceAvg (FluxBox &a_faceW, const FArrayBox &a_cellW, const FArrayBox &a_WofUavg, FArrayBox &a_flatteningFab, bool a_setFlattening)
 finds face-centered W and limits it using Colella&Sekora limiter; also solves Riemann problem
void spaceOrder (int a_spaceOrder)
 set spatial order of accuracy
void limitFaceValues (bool a_limitFaceValues)
 if true, limit face values
void highOrderLimiter (bool a_highOrderLimiter)
void useFlattening (bool a_useFlattening)
 sets whether to flatten extrapolations to faces
void noPPM (bool a_noPPM)
 sets m_noPPM
void doDeconvolution (bool a_doDeconvolution)
 sets m_doDeconvolution
void doFaceDeconvolution (bool a_doFaceDeconvolution)
 sets m_doFaceDeconvolution
void useArtificialViscosity (bool a_useArtificialViscosity)
 sets whether to use artificial viscosity (from divergence)
void artificialViscosity (Real a_artificialViscosity)
 sets coefficient of artificial viscosity (from divergence)
void numGhost (int a_numGhost)
 sets m_numGhost, the number of ghost cells
virtual void addArtificialViscosity (FArrayBox &a_UnewFab, const FArrayBox &a_UoldFab, FluxBox &a_flux, Real a_weight)
 add artificial viscosity to a_Unew
virtual void getFluxDivergence (FArrayBox &a_LofU, const FluxBox &a_FfaceAvg)
virtual bool isDefined () const
 Is the object completely defined.

Protected Member Functions

virtual void preRiemann (FArrayBox &a_WLeft, FArrayBox &a_WRight, int a_dir, const Box &a_box)
 may be used in derived classes just before calling Riemann solver in direction a_dir
virtual void postRiemann (FArrayBox &a_Wface, int a_dir, const Box &a_box)
 may be used in derived classes just after calling Riemann solver in direction a_dir
virtual void getAllFluxes (FluxBox &a_FfaceAvg, FluxBox &a_FfaceCen, const FluxBox &a_WfaceAvg, const FluxBox &a_WfaceCen)
virtual void reduceFlux (FluxBox &a_FfaceAvg, FluxBox &a_FfaceForGrad)

Protected Attributes

bool m_isDefined
Real m_dx
ProblemDomain m_domain
MOLPhysicsm_molPhysics
MOLUtilities m_util
int m_spaceOrder
bool m_limitFaceValues
bool m_highOrderLimiter
bool m_useFlattening
int m_numFluxes
int m_numGhost
int m_numFields
int m_numFluxesPerField
bool m_hasCoarser
bool m_hasFiner
bool m_noPPM
bool m_doDeconvolution
bool m_doFaceDeconvolution
bool m_useArtificialViscosity
Real m_artificialViscosity
Real m_currentTime
bool m_isCurrentTimeSet
Box m_currentBox
bool m_isCurrentBoxSet

Private Member Functions

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

Constructor & Destructor Documentation

PatchConsOperator::PatchConsOperator (  ) 

Default constructor.

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

virtual PatchConsOperator::~PatchConsOperator (  )  [virtual]

Destructor.

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

PatchConsOperator::PatchConsOperator ( const PatchConsOperator a_input  )  [private]


Member Function Documentation

virtual void PatchConsOperator::define ( const ProblemDomain a_domain,
const Real a_dx,
const MOLPhysics *const   a_molPhysics,
const int &  a_numStates 
) [virtual]

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.

virtual void PatchConsOperator::setCurrentTime ( const Real a_currentTime  )  [virtual]

Set the current time before calling evalRHS or addArtificialViscosity.

Reimplemented in PatchMappedConsOperator.

virtual void PatchConsOperator::setCurrentBox ( const Box a_currentBox  )  [virtual]

Set the current box before calling evalRHS or addArtificialViscosity.

virtual void PatchConsOperator::getNormalFlux ( FluxBox a_FfaceAvg,
const FArrayBox a_UavgFab,
Real  a_weight,
bool  a_setFlattening,
FArrayBox a_flatteningFab 
) [virtual]

Evaluate the normal flux.

virtual void PatchConsOperator::updateODE ( FArrayBox a_solnFab,
const FArrayBox a_rhsFab,
Real  a_dt 
) [virtual]

update solution -- soln += dt*rhs (required by LevelRK4)

virtual void PatchConsOperator::getFaceAvg ( FluxBox a_faceW,
const FArrayBox a_cellW,
const FArrayBox a_WofUavg,
FArrayBox a_flatteningFab,
bool  a_setFlattening 
) [virtual]

finds face-centered W and limits it using Colella&Sekora limiter; also solves Riemann problem

Parameters:
a_cellW  cell-averaged primitive variables

Reimplemented in PatchMappedConsOperator.

void PatchConsOperator::spaceOrder ( int  a_spaceOrder  ) 

set spatial order of accuracy

void PatchConsOperator::limitFaceValues ( bool  a_limitFaceValues  ) 

if true, limit face values

void PatchConsOperator::highOrderLimiter ( bool  a_highOrderLimiter  ) 

void PatchConsOperator::useFlattening ( bool  a_useFlattening  ) 

sets whether to flatten extrapolations to faces

void PatchConsOperator::noPPM ( bool  a_noPPM  ) 

sets m_noPPM

void PatchConsOperator::doDeconvolution ( bool  a_doDeconvolution  ) 

sets m_doDeconvolution

void PatchConsOperator::doFaceDeconvolution ( bool  a_doFaceDeconvolution  ) 

sets m_doFaceDeconvolution

void PatchConsOperator::useArtificialViscosity ( bool  a_useArtificialViscosity  ) 

sets whether to use artificial viscosity (from divergence)

void PatchConsOperator::artificialViscosity ( Real  a_artificialViscosity  ) 

sets coefficient of artificial viscosity (from divergence)

void PatchConsOperator::numGhost ( int  a_numGhost  ) 

sets m_numGhost, the number of ghost cells

virtual void PatchConsOperator::addArtificialViscosity ( FArrayBox a_UnewFab,
const FArrayBox a_UoldFab,
FluxBox a_flux,
Real  a_weight 
) [virtual]

add artificial viscosity to a_Unew

Reimplemented in PatchMappedConsOperator.

virtual void PatchConsOperator::getFluxDivergence ( FArrayBox a_LofU,
const FluxBox a_FfaceAvg 
) [virtual]

virtual bool PatchConsOperator::isDefined (  )  const [virtual]

Is the object completely defined.

Return true if the object is completely defined.

virtual void PatchConsOperator::preRiemann ( FArrayBox a_WLeft,
FArrayBox a_WRight,
int  a_dir,
const Box a_box 
) [protected, virtual]

may be used in derived classes just before calling Riemann solver in direction a_dir

Reimplemented in PatchMappedConsOperator.

virtual void PatchConsOperator::postRiemann ( FArrayBox a_Wface,
int  a_dir,
const Box a_box 
) [protected, virtual]

may be used in derived classes just after calling Riemann solver in direction a_dir

Reimplemented in PatchMappedConsOperator.

virtual void PatchConsOperator::getAllFluxes ( FluxBox a_FfaceAvg,
FluxBox a_FfaceCen,
const FluxBox a_WfaceAvg,
const FluxBox a_WfaceCen 
) [protected, virtual]

Reimplemented in PatchMappedConsOperator.

virtual void PatchConsOperator::reduceFlux ( FluxBox a_FfaceAvg,
FluxBox a_FfaceForGrad 
) [protected, virtual]

void PatchConsOperator::operator= ( const PatchConsOperator a_input  )  [private]


Member Data Documentation

bool PatchConsOperator::m_noPPM [protected]


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

Generated on Tue May 23 03:27:20 2017 for Chombo + EB + MF by  doxygen 1.5.5