OGS
PorosityFromMassBalance.h
Go to the documentation of this file.
1 
10 #pragma once
11 
13 
14 #include "ParameterLib/Parameter.h"
15 
16 namespace MaterialPropertyLib
17 {
18 class Medium;
19 class Phase;
20 class Component;
21 
25 class PorosityFromMassBalance final : public Property
26 {
27 private:
30  double const phi_min_; //< Lower limit for the porosity.
31  double const phi_max_; //< Upper limit for the porosity.
32 
33 public:
35  std::string name,
36  ParameterLib::Parameter<double> const& initial_porosity,
37  double const phi_min, double const phi_max)
38  : phi0_(initial_porosity), phi_min_(phi_min), phi_max_(phi_max)
39  {
40  name_ = std::move(name);
41  }
42 
43  void checkScale() const override;
44 
46  double const t) const override
47  {
48  return fromVector(phi0_(t, pos));
49  }
50 
51  PropertyDataType value(VariableArray const& variable_array,
53  double const t, double const dt) const override;
54  PropertyDataType value(VariableArray const& variable_array,
55  VariableArray const& variable_array_prev,
57  double const t, double const dt) const override;
58  PropertyDataType dValue(VariableArray const& variable_array,
59  Variable const variable,
61  double const t, double const dt) const override;
62 };
63 } // namespace MaterialPropertyLib
ParameterLib::Parameter< double > const & phi0_
Parameter, which is used by FEM to set the initial porosity value.
PorosityFromMassBalance(std::string name, ParameterLib::Parameter< double > const &initial_porosity, double const phi_min, double const phi_max)
PropertyDataType dValue(VariableArray const &variable_array, Variable const variable, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const override
PropertyDataType initialValue(ParameterLib::SpatialPosition const &pos, double const t) const override
virtual PropertyDataType value() const
Definition: Property.cpp:72
PropertyDataType fromVector(std::vector< double > const &values)
Definition: Property.cpp:23
std::variant< double, Eigen::Matrix< double, 2, 1 >, Eigen::Matrix< double, 3, 1 >, Eigen::Matrix< double, 2, 2 >, Eigen::Matrix< double, 3, 3 >, Eigen::Matrix< double, 4, 1 >, Eigen::Matrix< double, 6, 1 > > PropertyDataType
Definition: Property.h:35
std::array< VariableType, static_cast< int >(Variable::number_of_variables)> VariableArray
Definition: VariableType.h:108