1 #ifndef ABLATELIBRARY_CHEMISTRYMODEL_HPP
2 #define ABLATELIBRARY_CHEMISTRYMODEL_HPP
10 #include "solver/cellSolver.hpp"
11 #include "solver/solver.hpp"
13 namespace ablate::eos {
54 virtual std::vector<std::tuple<ablate::solver::CellSolver::SolutionFieldUpdateFunction, void*, std::vector<std::string>>>
GetSolutionFieldUpdates() {
return {}; }
56 virtual inline double GetEnthalpyOfFormation(std::string_view speciesName)
const {
return {}; };
58 [[nodiscard]]
virtual std::map<std::string, double> GetSpeciesMolecularMass()
const {
return {}; };
60 [[nodiscard]]
virtual std::map<std::string, double> GetElementInformation()
const {
return {}; };
62 [[nodiscard]]
virtual std::map<std::string, std::map<std::string, int>> GetSpeciesElementalInformation()
const {
return {}; };
68 PetscErrorCode (*
function)(
const PetscReal conserved[],
const PetscReal yi[], PetscReal T, PetscReal* property,
void* ctx) =
nullptr;
Definition: chemistryModel.hpp:30
virtual void AddSource(const ablate::domain::Range &cellRange, Vec solution, Vec source)=0
virtual void ComputeSource(const ablate::domain::Range &cellRange, PetscReal time, PetscReal dt, Vec solution)=0
Definition: chemistryModel.hpp:18
virtual std::vector< std::tuple< ablate::solver::CellSolver::SolutionFieldUpdateFunction, void *, std::vector< std::string > > > GetSolutionFieldUpdates()
Definition: chemistryModel.hpp:54
ChemistryModel(std::string name)
Definition: chemistryModel.hpp:24
virtual std::shared_ptr< SourceCalculator > CreateSourceCalculator(const std::vector< domain::Field > &fields, const ablate::domain::Range &cellRange)=0
Definition: chemistryModel.hpp:66
std::shared_ptr< void > context
optional context to pass into the function
Definition: chemistryModel.hpp:70
PetscInt propertySize
the property size being set
Definition: chemistryModel.hpp:72