![]() |
MFEM v4.8.0
Finite element discretization library
|
Rusanov flux, also known as local Lax-Friedrichs, F̂ n = ½(F(u⁺,x)n + F(u⁻,x)n) - ½λ(u⁺ - u⁻) where λ is the maximum characteristic speed. More...
#include <hyperbolic.hpp>
Public Member Functions | |
RusanovFlux (const FluxFunction &fluxFunction) | |
Constructor for a flux function. | |
real_t | Eval (const Vector &state1, const Vector &state2, const Vector &nor, FaceElementTransformations &Tr, Vector &flux) const override |
Normal numerical flux F̂(u⁻,u⁺,x) n. | |
void | Grad (int side, const Vector &state1, const Vector &state2, const Vector &nor, FaceElementTransformations &Tr, DenseMatrix &grad) const override |
Jacobian of normal numerical flux F̂(u⁻,u⁺,x) n. | |
real_t | Average (const Vector &state1, const Vector &state2, const Vector &nor, FaceElementTransformations &Tr, Vector &flux) const override |
Average normal numerical flux over the interval [u⁻, u⁺] in the second argument of the flux F̂(u⁻,u,x) n. | |
void | AverageGrad (int side, const Vector &state1, const Vector &state2, const Vector &nor, FaceElementTransformations &Tr, DenseMatrix &grad) const override |
Jacobian of average normal numerical flux over the interval [u⁻, u⁺] in the second argument of the flux F̂(u⁻,u,x) n. | |
![]() | |
NumericalFlux (const FluxFunction &fluxFunction) | |
Constructor for a flux function. | |
virtual | ~NumericalFlux ()=default |
const FluxFunction & | GetFluxFunction () const |
Get flux function F. | |
Protected Attributes | |
Vector | fluxN1 |
Vector | fluxN2 |
DenseMatrix | JDotN |
![]() | |
const FluxFunction & | fluxFunction |
Rusanov flux, also known as local Lax-Friedrichs, F̂ n = ½(F(u⁺,x)n + F(u⁻,x)n) - ½λ(u⁺ - u⁻) where λ is the maximum characteristic speed.
Definition at line 428 of file hyperbolic.hpp.
mfem::RusanovFlux::RusanovFlux | ( | const FluxFunction & | fluxFunction | ) |
Constructor for a flux function.
fluxFunction | flux function F(u,x) |
Definition at line 441 of file hyperbolic.cpp.
|
overridevirtual |
Average normal numerical flux over the interval [u⁻, u⁺] in the second argument of the flux F̂(u⁻,u,x) n.
[in] | state1 | state value (u⁻) of the beginning of the interval (num_equations) |
[in] | state2 | state value (u⁺) of the end of the interval (num_equations) |
[in] | nor | normal vector (not a unit vector) (dim) |
[in] | Tr | face element transformation |
[out] | flux | ½(F̄(u⁻,u⁺,x)n + F(u⁻,x)n) - ¼λ(u⁺ - u⁻) |
Reimplemented from mfem::NumericalFlux.
Definition at line 506 of file hyperbolic.cpp.
|
overridevirtual |
Jacobian of average normal numerical flux over the interval [u⁻, u⁺] in the second argument of the flux F̂(u⁻,u,x) n.
[in] | side | gradient w.r.t the first (u⁻) or second argument (u⁺) |
[in] | state1 | state value (u⁻) of the beginning of the interval (num_equations) |
[in] | state2 | state value (u⁺) of the end of the interval (num_equations) |
[in] | nor | normal vector (not a unit vector) (dim) |
[in] | Tr | face element transformation |
[out] | grad | Jacobian of F̄(u⁻,u⁺,x) n side = 1: ½(F̄(u⁻,u⁺,x)n - F(u⁻,x)n) / (u⁺ - u⁻) - ½J(u⁻,x)n + ¼λ side = 2: ½(F(u⁺,x)n - F̄(u⁻,u⁺,x)n) / (u⁺ - u⁻) - ¼λ |
Reimplemented from mfem::NumericalFlux.
Definition at line 527 of file hyperbolic.cpp.
|
overridevirtual |
Normal numerical flux F̂(u⁻,u⁺,x) n.
[in] | state1 | state value (u⁻) at a point from the first element (num_equations) |
[in] | state2 | state value (u⁺) at a point from the second element (num_equations) |
[in] | nor | normal vector (not a unit vector) (dim) |
[in] | Tr | face element transformation |
[out] | flux | F̂ n = ½(F(u⁺,x)n + F(u⁻,x)n) - ½λ(u⁺ - u⁻) |
Implements mfem::NumericalFlux.
Definition at line 450 of file hyperbolic.cpp.
|
overridevirtual |
Jacobian of normal numerical flux F̂(u⁻,u⁺,x) n.
[in] | side | gradient w.r.t the first (u⁻) or second argument (u⁺) |
[in] | state1 | state value (u⁻) of the beginning of the interval (num_equations) |
[in] | state2 | state value (u⁺) of the end of the interval (num_equations) |
[in] | nor | normal vector (not a unit vector) (dim) |
[in] | Tr | face element transformation |
[out] | grad | Jacobian of F(u⁻,u⁺,x) n side = 1: ½J(u⁻,x)n + ½λ side = 2: ½J(u⁺,x)n - ½λ |
Reimplemented from mfem::NumericalFlux.
Definition at line 470 of file hyperbolic.cpp.
|
mutableprotected |
Definition at line 524 of file hyperbolic.hpp.
|
protected |
Definition at line 524 of file hyperbolic.hpp.
|
mutableprotected |
Definition at line 525 of file hyperbolic.hpp.