ABLATE Source Documentation  0.12.33
lowMachFlowSolver.hpp
1 #ifndef ABLATELIBRARY_LOWMACHFLOW_H
2 #define ABLATELIBRARY_LOWMACHFLOW_H
3 
4 #include <petsc.h>
5 #include <map>
6 #include <string>
7 #include "domain/domain.hpp"
8 #include "finiteElementSolver.hpp"
9 #include "finiteVolume/boundaryConditions/boundaryCondition.hpp"
10 #include "parameters/parameters.hpp"
11 
12 namespace ablate::finiteElement {
14  private:
15  const std::shared_ptr<parameters::Parameters> parameters;
16 
17  public:
18  LowMachFlowSolver(std::string solverId, std::shared_ptr<domain::Region> region, std::shared_ptr<parameters::Parameters> options = {}, std::shared_ptr<parameters::Parameters> parameters = {},
19  std::vector<std::shared_ptr<boundaryConditions::BoundaryCondition>> boundaryConditions = {}, std::vector<std::shared_ptr<mathFunctions::FieldFunction>> auxiliaryFields = {});
20  virtual ~LowMachFlowSolver() = default;
21 
23  void Setup() override;
24  void Initialize() override;
25 
27  void CompleteFlowInitialization(DM, Vec) override;
28 
29  private:
30  inline static std::map<std::string, PetscReal> defaultParameters{{"strouhal", 1.0},
31  {"reynolds", 1.0},
32  {"froude", 1.0},
33  {"peclet", 1.0},
34  {"heatRelease", 1.0},
35  {"gamma", 1.0},
36  {"pth", 1.0},
37  {"mu", 1.0},
38  {"k", 1.0},
39  {"cp", 1.0},
40  {"beta", 1.0},
41  {"gravityDirection", 0}};
42 };
43 } // namespace ablate::finiteElement
44 
45 #endif // ABLATELIBRARY_LOWMACHFLOW_H
Definition: finiteElementSolver.hpp:14
Definition: lowMachFlowSolver.hpp:13
void Setup() override
Definition: lowMachFlowSolver.cpp:10
void CompleteFlowInitialization(DM, Vec) override
Definition: lowMachFlowSolver.cpp:123