Chombo + EB + MF
3.2
|
#include <PatchMappedConsOperator.H>
Public Member Functions | |
PatchMappedConsOperator (const int a_numFluxesPerField=1) | |
Constructor. More... | |
virtual | ~PatchMappedConsOperator () |
Destructor. More... | |
virtual void | define (const ProblemDomain &a_domain, const Real &a_dx, LevelGridMetrics *a_levelGridMetrics, const MOLPhysics *const a_molPhysics, const int &a_numStates) |
Actual constructor. More... | |
virtual void | setCurrentTime (const Real &a_currentTime) |
Set the current time before calling evalRHS or addArtificialViscosity. More... | |
virtual void | setCurrentBox (const DataIndex &a_currentDataIdx, const Box &a_currentBox) |
Set the current data index and box before calling. More... | |
virtual void | evalFlux (const FArrayBox &a_UavgFab, FluxBox &a_FfaceAvg, FluxBox &a_FfromWfaceAvg, Real a_weight, bool a_setFlattening, FArrayBox &a_flatteningFab) |
Evaluate the flux at a given time. More... | |
virtual void | evalRHS (FArrayBox &a_LofU, const FluxBox &a_FfaceAvg) |
Evaluate the operator (div(flux)) at a given time. More... | |
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 More... | |
void | unitNormals (const LayoutData< FluxBox > *const a_unitNormalLayPtr) |
sets m_unitNormalLayPtr More... | |
void | setMaxSpeed (Real a_maxSpeed) |
sets m_maxSpeed More... | |
void | useArtificialDissipation (bool a_useArtificialDissipation) |
sets whether to use artificial dissipation More... | |
void | artificialDissipation (Real a_artificialDissipation) |
sets coefficient of artificial dissipation More... | |
virtual void | addArtificialViscosity (FArrayBox &a_UnewFab, const FArrayBox &a_UoldFab, FluxBox &a_flux, Real a_weight) |
add artificial viscosity to a_Unew More... | |
void | addMappedArtificialViscosity (FArrayBox &a_JUnewFab, const FArrayBox &a_UoldFab, FluxBox &a_flux, const FluxBox &a_N, const FArrayBox &a_J, const Box &a_box, Real a_weight) |
Add artificial viscosity to a_JUnew for mapped grids. More... | |
virtual Real | getMaxWaveSpeed (const FArrayBox &a_U, const Box &a_bx) |
![]() | |
PatchConsOperator () | |
Default constructor. More... | |
virtual | ~PatchConsOperator () |
Destructor. More... | |
virtual void | define (const ProblemDomain &a_domain, const Real &a_dx, const MOLPhysics *const a_molPhysics, const int &a_numStates) |
Actual constructor. More... | |
virtual void | setCurrentBox (const Box &a_currentBox) |
Set the current box before calling evalRHS or addArtificialViscosity. More... | |
virtual void | getNormalFlux (FluxBox &a_FfaceAvg, const FArrayBox &a_UavgFab, Real a_weight, bool a_setFlattening, FArrayBox &a_flatteningFab) |
Evaluate the normal flux. More... | |
virtual void | updateODE (FArrayBox &a_solnFab, const FArrayBox &a_rhsFab, Real a_dt) |
update solution – soln += dt*rhs (required by LevelRK4) More... | |
void | spaceOrder (int a_spaceOrder) |
set spatial order of accuracy More... | |
void | limitFaceValues (bool a_limitFaceValues) |
if true, limit face values More... | |
void | highOrderLimiter (bool a_highOrderLimiter) |
void | useFlattening (bool a_useFlattening) |
sets whether to flatten extrapolations to faces More... | |
void | noPPM (bool a_noPPM) |
sets m_noPPM More... | |
void | doDeconvolution (bool a_doDeconvolution) |
sets m_doDeconvolution More... | |
void | doFaceDeconvolution (bool a_doFaceDeconvolution) |
sets m_doFaceDeconvolution More... | |
void | useArtificialViscosity (bool a_useArtificialViscosity) |
sets whether to use artificial viscosity (from divergence) More... | |
void | artificialViscosity (Real a_artificialViscosity) |
sets coefficient of artificial viscosity (from divergence) More... | |
void | numGhost (int a_numGhost) |
sets m_numGhost, the number of ghost cells More... | |
virtual void | getFluxDivergence (FArrayBox &a_LofU, const FluxBox &a_FfaceAvg) |
virtual bool | isDefined () const |
Is the object completely defined. More... | |
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 More... | |
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 More... | |
virtual void | forwardBasisTransform (FArrayBox &a_W, const int a_dir, const Box &a_box) |
virtual void | reverseBasisTransform (FArrayBox &a_W, const int a_dir, const Box &a_box) |
virtual void | getAllFluxes (FluxBox &a_FfaceAvg, FluxBox &a_FfaceCen, const FluxBox &a_WfaceAvg, const FluxBox &a_WfaceCen) |
virtual void | fluxCorrection (FluxBox &a_fluxAvg, const FArrayBox &a_UavgFab) |
![]() | |
virtual void | reduceFlux (FluxBox &a_FfaceAvg, FluxBox &a_FfaceForGrad) |
Protected Attributes | |
ProblemDomain | m_blockDomain |
const MultiBlockCoordSys * | m_coordSys |
MOLMappedPhysics * | m_molMappedPhysics |
LevelGridMetrics * | m_levelGridMetrics |
const LayoutData< FluxBox > * | m_unitNormalLayPtr |
bool | m_useArtificialDissipation |
Real | m_artificialDissipation |
Real | m_maxSpeed |
bool | m_isMaxSpeedSet |
DataIndex | m_currentDataIdx |
![]() | |
bool | m_isDefined |
Real | m_dx |
ProblemDomain | m_domain |
MOLPhysics * | m_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 | |
PatchMappedConsOperator & | operator= (const PatchMappedConsOperator &a_input) |
PatchMappedConsOperator (const PatchMappedConsOperator &a_input) | |
Patch Mapped Cons Operator - a class for evaluating hyperbolic conservation fluxes on mapped multiblock grids
PatchMappedConsOperator::PatchMappedConsOperator | ( | const int | a_numFluxesPerField = 1 | ) |
Constructor.
Object requires define() to be called before all other functions.
|
virtual |
|
private |
|
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 |
Set the current time before calling evalRHS or addArtificialViscosity.
Reimplemented from PatchConsOperator.
|
virtual |
Set the current data index and box before calling.
Required before calling evalRHS or addArtificialViscosity.
|
virtual |
Evaluate the flux at a given time.
|
virtual |
Evaluate the operator (div(flux)) at a given time.
|
virtual |
finds face-centered W and limits it using Colella&Sekora limiter; also solves Riemann problem
a_cellW | cell-averaged primitive variables |
Reimplemented from PatchConsOperator.
void PatchMappedConsOperator::unitNormals | ( | const LayoutData< FluxBox > *const | a_unitNormalLayPtr | ) |
sets m_unitNormalLayPtr
void PatchMappedConsOperator::setMaxSpeed | ( | Real | a_maxSpeed | ) |
sets m_maxSpeed
void PatchMappedConsOperator::useArtificialDissipation | ( | bool | a_useArtificialDissipation | ) |
sets whether to use artificial dissipation
void PatchMappedConsOperator::artificialDissipation | ( | Real | a_artificialDissipation | ) |
sets coefficient of artificial dissipation
|
virtual |
add artificial viscosity to a_Unew
Reimplemented from PatchConsOperator.
void PatchMappedConsOperator::addMappedArtificialViscosity | ( | FArrayBox & | a_JUnewFab, |
const FArrayBox & | a_UoldFab, | ||
FluxBox & | a_flux, | ||
const FluxBox & | a_N, | ||
const FArrayBox & | a_J, | ||
const Box & | a_box, | ||
Real | a_weight | ||
) |
Add artificial viscosity to a_JUnew for mapped grids.
|
virtual |
|
protectedvirtual |
may be used in derived classes just before calling Riemann solver in direction a_dir
Reimplemented from PatchConsOperator.
|
protectedvirtual |
may be used in derived classes just after calling Riemann solver in direction a_dir
Reimplemented from PatchConsOperator.
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
Reimplemented from PatchConsOperator.
|
protectedvirtual |
|
private |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |