OGS
InternalEnergy.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{
10void InternalEnergyModel::eval(FluidDensityData const& fluid_density_data,
11 PhaseTransitionData const& phase_transition_data,
12 PorosityData const& porosity_data,
13 SaturationData const& S_L_data,
14 SolidDensityData const& solid_density_data,
15 SolidEnthalpyData const& solid_enthalpy_data,
16 InternalEnergyData& internal_energy_data) const
17{
18 auto const phi_L = S_L_data.S_L * porosity_data.phi;
19 auto const phi_G = (1. - S_L_data.S_L) * porosity_data.phi;
20 double const phi_S = 1. - porosity_data.phi;
21
22 auto const u_S = solid_enthalpy_data.h_S;
23
24 internal_energy_data() =
25 phi_G * fluid_density_data.rho_GR * phase_transition_data.uG +
26 phi_L * fluid_density_data.rho_LR * phase_transition_data.uL +
27 phi_S * solid_density_data.rho_SR * u_S;
28}
29
31 FluidDensityData const& fluid_density_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_internal_energy_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 auto const u_S = solid_enthalpy_data.h_S;
48 effective_volumetric_internal_energy_d_data.drho_u_eff_dT =
49 phi_G * phase_transition_data.drho_GR_dT * phase_transition_data.uG +
50 phi_G * fluid_density_data.rho_GR * phase_transition_data.du_G_dT +
51 phi_L * phase_transition_data.drho_LR_dT * phase_transition_data.uL +
52 phi_L * fluid_density_data.rho_LR * phase_transition_data.du_L_dT +
53 phi_S * solid_density_d_data.drho_SR_dT * u_S +
54 phi_S * solid_density_data.rho_SR * solid_heat_capacity_data() -
55 porosity_d_data.dphi_dT * solid_density_data.rho_SR * u_S;
56
57 // From p_LR = p_GR - p_cap it follows for
58 // drho_LR/dp_GR = drho_LR/dp_LR * dp_LR/dp_GR
59 // = drho_LR/dp_LR * (dp_GR/dp_GR - dp_cap/dp_GR)
60 // = drho_LR/dp_LR * (1 - 0)
61 double const drho_LR_dp_GR = phase_transition_data.drho_LR_dp_LR;
62 double const drho_LR_dp_cap = -phase_transition_data.drho_LR_dp_LR;
63 // drho_GR_dp_cap = 0;
64
65 effective_volumetric_internal_energy_d_data.drho_u_eff_dp_GR =
66 /*(dphi_G_dp_GR = 0) * fluid_density_data.rho_GR *
67 phase_transition_data.uG +*/
68 phi_G * phase_transition_data.drho_GR_dp_GR * phase_transition_data.uG +
69 phi_G * fluid_density_data.rho_GR * phase_transition_data.du_G_dp_GR +
70 /*(dphi_L_dp_GR = 0) * fluid_density_data.rho_LR *
71 phase_transition_data.uL +*/
72 phi_L * drho_LR_dp_GR * phase_transition_data.uL +
73 phi_L * fluid_density_data.rho_LR * phase_transition_data.du_L_dp_GR;
74
75 effective_volumetric_internal_energy_d_data.drho_u_eff_dp_cap =
76 -porosity_d_data.dphi_L_dp_cap * fluid_density_data.rho_GR *
77 phase_transition_data.uG +
78 /*phi_G * (drho_GR_dp_cap = 0) * phase_transition_data.uG +*/
79 porosity_d_data.dphi_L_dp_cap * fluid_density_data.rho_LR *
80 phase_transition_data.uL +
81 phi_L * drho_LR_dp_cap * phase_transition_data.uL +
82 phi_L * fluid_density_data.rho_LR * phase_transition_data.du_L_dp_cap;
83}
84} // namespace ConstitutiveRelations
85} // namespace ProcessLib::TH2M
BaseLib::StrongType< double, struct InternalEnergyTag > InternalEnergyData
BaseLib::StrongType< double, struct SolidHeatCapacityTag > SolidHeatCapacityData
void eval(FluidDensityData const &fluid_density_data, PhaseTransitionData const &phase_transition_data, PorosityData const &porosity_data, SaturationData const &S_L_data, SolidDensityData const &solid_density_data, SolidEnthalpyData const &solid_enthalpy_data, InternalEnergyData &internal_energy_data) const
void dEval(FluidDensityData const &fluid_density_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, EffectiveVolumetricInternalEnergyDerivatives &effective_volumetric_internal_energy_d_data) const