ABLATE Source Documentation  0.12.33
constant.hpp
1 #ifndef ABLATELIBRARY_TRANSPORT_MODEL_CONSTANT_HPP
2 #define ABLATELIBRARY_TRANSPORT_MODEL_CONSTANT_HPP
3 #include "transportModel.hpp"
4 namespace ablate::eos::transport {
5 
6 class Constant : public TransportModel {
7  private:
8  const bool active;
9  const PetscReal k;
10  const PetscReal mu;
11  const std::vector<PetscReal> diff;
12 
19  static PetscErrorCode ConstantFunction(const PetscReal conserved[], PetscReal* property, void* ctx);
20 
27  static PetscErrorCode ConstantVectorFunction(const PetscReal conserved[], PetscReal* property, void* ctx);
28 
35  static PetscErrorCode ConstantTemperatureFunction(const PetscReal conserved[], PetscReal temperature, PetscReal* property, void* ctx);
36 
43  static PetscErrorCode ConstantTemperatureVectorFunction(const PetscReal conserved[], PetscReal temperature, PetscReal* property, void* ctx);
44 
45  public:
52  explicit Constant(double k = 0, double mu = 0, double diff = 0);
59  explicit Constant(double k, double mu, std::vector<double> difft);
60  explicit Constant(const Constant&) = delete;
61  void operator=(const Constant&) = delete;
62 
69  [[nodiscard]] ThermodynamicFunction GetTransportFunction(TransportProperty property, const std::vector<domain::Field>& fields) const override;
70 
77  [[nodiscard]] ThermodynamicTemperatureFunction GetTransportTemperatureFunction(TransportProperty property, const std::vector<domain::Field>& fields) const override;
78 };
79 } // namespace ablate::eos::transport
80 #endif // ABLATELIBRARY_CONSTANT_HPP
Definition: constant.hpp:6
ThermodynamicFunction GetTransportFunction(TransportProperty property, const std::vector< domain::Field > &fields) const override
Definition: constant.cpp:31
ThermodynamicTemperatureFunction GetTransportTemperatureFunction(TransportProperty property, const std::vector< domain::Field > &fields) const override
Definition: constant.cpp:52
Constant(double k=0, double mu=0, double diff=0)
Definition: constant.cpp:3
Definition: transportModel.hpp:10