![]() |
DamBreak++ Wave Simulator 0.3
DamBreak++ Simulation Framework
|
Basic algorithm to evaluate source terms (bed slope and energy slope) The Manning formula can be read as follow: More...
#include <dbpp_SrcNumericalTreatment.h>
Public Types | |
| enum class | eDerivativeType { centered_2nd , noncentered } |
| enum class | eDerivativeBCType { periodic , noncentered } |
Public Member Functions | |
| virtual std::valarray< double > | TraitementTermeSource0 (const Sfx::scalarField1D &aA, const ListSectionsFlow *aListSectF, const PhysicalBoundaryCnd &aBC) |
| Bed Source term evaluation according to Nujic paper (1995) | |
| virtual std::valarray< double > | TraitementTermeSource2 (const Sfx::StateVectorField &aStateVec, const ListSectionsFlow &aListSectF, const PhysicalBoundaryCnd &aBC) |
| Compute energy slope (part of the algorithm) | |
| void | setManningRoughnessCoeff (float64 aN) noexcept |
| Set roughness coefficient @paramaN roughness coefficient. | |
| float64 | getManningRoughnessCoeff () const noexcept |
| Get roughness coefficient. | |
| void | setHAverage (bool useHavrg) noexcept |
| Validate H average algo. | |
| void | setSfSbNumericalTreatment (std::string aSfSbTreamnent="Nujic(1995)") noexcept |
| Bed slope numericla discretization. | |
| void | setHderivativeType (const eDerivativeType &aDxType) noexcept |
| H derivative type (finite difference) | |
| void | setSpatialDerivativeOrder (uint32 aDxOrdr) noexcept |
| finite difference order | |
| virtual std::string | getSfSbNumericalTreatment () const noexcept |
| const eDerivativeType & | getHderivativeType () const noexcept |
| uint32 | getSpatialDerivativeOrder () const noexcept |
| Getter. | |
| virtual bool | useFriction () const noexcept |
| Fiction coefficient in use. | |
| virtual bool | isUnitWidth () const noexcept |
| Section flow geometry. | |
| virtual bool | useManningFormula () const noexcept |
| Manning formala (friction) | |
Protected Member Functions | |
| SrcNumericalTreatment & | operator= (const SrcNumericalTreatment &)=delete |
| disable copy assignment operator (due to the problem of slicing) | |
| SrcNumericalTreatment & | operator= (SrcNumericalTreatment &&)=delete |
| disable move assignment operator (due to the problem of slicing) | |
Private Attributes | |
| uint32 | m_dxOrder {2} |
| float64 | m_roughns { 0. } |
| bool | m_useHavrg {true} |
| std::string | m_sfsb { "Nujic(1995)" } |
| eDerivativeType | m_dxType { eDerivativeType::centered_2nd} |
Basic algorithm to evaluate source terms (bed slope and energy slope) The Manning formula can be read as follow:
S_f = N^2*V*fabs(V)/h^4/3
where "N" is the emperical Manning coefficient, "V" is the fluid velocity, and "h" water depth taken from a datum.
|
strong |
|
strong |
|
inlinenoexcept |
|
inlinenoexcept |
Get roughness coefficient.
|
inlinevirtualnoexcept |
|
inlinenoexcept |
Getter.
|
inlinevirtualnoexcept |
Section flow geometry.
|
protecteddelete |
disable copy assignment operator (due to the problem of slicing)
| object | to copy from |
|
protecteddelete |
disable move assignment operator (due to the problem of slicing)
| object | to move from |
|
inlinenoexcept |
Validate H average algo.
| useHavrg | flag |
|
inlinenoexcept |
H derivative type (finite difference)
| aDxType | Type |
|
inlinenoexcept |
Set roughness coefficient @paramaN roughness coefficient.
|
inlinenoexcept |
Bed slope numericla discretization.
| aSfSbTreamnent | discretization name |
|
inlinenoexcept |
finite difference order
| aDxOrdr | order |
|
virtual |
Bed Source term evaluation according to Nujic paper (1995)
| aA | state variable (wette darea) |
| aListSectF | list of section flow |
| aBC | physical boundary condition |
make the product of both average and derivative(computational node)
|
virtual |
Compute energy slope (part of the algorithm)
| aA | state variables vector |
| aListSectF | list of section flow |
| aBC | physical boundary condition |
Reimplemented in dbpp::SrcTreatmentS2, and Testvs19::SbSfTermsEvaluation.
|
inlinevirtualnoexcept |
|
inlinevirtualnoexcept |
Manning formala (friction)
|
private |
derivative order
|
private |
finite diff type
|
private |
roughness coefficient
|
private |
Source name
|
private |
average