DamBreak++ Wave Simulator 0.3
DamBreak++ Simulation Framework
Loading...
Searching...
No Matches
dbpp_FluxAlgorithm.h
Go to the documentation of this file.
1#pragma once
2
3#include "dbpp_FluxTensor.h"
4#include "dbpp_Enumerations.h"
5
6// forward declarations
7namespace Sfx {
8 class StateVector;
9 class scalarField1D;
10 class cellFaceVariables;
11}
12namespace dbpp {
13 class cellFace;
14 class Omega;
16}
17
18namespace dbpp
19{
24 {
25 public:
30 virtual bool useReconstr() const noexcept { return true; }
35 virtual bool usePhysicalCompleteFlux() const noexcept { return false; }
40 virtual bool usePhysicalInCompleteFlux() const noexcept { return false; }
44 virtual void setFluxAlgoPrms() {}
49 virtual void setReconstrVarOrder(int32 aOrder) noexcept { }
54 virtual int32 getReconstrVarOrder() const noexcept { return 0; }
59 virtual void setReconstrType(eReconstrType aRecnstrType) noexcept = 0; //{ m_reconstrType = aRecnstrType; } ON/OFF??
64 virtual eReconstrType getReconstrType() const noexcept = 0; //{ return m_reconstrType; }
69 virtual FluxTensor calculFF( const Sfx::cellFaceVariables& aFaceVariables)=0;
77 virtual FluxTensor calculFF( const Sfx::StateVector& aUL, const Sfx::StateVector& aUR,
78 const cellFace& aCellFace) = 0;
87 // i don't see why we should pass a scalar field? need to think about that!!
88 virtual FluxTensorMap // FF1,FF2 flux tensor?? why virtual?
89 calculFF( const Sfx::scalarField1D& U1, const Sfx::scalarField1D& U2, //computational dommain
90 const Omega& aDomain, const PhysicalBoundaryCnd& aPhysbc)=0;
98 virtual FluxTensorMap
99 calculFF( const Sfx::scalarField1D& aU1, const Sfx::scalarField1D& aU2, //computational dommain
100 const PhysicalBoundaryCnd& aPhysbc) = 0;
101
102 // next version
103 //virtual CellFaceFlux computePhysicalFlux( Sfx::StVenant1D* aSclEquation, const Sfx::StateVector& aUL, const Sfx::StateVector& aUR) = 0;
104
105 // some prototyping
106 //virtual dbpp::FluxTensorMap
107 // calculFF(const Sfx::scalarField1D& U1, const Sfx::scalarField1D& U2,
108 // const std::list<cellFace>& aListClFace)=0;
109 };
110}// End of namespace
std::pair< fieldptr, fieldptr > StateVector
Definition SimulationConfig.h:27
Abstract base class for numerical flux algorithm.
Definition dbpp_FluxAlgorithm.h:24
virtual void setFluxAlgoPrms()
Flux algorithm parameters.
Definition dbpp_FluxAlgorithm.h:44
virtual void setReconstrType(eReconstrType aRecnstrType) noexcept=0
Reconstruction of variables.
virtual bool usePhysicalCompleteFlux() const noexcept
numerical flux based components (both hydrostatic and ... pressure)
Definition dbpp_FluxAlgorithm.h:35
virtual void setReconstrVarOrder(int32 aOrder) noexcept
cell face variable reconstr order (second-order default)
Definition dbpp_FluxAlgorithm.h:49
virtual FluxTensor calculFF(const Sfx::cellFaceVariables &aFaceVariables)=0
virtual bool usePhysicalInCompleteFlux() const noexcept
numerical flux based components (only hydrostatic term is considered)
Definition dbpp_FluxAlgorithm.h:40
virtual eReconstrType getReconstrType() const noexcept=0
MUSCL as default.
virtual int32 getReconstrVarOrder() const noexcept
reconstruction variable
Definition dbpp_FluxAlgorithm.h:54
virtual bool useReconstr() const noexcept
Reconstruction is used.
Definition dbpp_FluxAlgorithm.h:30
Global Domain (part of global discretization) list of elements and geomeric nodes used by numerical m...
Definition dbpp_Omega.h:19
Physical boundary condition (computational domain) based on characteristic equation ....
Definition dbpp_PhysicalBoundaryCnd.h:22
Cell face in the finite volume discretization Usage: caculFF(const cellFace& aFace) compute the numer...
Definition dbpp_CellFace.h:29
Definition HydUtils.h:15
Definition DamBreakProb.h:15
eReconstrType
Definition dbpp_Enumerations.h:33
Flux tensor field (aggregate initialization).
Definition dbpp_FluxTensor.h:21
Map cell face and flux values.
Definition dbpp_FluxTensor.h:52