1 #ifndef ABLATELIBRARY_RADIATIONLOSS_HPP
2 #define ABLATELIBRARY_RADIATIONLOSS_HPP
4 #include "eos/radiationProperties/radiationProperties.hpp"
5 #include "finiteVolume/compressibleFlowFields.hpp"
7 #include "utilities/constants.hpp"
9 namespace ablate::finiteVolume::processes {
15 const std::map<std::string, std::shared_ptr<ablate::mathFunctions::MathFunction>> functions;
21 static PetscErrorCode ComputeRadiationLoss(PetscInt dim, PetscReal time,
const PetscFVCellGeom* cg,
const PetscInt uOff[],
const PetscScalar u[],
const PetscInt aOff[],
const PetscScalar a[],
22 PetscScalar f[],
void* ctx);
25 explicit RadiationLoss(std::shared_ptr<eos::radiationProperties::RadiationModel> radiationModelIn,
double tInfinityIn = 300);
33 inline std::shared_ptr<eos::radiationProperties::RadiationModel> GetRadiationModel() {
return radiationModel; }
41 static inline PetscReal
GetIntensity(PetscReal tInfinity, PetscReal temperature, PetscReal kappa) {
42 tInfinity = PetscMax(tInfinity, (temperature - 500));
50 netIntensity *= kappa;
56 const std::shared_ptr<eos::radiationProperties::RadiationModel>
radiationModel;
Definition: finiteVolumeSolver.hpp:28
Definition: process.hpp:7
Definition: radiationLoss.hpp:13
eos::ThermodynamicTemperatureFunction absorptivityFunction
hold a pointer to the absorptivity function
Definition: radiationLoss.hpp:59
void Setup(ablate::finiteVolume::FiniteVolumeSolver &fvmSolver) override
Definition: radiationLoss.cpp:6
static PetscReal GetIntensity(PetscReal tInfinity, PetscReal temperature, PetscReal kappa)
Definition: radiationLoss.hpp:41
const std::shared_ptr< eos::radiationProperties::RadiationModel > radiationModel
model used to provided the absorptivity function
Definition: radiationLoss.hpp:56
constexpr static PetscReal sbc
Stefan-Boltzman Constant (J/K)
Definition: constants.hpp:10
constexpr static PetscReal large
A somewhat large number.
Definition: constants.hpp:31