1 #ifndef ABLATELIBRARY_ARRHENIUSSUBLIMATION_HPP
2 #define ABLATELIBRARY_ARRHENIUSSUBLIMATION_HPP
6 #include "oneDimensionHeatTransfer.hpp"
7 #include "solver/cellSolver.hpp"
8 #include "solver/timeStepper.hpp"
9 #include "sublimationModel.hpp"
11 namespace ablate::boundarySolver::physics::subModels {
16 std::map<PetscInt, std::shared_ptr<OneDimensionHeatTransfer>> oneDimensionHeatTransfer;
19 const std::shared_ptr<ablate::parameters::Parameters> properties;
22 const std::shared_ptr<ablate::mathFunctions::MathFunction> initialization;
25 const std::shared_ptr<ablate::parameters::Parameters> options;
28 const PetscReal latentHeatOfFusion;
31 const PetscReal solidDensity;
34 const PetscReal preExponentialFactor;
35 const PetscReal activationEnergy;
36 const PetscReal parameterB;
39 constexpr
inline static PetscReal ugc = 8.31446261815324;
46 [[nodiscard]] PetscReal ComputeMassFluxRate(PetscReal temperature)
const;
49 ArrheniusSublimation(
const std::shared_ptr<ablate::parameters::Parameters> &properties,
const std::shared_ptr<ablate::mathFunctions::MathFunction> &initialization,
50 const std::shared_ptr<ablate::parameters::Parameters> &options = {});
70 PetscErrorCode
Update(PetscInt faceId, PetscReal dt, PetscReal heatFluxToSurface, PetscReal &temperature)
override;
76 PetscErrorCode
Compute(PetscInt faceId, PetscReal heatFluxToSurface, SurfaceState &)
override;
90 PetscErrorCode
Save(PetscViewer viewer, PetscInt sequenceNumber, PetscReal time)
override;
98 PetscErrorCode
Restore(PetscViewer viewer, PetscInt sequenceNumber, PetscReal time)
override;
Definition: boundarySolver.hpp:13
Definition: arrheniusSublimation.hpp:13
PetscErrorCode Restore(PetscViewer viewer, PetscInt sequenceNumber, PetscReal time) override
Definition: arrheniusSublimation.cpp:92
bool RequiresUpdate() override
Definition: arrheniusSublimation.hpp:63
SerializerType Serialize() const override
Definition: arrheniusSublimation.hpp:82
void Initialize(ablate::boundarySolver::BoundarySolver &bSolver) override
Definition: arrheniusSublimation.cpp:17
PetscErrorCode Save(PetscViewer viewer, PetscInt sequenceNumber, PetscReal time) override
Definition: arrheniusSublimation.cpp:84
PetscErrorCode Compute(PetscInt faceId, PetscReal heatFluxToSurface, SurfaceState &) override
Definition: arrheniusSublimation.cpp:72
PetscErrorCode Update(PetscInt faceId, PetscReal dt, PetscReal heatFluxToSurface, PetscReal &temperature) override
Definition: arrheniusSublimation.cpp:55
Definition: sublimationModel.hpp:9
SerializerType
Definition: serializable.hpp:18