![]() |
DamBreak++ Wave Simulator 0.3
DamBreak++ Simulation Framework
|
Numerical flux algorithm based on Nujic (1995) paper. ENO type scheme (Roe simplified version). More...
#include <dbpp_NujicFluxAlgorithm.h>
Public Types | |
using | valr64 = std::valarray<float64> |
using | pairf12 = std::pair<std::valarray<float64>, std::valarray<float64>> |
Public Member Functions | |
NujicFluxAlgorithm (const dbpp::ePhysicalFluxType aFluxType, float64 aAlgoNujicPrm) | |
ctor from physical flux and constant | |
FluxTensor | calculFF (const Sfx::cellFaceVariables &aFaceVariables) override final |
numerical flux at cell face | |
FluxTensorMap | calculFF (const Sfx::scalarField1D &U1, const Sfx::scalarField1D &U2, const Omega &aDomain, const PhysicalBoundaryCnd &aPhysbc) override final |
Harten-Lax- Levy numerical flux algorithm. | |
FluxTensor | calculFF (const Sfx::StateVector &aUL, const Sfx::StateVector &aUR, const cellFace &aCellFace) override final |
Numerical flux algorithm. | |
FluxTensorMap | calculFF (const Sfx::scalarField1D &aU1, const Sfx::scalarField1D &aU2, const PhysicalBoundaryCnd &aPhysbc) override final |
compute numerical flux | |
bool | useReconstr () const noexcept override final |
use variable reconstruction | |
bool | usePhysicalCompleteFlux () const noexcept override final |
(hydrostatic term is considered) | |
void | setReconstrType (eReconstrType aRecnstrType) noexcept override final |
Set type of extrapolation. | |
eReconstrType | getReconstrType () const noexcept override final |
Getter. | |
Public Member Functions inherited from dbpp::FluxAlgorithm | |
virtual bool | usePhysicalInCompleteFlux () const noexcept |
numerical flux based components (only hydrostatic term is considered) | |
virtual void | setFluxAlgoPrms () |
Flux algorithm parameters. | |
virtual void | setReconstrVarOrder (int32 aOrder) noexcept |
cell face variable reconstr order (second-order default) | |
virtual int32 | getReconstrVarOrder () const noexcept |
reconstruction variable |
Protected Member Functions | |
std::tuple< valr64, valr64, valr64, valr64 > | computePhysicalFlux (std::valarray< float64 > &&aU1, std::valarray< float64 > &&aU2, std::valarray< float64 > &&aH) |
compute face numerical flux | |
void | setNujicAlgoPrm (float64 aNujicAlgoPrm) |
std::tuple< valr64, valr64, valr64, valr64 > | computePhysicalFlux (Sfx::StVenant1D *aSclEquation, const Uh &aUh) |
Compute physical flux at nodal point. | |
valr64 | computef12p (std::span< float64, Sfx::DIM::value > &&aRng, std::span< float64, Sfx::DIM::value > &&adRng) |
positive component of physical flux | |
valr64 | computef12m (std::span< float64, Sfx::DIM::value > &&aRng, std::span< float64, Sfx::DIM::value > &&adRng) |
negative component of physical flux |
Private Attributes | |
ePhysicalFluxType | m_fluxType |
eReconstrType | m_reconstype |
float64 | m_Alpha {} |
float64 | m_algoPrm { 0.4 } |
std::vector< float64 > | m_Hvec |
Numerical flux algorithm based on Nujic (1995) paper. ENO type scheme (Roe simplified version).
using dbpp::NujicFluxAlgorithm::pairf12 = std::pair<std::valarray<float64>, std::valarray<float64>> |
Aliases
using dbpp::NujicFluxAlgorithm::valr64 = std::valarray<float64> |
An enum type Physical flux type Aliases
|
inline |
ctor from physical flux and constant
aFluxType | physical flux type |
aAlgoNujicPrm | Nujic constant |
|
finaloverridevirtual |
numerical flux at cell face
aFaceVariables | cell face variables |
Implements dbpp::FluxAlgorithm.
|
inlinefinaloverridevirtual |
compute numerical flux
aU1 | first state variable |
aU2 | second state variable |
aPhysbc | physical boundary condition |
Implements dbpp::FluxAlgorithm.
|
finaloverridevirtual |
Harten-Lax- Levy numerical flux algorithm.
U1 | scalar field first state variable |
U2 | scalar field second state variable |
aDomain | computational domain (cells) |
aPhysbc | physical boundary cond. |
Implements dbpp::FluxAlgorithm.
|
inlinefinaloverridevirtual |
Numerical flux algorithm.
aUL | left state |
aUR | right state |
cellFace | cell face |
Implements dbpp::FluxAlgorithm.
|
protected |
negative component of physical flux
aRng | flux values |
adRng | derivative (gradient) values |
|
protected |
positive component of physical flux
aRng | flux values |
adRng | derivative (gradient) values |
|
protected |
Compute physical flux at nodal point.
aSclEquation | math equations |
aUh | global nodal values |
|
protected |
compute face numerical flux
aU1 | array of nodal values |
aU2 | array of nodal values |
aH | water level at nodal point |
|
inlinefinaloverridevirtualnoexcept |
|
inlineprotected |
aNujicAlgoPrm |
|
inlinefinaloverridevirtualnoexcept |
Set type of extrapolation.
aRecnstrType | type extrapolation |
Implements dbpp::FluxAlgorithm.
|
inlinefinaloverridevirtualnoexcept |
|
inlinefinaloverridevirtualnoexcept |
|
private |
value to 0.4 as default
|
private |
algorithm parameter
|
private |
physical flux type
|
private |
water level
|
private |
extrapolation type