DamBreak++ Wave Simulator 0.3
DamBreak++ Simulation Framework
Loading...
Searching...
No Matches
dbpp_SweRhsAlgorithm.h
Go to the documentation of this file.
1#pragma once
2
3// C++ include
4#include <string>
5// SfxBase19 include
6#include "include/Sfx_DefineTypes.h"
7//
8#include "SimulationConfig.h" //CalculFF ptr2F
9#include "dbpp_SweRhsData.hpp"
10
11// forward declarations
12namespace Sfx { class StateVectorField; }
13namespace dbpp {
14 class FluxAlgorithm;
18}
19
20namespace dbpp
21{
28 {
29 public:
34 virtual ~SweRhsAlgorithm() = default;
41 virtual SweRhsData<> calculate( const Sfx::StateVectorField& aU,
42 const std::shared_ptr<FiniteVolumeDiscretization>& aGblDiscr) = 0;
48 virtual SweRhsData<> calculate( const Sfx::StateVectorField& aU)= 0;
53 virtual std::string name() const { return std::string{ "SweRhsAlgorithm" }; }
58 virtual void setPhysicalBoundaryCnd( const PhysicalBoundaryCnd& aPhyBnd) = 0;
69 virtual void setFluxAlgorithm( FluxAlgorithm* aFluxAlgo,
70 bool useIncompleteFlux=true) {}
71
75 virtual void setPtr2FuncAlgo(CalculFF aPtr2Func) {}
81 virtual void setSourceTermDiscr( SrcNumericalTreatment* aSrcTreatmnt,
82 bool useManningFormula=true) {}
83
86 virtual void setPressureTermDiscr() {}
91 virtual bool useReconstruction() const noexcept { return false; }
96 virtual bool useSourceTerms() const noexcept { return true; }
101 virtual bool usePressureTerm() const noexcept { return false; }
106 virtual bool useManningFormula() const noexcept { return true; }
111 virtual bool useIncompleteFlux() const noexcept { return true; }
116 virtual bool isFrictionLess() const noexcept { return true; }
121 virtual bool usePtr2FuncLegacy() const noexcept { return false; }
122
123 protected:
136 };
137} // End of namespace
void(*)(DBSArrayType &aFF1, DBSArrayType &aFF2, const DBSArrayType &aU1, const DBSArrayType &aU2) CalculFF
PointerToFunction(numerical flux computation)
Definition SimulationConfig.h:32
global discretized domain is defined as a set of all nodes and all elements. PHYSICAL ENTITIES includ...
Definition dbpp_FiniteVolumeDiscretization.h:26
Abstract base class for numerical flux algorithm.
Definition dbpp_FluxAlgorithm.h:24
Physical boundary condition (computational domain) based on characteristic equation ....
Definition dbpp_PhysicalBoundaryCnd.h:22
Basic algorithm to evaluate source terms (bed slope and energy slope) The Manning formula can be read...
Definition dbpp_SrcNumericalTreatment.h:31
Abstract class. "Model" of the right-hand-side terms discretization. Hold discretization scheme or al...
Definition dbpp_SweRhsAlgorithm.h:28
virtual PhysicalBoundaryCnd getPhysicalBoundaryCnd() const =0
Getter.
virtual bool useIncompleteFlux() const noexcept
Used convective.
Definition dbpp_SweRhsAlgorithm.h:111
virtual void setPtr2FuncAlgo(CalculFF aPtr2Func)
Flux algorithm (Pointer to function)
Definition dbpp_SweRhsAlgorithm.h:75
virtual ~SweRhsAlgorithm()=default
Dtor (disable move semantic) If base class has no members, not supporting move semantic has no effect...
virtual bool useManningFormula() const noexcept
Used friction formula.
Definition dbpp_SweRhsAlgorithm.h:106
virtual SweRhsData calculate(const Sfx::StateVectorField &aU)=0
Calculate (applied) rhs discretization algorithm.
virtual void setPressureTermDiscr()
Set pressure term discretization.
Definition dbpp_SweRhsAlgorithm.h:86
virtual bool isFrictionLess() const noexcept
Used friction.
Definition dbpp_SweRhsAlgorithm.h:116
virtual std::string name() const
Class name.
Definition dbpp_SweRhsAlgorithm.h:53
virtual SweRhsData calculate(const Sfx::StateVectorField &aU, const std::shared_ptr< FiniteVolumeDiscretization > &aGblDiscr)=0
Calculate (applied) rhs discretization algorithm.
virtual void setPhysicalBoundaryCnd(const PhysicalBoundaryCnd &aPhyBnd)=0
Set boundary condition.
virtual bool useSourceTerms() const noexcept
Used source terms.
Definition dbpp_SweRhsAlgorithm.h:96
SweRhsAlgorithm & operator=(const SweRhsAlgorithm &)=delete
disable assign operator to avoid slicing problem
virtual bool usePressureTerm() const noexcept
Used pressure terms.
Definition dbpp_SweRhsAlgorithm.h:101
virtual bool useReconstruction() const noexcept
Used reconstruction of variables.
Definition dbpp_SweRhsAlgorithm.h:91
virtual bool usePtr2FuncLegacy() const noexcept
Used legacy algorithm.
Definition dbpp_SweRhsAlgorithm.h:121
virtual void setSourceTermDiscr(SrcNumericalTreatment *aSrcTreatmnt, bool useManningFormula=true)
Set source term discretization.
Definition dbpp_SweRhsAlgorithm.h:81
virtual void setFluxAlgorithm(FluxAlgorithm *aFluxAlgo, bool useIncompleteFlux=true)
Set flux algorithm.
Definition dbpp_SweRhsAlgorithm.h:69
Definition HydUtils.h:15
Definition DamBreakProb.h:15
Aggregate (must support operator[])
Definition dbpp_SweRhsData.hpp:17