DamBreak++ Wave Simulator 0.3
DamBreak++ Simulation Framework
Loading...
Searching...
No Matches
dbpp_FiniteDifferenceModel.h
Go to the documentation of this file.
1
2#pragma once
3
4// C++ include
5#include <string>
6// SfxBase19 includes
7#include "include/Sfx_TimePrm.h"
8#include "include/Sfx_DefineTypes.h"
9// SfxBase19 include
10#include "include/Sfx_Directory.h"
11// App includes
13#include "dbpp_PhysicalSystem.h"
15
16// FiniteDifference Model hold a model with finite difference discretization
17
18namespace dbpp
19{
20 class SweRhsAlgorithm;
21 class NujicIntegrator;
22// class GodunovTypeScheme;
24}
25
26namespace dbpp
27{
50 {
54 using Time = double;
55
56 public:
62 FiniteDifferenceModel( std::string aName, SweRhsAlgorithm* aRhsAlgo)
63 :// m_twoStepsIntegrator{},
64 // m_rhsAlgo{aRhsAlgo},
65 m_U12{nullptr,nullptr}
66 {}
67
74 void advance( const std::shared_ptr<FiniteVolumeDiscretization>& aGblDiscr, Time aFrom,
75 Time aTo, float64 aNts /*aStepCondition*/) const
76 {
77 // Time parameters (start, stop and time step) read from simulation property file
78 Sfx::SfxTimePrm w_tip; // { 0., 1., 0.01);
79 using enum Sfx::SfxTimePrm::eTimeStepMode;
80 w_tip.setStartTime(aFrom);
81 w_tip.setStopTime(aTo); //hudson (0.01) or mcneil (22.5)
82 w_tip.setTimeStepMode(VARIABLE_TIME_STEP);
83 w_tip.initTimeLoop();
84
85 // ...
86 auto w_numrep = aGblDiscr->method();
87 w_numrep->isGodunovType();
88
89 w_numrep->mainLoop(aGblDiscr, w_tip);
90
91 // const auto& w_Uvalues = aGblDiscr->Uh(); // values()
92 // Sfx::scalarField w_U1; // shall be shared pointer!!
93 // Sfx::scalarField w_U2;
94 // w_tip.increaseTime();
95 }
96
100 // void setInitialState( const PhysicalSystem aSystm) {}
101// private:
102 // Concept of an evolver to step through time
103 // NujicIntegrator m_twoStepsIntegrator; /**< explicit integrator*/
104 // StateVector m_U12; /**< scalar field over a fd grid*/
105 };
106} // End of namespace
FiniteDifferenceModel(std::string aName, SweRhsAlgorithm *aRhsAlgo)
Ctor from rhs algorithm.
Definition dbpp_FiniteDifferenceModel.h:62
void advance(const std::shared_ptr< FiniteVolumeDiscretization > &aGblDiscr, Time aFrom, Time aTo, float64 aNts) const
Step through time (depending on the step condition)
Definition dbpp_FiniteDifferenceModel.h:74
double Time
Definition dbpp_FiniteDifferenceModel.h:54
global discretized domain is defined as a set of all nodes and all elements. PHYSICAL ENTITIES includ...
Definition dbpp_FiniteVolumeDiscretization.h:26
Belongs two-step integrator Runge-Kutta family.
Definition dbpp_NujicIntegrator.h:24
Abstract class. "Model" of the right-hand-side terms discretization. Hold discretization scheme or al...
Definition dbpp_SweRhsAlgorithm.h:28
Definition DamBreakProb.h:15
double float64
Definition dbpp_LDeltaOperator.h:12