DamBreak++ Wave Simulator 0.3
DamBreak++ Simulation Framework
Loading...
Searching...
No Matches
dbpp_SemiDiscreteMethod.h
Go to the documentation of this file.
1#pragma once
2
3// App include
6//#include "dbpp_FiniteVolumeDiscretization.h"
7
8// forward declaration
9namespace dbpp {
10 class ODESolver1D;
11 class SweRhsAlgorithm;
12}
13
14namespace dbpp
15{
25 class SemiDiscreteMethod final : public NumericalMethod
26 {
27 public:
36 SemiDiscreteMethod( /*ODESolver1D* aODEsolver,*/ SweRhsAlgorithm* aRhsAlgo);
46 void setSweRhsAlgorithm( SweRhsAlgorithm* aRhsAlgo) override final
47 {
48 // Design Note
49 // Shall implement discretization of the RHS (Right-Hand-Side)
50 // For example, use convective flux algorithm and source algo
51 // similar what we do in Physical algorithm.
52 // --- NujicENOFlux
53 // --- JBSourceTerms
54 // --- PressusreTerms
55 // m_rhsAlgo = create SweRhsAlgorithm(...)
56 // or may use already defined algorithm available such as
57 // RhsFluxSrc or whatever use decide to prototype
58
59 m_rhsAlgo = aRhsAlgo; // this is wrong!!! don't make sense!!!
60 }
61
65 SweRhsAlgorithm* getSweRhsAlgorithm() const override final { return m_rhsAlgo; }
70 SweRhsAlgorithm* getSweRhsAlgorithm() override final { return m_rhsAlgo; }
75 bool isSemiDiscreteMethod() const override final { return true; }
80 bool isTimeDependent() const override final { return true; }
91 void mainLoop(const std::shared_ptr<dbpp::FiniteVolumeDiscretization>& aGlbDiscr,
92 Sfx::SfxTimePrm& aTime) override final;
97 Uh updatedValues() override final;
98 private:
100 Sfx::LDeltaOperator m_ldeltaOp;
108 float64 timeStepUpdate( std::vector<float64>&& aVecA,
109 std::vector<float64>&& aVecQ);
110 };
111} // End of namespace
Mapping between continuum and discrete domain. Transformation of the differential or integral equatio...
Definition dbpp_NumericalMethod.h:20
Base class ODE Solver (under construction).
Definition dbpp_ODESolver1D.h:29
Uh updatedValues() override final
Updating FiniteVolumeDiscretization global nodal values (Uh)
Definition dbpp_SemiDiscreteMethod.cpp:159
void setSweRhsAlgorithm(SweRhsAlgorithm *aRhsAlgo) override final
Set the RHS algorithm discretization.
Definition dbpp_SemiDiscreteMethod.h:46
ODESolver1D * getODESolver1D() const
getter
Definition dbpp_SemiDiscreteMethod.h:85
bool isSemiDiscreteMethod() const override final
validate method
Definition dbpp_SemiDiscreteMethod.h:75
void mainLoop(const std::shared_ptr< dbpp::FiniteVolumeDiscretization > &aGlbDiscr, Sfx::SfxTimePrm &aTime) override final
update nodal value
Definition dbpp_SemiDiscreteMethod.cpp:57
float64 timeStepUpdate(std::vector< float64 > &&aVecA, std::vector< float64 > &&aVecQ)
compute simulation time step
Definition dbpp_SemiDiscreteMethod.cpp:209
Sfx::LDeltaOperator m_ldeltaOp
Definition dbpp_SemiDiscreteMethod.h:100
~SemiDiscreteMethod()
Dtor.
Definition dbpp_SemiDiscreteMethod.cpp:49
SweRhsAlgorithm * getSweRhsAlgorithm() const override final
getter
Definition dbpp_SemiDiscreteMethod.h:65
SemiDiscreteMethod()
Default ctor.
Definition dbpp_SemiDiscreteMethod.cpp:21
bool isTimeDependent() const override final
validate time dependency
Definition dbpp_SemiDiscreteMethod.h:80
SweRhsAlgorithm * getSweRhsAlgorithm() override final
getter
Definition dbpp_SemiDiscreteMethod.h:70
SweRhsAlgorithm * m_rhsAlgo
Definition dbpp_SemiDiscreteMethod.h:101
ODESolver1D * m_odeSolver1D
Definition dbpp_SemiDiscreteMethod.h:99
Abstract class. "Model" of the right-hand-side terms discretization. Hold discretization scheme or al...
Definition dbpp_SweRhsAlgorithm.h:28
Container of nodal variables.
Definition dbpp_Uh.h:21
Definition HydUtils.h:15
Definition DamBreakProb.h:15
double float64
Definition dbpp_LDeltaOperator.h:12