OGS
UniaxialElasticityModel.h
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#pragma once
5
7
8namespace ProcessLib
9{
10namespace ThermoRichardsFlow
11{
13{
15 {
16 DBUG("using uniaxial simplified mechanics model");
17 }
18
20 MaterialPropertyLib::Phase const& solid_phase,
22 ParameterLib::SpatialPosition const& x_position, double const t,
23 double const dt) override
24 {
27 .value(variables, x_position, t, dt));
30 .value(variables, x_position, t, dt));
31 auto const nu12 = nu[0];
32 auto const nu23 = nu[1];
33 auto const nu13 = nu[2];
34 auto const nu21 = nu12 * E[1] / E[0];
35 auto const nu32 = nu23 * E[2] / E[1];
36 auto const nu31 = nu13 * E[2] / E[0];
37 auto const D = 1 - nu12 * nu21 - nu23 * nu32 - nu31 * nu13 -
38 2 * nu12 * nu23 * nu31;
39 return D / (E[2] * (1 - nu12 * nu21));
40 }
41
43 Eigen::Matrix<double, 3, 3> const&
44 solid_linear_thermal_expansion_coefficient,
45 MaterialPropertyLib::Phase const& solid_phase,
47 ParameterLib::SpatialPosition const& x_position, double const t,
48 double const dt) override
49 {
52 .value(variables, x_position, t, dt));
55 .value(variables, x_position, t, dt));
56 auto const nu12 = nu[0];
57 auto const nu23 = nu[1];
58 auto const nu13 = nu[2];
59 auto const nu21 = nu12 * E[1] / E[0];
60 auto const D = (1 - nu12 * nu21);
61 return -(solid_linear_thermal_expansion_coefficient(2, 2) +
62 solid_linear_thermal_expansion_coefficient(0, 0) *
63 (nu13 + nu12 * nu23) / D +
64 solid_linear_thermal_expansion_coefficient(1, 1) *
65 (nu23 + nu13 * nu21) / D);
66 }
67};
68
69} // namespace ThermoRichardsFlow
70} // namespace ProcessLib
void DBUG(fmt::format_string< Args... > fmt, Args &&... args)
Definition Logging.h:22
template Eigen::Matrix< double, 3, 1 > formEigenVector< 3 >(MaterialPropertyLib::PropertyDataType const &values)
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