ABLATE Source Documentation  0.12.34
inlet.hpp
1 #ifndef ABLATELIBRARY_LODI_INLET_HPP
2 #define ABLATELIBRARY_LODI_INLET_HPP
3 
4 #include "lodiBoundary.hpp"
5 
6 namespace ablate::boundarySolver::lodi {
7 
8 class Inlet : public LODIBoundary {
9  private:
11  std::shared_ptr<ablate::mathFunctions::MathFunction> prescribedVelocity;
12 
13  static PetscErrorCode UpdateVelocityFunction(PetscInt dim, PetscReal time, const PetscReal x[], PetscInt Nf, PetscScalar* u, void* ctx);
14 
15  public:
16  explicit Inlet(std::shared_ptr<eos::EOS> eos, std::shared_ptr<finiteVolume::processes::PressureGradientScaling> pressureGradientScaling = {},
17  std::shared_ptr<ablate::mathFunctions::MathFunction> prescribedVelocity = {});
18 
19  void Setup(ablate::boundarySolver::BoundarySolver& bSolver) override;
20 
21  static PetscErrorCode InletFunction(PetscInt dim, const boundarySolver::BoundarySolver::BoundaryFVFaceGeom* fg, const PetscFVCellGeom* boundaryCell, const PetscInt uOff[],
22  const PetscScalar* boundaryValues, const PetscScalar* stencilValues[], const PetscInt aOff[], const PetscScalar* auxValues,
23  const PetscScalar* stencilAuxValues[], PetscInt stencilSize, const PetscInt stencil[], const PetscScalar stencilWeights[], const PetscInt sOff[],
24  PetscScalar source[], void* ctx);
25 };
26 
27 } // namespace ablate::boundarySolver::lodi
28 #endif // ABLATELIBRARY_INLET_HPP
Definition: boundarySolver.hpp:13
void Setup(ablate::boundarySolver::BoundarySolver &bSolver) override
Definition: inlet.cpp:12
Definition: lodiBoundary.hpp:12