DamBreak++ Wave Simulator 0.3
DamBreak++ Simulation Framework
Loading...
Searching...
No Matches
dbpp_FiniteVolumeDiscretization.h
Go to the documentation of this file.
1#pragma once
2
3// C++ include
4#include <list>
5// app includes
7#include "dbpp_Omega.h"
8#include "dbpp_Uh.h"
9
10// forward declarations
11namespace dbpp {
12 class Gamma;
13 class NumericalMethod;
14}
15
16namespace dbpp
17{
26 {
27 using Times = float64;
28 /* public:
29 using num_rep = std::shared_ptr<NumericalMethod>;*/
30 public:
35 FiniteVolumeDiscretization(std::shared_ptr<NumericalMethod>& aMethod);
39 void init() {}
44 const std::list<cellFace>& globalFaces() const { return m_listGblFaces; }
49 std::list<cellFace>& globalFaces() { return m_listGblFaces; }
54 Omega Omega_e() const { return m_omega; } // computational domain
59 Gamma& gamma() const;
60
61 Uh U_h() const { return m_Uh; }
66 Uh& U_h() { return m_Uh; }
71 void setUh( const Uh::vec_nval& aVecValues);
76 const std::shared_ptr<dbpp::NumericalMethod>& method() const { return m_method; }
80 void update();
84 void adjustValues();
88 void addTimes( const std::list<Times>& aListOfTimes) { /*not implemented yet*/ }
89#if 0
90
91 // half-open physical boundary
92 void setPhysicalBoundaryCnd( phynodebcpair aPhysBC) { m_phyBC = aPhysBC; }
93 PhysicalBoundaryCnd getPhysicalBoundaryCnd() const { return m_phyBC;}
94
95 phynodebcpair getUpstreamBCNode() const { return dbpp::NodalTpl<unsigned, float64, float64, float64>{}; } // upstream
96 phynodebcpair getDownstreamBCNode() const {} // downstream
97
98#endif // 0
99
100 private:
102 std::shared_ptr<dbpp::NumericalMethod> m_method;
105 //BoundaryCondType m_gamma; Dirichlet, Neumann, ...
106 // PhysicalBoundaryCnd m_phyBC;
107 std::list<cellFace> m_listGblFaces;
108 std::list<Times> m_listTimes;
109
111 // void createNodalVal();
112
114 // void createFaces();
115
117 // void createPairFaces();
118
120 // void createOmega();
121 };
122} // End of namespace
void update()
Definition dbpp_FiniteVolumeDiscretization.cpp:13
Uh U_h() const
Definition dbpp_FiniteVolumeDiscretization.h:61
std::list< cellFace > m_listGblFaces
Definition dbpp_FiniteVolumeDiscretization.h:107
Omega m_omega
Definition dbpp_FiniteVolumeDiscretization.h:104
std::shared_ptr< dbpp::NumericalMethod > m_method
Definition dbpp_FiniteVolumeDiscretization.h:102
std::list< cellFace > & globalFaces()
global cell face
Definition dbpp_FiniteVolumeDiscretization.h:49
void init()
Initialize discretization.
Definition dbpp_FiniteVolumeDiscretization.h:39
Omega Omega_e() const
Definition dbpp_FiniteVolumeDiscretization.h:54
const std::shared_ptr< dbpp::NumericalMethod > & method() const
numerical method in use
Definition dbpp_FiniteVolumeDiscretization.h:76
Uh m_Uh
Definition dbpp_FiniteVolumeDiscretization.h:103
FiniteVolumeDiscretization(std::shared_ptr< NumericalMethod > &aMethod)
ctor from a numericla method
Definition dbpp_FiniteVolumeDiscretization.cpp:7
Gamma & gamma() const
boundary condition (numeric)
const std::list< cellFace > & globalFaces() const
global cell face
Definition dbpp_FiniteVolumeDiscretization.h:44
void setUh(const Uh::vec_nval &aVecValues)
global nodal values
Definition dbpp_FiniteVolumeDiscretization.cpp:21
float64 Times
Definition dbpp_FiniteVolumeDiscretization.h:27
Uh & U_h()
global nodal values
Definition dbpp_FiniteVolumeDiscretization.h:66
std::list< Times > m_listTimes
Definition dbpp_FiniteVolumeDiscretization.h:108
void addTimes(const std::list< Times > &aListOfTimes)
Definition dbpp_FiniteVolumeDiscretization.h:88
void adjustValues()
'update' equivalent of the last version
Definition dbpp_FiniteVolumeDiscretization.cpp:17
Boundary condition.
Definition dbpp_Gamma.h:16
Mapping between continuum and discrete domain. Transformation of the differential or integral equatio...
Definition dbpp_NumericalMethod.h:20
Global Domain (part of global discretization) list of elements and geomeric nodes used by numerical m...
Definition dbpp_Omega.h:19
Container of nodal variables.
Definition dbpp_Uh.h:21
std::vector< NodalValue > vec_nval
STL-container like interface (range)
Definition dbpp_Uh.h:31
Definition DamBreakProb.h:15
double float64
Definition dbpp_LDeltaOperator.h:12