OGS
FluidThermalExpansion.cpp
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2// SPDX-License-Identifier: BSD-3-Clause
3
5
7
9{
10template <int DisplacementDim>
12 SpaceTimeData const& x_t, MediaData const& media_data,
15 SolidThermalExpansionData<DisplacementDim> const& s_therm_exp_data,
16 PorosityData const& poro_data, LiquidDensityData const& rho_L_data,
17 BiotData const& biot_data, FluidThermalExpansionData& out) const
18{
19 static constexpr int kelvin_vector_size =
22
23 namespace MPL = MaterialPropertyLib;
24 MPL::VariableArray variables;
25 variables.liquid_phase_pressure = -p_cap_data.p_cap;
26 variables.temperature = T_data.T;
27
28 double const phi = poro_data.phi;
29
30 double const fluid_volumetric_thermal_expansion =
31 phi * MPL::getLiquidThermalExpansivity(media_data.liquid, variables,
32 rho_L_data.rho_LR, x_t.x, x_t.t,
33 x_t.dt);
34
36 (biot_data() - phi) *
37 Invariants::trace(
39 fluid_volumetric_thermal_expansion;
40}
41
42template struct FluidThermalExpansionModel<2>;
43template struct FluidThermalExpansionModel<3>;
44} // namespace ProcessLib::ThermoRichardsMechanics
double getLiquidThermalExpansivity(Phase const &phase, VariableArray const &vars, const double density, ParameterLib::SpatialPosition const &pos, double const t, double const dt)
constexpr int kelvin_vector_dimensions(int const displacement_dim)
Kelvin vector dimensions for given displacement dimension.
BaseLib::StrongType< double, struct BiotTag > BiotData
void eval(SpaceTimeData const &x_t, MediaData const &media_data, CapillaryPressureData< DisplacementDim > const &p_cap_data, TemperatureData< DisplacementDim > const &T_data, SolidThermalExpansionData< DisplacementDim > const &s_therm_exp_data, PorosityData const &poro_data, LiquidDensityData const &rho_L_data, BiotData const &biot_data, FluidThermalExpansionData &out) const