OGS
Advection.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 "Advection.h"
5
7{
9{
10template <int DisplacementDim>
12 ConstituentDensityData const& constituent_density_data,
13 PermeabilityData<DisplacementDim> const& permeability_data,
14 PureLiquidDensityData const& rho_W_LR,
15 ViscosityData const& viscosity_data,
16 AdvectionData<DisplacementDim>& advection_data) const
17{
18 GlobalDimMatrix<DisplacementDim> const k_over_mu_G =
19 permeability_data.Ki * permeability_data.k_rel_G / viscosity_data.mu_GR;
20 GlobalDimMatrix<DisplacementDim> const k_over_mu_L =
21 permeability_data.Ki * permeability_data.k_rel_L / viscosity_data.mu_LR;
22
23 advection_data.advection_C_G =
24 constituent_density_data.rho_C_GR * k_over_mu_G;
25 advection_data.advection_C_L =
26 constituent_density_data.rho_C_LR * k_over_mu_L;
27 advection_data.advection_W_G =
28 constituent_density_data.rho_W_GR * k_over_mu_G;
29 advection_data.advection_W_L = rho_W_LR() * k_over_mu_L;
30}
31
32template <int DisplacementDim>
34 ConstituentDensityData const& constituent_density_data,
35 PermeabilityData<DisplacementDim> const& permeability_data,
36 ViscosityData const& viscosity_data,
37 SaturationDataDeriv const& dS_L_dp_cap,
38 PhaseTransitionData const& phase_transition_data,
39 AdvectionDerivativeData<DisplacementDim>& advection_d_data) const
40{
41 GlobalDimMatrix<DisplacementDim> const k_over_mu_G =
42 permeability_data.Ki * permeability_data.k_rel_G / viscosity_data.mu_GR;
43 GlobalDimMatrix<DisplacementDim> const k_over_mu_L =
44 permeability_data.Ki * permeability_data.k_rel_L / viscosity_data.mu_LR;
45
46 GlobalDimMatrix<DisplacementDim> const dk_over_mu_G_dp_cap =
47 permeability_data.Ki * permeability_data.dk_rel_G_dS_L * dS_L_dp_cap() /
48 viscosity_data.mu_GR;
49 GlobalDimMatrix<DisplacementDim> const dk_over_mu_L_dp_cap =
50 permeability_data.Ki * permeability_data.dk_rel_L_dS_L * dS_L_dp_cap() /
51 viscosity_data.mu_LR;
52
53 advection_d_data.dadvection_C_dp_GR =
54 phase_transition_data.drho_C_GR_dp_GR * k_over_mu_G
55 // + rhoCGR * (dk_over_mu_G_dp_GR = 0)
56 // + rhoCLR * (dk_over_mu_L_dp_GR = 0)
57 + phase_transition_data.drho_C_LR_dp_GR * k_over_mu_L;
58
59 advection_d_data.dadvection_C_dp_cap =
60 //(drho_C_GR_dp_cap = 0) * k_over_mu_G
61 constituent_density_data.rho_C_GR * dk_over_mu_G_dp_cap +
62 (-phase_transition_data.drho_C_LR_dp_LR) * k_over_mu_L +
63 constituent_density_data.rho_C_LR * dk_over_mu_L_dp_cap;
64}
65
66template struct AdvectionModel<2>;
67template struct AdvectionModel<3>;
68} // namespace ConstitutiveRelations
69} // namespace ProcessLib::TH2M
Eigen::Matrix< double, DisplacementDim, DisplacementDim, Eigen::RowMajor > GlobalDimMatrix
BaseLib::StrongType< double, struct PureLiquidDensityTag > PureLiquidDensityData
BaseLib::StrongType< double, struct SaturationDataDerivTag > SaturationDataDeriv
GlobalDimMatrix< DisplacementDim > advection_C_G
Definition Advection.h:21
GlobalDimMatrix< DisplacementDim > advection_W_G
Definition Advection.h:23
GlobalDimMatrix< DisplacementDim > advection_C_L
Definition Advection.h:22
GlobalDimMatrix< DisplacementDim > advection_W_L
Definition Advection.h:24
void dEval(ConstituentDensityData const &constituent_density_data, PermeabilityData< DisplacementDim > const &permeability_data, ViscosityData const &viscosity_data, SaturationDataDeriv const &dS_L_dp_cap, PhaseTransitionData const &phase_transition_data, AdvectionDerivativeData< DisplacementDim > &advection_d_data) const
Definition Advection.cpp:33
void eval(ConstituentDensityData const &constituent_density_data, PermeabilityData< DisplacementDim > const &permeability_data, PureLiquidDensityData const &rho_W_LR, ViscosityData const &viscosity_data, AdvectionData< DisplacementDim > &advection_data) const
Definition Advection.cpp:11