![]() |
MFEM v4.8.0
Finite element discretization library
|
Abstract class for numerical flux for a system of hyperbolic conservation laws on a face with states, fluxes and characteristic speed. More...
#include <hyperbolic.hpp>
Public Member Functions | |
NumericalFlux (const FluxFunction &fluxFunction) | |
Constructor for a flux function. | |
virtual real_t | Eval (const Vector &state1, const Vector &state2, const Vector &nor, FaceElementTransformations &Tr, Vector &flux) const =0 |
Evaluates normal numerical flux for the given states and normal. Must be implemented in a derived class. | |
virtual void | Grad (int side, const Vector &state1, const Vector &state2, const Vector &nor, FaceElementTransformations &Tr, DenseMatrix &grad) const |
Evaluates Jacobian of the normal numerical flux for the given states and normal. Optionally overloaded in a derived class. | |
virtual real_t | Average (const Vector &state1, const Vector &state2, const Vector &nor, FaceElementTransformations &Tr, Vector &flux) const |
Evaluates average normal numerical flux over the interval between the given end states in the second argument and for the given normal. Optionally overloaded in a derived class. | |
virtual void | AverageGrad (int side, const Vector &state1, const Vector &state2, const Vector &nor, FaceElementTransformations &Tr, DenseMatrix &grad) const |
Evaluates Jacobian of the average normal numerical flux over the interval between the given end states in the second argument and for the given normal. Optionally overloaded in a derived class. | |
virtual | ~NumericalFlux ()=default |
const FluxFunction & | GetFluxFunction () const |
Get flux function F. | |
Protected Attributes | |
const FluxFunction & | fluxFunction |
Abstract class for numerical flux for a system of hyperbolic conservation laws on a face with states, fluxes and characteristic speed.
Definition at line 193 of file hyperbolic.hpp.
|
inline |
Constructor for a flux function.
fluxFunction | flux function F(u,x) |
Definition at line 200 of file hyperbolic.hpp.
|
virtualdefault |
|
inlinevirtual |
Evaluates average normal numerical flux over the interval between the given end states in the second argument and for the given normal. Optionally overloaded in a derived class.
Presently, not used. Reserved for future use.
[in] | state1 | state value of the beginning of the interval (num_equations) |
[in] | state2 | state value of the end of the interval (num_equations) |
[in] | nor | scaled normal vector, see mfem::CalcOrtho() (dim) |
[in] | Tr | face transformation |
[out] | flux | numerical flux (num_equations) |
Reimplemented in mfem::ComponentwiseUpwindFlux, and mfem::RusanovFlux.
Definition at line 258 of file hyperbolic.hpp.
|
inlinevirtual |
Evaluates Jacobian of the average normal numerical flux over the interval between the given end states in the second argument and for the given normal. Optionally overloaded in a derived class.
Presently, not used. Reserved for future use.
[in] | side | indicates gradient w.r.t. the first (side = 1) or second (side = 2) state |
[in] | state1 | state value of the beginning of the interval (num_equations) |
[in] | state2 | state value of the end of the interval (num_equations) |
[in] | nor | scaled normal vector, see mfem::CalcOrtho() (dim) |
[in] | Tr | face transformation |
[out] | grad | Jacobian of the average normal numerical flux (num_equations, dim) |
Reimplemented in mfem::ComponentwiseUpwindFlux, and mfem::RusanovFlux.
Definition at line 280 of file hyperbolic.hpp.
|
pure virtual |
Evaluates normal numerical flux for the given states and normal. Must be implemented in a derived class.
Used in HyperbolicFormIntegrator::AssembleFaceVector() for evaluation of <F̂(u⁻,u⁺,x) n, [v]> term at the face.
[in] | state1 | state value at a point from the first element (num_equations) |
[in] | state2 | state value at a point from the second element (num_equations) |
[in] | nor | scaled normal vector, see mfem::CalcOrtho() (dim) |
[in] | Tr | face transformation |
[out] | flux | numerical flux (num_equations) |
Implemented in mfem::ComponentwiseUpwindFlux, and mfem::RusanovFlux.
|
inline |
Get flux function F.
Definition at line 289 of file hyperbolic.hpp.
|
inlinevirtual |
Evaluates Jacobian of the normal numerical flux for the given states and normal. Optionally overloaded in a derived class.
Used in HyperbolicFormIntegrator::AssembleFaceGrad() for Jacobian of the term <F̂(u⁻,u⁺,x) n, [v]> at the face.
[in] | side | indicates gradient w.r.t. the first (side = 1) or second (side = 2) state |
[in] | state1 | state value of the beginning of the interval (num_equations) |
[in] | state2 | state value of the end of the interval (num_equations) |
[in] | nor | scaled normal vector, see mfem::CalcOrtho() (dim) |
[in] | Tr | face transformation |
[out] | grad | Jacobian of normal numerical flux (num_equations, dim) |
Reimplemented in mfem::ComponentwiseUpwindFlux, and mfem::RusanovFlux.
Definition at line 238 of file hyperbolic.hpp.
|
protected |
Definition at line 292 of file hyperbolic.hpp.