OGS
SolidThermalExpansion.cpp
Go to the documentation of this file.
1
11
13
14namespace ProcessLib::TH2M
15{
16namespace ConstitutiveRelations
17{
18template <int DisplacementDim>
20 SpaceTimeData const& x_t, MediaData const& media_data,
23{
24 namespace MPL = MaterialPropertyLib;
25 MPL::VariableArray variables;
26
27 // Consider also anisotropic thermal expansion.
29 MPL::formKelvinVector<DisplacementDim>(
30 media_data.solid.property(MPL::PropertyType::thermal_expansivity)
31 .value(variables, x_t.x, x_t.t, x_t.dt));
32
33 static int const KelvinVectorSize =
36 out.beta_T_SR =
37 Invariants::trace(out.solid_linear_thermal_expansivity_vector);
38
39 double const delta_T = T_data.T - T0();
40 out.thermal_volume_strain = out.beta_T_SR * delta_T;
41}
42
43template struct SolidThermalExpansionModel<2>;
44template struct SolidThermalExpansionModel<3>;
45} // namespace ConstitutiveRelations
46} // namespace ProcessLib::TH2M
Property const & property(PropertyType const &p) const
Definition Phase.cpp:53
virtual PropertyDataType value() const
Definition Property.cpp:76
constexpr int kelvin_vector_dimensions(int const displacement_dim)
Kelvin vector dimensions for given displacement dimension.
ParameterLib::SpatialPosition x
Definition Base.h:74
MaterialPropertyLib::Phase const & solid
Definition Base.h:43
void eval(SpaceTimeData const &x_t, MediaData const &media_data, TemperatureData const &T_data, ReferenceTemperatureData T0, SolidThermalExpansionData< DisplacementDim > &out) const