![]() |
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