#include <AdvectPhysics.H>
Public Member Functions | |
AdvectPhysics () | |
Constructor. | |
~AdvectPhysics () | |
Destructor. | |
virtual Real | getMaxWaveSpeed (const FArrayBox &a_U, const Box &a_box) |
Compute the maximum wave speed. | |
virtual GodunovPhysics * | new_godunovPhysics () const |
Factory method - this object is its own factory. | |
virtual int | numConserved () |
Number of conserved variables. | |
virtual Vector< string > | stateNames () |
Names of the conserved variables. | |
virtual int | numFluxes () |
Number of flux variables. | |
virtual void | getFlux (FArrayBox &a_flux, const FArrayBox &a_WHalf, const int &a_dir, const Box &a_box) |
COMPUTE fluxes from primitive values on a face ( advVel*wHalf). | |
virtual bool | isDefined () const |
Is the object completely defined. | |
virtual int | numPrimitives () |
Number of primitve variables. | |
virtual void | charAnalysis (FArrayBox &a_dW, const FArrayBox &a_W, const int &a_dir, const Box &a_box) |
Transform a_dW from primitive to characteristic variables. | |
virtual void | charSynthesis (FArrayBox &a_dW, const FArrayBox &a_W, const int &a_dir, const Box &a_box) |
Transform a_dW from characteristic to primitive variables. | |
virtual void | charValues (FArrayBox &a_lambda, const FArrayBox &a_W, const int &a_dir, const Box &a_box) |
Compute the characteristic values (eigenvalues). | |
virtual void | incrementSource (FArrayBox &a_S, const FArrayBox &a_W, const Box &a_box) |
Add to (increment) the source terms given the current state. | |
virtual void | riemann (FArrayBox &a_WGdnv, const FArrayBox &a_WLeft, const FArrayBox &a_WRight, const FArrayBox &a_W, const Real &a_time, const int &a_dir, const Box &a_box) |
Compute the solution to the Riemann problem. | |
virtual void | postNormalPred (FArrayBox &a_dWMinus, FArrayBox &a_dWPlus, const FArrayBox &a_W, const Real &a_dt, const Real &a_dx, const int &a_dir, const Box &a_box) |
Post-normal predictor calculation. | |
virtual void | quasilinearUpdate (FArrayBox &a_AdWdx, const FArrayBox &a_WHalf, const FArrayBox &a_W, const Real &a_scale, const int &a_dir, const Box &a_box) |
Compute the quasilinear update A*dW/dx. | |
virtual void | consToPrim (FArrayBox &a_W, const FArrayBox &a_U, const Box &a_box) |
Compute primitive variables from conserved variables. | |
virtual Interval | velocityInterval () |
Interval within the primitive variables corresponding to the velocities. | |
virtual int | pressureIndex () |
Component index within the primitive variables of the pressure. | |
virtual Real | smallPressure () |
Used to limit the absolute value of a "pressure" difference. | |
virtual int | bulkModulusIndex () |
Component index within the primitive variables of the bulk modulus. | |
void | setVelocities (FArrayBox *a_celVelPtr, FluxBox *a_advVelPtr) |
Set cell-centered and face centered advection velocity. | |
Protected Attributes | |
bool | m_isVelSet |
FluxBox * | m_advVelPtr |
face-centered advection velocity | |
FArrayBox * | m_cellVelPtr |
cell-centered advection velocity (centered at old time) |
AdvectPhysics::AdvectPhysics | ( | ) |
Constructor.
AdvectPhysics::~AdvectPhysics | ( | ) |
Destructor.
virtual GodunovPhysics* AdvectPhysics::new_godunovPhysics | ( | ) | const [virtual] |
Factory method - this object is its own factory.
Return a pointer to new AdvectPhysics object with the same definition as this object.
Implements GodunovPhysics.
virtual int AdvectPhysics::numConserved | ( | ) | [inline, virtual] |
virtual Vector<string> AdvectPhysics::stateNames | ( | ) | [inline, virtual] |
Names of the conserved variables.
Return the names of the conserved variables.
Implements GodunovPhysics.
virtual int AdvectPhysics::numFluxes | ( | ) | [inline, virtual] |
Number of flux variables.
Return the number of flux variables. This can be greater than the number of conserved variables if addition fluxes/face-centered quantities are computed.
Implements GodunovPhysics.
virtual void AdvectPhysics::getFlux | ( | FArrayBox & | a_flux, | |
const FArrayBox & | a_WHalf, | |||
const int & | a_dir, | |||
const Box & | a_box | |||
) | [virtual] |
COMPUTE fluxes from primitive values on a face ( advVel*wHalf).
Fluxes are computed as advVel*wHalf
Reimplemented from GodunovPhysics.
virtual bool AdvectPhysics::isDefined | ( | ) | const [inline, virtual] |
Is the object completely defined.
Return true if the object is completely defined.
Reimplemented from GodunovPhysics.
References GodunovPhysics::m_isDefined.
virtual int AdvectPhysics::numPrimitives | ( | ) | [inline, virtual] |
Number of primitve variables.
Return the number of primitive variables. This may be greater than the number of conserved variables if derived/redundant quantities are also stored for convenience.
Implements GodunovPhysics.
virtual void AdvectPhysics::charAnalysis | ( | FArrayBox & | a_dW, | |
const FArrayBox & | a_W, | |||
const int & | a_dir, | |||
const Box & | a_box | |||
) | [inline, virtual] |
Transform a_dW from primitive to characteristic variables.
On input, a_dW contains the increments of the primitive variables. On output, it contains the increments in the characteristic variables.
IMPORTANT NOTE: It is assumed that the characteristic analysis puts the smallest eigenvalue first, the largest eigenvalue last, and orders the characteristic variables accordingly.
Implements GodunovPhysics.
virtual void AdvectPhysics::charSynthesis | ( | FArrayBox & | a_dW, | |
const FArrayBox & | a_W, | |||
const int & | a_dir, | |||
const Box & | a_box | |||
) | [inline, virtual] |
Transform a_dW from characteristic to primitive variables.
On input, a_dW contains the increments of the characteristic variables. On output, it contains the increments in the primitive variables.
IMPORTANT NOTE: It is assumed that the characteristic analysis puts the smallest eigenvalue first, the largest eigenvalue last, and orders the characteristic variables accordingly.
Implements GodunovPhysics.
virtual void AdvectPhysics::charValues | ( | FArrayBox & | a_lambda, | |
const FArrayBox & | a_W, | |||
const int & | a_dir, | |||
const Box & | a_box | |||
) | [virtual] |
Compute the characteristic values (eigenvalues).
Compute the characteristic values (eigenvalues).
IMPORTANT NOTE: It is assumed that the characteristic analysis puts the smallest eigenvalue first, the largest eigenvalue last, and orders the characteristic variables accordingly.
Implements GodunovPhysics.
virtual void AdvectPhysics::incrementSource | ( | FArrayBox & | a_S, | |
const FArrayBox & | a_W, | |||
const Box & | a_box | |||
) | [inline, virtual] |
Add to (increment) the source terms given the current state.
On input, a_S contains the current source terms. On output, a_S has had any additional source terms (based on the current state, a_W) added to it. This should all be done on the region defined by a_box.
Implements GodunovPhysics.
virtual void AdvectPhysics::riemann | ( | FArrayBox & | a_WGdnv, | |
const FArrayBox & | a_WLeft, | |||
const FArrayBox & | a_WRight, | |||
const FArrayBox & | a_W, | |||
const Real & | a_time, | |||
const int & | a_dir, | |||
const Box & | a_box | |||
) | [virtual] |
Compute the solution to the Riemann problem.
Given input left and right states in a direction, a_dir, compute a Riemann problem and generate fluxes at the faces within a_box.
Implements GodunovPhysics.
virtual void AdvectPhysics::postNormalPred | ( | FArrayBox & | a_dWMinus, | |
FArrayBox & | a_dWPlus, | |||
const FArrayBox & | a_W, | |||
const Real & | a_dt, | |||
const Real & | a_dx, | |||
const int & | a_dir, | |||
const Box & | a_box | |||
) | [inline, virtual] |
Post-normal predictor calculation.
Add increment to normal predictor, e.g. to account for source terms due to spatially-varying coefficients, to bound primitive variable ranges.
Implements GodunovPhysics.
virtual Interval AdvectPhysics::velocityInterval | ( | ) | [inline, virtual] |
Interval within the primitive variables corresponding to the velocities.
Return the interval of component indices within the primitive variable of the velocities. Used for slope flattening (slope computation) and computing the divergence of the velocity (artificial viscosity).
Implements GodunovPhysics.
References MayDay::Error().
virtual int AdvectPhysics::pressureIndex | ( | ) | [inline, virtual] |
Component index within the primitive variables of the pressure.
Return the component index withn the primitive variables for the pressure. Used for slope flattening (slope computation). Component index within the primitive variables of the pressure since this doesn't apply to this set of equations, return a bogus value
Implements GodunovPhysics.
References MayDay::Error().
virtual Real AdvectPhysics::smallPressure | ( | ) | [inline, virtual] |
Used to limit the absolute value of a "pressure" difference.
Return a value that is used by slope flattening to limit (away from zero) the absolute value of a slope in the pressureIndex() component (slope computation). Used to limit the absolute value of a "pressure" difference since this doesn't apply to this set of equations, return a bogus value
Implements GodunovPhysics.
References MayDay::Error().
virtual int AdvectPhysics::bulkModulusIndex | ( | ) | [inline, virtual] |
Component index within the primitive variables of the bulk modulus.
Return the component index withn the primitive variables for the bulk modulus. Used for slope flattening (slope computation) used as a normalization to measure shock strength.
Implements GodunovPhysics.
References MayDay::Error().
Set cell-centered and face centered advection velocity.
References m_advVelPtr, m_cellVelPtr, and m_isVelSet.
bool AdvectPhysics::m_isVelSet [protected] |
Referenced by setVelocities().
FluxBox* AdvectPhysics::m_advVelPtr [protected] |
FArrayBox* AdvectPhysics::m_cellVelPtr [protected] |