ABLATE Source Documentation  0.12.33
sum.hpp
1 #ifndef ABLATELIBRARY_RADIATIONPROPERTIESADD_HPP
2 #define ABLATELIBRARY_RADIATIONPROPERTIESADD_HPP
3 
4 #include <map>
5 #include <memory>
6 #include "radiationProperties.hpp"
7 
8 namespace ablate::eos::radiationProperties {
9 
13 class Sum : public RadiationModel {
14  private:
18  const std::vector<std::shared_ptr<ablate::eos::radiationProperties::RadiationModel>> models;
19 
26  static PetscErrorCode EmissionTemperatureFunction(const PetscReal conserved[], PetscReal temperature, PetscReal* property, void* ctx);
27 
34  static PetscErrorCode SumTemperatureFunction(const PetscReal conserved[], PetscReal temperature, PetscReal* property, void* ctx);
35 
36  public:
37  explicit Sum(std::vector<std::shared_ptr<ablate::eos::radiationProperties::RadiationModel>> models);
38  explicit Sum(const Sum&) = delete;
39  void operator=(const Sum&) = delete;
40 
47  [[nodiscard]] ThermodynamicTemperatureFunction GetRadiationPropertiesTemperatureFunction(RadiationProperty property, const std::vector<domain::Field>& fields) const override;
48 };
49 
50 } // namespace ablate::eos::radiationProperties
51 
52 #endif // ABLATELIBRARY_RADIATIONPROPERTIESZIMMER_H
Definition: radiationProperties.hpp:11
ThermodynamicTemperatureFunction GetRadiationPropertiesTemperatureFunction(RadiationProperty property, const std::vector< domain::Field > &fields) const override
Definition: sum.cpp:43