ABLATE Source Documentation  0.12.33
boundaryCondition.hpp
1 #ifndef ABLATELIBRARY_FINITEVOLUME_BOUNDARYCONDITION_HPP
2 #define ABLATELIBRARY_FINITEVOLUME_BOUNDARYCONDITION_HPP
3 #include <memory>
4 #include <string>
5 #include "domain/fieldDescription.hpp"
6 #include "mathFunctions/mathFunction.hpp"
7 
8 namespace ablate::finiteVolume::boundaryConditions {
10  private:
11  const std::string boundaryName;
12  const std::string fieldName;
13 
14  protected:
15  BoundaryCondition(const std::string boundaryName, const std::string fieldName) : boundaryName(boundaryName), fieldName(fieldName) {}
16 
17  public:
18  const std::string& GetBoundaryName() const { return boundaryName; }
19  const std::string& GetFieldName() const { return fieldName; }
20 
21  virtual ~BoundaryCondition() = default;
22  virtual void SetupBoundary(DM dm, PetscDS problem, PetscInt fieldId) = 0;
23 };
24 } // namespace ablate::finiteVolume::boundaryConditions
25 #endif // ABLATELIBRARY_BOUNDARYCONDITION_HPP