OGS
PorosityFromMassBalance.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2// SPDX-License-Identifier: BSD-3-Clause
3
4#pragma once
5
8
10{
11class Medium;
12class Phase;
13class Component;
14
19{
20private:
23 double const phi_min_; //< Lower limit for the porosity.
24 double const phi_max_; //< Upper limit for the porosity.
25
26public:
28 std::string name,
29 ParameterLib::Parameter<double> const& initial_porosity,
30 double const phi_min, double const phi_max)
31 : phi0_(initial_porosity), phi_min_(phi_min), phi_max_(phi_max)
32 {
33 name_ = std::move(name);
34 }
35
36 void checkScale() const override;
37
39 double const t) const override
40 {
41 return fromVector(phi0_(t, pos));
42 }
43
44 PropertyDataType value(VariableArray const& variable_array,
46 double const t, double const dt) const override;
47 PropertyDataType value(VariableArray const& variable_array,
48 VariableArray const& variable_array_prev,
50 double const t, double const dt) const override;
51 PropertyDataType dValue(VariableArray const& variable_array,
52 Variable const variable,
54 double const t, double const dt) const override;
55};
56} // namespace MaterialPropertyLib
This class defines components (substances).
Definition Component.h:18
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
PropertyDataType fromVector(std::vector< double > const &values)
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