11 #ifndef _GODUNOVPHYSICS_H_ 12 #define _GODUNOVPHYSICS_H_ 24 #include "NamespaceHeader.H" 78 const Box& a_box) = 0;
102 const bool& a_useArtificialViscosity,
103 const Real& a_artificialViscosity,
104 const Real& a_currentTime,
134 const Box& a_box) = 0;
148 const Box& a_box) = 0;
161 const Box& a_box) = 0;
171 const Box& a_box) = 0;
191 const Box& a_box) = 0;
204 const Box& a_box) = 0;
214 const Box& a_box) = 0;
221 const Box& a_box) = 0;
230 const Real& a_artificialViscosity,
231 const Real& a_currentTime,
362 #include "NamespaceFooter.H" virtual 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)=0
Compute the solution to the Riemann problem.
virtual void charValues(FArrayBox &a_lambda, const FArrayBox &a_W, const int &a_dir, const Box &a_box)=0
Compute the characteristic values (eigenvalues)
Real m_M0sq
Definition: GodunovPhysics.H:348
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)=0
Compute the quasilinear update A*dW/dx.
virtual void setCurrentBox(const Box &a_currentBox)
Set the current box (default implementation - do nothing)
virtual void define(const ProblemDomain &a_domain, const Real &a_dx)
Define the object.
A class to facilitate interaction with physical boundary conditions.
Definition: ProblemDomain.H:130
Definition: GodunovUtilities.H:31
bool m_isBCSet
Definition: GodunovPhysics.H:352
PhysIBC * getPhysIBC() const
Get the initial and boundary condition object.
virtual void incrementSource(FArrayBox &a_S, const FArrayBox &a_W, const Box &a_box)=0
Add to (increment) the source terms given the current state.
GodunovPhysics()
Constructor.
virtual Vector< string > stateNames()=0
Names of the conserved variables.
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)=0
Post-normal predictor calculation.
virtual Interval velocityInterval()=0
Interval within the primitive variables corresponding to the velocities.
PhysIBC * m_bc
Definition: GodunovPhysics.H:351
A FArrayBox-like container for face-centered fluxes.
Definition: FluxBox.H:22
Structure for passing component ranges in code.
Definition: Interval.H:23
virtual void charAnalysis(FArrayBox &a_dW, const FArrayBox &a_W, const int &a_dir, const Box &a_box)=0
Transform a_dW from primitive to characteristic variables.
double Real
Definition: REAL.H:33
virtual int numConserved()=0
Number of conserved variables.
virtual void consToPrim(FArrayBox &a_W, const FArrayBox &a_U, const Box &a_box)=0
Compute primitive variables from conserved variables.
void setPhysIBC(PhysIBC *a_bc)
Set the initial and boundary condition object.
virtual void expressions(HDF5HeaderData &a_holder) const
Definition: GodunovPhysics.H:236
Definition: GodunovPhysics.H:40
virtual int numPrimitives()=0
Number of primitive variables.
A Rectangular Domain on an Integer Lattice.
Definition: Box.H:465
virtual int pressureIndex()=0
Component index within the primitive variables of the pressure.
Real m_dx
Definition: GodunovPhysics.H:340
virtual void soundSpeed(FArrayBox &a_speed, const FArrayBox &a_U, const Box &a_box)
Compute the maximum wave speed.
virtual void getFlux(FArrayBox &a_flux, const FArrayBox &a_WHalf, const int &a_dir, const Box &a_box)
Compute the fluxes from primitive variable values on a face.
GodunovUtilities m_util
Definition: GodunovPhysics.H:343
bool m_isDefined
Definition: GodunovPhysics.H:336
virtual bool fourthOrderArtificialViscosityIsDefined() const
Returns true if 4th-order artificial viscosity is defined.
Definition: FArrayBox.H:44
virtual Real getFourthOrderArtificialViscosityParameter() const
Returns fourth-order artifical viscosity strong shock threshold.
virtual int numFluxes()=0
Number of flux variables.
virtual GodunovPhysics * new_godunovPhysics() const =0
Object factory for this class.
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.
Physical/domain initial and boundary conditions.
Definition: PhysIBC.H:33
virtual void setFourthOrderArtificialViscosityParameter(const Real &M0sq)
Defines fourth-order artifical viscosity strong shock threshold.
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.
ProblemDomain m_domain
Definition: GodunovPhysics.H:339
void operator=(const GodunovPhysics &)
virtual Real smallPressure()=0
Used to limit the absolute value of a "pressure" difference.
virtual Real getMaxWaveSpeed(const FArrayBox &a_U, const Box &a_box)=0
Compute the maximum wave speed.
virtual int bulkModulusIndex()=0
Component index within the primitive variables of the bulk modulus.
bool m_useFourthOrderArtificialViscosity
Definition: GodunovPhysics.H:347
virtual bool isDefined() const
Is the object completely defined.
virtual int densityIndex()
Component index within the primitive variables of the density.
virtual void charSynthesis(FArrayBox &a_dW, const FArrayBox &a_W, const int &a_dir, const Box &a_box)=0
Transform a_dW from characteristic to primitive variables.
virtual ~GodunovPhysics()
Destructor.