OGS
ProcessLib::ThermoRichardsMechanics::TRMVaporDiffusionModel< DisplacementDim > Struct Template Reference

Detailed Description

template<int DisplacementDim>
struct ProcessLib::ThermoRichardsMechanics::TRMVaporDiffusionModel< DisplacementDim >

Definition at line 30 of file TRMVaporDiffusion.h.

#include <TRMVaporDiffusion.h>

Public Member Functions

void eval (SpaceTimeData const &x_t, MediaData const &media_data, LiquidDensityData const &rho_L_data, SaturationData const &S_L_data, SaturationDataDeriv const &dS_L_data, PorosityData const &poro_data, CapillaryPressureData< DisplacementDim > const &p_cap_data, TemperatureData< DisplacementDim > const &T_data, TRMVaporDiffusionData< DisplacementDim > &out) const

Member Function Documentation

◆ eval()

template<int DisplacementDim>
void ProcessLib::ThermoRichardsMechanics::TRMVaporDiffusionModel< DisplacementDim >::eval ( SpaceTimeData const & x_t,
MediaData const & media_data,
LiquidDensityData const & rho_L_data,
SaturationData const & S_L_data,
SaturationDataDeriv const & dS_L_data,
PorosityData const & poro_data,
CapillaryPressureData< DisplacementDim > const & p_cap_data,
TemperatureData< DisplacementDim > const & T_data,
TRMVaporDiffusionData< DisplacementDim > & out ) const

Definition at line 25 of file TRMVaporDiffusion.cpp.

