16#include "include/Sfx_DefineTypes.h"
17#include "include/Sfx_Simulator.h"
18#include "include/Sfx_Observer.h"
21namespace Sfx {
class WaveFunc; }
43 public virtual Sfx::Observer,
44 public std::enable_shared_from_this<Wave1DSimulator>
89 void run() override final;
94 bool init() override final;
177 void update() override final;
187 std::valarray<float64>
getH() const noexcept
195 std::shared_ptr<Wave1DSimulator>
sharedPtrTo() {
return shared_from_this(); }
Wave1DSimulator(int aNbIterationsMax=50, double aCFL=0.6)
float64 getPhi1() const noexcept
dambreak parameters (wave profile values)
Definition Testvs19_Wave1DSimulator.h:163
std::shared_ptr< dbpp::ListSectionsFlow > ListSectPtr
Definition Testvs19_Wave1DSimulator.h:49
Wave1DSimulator & operator=(const Wave1DSimulator &aOther)=delete
not allowed to assignment
uint32 getNumberIterationsMax() const noexcept
number of iterations for this simulation
Definition Testvs19_Wave1DSimulator.h:143
float64 m_CFL
Definition Testvs19_Wave1DSimulator.h:201
eSimulationState
Definition Testvs19_Wave1DSimulator.h:63
@ running
Definition Testvs19_Wave1DSimulator.h:64
@ pause
Definition Testvs19_Wave1DSimulator.h:65
@ stop
Definition Testvs19_Wave1DSimulator.h:66
float64 m_Phi0
Definition Testvs19_Wave1DSimulator.h:207
Wave1DSimulator(const Wave1DSimulator &aOther)=delete
not allowed to copy
void setPhi1(float64 aPhi1) noexcept
dambreak parameters (wave profile values)
Definition Testvs19_Wave1DSimulator.h:158
std::valarray< float64 > getH() const noexcept
water depth at global nodal point
Definition Testvs19_Wave1DSimulator.h:187
bool init() override final
Initialization of the simulator.
Definition Testvs19_Wave1DSimulator.cpp:115
void setCFL(float64 aCFl) noexcept
Courant-Friedrich-Levy Number (stability criteria)
Definition Testvs19_Wave1DSimulator.h:148
float64 getCFL() const noexcept
Courant-Friedrich-Levy Number (stability criteria)
Definition Testvs19_Wave1DSimulator.h:153
WaveFuncPtr m_H
Definition Testvs19_Wave1DSimulator.h:197
std::filesystem::path m_validationDir
Definition Testvs19_Wave1DSimulator.h:203
unsigned int m_NumberIterationsMax
Definition Testvs19_Wave1DSimulator.h:205
void setSaveResult2File(bool saveResult) noexcept
flag to set if data is to be saved to file
Definition Testvs19_Wave1DSimulator.h:128
virtual void timeLoop()
Simulation time loop.
Definition Testvs19_Wave1DSimulator.cpp:414
void setValidationDir(const std::filesystem::path &aValidationDir) noexcept
directory to store data
Definition Testvs19_Wave1DSimulator.h:117
std::string getactiveAlgorithm() const noexcept
name of numerical flux algorithm
Definition Testvs19_Wave1DSimulator.h:112
float64 m_Phi1
Definition Testvs19_Wave1DSimulator.h:206
float64 getPhi0() const noexcept
dambreak parameters (wave profile values)
Definition Testvs19_Wave1DSimulator.h:173
void solveProblem(const dbpp::DamBreakProblem &aDBprob)
Solve Dam Break problem.
Definition Testvs19_Wave1DSimulator.cpp:198
void setPhi0(float64 aPhi0) noexcept
dambreak parameters (wave profile values)
Definition Testvs19_Wave1DSimulator.h:168
std::string m_activeAlgo
Definition Testvs19_Wave1DSimulator.h:202
ListSectPtr m_ListSectFlow
Definition Testvs19_Wave1DSimulator.h:199
void setIterationNumberMax(unsigned aNumMaxIter) noexcept
number of iterations for this simulation
Definition Testvs19_Wave1DSimulator.h:138
float64 getFinalTime() const
Definition Testvs19_Wave1DSimulator.h:175
WaveFuncPtr m_I
Definition Testvs19_Wave1DSimulator.h:198
eIC
Definition Testvs19_Wave1DSimulator.h:55
@ Hudson
Definition Testvs19_Wave1DSimulator.h:57
@ EMcNeil
Definition Testvs19_Wave1DSimulator.h:56
bool isSaveResult2File() const noexcept
Save result to file.
Definition Testvs19_Wave1DSimulator.h:133
void update() override final
Definition Testvs19_Wave1DSimulator.cpp:177
std::vector< float64 > m_waveDepthProfile
Definition Testvs19_Wave1DSimulator.h:200
std::shared_ptr< Wave1DSimulator > sharedPtrTo()
share the ownership of 'this' with all existing std::shared_ptr that refer to *this.
Definition Testvs19_Wave1DSimulator.h:195
bool m_saveResult2File
Definition Testvs19_Wave1DSimulator.h:204
void run() override final
Main loop of the simulation.
Definition Testvs19_Wave1DSimulator.cpp:217
std::shared_ptr< Sfx::WaveFunc > WaveFuncPtr
Definition Testvs19_Wave1DSimulator.h:47
float64 m_finalTime
Definition Testvs19_Wave1DSimulator.h:208
void unInitialize() override final
clean-upof the simulator
Definition Testvs19_Wave1DSimulator.h:98
eIC m_IC
Definition Testvs19_Wave1DSimulator.h:209
void setActiveAlgortihm(std::string aAlgoName) noexcept
name of numerical flux algorithm
Definition Testvs19_Wave1DSimulator.h:107
std::filesystem::path getValidationDir() const noexcept
folder to save data
Definition Testvs19_Wave1DSimulator.h:123
The DAM-BREAK Problem class is a model of a well-posed problem.
Definition DamBreakProb.h:37
List of cross-section flow (itereable)
Definition dbpp_ListSectionsFlow.h:15
Definition Testvs19_BaseRhsPhysicsAlgorithm.cpp:19
Definition DamBreakProb.h:15