ABLATE Source Documentation  0.12.33
arbitrarySource.hpp
1 #ifndef ABLATELIBRARY_BOUNDARYARBITRARYSOURCE_HPP
2 #define ABLATELIBRARY_BOUNDARYARBITRARYSOURCE_HPP
3 
4 #include "boundarySolver/boundaryProcess.hpp"
5 #include "eos/transport/transportModel.hpp"
6 #include "finiteVolume/processes/navierStokesTransport.hpp"
7 #include "finiteVolume/processes/pressureGradientScaling.hpp"
8 namespace ablate::boundarySolver::physics {
9 
14  private:
16  const std::map<std::string, std::shared_ptr<ablate::mathFunctions::MathFunction>> functions;
17 
19  const BoundarySolver::BoundarySourceType boundarySourceType;
20 
22  static PetscErrorCode ArbitrarySourceFunction(PetscInt dim, const ablate::boundarySolver::BoundarySolver::BoundaryFVFaceGeom *fg, const PetscFVCellGeom *boundaryCell, const PetscInt uOff[],
23  const PetscScalar *boundaryValues, const PetscScalar *stencilValues[], const PetscInt aOff[], const PetscScalar *auxValues,
24  const PetscScalar *stencilAuxValues[], PetscInt stencilSize, const PetscInt stencil[], const PetscScalar stencilWeights[], const PetscInt sOff[],
25  PetscScalar source[], void *ctx);
26 
28  PetscReal currentTime = 0.0;
29 
30  public:
31  explicit ArbitrarySource(std::map<std::string, std::shared_ptr<ablate::mathFunctions::MathFunction>> functions, BoundarySolver::BoundarySourceType boundarySourceType);
32 
37  void Setup(ablate::boundarySolver::BoundarySolver &bSolver) override;
38 };
39 
40 } // namespace ablate::boundarySolver::physics
41 
42 #endif // ABLATELIBRARY_SUBLIMATION_HPP
Definition: boundaryProcess.hpp:8
Definition: boundarySolver.hpp:13
BoundarySourceType
Definition: boundarySolver.hpp:43
Definition: arbitrarySource.hpp:13
void Setup(ablate::boundarySolver::BoundarySolver &bSolver) override
Definition: arbitrarySource.cpp:10