1 #ifndef ABLATELIBRARY_TWOPHASETRANSPORT_HPP
2 #define ABLATELIBRARY_TWOPHASETRANSPORT_HPP
4 #include "transportModel.hpp"
6 namespace ablate::eos::transport {
13 const std::shared_ptr<eos::transport::TransportModel> alphaTransportModel;
17 const std::shared_ptr<eos::transport::TransportModel> otherTransportModel;
22 struct FunctionContext {
24 PetscErrorCode (*alphaFunction)(
const PetscReal conserved[], PetscReal* property,
void* ctx);
28 PetscErrorCode (*otherFunction)(
const PetscReal conserved[], PetscReal* property,
void* ctx);
38 struct TemperatureFunctionContext {
40 PetscErrorCode (*alphaFunction)(
const PetscReal conserved[], PetscReal T, PetscReal* property,
void* ctx);
44 PetscErrorCode (*otherFunction)(
const PetscReal conserved[], PetscReal T, PetscReal* property,
void* ctx);
54 mutable std::vector<ThermodynamicFunction> thermodynamicFunctionReference;
59 mutable std::vector<ThermodynamicTemperatureFunction> thermodynamicTemperatureFunctionReference;
70 static PetscErrorCode TwoPhaseFunction(
const PetscReal conserved[], PetscReal* property,
void* ctx);
71 static PetscErrorCode TwoPhaseTemperatureFunction(
const PetscReal conserved[], PetscReal temperature, PetscReal* property,
void* ctx);
75 explicit TwoPhaseTransport(std::shared_ptr<TransportModel> transportModelAlpha, std::shared_ptr<TransportModel> transportModelOther);
Definition: transportModel.hpp:10
Definition: twoPhaseTransport.hpp:8
ThermodynamicFunction GetTransportFunction(TransportProperty property, const std::vector< domain::Field > &fields) const override
Definition: twoPhaseTransport.cpp:42
ThermodynamicTemperatureFunction GetTransportTemperatureFunction(TransportProperty property, const std::vector< domain::Field > &fields) const override
Definition: twoPhaseTransport.cpp:71