ABLATE Source Documentation  0.12.33
incompressibleFlowSolver.hpp
1 #ifndef ABLATELIBRARY_INCOMPRESSIBLEFLOW_H
2 #define ABLATELIBRARY_INCOMPRESSIBLEFLOW_H
3 
4 #include <petsc.h>
5 #include <string>
6 #include "domain/domain.hpp"
7 #include "finiteElementSolver.hpp"
8 #include "finiteVolume/boundaryConditions/boundaryCondition.hpp"
9 #include "mathFunctions/fieldFunction.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  IncompressibleFlowSolver(std::string solverId, std::shared_ptr<domain::Region> region, std::shared_ptr<parameters::Parameters> options = {},
19  std::shared_ptr<parameters::Parameters> parameters = {}, std::vector<std::shared_ptr<boundaryConditions::BoundaryCondition>> boundaryConditions = {},
20  std::vector<std::shared_ptr<mathFunctions::FieldFunction>> auxiliaryFields = {});
21 
23  void Setup() override;
24  void Initialize() override;
25 
26  void CompleteFlowInitialization(DM, Vec) override;
27 
28  private:
29  inline static std::map<std::string, PetscReal> defaultParameters{{"strouhal", 1.0}, {"reynolds", 1.0}, {"peclet", 1.0}, {"mu", 1.0}, {"k", 1.0}, {"cp", 1.0}};
30 };
31 } // namespace ablate::finiteElement
32 
33 #endif // ABLATELIBRARY_LOWMACHFLOW_H
Definition: finiteElementSolver.hpp:14
Definition: incompressibleFlowSolver.hpp:13
void Setup() override
Definition: incompressibleFlowSolver.cpp:12