OGS
RelPermVanGenuchten.h
Go to the documentation of this file.
1
10
#pragma once
11
12
#include "
BaseLib/ConfigTree-fwd.h
"
13
#include "
MaterialLib/MPL/Property.h
"
14
15
namespace
MaterialPropertyLib
16
{
17
class
Medium;
18
class
Phase;
19
class
Component
;
20
25
class
RelPermVanGenuchten
final :
public
Property
26
{
27
private
:
28
double
const
S_L_res_
;
29
double
const
S_L_max_
;
30
double
const
k_rel_min_
;
31
double
const
m_
;
32
33
public
:
34
RelPermVanGenuchten
(std::string
name
,
35
double
const
residual_liquid_saturation
,
36
double
const
residual_gas_saturation
,
37
double
const
min_relative_permeability_liquid,
38
double
const
exponent);
39
40
void
checkScale
()
const override
41
{
42
if
(!std::holds_alternative<Medium*>(
scale_
))
43
{
44
OGS_FATAL
(
45
"The property 'RelativePermeabilityVanGenuchten' is "
46
"implemented on the 'media' scale only."
);
47
}
48
}
49
52
PropertyDataType
value
(
VariableArray
const
& variable_array,
53
ParameterLib::SpatialPosition
const
& pos,
54
double
const
t,
double
const
dt)
const override
;
55
PropertyDataType
dValue
(
VariableArray
const
& variable_array,
56
Variable
const
variable,
57
ParameterLib::SpatialPosition
const
& pos,
58
double
const
t,
double
const
dt)
const override
;
59
};
60
}
// namespace MaterialPropertyLib
ConfigTree-fwd.h
OGS_FATAL
#define OGS_FATAL(...)
Definition
Error.h:26
Property.h
MaterialPropertyLib::Property
Definition
Property.h:51
MaterialPropertyLib::Property::value
virtual PropertyDataType value() const
Definition
Property.cpp:76
MaterialPropertyLib::Property::scale_
std::variant< Medium *, Phase *, Component * > scale_
Definition
Property.h:297
MaterialPropertyLib::RelPermVanGenuchten
Definition
RelPermVanGenuchten.h:26
MaterialPropertyLib::RelPermVanGenuchten::m_
double const m_
Definition
RelPermVanGenuchten.h:31
MaterialPropertyLib::RelPermVanGenuchten::checkScale
void checkScale() const override
Definition
RelPermVanGenuchten.h:40
MaterialPropertyLib::RelPermVanGenuchten::S_L_res_
double const S_L_res_
Definition
RelPermVanGenuchten.h:28
MaterialPropertyLib::RelPermVanGenuchten::RelPermVanGenuchten
RelPermVanGenuchten(std::string name, double const residual_liquid_saturation, double const residual_gas_saturation, double const min_relative_permeability_liquid, double const exponent)
Definition
RelPermVanGenuchten.cpp:20
MaterialPropertyLib::RelPermVanGenuchten::k_rel_min_
double const k_rel_min_
Definition
RelPermVanGenuchten.h:30
MaterialPropertyLib::RelPermVanGenuchten::dValue
PropertyDataType dValue(VariableArray const &variable_array, Variable const variable, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const override
Definition
RelPermVanGenuchten.cpp:56
MaterialPropertyLib::RelPermVanGenuchten::S_L_max_
double const S_L_max_
Definition
RelPermVanGenuchten.h:29
MaterialPropertyLib::VariableArray
Definition
VariableType.h:97
ParameterLib::SpatialPosition
Definition
SpatialPosition.h:27
ChemistryLib::PhreeqcIOData::ItemType::Component
@ Component
MaterialPropertyLib
Definition
ChemicalSolverInterface.h:21
MaterialPropertyLib::Variable
Variable
Definition
VariableType.h:30
MaterialPropertyLib::name
@ name
Definition
PropertyType.h:66
MaterialPropertyLib::residual_liquid_saturation
@ residual_liquid_saturation
Definition
PropertyType.h:81
MaterialPropertyLib::residual_gas_saturation
@ residual_gas_saturation
Definition
PropertyType.h:80
MaterialPropertyLib::PropertyDataType
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
MaterialLib
MPL
Properties
RelativePermeability
RelPermVanGenuchten.h
Generated by
1.12.0