OGS
UniaxialElasticityModel.h
Go to the documentation of this file.
1 
12 #pragma once
13 
15 
16 namespace ProcessLib
17 {
18 namespace ThermoRichardsFlow
19 {
21 {
23  {
24  DBUG("using uniaxial simplified mechanics model");
25  }
26 
28  MaterialPropertyLib::Phase const& solid_phase,
29  MaterialPropertyLib::VariableArray const& variables,
30  ParameterLib::SpatialPosition const& x_position, double const t,
31  double const dt) override
32  {
35  .value(variables, x_position, t, dt));
38  .value(variables, x_position, t, dt));
39  auto const nu12 = nu[0];
40  auto const nu23 = nu[1];
41  auto const nu13 = nu[2];
42  auto const nu21 = nu12 * E[1] / E[0];
43  auto const nu32 = nu23 * E[2] / E[1];
44  auto const nu31 = nu13 * E[2] / E[0];
45  auto const D = 1 - nu12 * nu21 - nu23 * nu32 - nu31 * nu13 -
46  2 * nu12 * nu23 * nu31;
47  return D / (E[2] * (1 - nu12 * nu21));
48  }
49 
51  Eigen::Matrix<double, 3, 3> const& solid_linear_thermal_expansion_coefficient,
52  MaterialPropertyLib::Phase const& solid_phase,
53  MaterialPropertyLib::VariableArray const& variables,
54  ParameterLib::SpatialPosition const& x_position, double const t,
55  double const dt) override
56  {
59  .value(variables, x_position, t, dt));
62  .value(variables, x_position, t, dt));
63  auto const nu12 = nu[0];
64  auto const nu23 = nu[1];
65  auto const nu13 = nu[2];
66  auto const nu21 = nu12 * E[1] / E[0];
67  auto const D = (1 - nu12 * nu21);
68  return -(solid_linear_thermal_expansion_coefficient(2, 2) +
69  solid_linear_thermal_expansion_coefficient(0, 0) *
70  (nu13 + nu12 * nu23) / D +
71  solid_linear_thermal_expansion_coefficient(1, 1) *
72  (nu23 + nu13 * nu21) / D);
73  }
74 };
75 
76 } // namespace ThermoRichardsFlow
77 } // namespace ProcessLib
void DBUG(char const *fmt, Args const &... args)
Definition: Logging.h:27
template Eigen::Matrix< double, 3, 1 > formEigenVector< 3 >(MaterialPropertyLib::PropertyDataType const &values)
std::array< VariableType, static_cast< int >(Variable::number_of_variables)> VariableArray
Definition: VariableType.h:108
double storageContribution(MaterialPropertyLib::Phase const &solid_phase, MaterialPropertyLib::VariableArray const &variables, ParameterLib::SpatialPosition const &x_position, double const t, double const dt) override
double thermalExpansivityContribution(Eigen::Matrix< double, 3, 3 > const &solid_linear_thermal_expansion_coefficient, MaterialPropertyLib::Phase const &solid_phase, MaterialPropertyLib::VariableArray const &variables, ParameterLib::SpatialPosition const &x_position, double const t, double const dt) override