OGS
PorosityFromMassBalance.h
Go to the documentation of this file.
1
10#pragma once
11
14
15namespace MaterialPropertyLib
16{
17class Medium;
18class Phase;
19class Component;
20
25{
26private:
29 double const phi_min_; //< Lower limit for the porosity.
30 double const phi_max_; //< Upper limit for the porosity.
31
32public:
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, double const dt) const override;
53 PropertyDataType value(VariableArray const& variable_array,
54 VariableArray const& variable_array_prev,
56 double const t, double const dt) const override;
57 PropertyDataType dValue(VariableArray const& variable_array,
58 Variable const variable,
60 double const t, double const dt) const override;
61};
62} // 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:76
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 >, Eigen::MatrixXd > PropertyDataType
Definition Property.h:31