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