OGS
Enthalpy.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 "InternalEnergy.h"
5
6namespace ProcessLib::TH2M
7{
9{
11 FluidDensityData const& fluid_density_data,
12 FluidEnthalpyData const& fluid_enthalpy_data,
13 PorosityData const& porosity_data,
14 SaturationData const& S_L_data,
15 SolidDensityData const& solid_density_data,
16 SolidEnthalpyData const& solid_enthalpy_data,
17 EffectiveVolumetricEnthalpy& effective_volumetric_enthalpy_data) const
18{
19 auto const phi_L = S_L_data.S_L * porosity_data.phi;
20 auto const phi_G = (1. - S_L_data.S_L) * porosity_data.phi;
21 double const phi_S = 1. - porosity_data.phi;
22
23 effective_volumetric_enthalpy_data.rho_h_eff =
24 phi_G * fluid_density_data.rho_GR * fluid_enthalpy_data.h_G +
25 phi_L * fluid_density_data.rho_LR * fluid_enthalpy_data.h_L +
26 phi_S * solid_density_data.rho_SR * solid_enthalpy_data.h_S;
27}
28
30 FluidDensityData const& fluid_density_data,
31 FluidEnthalpyData const& fluid_enthalpy_data,
32 PhaseTransitionData const& phase_transition_data,
33 PorosityData const& porosity_data,
34 PorosityDerivativeData const& porosity_d_data,
35 SaturationData const& S_L_data,
36 SolidDensityData const& solid_density_data,
37 SolidDensityDerivativeData const& solid_density_d_data,
38 SolidEnthalpyData const& solid_enthalpy_data,
39 SolidHeatCapacityData const& solid_heat_capacity_data,
41 effective_volumetric_enthalpy_d_data) const
42{
43 auto const phi_L = S_L_data.S_L * porosity_data.phi;
44 auto const phi_G = (1. - S_L_data.S_L) * porosity_data.phi;
45 double const phi_S = 1. - porosity_data.phi;
46
47 // From p_LR = p_GR - p_cap it follows for
48 // drho_LR/dp_GR = drho_LR/dp_LR * dp_LR/dp_GR
49 // = drho_LR/dp_LR * (dp_GR/dp_GR - dp_cap/dp_GR)
50 // = drho_LR/dp_LR * (1 - 0)
51 double const drho_LR_dp_GR = phase_transition_data.drho_LR_dp_LR;
52 double const drho_LR_dp_cap = -phase_transition_data.drho_LR_dp_LR;
53 // drho_GR_dp_cap = 0;
54
55 effective_volumetric_enthalpy_d_data.drho_h_eff_dp_GR =
56 /*(dphi_G_dp_GR = 0) * fluid_density_data.rho_GR *
57 fluid_enthalpy_data.h_G +*/
58 phi_G * phase_transition_data.drho_GR_dp_GR * fluid_enthalpy_data.h_G +
59 /*(dphi_L_dp_GR = 0) * fluid_density_data.rho_LR *
60 fluid_enthalpy_data.h_L +*/
61 phi_L * drho_LR_dp_GR * fluid_enthalpy_data.h_L;
62 effective_volumetric_enthalpy_d_data.drho_h_eff_dp_cap =
63 porosity_d_data.dphi_L_dp_cap * fluid_density_data.rho_GR *
64 fluid_enthalpy_data.h_G +
65 /*phi_G * (drho_GR_dp_cap = 0) * fluid_enthalpy_data.h_G +*/
66 porosity_d_data.dphi_L_dp_cap * fluid_density_data.rho_LR *
67 fluid_enthalpy_data.h_L +
68 phi_L * drho_LR_dp_cap * fluid_enthalpy_data.h_L;
69
70 // TODO (naumov) Extend for temperature dependent porosities.
71 constexpr double dphi_G_dT = 0;
72 constexpr double dphi_L_dT = 0;
73 effective_volumetric_enthalpy_d_data.drho_h_eff_dT =
74 dphi_G_dT * fluid_density_data.rho_GR * fluid_enthalpy_data.h_G +
75 phi_G * phase_transition_data.drho_GR_dT * fluid_enthalpy_data.h_G +
76 phi_G * fluid_density_data.rho_GR * phase_transition_data.dh_G_dT +
77 dphi_L_dT * fluid_density_data.rho_LR * fluid_enthalpy_data.h_L +
78 phi_L * phase_transition_data.drho_LR_dT * fluid_enthalpy_data.h_L +
79 phi_L * fluid_density_data.rho_LR * phase_transition_data.dh_L_dT -
80 porosity_d_data.dphi_dT * solid_density_data.rho_SR *
81 solid_enthalpy_data.h_S +
82 phi_S * solid_density_d_data.drho_SR_dT * solid_enthalpy_data.h_S +
83 phi_S * solid_density_data.rho_SR * solid_heat_capacity_data();
84}
85
87 SolidHeatCapacityData const& solid_heat_capacity_data,
88 TemperatureData const& T_data,
89 SolidEnthalpyData& solid_enthalpy_data) const
90{
91 solid_enthalpy_data.h_S = solid_heat_capacity_data() * T_data.T;
92}
93
94} // namespace ConstitutiveRelations
95} // namespace ProcessLib::TH2M
BaseLib::StrongType< double, struct SolidHeatCapacityTag > SolidHeatCapacityData
void dEval(FluidDensityData const &fluid_density_data, FluidEnthalpyData const &fluid_enthalpy_data, PhaseTransitionData const &phase_transition_data, PorosityData const &porosity_data, PorosityDerivativeData const &porosity_d_data, SaturationData const &S_L_data, SolidDensityData const &solid_density_data, SolidDensityDerivativeData const &solid_density_d_data, SolidEnthalpyData const &solid_enthalpy_data, SolidHeatCapacityData const &solid_heat_capacity_data, EffectiveVolumetricEnthalpyDerivatives &effective_volumetric_enthalpy_d_data) const
Definition Enthalpy.cpp:29
void eval(FluidDensityData const &fluid_density_data, FluidEnthalpyData const &fluid_enthalpy_data, PorosityData const &porosity_data, SaturationData const &S_L_data, SolidDensityData const &solid_density_data, SolidEnthalpyData const &solid_enthalpy_data, EffectiveVolumetricEnthalpy &effective_volumetric_enthalpy_data) const
Definition Enthalpy.cpp:10
void eval(SolidHeatCapacityData const &solid_heat_capacity_data, TemperatureData const &T_data, SolidEnthalpyData &solid_enthalpy_data) const
Definition Enthalpy.cpp:86