Loading [MathJax]/extensions/tex2jax.js
OGS
TransportPorosityFromMassBalance.h
Go to the documentation of this file.
1 
10 #pragma once
11 
13 #include "ParameterLib/Parameter.h"
14 
15 namespace MaterialPropertyLib
16 {
17 class Medium;
18 class Phase;
19 class Component;
20 
25 {
26 private:
29  double const phi_min_; //< Lower limit for the porosity.
30  double const phi_max_; //< Upper limit for the porosity.
31 
32 public:
34  std::string name,
35  ParameterLib::Parameter<double> const& initial_porosity,
36  double const phi_min, double const phi_max)
37  : phi0_(initial_porosity), phi_min_(phi_min), phi_max_(phi_max)
38  {
39  name_ = std::move(name);
40  }
41 
42  void checkScale() const override;
43 
45  double const t) const override
46  {
47  return fromVector(phi0_(t, pos));
48  }
49 
50  PropertyDataType value(VariableArray const& variable_array,
52  double const t,
53  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
virtual PropertyDataType value() const
Definition: Property.cpp:72
TransportPorosityFromMassBalance(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
ParameterLib::Parameter< double > const & phi0_
Parameter, which is used by FEM to set the initial porosity value.
PropertyDataType initialValue(ParameterLib::SpatialPosition const &pos, double const t) const override
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