ABLATE Source Documentation  0.12.33
chemistry.hpp
1 #ifndef ABLATELIBRARY_FINITEVOLUME_CHEMISTRY_HPP
2 #define ABLATELIBRARY_FINITEVOLUME_CHEMISTRY_HPP
3 
4 #include <memory>
5 #include "eos/chemistryModel.hpp"
6 #include "process.hpp"
7 
8 namespace ablate::finiteVolume::processes {
9 
10 class Chemistry : public Process, public ablate::utilities::Loggable<Chemistry> {
11  private:
13  const std::shared_ptr<ablate::eos::ChemistryModel> chemistryModel;
14 
16  std::shared_ptr<ablate::eos::ChemistryModel::SourceCalculator> sourceCalculator;
17 
24  PetscErrorCode ChemistryPreStage(TS flowTs, ablate::solver::Solver &flow, PetscReal stagetime);
25 
36  static PetscErrorCode AddChemistrySourceToFlow(const FiniteVolumeSolver &solver, DM dm, PetscReal time, Vec locX, Vec fVec, void *ctx);
37 
38  public:
42  explicit Chemistry(std::shared_ptr<ablate::eos::ChemistryModel>);
43 
49 
55 
61  void AddChemistrySourceToFlow(const FiniteVolumeSolver &solver, Vec locX, Vec locFVec);
62 };
63 } // namespace ablate::finiteVolume::processes
64 #endif
Definition: finiteVolumeSolver.hpp:28
Definition: chemistry.hpp:10
Chemistry(std::shared_ptr< ablate::eos::ChemistryModel >)
Definition: chemistry.cpp:7
void Initialize(ablate::finiteVolume::FiniteVolumeSolver &flow) override
Definition: chemistry.cpp:23
void Setup(ablate::finiteVolume::FiniteVolumeSolver &flow) override
Definition: chemistry.cpp:9
Definition: solver.hpp:17
Definition: loggable.hpp:9