Chombo + EB
3.2
|
#include <PolytropicPhysics.H>
Public Member Functions | |
PolytropicPhysics (const Real &a_smallPressure) | |
Constructor. More... | |
~PolytropicPhysics () | |
Destructor. More... | |
Real | getMaxWaveSpeed (const FArrayBox &a_U, const Box &a_box) |
Compute the maximum wave speed. More... | |
void | soundSpeed (FArrayBox &a_speed, const FArrayBox &a_U, const Box &a_box) |
Compute the speed of sound. More... | |
virtual GodunovPhysics * | new_godunovPhysics () const |
Object factory for this class. More... | |
int | numConserved () |
Number of conserved variables. More... | |
Vector< string > | stateNames () |
Names of the conserved variables. More... | |
int | numFluxes () |
Number of flux variables. More... | |
int | densityIndex () |
Component index within the primitive variables of the density. More... | |
void | getFlux (FArrayBox &a_flux, const FArrayBox &a_whalf, const int &a_dir, const Box &a_box) |
Compute a flux from primitive variable values on a face. More... | |
int | numPrimitives () |
Number of primitive variables. More... | |
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. More... | |
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. More... | |
void | charValues (FArrayBox &a_lambda, const FArrayBox &a_W, const int &a_dir, const Box &a_box) |
Compute the characteristic values (eigenvalues) More... | |
void | incrementSource (FArrayBox &a_S, const FArrayBox &a_W, const Box &a_box) |
Add to (increment) the source terms given the current state. More... | |
void | riemann (FArrayBox &a_WStar, 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. More... | |
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. More... | |
void | quasilinearUpdate (FArrayBox &a_dWdx, 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. More... | |
void | consToPrim (FArrayBox &a_W, const FArrayBox &a_U, const Box &a_box) |
Compute primitive variables from conserved variables. More... | |
virtual Interval | velocityInterval () |
Interval within the primitive variables corresponding to the velocities. More... | |
virtual Interval | vectorFluxInterval () |
Interval within the flux variables corresponding to vector flux. More... | |
virtual int | pressureIndex () |
Component index within the primitive variables of the pressure. More... | |
virtual Real | smallPressure () |
Used to limit the absolute value of a "pressure" difference (away from zero) More... | |
virtual int | bulkModulusIndex () |
Component index within the primitive variables of the bulk modulus. More... | |
virtual void | expressions (HDF5HeaderData &a_holder) const |
Public Member Functions inherited from GodunovPhysics | |
GodunovPhysics () | |
Constructor. More... | |
PhysIBC * | getPhysIBC () const |
Get the initial and boundary condition object. More... | |
void | setPhysIBC (PhysIBC *a_bc) |
Set the initial and boundary condition object. More... | |
virtual | ~GodunovPhysics () |
Destructor. More... | |
virtual void | define (const ProblemDomain &a_domain, const Real &a_dx) |
Define the object. More... | |
virtual void | setCurrentBox (const Box &a_currentBox) |
Set the current box (default implementation - do nothing) More... | |
virtual void | computeUpdate (FArrayBox &a_dU, FluxBox &a_F, const FArrayBox &a_U, const FluxBox &a_WHalf, const bool &a_useArtificialViscosity, const Real &a_artificialViscosity, const Real &a_currentTime, const Real &a_dx, const Real &a_dt, const Box &a_box) |
Compute the increment in the conserved variables from face variables. More... | |
virtual void | artVisc (FArrayBox &a_F, const FArrayBox &a_U, const Real &a_artificialViscosity, const Real &a_currentTime, const int &a_dir, const Box &a_box) |
Compute the artificial viscosity contribution to the flux. More... | |
virtual bool | fourthOrderArtificialViscosityIsDefined () const |
Returns true if 4th-order artificial viscosity is defined. More... | |
virtual void | setFourthOrderArtificialViscosityParameter (const Real &M0sq) |
Defines fourth-order artifical viscosity strong shock threshold. More... | |
virtual Real | getFourthOrderArtificialViscosityParameter () const |
Returns fourth-order artifical viscosity strong shock threshold. More... | |
virtual bool | isDefined () const |
Is the object completely defined. More... | |
Protected Attributes | |
Real | m_smallPressure |
Protected Attributes inherited from GodunovPhysics | |
bool | m_isDefined |
ProblemDomain | m_domain |
Real | m_dx |
GodunovUtilities | m_util |
bool | m_useFourthOrderArtificialViscosity |
Real | m_M0sq |
PhysIBC * | m_bc |
bool | m_isBCSet |
Private Member Functions | |
void | operator= (const PolytropicPhysics &) |
PolytropicPhysics (const PolytropicPhysics &) | |
The base class PolytropicPhysics provides the physics-dependent components for a higher-order method for a single patch: characteristic analysis, Riemann solver, quasilinear update, conservative update, and transformations between conserved, primitive, and flux variables. This class is essentially pure; i.e., all of its member functions are; and the ones that have default implementations are ones that are optionally defined; i.e., the default definition is to send an error message. Physics-dependent versions of this class that are required in real applications are derived from this class by inheritance.
PolytropicPhysics::PolytropicPhysics | ( | const Real & | a_smallPressure | ) |
Constructor.
PolytropicPhysics::~PolytropicPhysics | ( | ) |
Destructor.
|
private |
Compute the maximum wave speed.
Implements GodunovPhysics.
|
virtual |
Compute the speed of sound.
Reimplemented from GodunovPhysics.
|
virtual |
Object factory for this class.
Implements GodunovPhysics.
|
virtual |
|
virtual |
Names of the conserved variables.
Return the names of the conserved variables. A default implementation is provided that puts in generic names (i.e., "variable#" which "#" ranges for 0 to numConserved()-1.
Implements GodunovPhysics.
|
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 |
Component index within the primitive variables of the density.
Return the component index within the primitive variables for the density. Used for fourth-order accurate artificial viscosity.
Reimplemented from GodunovPhysics.
|
virtual |
Compute a flux from primitive variable values on a face.
Reimplemented from GodunovPhysics.
|
virtual |
Number of primitive 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 |
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 |
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 |
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 |
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 |
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 |
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 |
Compute the quasilinear update A*dW/dx.
Implements GodunovPhysics.
|
virtual |
Compute primitive variables from conserved variables.
Implements GodunovPhysics.
|
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.
|
virtual |
Interval within the flux variables corresponding to vector flux.
|
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).
Implements GodunovPhysics.
|
virtual |
Used to limit the absolute value of a "pressure" difference (away from zero)
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).
Implements GodunovPhysics.
|
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.
|
virtual |
Reimplemented from GodunovPhysics.
|
private |
|
protected |