32{
33 namespace MPL = MaterialPropertyLib;
35 variables.temperature = T_data.T;
36 variables.liquid_phase_pressure = -p_cap_data.p_cap;
37 // setting pG to 1 atm
38 // TODO : rewrite equations s.t. p_L = pG-p_cap
39 variables.gas_phase_pressure = 1.0e5;
40 variables.density = rho_L_data.rho_LR;
41 variables.liquid_saturation = S_L_data.S_L;
42
43 auto const& medium = media_data.medium;
44
45 MPL::Phase const* gas_phase =
46 medium.hasPhase("Gas") ? &medium.phase("Gas") : nullptr;
47
48 out.setZero();
49
50 if (gas_phase && S_L_data.S_L < 1.0)
51 {
52 double const rho_wv =
54 .template value<double>(variables, x_t.x, x_t.t, x_t.dt);
55
56 double const drho_wv_dT =
59 x_t.x, x_t.t, x_t.dt);
60 double const drho_wv_dp =
62 .template dValue<double>(variables,
64 x_t.x, x_t.t, x_t.dt);
65 auto const f_Tv =
67 ->property(
69 .template value<double>(variables, x_t.x, x_t.t, x_t.dt);
70
71 double const phi = poro_data.phi;
72 variables.porosity = phi;
73
74 double const S_g = 1.0 - S_L_data.S_L;
75 double const tortuosity =
77 .template value<double>(variables, x_t.x, x_t.t, x_t.dt);
78 double const D_v =
79 phi * S_g * tortuosity *
81 .template value<double>(variables, x_t.x, x_t.t, x_t.dt);
82
83 out.J_pT_X_dNTdN = f_Tv * D_v * drho_wv_dT;
84 out.K_pp_X_dNTdN = D_v * drho_wv_dp;
85
86 out.vapor_flux = -(out.J_pT_X_dNTdN * T_data.grad_T -
87 out.K_pp_X_dNTdN * p_cap_data.grad_p_cap);
88 out.heat_capacity_vapor =
90 ->property(
92 .template value<double>(variables, x_t.x, x_t.t, x_t.dt);
93
94 out.M_TT_X_NTN += out.heat_capacity_vapor * rho_wv * S_g * phi;
95
96 out.storage_coefficient_by_water_vapor =
97 phi * (rho_wv * dS_L_data.dS_L_dp_cap + S_g * drho_wv_dp);
98
99 out.M_pT_X_NTN += phi * S_g * drho_wv_dT;
100
101 //
102 // Latent heat term
103 //
105 {
106 double const factor = phi * S_g / rho_L_data.rho_LR;
107 // The volumetric latent heat of vaporization of liquid water
108 double const L0 =
110 .template value<double>(variables, x_t.x, x_t.t, x_t.dt) *
111 rho_L_data.rho_LR;
112
113 double const rho_wv_over_rho_L = rho_wv / rho_L_data.rho_LR;
114
115 out.M_TT_X_NTN +=
116 factor * L0 *
117 (drho_wv_dT - rho_wv_over_rho_L * rho_L_data.drho_LR_dT);
118 out.M_Tp_X_NTN =
119 (factor * L0 *
120 (drho_wv_dp - rho_wv_over_rho_L * rho_L_data.drho_LR_dp) +
121 L0 * phi * rho_wv_over_rho_L * dS_L_data.dS_L_dp_cap);
122 out.K_TT_X_dNTdN = L0 * out.J_pT_X_dNTdN / rho_L_data.rho_LR;
123 out.K_Tp_X_dNTdN = L0 * out.K_pp_X_dNTdN / rho_L_data.rho_LR;
124 }
125 }
126}

References MaterialPropertyLib::density, MaterialPropertyLib::VariableArray::density, MaterialPropertyLib::diffusion, ProcessLib::ThermoRichardsMechanics::LiquidDensityData::drho_LR_dp, ProcessLib::ThermoRichardsMechanics::LiquidDensityData::drho_LR_dT, ProcessLib::ThermoRichardsMechanics::SaturationDataDeriv::dS_L_dp_cap, ProcessLib::ConstitutiveRelations::SpaceTimeData::dt, MaterialPropertyLib::VariableArray::gas_phase_pressure, ProcessLib::ThermoRichardsMechanics::CapillaryPressureData< DisplacementDim >::grad_p_cap, ProcessLib::ThermoRichardsMechanics::TemperatureData< DisplacementDim >::grad_T, MaterialPropertyLib::Phase::hasProperty(), ProcessLib::ThermoRichardsMechanics::TRMVaporDiffusionData< DisplacementDim >::heat_capacity_vapor, ProcessLib::ThermoRichardsMechanics::TRMVaporDiffusionData< DisplacementDim >::J_pT_X_dNTdN, ProcessLib::ThermoRichardsMechanics::TRMVaporDiffusionData< DisplacementDim >::K_pp_X_dNTdN, ProcessLib::ThermoRichardsMechanics::TRMVaporDiffusionData< DisplacementDim >::K_Tp_X_dNTdN, ProcessLib::ThermoRichardsMechanics::TRMVaporDiffusionData< DisplacementDim >::K_TT_X_dNTdN, MaterialPropertyLib::liquid_phase_pressure, MaterialPropertyLib::VariableArray::liquid_phase_pressure, MaterialPropertyLib::VariableArray::liquid_saturation, ProcessLib::ThermoRichardsMechanics::TRMVaporDiffusionData< DisplacementDim >::M_pT_X_NTN, ProcessLib::ThermoRichardsMechanics::TRMVaporDiffusionData< DisplacementDim >::M_Tp_X_NTN, ProcessLib::ThermoRichardsMechanics::TRMVaporDiffusionData< DisplacementDim >::M_TT_X_NTN, ProcessLib::ThermoRichardsMechanics::MediaData::medium, ProcessLib::ThermoRichardsMechanics::CapillaryPressureData< DisplacementDim >::p_cap, ProcessLib::ThermoRichardsMechanics::PorosityData::phi, MaterialPropertyLib::VariableArray::porosity, MaterialPropertyLib::Phase::property(), ProcessLib::ThermoRichardsMechanics::LiquidDensityData::rho_LR, ProcessLib::ThermoRichardsMechanics::SaturationData::S_L, ProcessLib::ThermoRichardsMechanics::TRMVaporDiffusionData< DisplacementDim >::setZero(), MaterialPropertyLib::specific_heat_capacity, MaterialPropertyLib::specific_latent_heat, ProcessLib::ThermoRichardsMechanics::TRMVaporDiffusionData< DisplacementDim >::storage_coefficient_by_water_vapor, ProcessLib::ThermoRichardsMechanics::TemperatureData< DisplacementDim >::T, ProcessLib::ConstitutiveRelations::SpaceTimeData::t, MaterialPropertyLib::temperature, MaterialPropertyLib::VariableArray::temperature, MaterialPropertyLib::thermal_diffusion_enhancement_factor, MaterialPropertyLib::tortuosity, ProcessLib::ThermoRichardsMechanics::TRMVaporDiffusionData< DisplacementDim >::vapor_flux, and ProcessLib::ConstitutiveRelations::SpaceTimeData::x.


The documentation for this struct was generated from the following files: