DamBreak++ Wave Simulator 0.3
DamBreak++ Simulation Framework
Loading...
Searching...
No Matches
Testvs19::NujicSrcTermAlgorithm Class Reference

"Model of" function object (called functor). Calculate the "S0" .... slope term More...

#include <Testvs19_NujicSourceTreatment.h>

Inheritance diagram for Testvs19::NujicSrcTermAlgorithm:
dbpp::SrcNumericalTreatment

Public Types

enum class  eSrcTermType { Hderivative = 0 , Zderivative = 1 }
enum class  eSrcDxType { central_2ndorder = 0 , central_4thorder = 1 }
Public Types inherited from dbpp::SrcNumericalTreatment
enum class  eDerivativeType { centered_2nd , noncentered }
enum class  eDerivativeBCType { periodic , noncentered }

Public Member Functions

 NujicSrcTermAlgorithm ()
 default ctor
 NujicSrcTermAlgorithm (const dbpp::ListSectionsFlow &aSectFlow)
 Ctor from a list of sections.
 NujicSrcTermAlgorithm (const Testvs19::ListSectionsFlow< dbpp::SectionFlow > *aSectFlow)
 Ctor from a list of sections.
std::valarray< float64 > TraitementTermeSourceS0 (const Sfx::scalarField1D &aAfield, const Sfx::scalarField1D &aQfield) const
 bed slope algorithm
std::valarray< float64 > TraitementTermeSourceS2 (const Sfx::FieldLattice &aAfield, const Sfx::FieldLattice &aHfield) const
 friction energy slope and bed slop terms treatment
std::valarray< float64 > TraitementTermeSourceS2 (const Sfx::PhysicalSystem *aPhysys, const Sfx::EMcNeilBndCnd &aBC)
 friction energy slope and bed slop terms treatment
void setHderivativeOrder (int32 aDerivOrder) noexcept
 Set derivative order.
int32 getderivativeOrder () const noexcept
 Getter.
std::valarray< float64 > getManningValues () const noexcept
 Getter.
void setSectionsManningValues (const std::vector< float64 > &aVecNvalues) noexcept
 Set Manning (section)
bool isFictionLess () const noexcept
 System friction.
void setVariableTraitementS2 (eSrcTermType aSrcTemrType) noexcept
 Source (bed slope) type: physics considerations.
void setDxOrderSourceTerm (eSrcDxType aSrcDxType) noexcept
 Source (bed slope) derivative order: fd derivative (Taylor series)
eSrcTermType getSrcTermType () const noexcept
 Getter.
eSrcDxType getSrcDxType () const noexcept
 Getter.
void setData (const dbpp::ListSectionsFlow &aData) noexcept
Public Member Functions inherited from dbpp::SrcNumericalTreatment
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 eDerivativeTypegetHderivativeType () 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)

Private Attributes

int m_derivativeOrder
std::valarray< float64 > m_frictionCoeff
eSrcTermType m_srcType { eSrcTermType::Hderivative }
eSrcDxType m_dxsrcType { eSrcDxType::central_2ndorder }
dbpp::ListSectionsFlow m_listSectFlow
const Testvs19::ListSectionsFlow< dbpp::SectionFlow > * m_listSectFlow19

Additional Inherited Members

Protected Member Functions inherited from dbpp::SrcNumericalTreatment
SrcNumericalTreatmentoperator= (const SrcNumericalTreatment &)=delete
 disable copy assignment operator (due to the problem of slicing)
SrcNumericalTreatmentoperator= (SrcNumericalTreatment &&)=delete
 disable move assignment operator (due to the problem of slicing)

Detailed Description

"Model of" function object (called functor). Calculate the "S0" .... slope term

Member Enumeration Documentation

◆ eSrcDxType

An enum type Source derivative order

Enumerator
central_2ndorder 

second-order

central_4thorder 

fourth-order

◆ eSrcTermType

An enum type Source term derivative treatment

Enumerator
Hderivative 

H-derivative

Zderivative 

Z-derivative

Constructor & Destructor Documentation

◆ NujicSrcTermAlgorithm() [1/3]

Testvs19::NujicSrcTermAlgorithm::NujicSrcTermAlgorithm ( )
inline

default ctor

◆ NujicSrcTermAlgorithm() [2/3]

Testvs19::NujicSrcTermAlgorithm::NujicSrcTermAlgorithm ( const dbpp::ListSectionsFlow & aSectFlow)
inline

Ctor from a list of sections.

Parameters
aSectFlowlist of sections (dbpp namespace)

◆ NujicSrcTermAlgorithm() [3/3]

Testvs19::NujicSrcTermAlgorithm::NujicSrcTermAlgorithm ( const Testvs19::ListSectionsFlow< dbpp::SectionFlow > * aSectFlow)
inline

Ctor from a list of sections.

Parameters
aSectFlowlist of sections (prototype namespace)

Member Function Documentation

◆ getderivativeOrder()

int32 Testvs19::NujicSrcTermAlgorithm::getderivativeOrder ( ) const
inlinenoexcept

Getter.

Returns
order

◆ getManningValues()

std::valarray< float64 > Testvs19::NujicSrcTermAlgorithm::getManningValues ( ) const
inlinenoexcept

Getter.

Returns
numerical array

◆ getSrcDxType()

eSrcDxType Testvs19::NujicSrcTermAlgorithm::getSrcDxType ( ) const
inlinenoexcept

Getter.

Returns
Source (bed slope) derivative order

◆ getSrcTermType()

eSrcTermType Testvs19::NujicSrcTermAlgorithm::getSrcTermType ( ) const
inlinenoexcept

Getter.

Returns
Source (bed slope) type

◆ isFictionLess()

bool Testvs19::NujicSrcTermAlgorithm::isFictionLess ( ) const
inlinenodiscardnoexcept

System friction.

Returns
true/false

◆ setData()

void Testvs19::NujicSrcTermAlgorithm::setData ( const dbpp::ListSectionsFlow & aData)
inlinenoexcept

◆ setDxOrderSourceTerm()

void Testvs19::NujicSrcTermAlgorithm::setDxOrderSourceTerm ( eSrcDxType aSrcDxType)
inlinenoexcept

Source (bed slope) derivative order: fd derivative (Taylor series)

Parameters
aSrcDxType

◆ setHderivativeOrder()

void Testvs19::NujicSrcTermAlgorithm::setHderivativeOrder ( int32 aDerivOrder)
inlinenoexcept

Set derivative order.

Parameters
aDerivOrderorder

◆ setSectionsManningValues()

void Testvs19::NujicSrcTermAlgorithm::setSectionsManningValues ( const std::vector< float64 > & aVecNvalues)
inlinenoexcept

Set Manning (section)

Parameters
aVecNvaluesvalues for each section

◆ setVariableTraitementS2()

void Testvs19::NujicSrcTermAlgorithm::setVariableTraitementS2 ( eSrcTermType aSrcTemrType)
inlinenoexcept

Source (bed slope) type: physics considerations.

Parameters
aSrcTemrTypesource type

◆ TraitementTermeSourceS0()

std::valarray< float64 > Testvs19::NujicSrcTermAlgorithm::TraitementTermeSourceS0 ( const Sfx::scalarField1D & aAfield,
const Sfx::scalarField1D & aQfield ) const

bed slope algorithm

Parameters
aAfieldfirst state variable
aQfieldsecond state variable
Returns
numerical array

◆ TraitementTermeSourceS2() [1/2]

std::valarray< float64 > Testvs19::NujicSrcTermAlgorithm::TraitementTermeSourceS2 ( const Sfx::FieldLattice & aAfield,
const Sfx::FieldLattice & aHfield ) const

friction energy slope and bed slop terms treatment

Parameters
aAfieldfirst state variable
aHfieldwater level (height)
Returns
numerical array

◆ TraitementTermeSourceS2() [2/2]

std::valarray< float64 > Testvs19::NujicSrcTermAlgorithm::TraitementTermeSourceS2 ( const Sfx::PhysicalSystem * aPhysys,
const Sfx::EMcNeilBndCnd & aBC )

friction energy slope and bed slop terms treatment

Parameters
aPhysysphysical system
aBCphysical boundary condition return numerical array

Member Data Documentation

◆ m_derivativeOrder

int Testvs19::NujicSrcTermAlgorithm::m_derivativeOrder
private

derivative order

◆ m_dxsrcType

eSrcDxType Testvs19::NujicSrcTermAlgorithm::m_dxsrcType { eSrcDxType::central_2ndorder }
private

source term derivative order

◆ m_frictionCoeff

std::valarray<float64> Testvs19::NujicSrcTermAlgorithm::m_frictionCoeff
private

Manning coefficient

◆ m_listSectFlow

dbpp::ListSectionsFlow Testvs19::NujicSrcTermAlgorithm::m_listSectFlow
private

list of sections

◆ m_listSectFlow19

const Testvs19::ListSectionsFlow<dbpp::SectionFlow>* Testvs19::NujicSrcTermAlgorithm::m_listSectFlow19
private

◆ m_srcType

eSrcTermType Testvs19::NujicSrcTermAlgorithm::m_srcType { eSrcTermType::Hderivative }
private

source term treatment type


The documentation for this class was generated from the following files: