DamBreak++ Wave Simulator 0.3
DamBreak++ Simulation Framework
Loading...
Searching...
No Matches
Sfx_ImposeBnd.h
Go to the documentation of this file.
1#pragma once
2
3// SfxBase19 Library includes
4#include "Sfx/Sfx_NodalValues.h"
5#include "Sfx/Sfx_FieldLattice.h"
6// App include
8
9// forward declaration
10namespace Sfx {
11 class PhysicalSystem;
12 class StateVector;
13}
14
15namespace Sfx
16{
22 {
23 public:
27 using pair_node = std::pair<Nodal_Value,Nodal_Value>; // deprecated
28
29 public:
30 // DESIGN NOTE
31 /*
32 * @brief Its important to note that B.C. (characteristic) is applied
33 * to the physical system. This is a prototype version impl.
34 */
35 void applyBC( const Sfx::PhysicalSystem* aPhySys, double aDt);
36
41 pair_node getBC() const { return std::make_pair(m_upstream,m_downstream);}
47 void setBC( Sfx::NumArray<float64>& aU1, Sfx::NumArray<float64>& aU2);
48 private:
49 //std::set<dbpp::SectionFlow> m_setSectFlow; totally ridiculus!!!
50 Nodal_Value m_upstream;
51 Nodal_Value m_downstream;
52 private:
57 {
58 float64 CN{};
59 float64 CB{};
60 };
61
65 {
66 float64 CA{};
67 float64 CP{};
68 };
69
76 DownstreamCelerity computeAval( const Sfx::StateVector& aVal,
77 const dbpp::SectionFlow& aSectAval,
78 float64 aDt);
86 UpstreamCelerity computeAmont( const Sfx::StateVector& aVal,
87 const dbpp::SectionFlow& aSectAval,
88 float64 aDt);
89 };
90} // End of namespace
std::pair< fieldptr, fieldptr > StateVector
Definition SimulationConfig.h:27
Calculate the characteristic information to set boundary node values (A,Q,H)
Definition Sfx_ImposeBnd.h:22
void applyBC(const Sfx::PhysicalSystem *aPhySys, double aDt)
Definition Sfx_ImposeBnd.cxx:177
pair_node getBC() const
return boundary value (upstream/downstream)
Definition Sfx_ImposeBnd.h:41
Nodal_Value m_downstream
Definition Sfx_ImposeBnd.h:51
Nodal_Value m_upstream
Definition Sfx_ImposeBnd.h:50
void setBC(Sfx::NumArray< float64 > &aU1, Sfx::NumArray< float64 > &aU2)
set physical boundary node (upstream/downstream)
Definition Sfx_ImposeBnd.cxx:237
std::pair< Nodal_Value, Nodal_Value > pair_node
alias
Definition Sfx_ImposeBnd.h:27
UpstreamCelerity computeAmont(const Sfx::StateVector &aVal, const dbpp::SectionFlow &aSectAval, float64 aDt)
Definition Sfx_ImposeBnd.cxx:276
DownstreamCelerity computeAval(const Sfx::StateVector &aVal, const dbpp::SectionFlow &aSectAval, float64 aDt)
compute nodal values at boundary nodes according to characteristic information
Definition Sfx_ImposeBnd.cxx:338
Cross-sectional flow (2-dimensional).
Definition dbpp_SectionFlow.h:16
Definition HydUtils.h:15
aggregate that hold celerity wave downstream (characteristic)
Definition Sfx_ImposeBnd.h:65
float64 CP
Definition Sfx_ImposeBnd.h:67
float64 CA
Definition Sfx_ImposeBnd.h:66
aggregate that hold celerity wave upstream (characteristic)
Definition Sfx_ImposeBnd.h:57
float64 CB
Definition Sfx_ImposeBnd.h:59
float64 CN
Definition Sfx_ImposeBnd.h:58