OGS
ThermoOsmosis.cpp
Go to the documentation of this file.
1
11#include "ThermoOsmosis.h"
12
14
16{
17template <int DisplacementDim>
19 SpaceTimeData const& x_t, MediaData const& media_data,
21 LiquidDensityData const& rho_L_data,
23{
24 namespace MPL = MaterialPropertyLib;
25 MPL::VariableArray variables;
26
27 auto const& solid_phase = media_data.solid;
28
29 auto const K_pT_thermal_osmosis =
30 (solid_phase.hasProperty(
33 solid_phase[MPL::PropertyType::thermal_osmosis_coefficient]
34 .value(variables, x_t.x, x_t.t, x_t.dt))
35 : Eigen::MatrixXd::Zero(DisplacementDim, DisplacementDim));
36
37 out.K_pT_Laplace = rho_L_data.rho_LR * K_pT_thermal_osmosis;
38
39 out.K_Tp_Laplace = T_data.T * K_pT_thermal_osmosis;
40
41 out.seepage_velocity_contribution = -K_pT_thermal_osmosis * T_data.grad_T;
42}
43
44template struct ThermoOsmosisModel<2>;
45template struct ThermoOsmosisModel<3>;
46} // namespace ProcessLib::ThermoRichardsMechanics
Eigen::Matrix< double, GlobalDim, GlobalDim > formEigenTensor(MaterialPropertyLib::PropertyDataType const &values)
ParameterLib::SpatialPosition x
Definition Base.h:74
MaterialPropertyLib::Phase const & solid
Definition Base.h:63
Eigen::Vector< double, DisplacementDim > grad_T
Definition Base.h:71
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