OGS
BishopsSaturationCutoff.cpp
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
#include "
BishopsSaturationCutoff.h
"
5
6
namespace
MaterialPropertyLib
7
{
8
BishopsSaturationCutoff::BishopsSaturationCutoff
(std::string
name
,
9
double
const
cutoff_value)
10
:
S_L_max_
(cutoff_value)
11
{
12
name_
= std::move(
name
);
13
}
14
15
void
BishopsSaturationCutoff::checkScale
()
const
16
{
17
if
(!std::holds_alternative<Medium*>(
scale_
))
18
{
19
OGS_FATAL
(
20
"The property 'BishopsSaturationCutoff' is implemented on the "
21
"'media' scale only."
);
22
}
23
}
24
25
PropertyDataType
BishopsSaturationCutoff::value
(
26
VariableArray
const
& variable_array,
27
ParameterLib::SpatialPosition
const
&
/*pos*/
,
double
const
/*t*/
,
28
double
const
/*dt*/
)
const
29
{
30
auto
const
S_L = variable_array.
liquid_saturation
;
31
32
return
S_L <
S_L_max_
? 0. : 1.;
33
}
34
35
PropertyDataType
BishopsSaturationCutoff::dValue
(
36
VariableArray
const
&
/*variable_array*/
,
Variable
const
variable,
37
ParameterLib::SpatialPosition
const
&
/*pos*/
,
double
const
/*t*/
,
38
double
const
/*dt*/
)
const
39
{
40
if
(variable !=
Variable::liquid_saturation
)
41
{
42
OGS_FATAL
(
43
"BishopsSaturationCutoff::dValue is implemented for derivatives "
44
"with respect to liquid saturation only."
);
45
}
46
47
return
0.;
48
}
49
}
// namespace MaterialPropertyLib
BishopsSaturationCutoff.h
OGS_FATAL
#define OGS_FATAL(...)
Definition
Error.h:19
MaterialPropertyLib::BishopsSaturationCutoff::BishopsSaturationCutoff
BishopsSaturationCutoff(std::string name, double const cutoff_value)
Definition
BishopsSaturationCutoff.cpp:8
MaterialPropertyLib::BishopsSaturationCutoff::dValue
PropertyDataType dValue(VariableArray const &variable_array, Variable const variable, ParameterLib::SpatialPosition const &, double const, double const) const override
Definition
BishopsSaturationCutoff.cpp:35
MaterialPropertyLib::BishopsSaturationCutoff::S_L_max_
double const S_L_max_
Definition
BishopsSaturationCutoff.h:31
MaterialPropertyLib::BishopsSaturationCutoff::checkScale
void checkScale() const override
Definition
BishopsSaturationCutoff.cpp:15
MaterialPropertyLib::Property::value
virtual PropertyDataType value() const
Definition
MaterialLib/MPL/Property.cpp:67
MaterialPropertyLib::Property::name_
std::string name_
Definition
MaterialLib/MPL/Property.h:283
MaterialPropertyLib::Property::scale_
std::variant< Medium *, Phase *, Component * > scale_
Definition
MaterialLib/MPL/Property.h:290
MaterialPropertyLib::VariableArray
Definition
VariableType.h:94
MaterialPropertyLib::VariableArray::liquid_saturation
double liquid_saturation
Definition
VariableType.h:178
ParameterLib::SpatialPosition
Definition
SpatialPosition.h:21
MaterialPropertyLib
Definition
ChemicalSolverInterface.h:98
MaterialPropertyLib::Variable
Variable
Definition
VariableType.h:21
MaterialPropertyLib::Variable::liquid_saturation
@ liquid_saturation
Definition
VariableType.h:34
MaterialPropertyLib::name
@ name
Definition
PropertyType.h:57
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
MaterialLib/MPL/Property.h:24
MaterialLib
MPL
Properties
BishopsSaturationCutoff.cpp
Generated by
1.14.0