DamBreak++ Wave Simulator 0.3
DamBreak++ Simulation Framework
Loading...
Searching...
No Matches
dbpp_ODESolver1D.h
Go to the documentation of this file.
1#pragma once
2
3// app includes
6
7// forward declaration
8namespace Sfx { class LDeltaOperator; }
9
10// forward declaration
11namespace dbpp {
12 class PhysicalSystem;
14}
15
16namespace dbpp
17{
29 {
31 using pairvarray = std::pair<std::valarray<float64>, std::valarray<float64>>;
32 public:
37 : m_dbProb{1.,10.}, // default value
38 m_integrator{},
39 m_physSys{ nullptr },
40 m_LdeltaOp{nullptr}
41 {}
42
47 : m_dbProb{ aDbProb }, m_integrator{}, m_physSys{ nullptr }, m_LdeltaOp{nullptr} {}
48
53 : m_dbProb{0.,0.}, m_integrator{}, m_physSys{ nullptr }, m_LdeltaOp{ aLdeltaOp } {}
54
59 void solve( const std::shared_ptr<dbpp::FiniteVolumeDiscretization>& aFVdiscr, float64 aTime);
65 void solve( const Sfx::StateVectorField& aUfield, float64 aTime);
70 pairvarray getSolution() const { return m_integrator.getSolutionAsVarray(); } // shall return what?
75 void registerPhysicalSystem( PhysicalSystem* aPhysys) noexcept { m_physSys = aPhysys; }
80 PhysicalSystem* getPhysicalSystem() const noexcept { return m_physSys;}
81 private:
86 };
87} // End of namespace
Responsible to evaluate the spatial terms according to spatial discretization. The HOperator provides...
Definition Sfx_LDeltaOperator.h:34
The DAM-BREAK Problem class is a model of a well-posed problem.
Definition DamBreakProb.h:37
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
ODESolver1D()
default ctor
Definition dbpp_ODESolver1D.h:36
NujicIntegrator m_integrator
Definition dbpp_ODESolver1D.h:83
Sfx::LDeltaOperator * m_LdeltaOp
Definition dbpp_ODESolver1D.h:85
ODESolver1D(DamBreakProblem aDbProb)
Dam Break type (to solve)
Definition dbpp_ODESolver1D.h:46
void solve(const Sfx::StateVectorField &aUfield, float64 aTime)
Solve ODE system.
void solve(const std::shared_ptr< dbpp::FiniteVolumeDiscretization > &aFVdiscr, float64 aTime)
solve ODE (Ordinary Differential Equation)
Definition dbpp_ODESolver1D.cpp:9
pairvarray getSolution() const
Solution vector.
Definition dbpp_ODESolver1D.h:70
ODESolver1D(Sfx::LDeltaOperator *aLdeltaOp)
Solve Dam Break problem.
Definition dbpp_ODESolver1D.h:52
std::pair< std::valarray< float64 >, std::valarray< float64 > > pairvarray
Alias pair of numerical array.
Definition dbpp_ODESolver1D.h:31
void registerPhysicalSystem(PhysicalSystem *aPhysys) noexcept
Set reference to physical system.
Definition dbpp_ODESolver1D.h:75
PhysicalSystem * m_physSys
Definition dbpp_ODESolver1D.h:84
PhysicalSystem * getPhysicalSystem() const noexcept
Getter.
Definition dbpp_ODESolver1D.h:80
DamBreakProblem m_dbProb
Definition dbpp_ODESolver1D.h:82
Physical system made of physical objects under study and described by the state variables....
Definition dbpp_PhysicalSystem.h:32
Definition HydUtils.h:15
Definition DamBreakProb.h:15
double float64
Definition dbpp_LDeltaOperator.h:12