![]() |
MFEM v4.8.0
Finite element discretization library
|
Component-wise upwinded flux. More...
#include <hyperbolic.hpp>
Public Member Functions | |
ComponentwiseUpwindFlux (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 |
Component-wise upwinded flux.
Upwinded flux for scalar equations, a special case of Godunov or Engquist-Osher flux, is defined as follows: F̂ n = F(u⁺)n for dF(u)/du < 0 on [u⁻,u⁺] F̂ n = F(u⁻)n for dF(u)/du > 0 on [u⁻,u⁺]
Definition at line 539 of file hyperbolic.hpp.
mfem::ComponentwiseUpwindFlux::ComponentwiseUpwindFlux | ( | const FluxFunction & | fluxFunction | ) |
Constructor for a flux function.
fluxFunction | flux function F(u,x) |
Definition at line 598 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̂ n = min(F(u⁻)n, F̄(u⁺,x)n) for u⁻ ≤ u⁺ or F̂ n = max(F(u⁻)n, F̄(u⁺,x)n) for u⁻ > u⁺ |
Reimplemented from mfem::NumericalFlux.
Definition at line 670 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⁺) - F̄(u⁻,u⁺))n / (u⁺ - u⁻) when negative J(u⁻,x) n otherwise side = 2: min((F(u⁺) - F̄(u⁻,u⁺))n / (u⁺ - u⁻), 0) |
Reimplemented from mfem::NumericalFlux.
Definition at line 697 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 = min(F(u⁻,x)n, F(u⁺,x)n) for u⁻ ≤ u⁺ or F̂ n = max(F(u⁻,x)n, F(u⁺,x)n) for u⁻ > u⁺ |
Implements mfem::NumericalFlux.
Definition at line 610 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: max(J(u⁻,x)n, 0) side = 2: min(J(u⁺,x)n, 0) |
Reimplemented from mfem::NumericalFlux.
Definition at line 635 of file hyperbolic.cpp.
|
mutableprotected |
Definition at line 634 of file hyperbolic.hpp.
|
protected |
Definition at line 634 of file hyperbolic.hpp.
|
mutableprotected |
Definition at line 635 of file hyperbolic.hpp.