OGS
Function.h
Go to the documentation of this file.
1
9
#pragma once
10
11
#include <utility>
12
#include <vector>
13
14
#include "
MaterialLib/MPL/Property.h
"
15
#include "
MaterialLib/MPL/VariableType.h
"
16
17
namespace
MaterialPropertyLib
18
{
25
class
Function
final :
public
Property
26
{
27
public
:
28
Function
(
29
std::string
name
,
30
std::vector<std::string>
const
& value_string_expressions,
31
std::vector<std::pair<std::string, std::vector<std::string>>>
const
&
32
dvalue_string_expressions);
33
34
PropertyDataType
value
(
VariableArray
const
& variable_array,
35
ParameterLib::SpatialPosition
const
& pos,
36
double
const
t,
37
double
const
dt)
const override
;
38
39
PropertyDataType
dValue
(
VariableArray
const
& variable_array,
40
Variable
const
variable,
41
ParameterLib::SpatialPosition
const
& pos,
42
double
const
t,
43
double
const
dt)
const override
;
44
45
~Function
();
46
47
private
:
48
template
<
int
D>
49
class
Implementation
;
50
51
std::unique_ptr<Implementation<2>>
impl2_
;
52
std::unique_ptr<Implementation<3>>
impl3_
;
53
54
std::variant<Function::Implementation<2>*,
Function::Implementation<3>
*>
55
getImplementationForDimensionOfVariableArray
(
56
VariableArray
const
& variable_array)
const
;
57
59
std::vector<Variable>
variables_
;
60
61
mutable
std::mutex
mutex_
;
62
};
63
}
// namespace MaterialPropertyLib
Property.h
VariableType.h
MaterialPropertyLib::Function::Implementation
Definition
Function.h:49
MaterialPropertyLib::Function
Definition
Function.h:26
MaterialPropertyLib::Function::impl3_
std::unique_ptr< Implementation< 3 > > impl3_
Definition
Function.h:52
MaterialPropertyLib::Function::variables_
std::vector< Variable > variables_
Variables used in the exprtk expressions.
Definition
Function.h:59
MaterialPropertyLib::Function::getImplementationForDimensionOfVariableArray
std::variant< Function::Implementation< 2 > *, Function::Implementation< 3 > * > getImplementationForDimensionOfVariableArray(VariableArray const &variable_array) const
Definition
Function.cpp:346
MaterialPropertyLib::Function::Function
Function(std::string name, std::vector< std::string > const &value_string_expressions, std::vector< std::pair< std::string, std::vector< std::string > > > const &dvalue_string_expressions)
Definition
Function.cpp:323
MaterialPropertyLib::Function::dValue
PropertyDataType dValue(VariableArray const &variable_array, Variable const variable, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const override
Definition
Function.cpp:377
MaterialPropertyLib::Function::mutex_
std::mutex mutex_
Definition
Function.h:61
MaterialPropertyLib::Function::impl2_
std::unique_ptr< Implementation< 2 > > impl2_
Definition
Function.h:51
MaterialPropertyLib::Function::~Function
~Function()
MaterialPropertyLib::Property
Definition
Property.h:51
MaterialPropertyLib::Property::value
virtual PropertyDataType value() const
Definition
Property.cpp:76
MaterialPropertyLib::VariableArray
Definition
VariableType.h:97
ParameterLib::SpatialPosition
Definition
SpatialPosition.h:27
MaterialPropertyLib
Definition
ChemicalSolverInterface.h:21
MaterialPropertyLib::Variable
Variable
Definition
VariableType.h:30
MaterialPropertyLib::name
@ name
Definition
PropertyType.h:66
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
Function.h
Generated by
1.12.0