OGS
MaterialPropertyLib::IndependentVariable Struct Reference

Detailed Description

Definition at line 12 of file Linear.h.

#include <Linear.h>

Public Member Functions

double valueClamped (VariableArray const &variable_array, ParameterLib::SpatialPosition const &pos, double const t) const
double valueUnclamped (VariableArray const &variable_array, ParameterLib::SpatialPosition const &pos, double const t) const

Public Attributes

StringOrVariable type
VariableType reference_condition
VariableType slope
std::optional< double > min
std::optional< double > max

Member Function Documentation

◆ valueClamped()

double MaterialPropertyLib::IndependentVariable::valueClamped ( VariableArray const & variable_array,
ParameterLib::SpatialPosition const & pos,
double const t ) const

Definition at line 10 of file Linear.cpp.

14{
15 double x = valueUnclamped(variable_array, pos, t);
16
17 if (min)
18 {
19 x = std::max(x, *min);
20 }
21 if (max)
22 {
23 x = std::min(x, *max);
24 }
25
26 return x;
27}
std::optional< double > max
Definition Linear.h:18
std::optional< double > min
Definition Linear.h:17
double valueUnclamped(VariableArray const &variable_array, ParameterLib::SpatialPosition const &pos, double const t) const
Definition Linear.cpp:29

References max, min, and valueUnclamped().

◆ valueUnclamped()

double MaterialPropertyLib::IndependentVariable::valueUnclamped ( VariableArray const & variable_array,
ParameterLib::SpatialPosition const & pos,
double const t ) const

Definition at line 29 of file Linear.cpp.

33{
34 if (auto* var_ptr = std::get_if<Variable>(&type))
35 {
36 return std::get<double>(variable_array[*var_ptr]);
37 }
38
39 if (auto* str_ptr = std::get_if<std::string>(&type))
40 {
41 if (*str_ptr == "t")
42 return t;
43
44 if (*str_ptr == "x")
45 return pos.getCoordinates().value()[0];
46
47 if (*str_ptr == "y")
48 return pos.getCoordinates().value()[1];
49
50 if (*str_ptr == "z")
51 return pos.getCoordinates().value()[2];
52
53 OGS_FATAL("Unknown independent variable {:s} for a linear property.",
54 *str_ptr)
55 }
56
58 "Could not convert independent_variable neither to a Variable nor "
59 "to a std::string.");
60}
#define OGS_FATAL(...)
Definition Error.h:19

References ParameterLib::SpatialPosition::getCoordinates(), OGS_FATAL, and type.

Referenced by valueClamped().

Member Data Documentation

◆ max

std::optional<double> MaterialPropertyLib::IndependentVariable::max

Definition at line 18 of file Linear.h.

Referenced by valueClamped().

◆ min

std::optional<double> MaterialPropertyLib::IndependentVariable::min

Definition at line 17 of file Linear.h.

Referenced by valueClamped().

◆ reference_condition

VariableType MaterialPropertyLib::IndependentVariable::reference_condition

Definition at line 15 of file Linear.h.

◆ slope

VariableType MaterialPropertyLib::IndependentVariable::slope

Definition at line 16 of file Linear.h.

◆ type

StringOrVariable MaterialPropertyLib::IndependentVariable::type

Definition at line 14 of file Linear.h.

Referenced by valueUnclamped().


The documentation for this struct was generated from the following files: