OGS
DiffusionVelocity.h
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#pragma once
5
6#include "Base.h"
7#include "MassMoleFractions.h"
9#include "Porosity.h"
11#include "Saturation.h"
12
13namespace ProcessLib::TH2M
14{
16{
17template <int DisplacementDim>
19{
24
25 static auto reflect()
26 {
28 namespace R = ProcessLib::Reflection;
29
30 return std::tuple{
31 R::makeReflectionData("diffusion_velocity_gas_gas", &Self::d_CG),
32 R::makeReflectionData("diffusion_velocity_vapour_gas", &Self::d_WG),
33 R::makeReflectionData("diffusion_velocity_solute_liquid",
34 &Self::d_CL),
35 R::makeReflectionData("diffusion_velocity_liquid_liquid",
36 &Self::d_WL)};
37 }
38};
39
40template <int DisplacementDim>
42{
43 void eval(
46 MassMoleFractionsData const& mass_mole_fractions_data,
47 PhaseTransitionData const& phase_transition_data,
48 PorosityData const& porosity_data,
49 SaturationData const& S_L_data,
51 DiffusionVelocityData<DisplacementDim>& diffusion_velocity_data) const;
52};
53
54extern template struct DiffusionVelocityModel<2>;
55extern template struct DiffusionVelocityModel<3>;
56} // namespace ConstitutiveRelations
57} // namespace ProcessLib::TH2M
Eigen::Vector< double, DisplacementDim > GlobalDimVector
BaseLib::StrongType< GlobalDimVector< DisplacementDim >, struct GasPressureGradientTag > GasPressureGradientData
BaseLib::StrongType< GlobalDimVector< DisplacementDim >, struct TemperatureGradientTag > TemperatureGradientData
BaseLib::StrongType< GlobalDimVector< DisplacementDim >, struct CapillaryPressureGradientTag > CapillaryPressureGradientData
void eval(CapillaryPressureGradientData< DisplacementDim > const &grad_p_cap, GasPressureGradientData< DisplacementDim > const &grad_p_GR, MassMoleFractionsData const &mass_mole_fractions_data, PhaseTransitionData const &phase_transition_data, PorosityData const &porosity_data, SaturationData const &S_L_data, TemperatureGradientData< DisplacementDim > const &grad_T, DiffusionVelocityData< DisplacementDim > &diffusion_velocity_data) const