OGS
Constant.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 "
Constant.h
"
5
6
namespace
MaterialPropertyLib
7
{
8
struct
ZeroInitPropertyDataType
9
{
10
PropertyDataType
operator()
(
double
/*t*/
)
const
{
return
0.; }
11
12
PropertyDataType
operator()
(Eigen::Vector2d
/*variable_array*/
)
const
13
{
14
return
Eigen::Vector2d::Zero().eval();
15
}
16
17
PropertyDataType
operator()
(Eigen::Vector3d
/*variable_array*/
)
const
18
{
19
return
Eigen::Vector3d::Zero().eval();
20
}
21
22
PropertyDataType
operator()
(
23
Eigen::Matrix<double, 2, 2>
/*variable_array*/
)
const
24
{
25
return
Eigen::Matrix<double, 2, 2>::Zero().eval();
26
}
27
PropertyDataType
operator()
(
28
Eigen::Matrix<double, 3, 3>
/*variable_array*/
)
const
29
{
30
return
Eigen::Matrix<double, 3, 3>::Zero().eval();
31
}
32
33
PropertyDataType
operator()
(
34
Eigen::Matrix<double, 4, 1>
/*variable_array*/
)
const
35
{
36
return
Eigen::Matrix<double, 4, 1>::Zero().eval();
37
}
38
39
PropertyDataType
operator()
(
40
Eigen::Matrix<double, 6, 1>
/*variable_array*/
)
const
41
{
42
return
Eigen::Matrix<double, 6, 1>::Zero().eval();
43
}
44
45
PropertyDataType
operator()
(Eigen::MatrixXd
/*variable_array*/
)
const
46
{
47
return
Eigen::MatrixXd(0, 0);
48
}
49
};
50
51
Constant::Constant
(std::string
name
,
PropertyDataType
const
& v)
52
{
53
name_
= std::move(
name
);
54
value_
= v;
55
dvalue_
= std::visit(
ZeroInitPropertyDataType
{}, v);
56
};
57
}
// namespace MaterialPropertyLib
Constant.h
MaterialPropertyLib::Constant::Constant
Constant(std::string name, PropertyDataType const &v)
Definition
Constant.cpp:51
MaterialPropertyLib::Property::value_
PropertyDataType value_
The single value of a property.
Definition
MaterialLib/MPL/Property.h:331
MaterialPropertyLib::Property::dvalue_
PropertyDataType dvalue_
Definition
MaterialLib/MPL/Property.h:332
MaterialPropertyLib::Property::name_
std::string name_
Definition
MaterialLib/MPL/Property.h:329
MaterialPropertyLib
Definition
ChemicalSolverInterface.h:98
MaterialPropertyLib::name
@ name
Definition
PropertyType.h:61
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
MaterialPropertyLib::ZeroInitPropertyDataType
Definition
Constant.cpp:9
MaterialPropertyLib::ZeroInitPropertyDataType::operator()
PropertyDataType operator()(Eigen::Matrix< double, 3, 3 >) const
Definition
Constant.cpp:27
MaterialPropertyLib::ZeroInitPropertyDataType::operator()
PropertyDataType operator()(Eigen::Matrix< double, 6, 1 >) const
Definition
Constant.cpp:39
MaterialPropertyLib::ZeroInitPropertyDataType::operator()
PropertyDataType operator()(Eigen::Vector2d) const
Definition
Constant.cpp:12
MaterialPropertyLib::ZeroInitPropertyDataType::operator()
PropertyDataType operator()(double) const
Definition
Constant.cpp:10
MaterialPropertyLib::ZeroInitPropertyDataType::operator()
PropertyDataType operator()(Eigen::Vector3d) const
Definition
Constant.cpp:17
MaterialPropertyLib::ZeroInitPropertyDataType::operator()
PropertyDataType operator()(Eigen::Matrix< double, 2, 2 >) const
Definition
Constant.cpp:22
MaterialPropertyLib::ZeroInitPropertyDataType::operator()
PropertyDataType operator()(Eigen::Matrix< double, 4, 1 >) const
Definition
Constant.cpp:33
MaterialPropertyLib::ZeroInitPropertyDataType::operator()
PropertyDataType operator()(Eigen::MatrixXd) const
Definition
Constant.cpp:45
MaterialLib
MPL
Properties
Constant.cpp
Generated by
1.14.0