OGS
ThermoOsmosis.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
4#include "ThermoOsmosis.h"
5
7
9{
10template <int DisplacementDim>
12 SpaceTimeData const& x_t, MediaData const& media_data,
14 LiquidDensityData const& rho_L_data,
16{
17 namespace MPL = MaterialPropertyLib;
18 MPL::VariableArray variables;
19
20 auto const& solid_phase = media_data.solid;
21
22 auto const K_pT_thermal_osmosis =
23 (solid_phase.hasProperty(
27 .value(variables, x_t.x, x_t.t, x_t.dt))
28 : Eigen::MatrixXd::Zero(DisplacementDim, DisplacementDim));
29
30 out.K_pT_Laplace = rho_L_data.rho_LR * K_pT_thermal_osmosis;
31
32 out.K_Tp_Laplace = T_data.T * K_pT_thermal_osmosis;
33
34 out.seepage_velocity_contribution = -K_pT_thermal_osmosis * T_data.grad_T;
35}
36
37template struct ThermoOsmosisModel<2>;
38template struct ThermoOsmosisModel<3>;
39} // namespace ProcessLib::ThermoRichardsMechanics
constexpr Eigen::Matrix< double, GlobalDim, GlobalDim > formEigenTensor(MaterialPropertyLib::PropertyDataType const &values)
GlobalDimMatrix< DisplacementDim > K_Tp_Laplace
GlobalDimMatrix< DisplacementDim > K_pT_Laplace
GlobalDimVector< DisplacementDim > seepage_velocity_contribution
void eval(SpaceTimeData const &x_t, MediaData const &media_data, TemperatureData< DisplacementDim > const &T_data, LiquidDensityData const &rho_L_data, ThermoOsmosisData< DisplacementDim > &out) const