OGS
EqP.h
Go to the documentation of this file.
1
11#pragma once
12
13#include "Biot.h"
15#include "LiquidDensity.h"
16#include "LiquidViscosity.h"
17#include "PermeabilityData.h"
18#include "Saturation.h"
20#include "TRMStorage.h"
21#include "TRMVaporDiffusion.h"
22
24{
25template <int DisplacementDim>
26struct EqPData
27{
30
32
33 double M_pT_X_NTN = nan;
34 double M_pu_X_BTI2N = nan;
35
37
39};
40
41template <int DisplacementDim>
43{
44 explicit EqPModel(
45 Eigen::Vector<double, DisplacementDim> const& specific_body_force)
46 : b_(specific_body_force)
47 {
48 }
49
50 void eval(CapillaryPressureData<DisplacementDim> const& p_cap_data,
52 SaturationData const& S_L_data,
53 SaturationDataDeriv const& dS_L_data,
54 BiotData const& biot_data,
55 LiquidDensityData const& rho_L_data,
56 LiquidViscosityData const& mu_L_data,
57 PermeabilityData<DisplacementDim> const& perm_data,
58 FluidThermalExpansionData const& f_therm_exp_data,
60 TRMStorageData const& storage_data,
61 EqPData<DisplacementDim>& out) const;
62
64 SpecificBodyForceData<DisplacementDim> const& specific_body_force_data)
65 {
66 return EqPModel{specific_body_force_data.specific_body_force};
67 }
68
69private:
71 Eigen::Vector<double, DisplacementDim> const b_;
72};
73
74extern template struct EqPModel<2>;
75extern template struct EqPModel<3>;
76} // namespace ProcessLib::ThermoRichardsMechanics
static constexpr double nan
Convenience alias for not a number.
Definition Base.h:80
Eigen::Matrix< double, DisplacementDim, DisplacementDim, Eigen::RowMajor > GlobalDimMatrix
Definition Base.h:35
Eigen::Vector< double, DisplacementDim > GlobalDimVector
Definition Base.h:32
GlobalDimMatrix< DisplacementDim > K_pp_Laplace
Definition EqP.h:31
GlobalDimVector< DisplacementDim > rhs_p_dNT_V
Definition EqP.h:36
GlobalDimVector< DisplacementDim > J_pp_dNT_V_N
Definition EqP.h:28
static EqPModel create(SpecificBodyForceData< DisplacementDim > const &specific_body_force_data)
Definition EqP.h:63
void eval(CapillaryPressureData< DisplacementDim > const &p_cap_data, TemperatureData< DisplacementDim > const &T_data, SaturationData const &S_L_data, SaturationDataDeriv const &dS_L_data, BiotData const &biot_data, LiquidDensityData const &rho_L_data, LiquidViscosityData const &mu_L_data, PermeabilityData< DisplacementDim > const &perm_data, FluidThermalExpansionData const &f_therm_exp_data, TRMVaporDiffusionData< DisplacementDim > const &vap_data, TRMStorageData const &storage_data, EqPData< DisplacementDim > &out) const
Definition EqP.cpp:16
EqPModel(Eigen::Vector< double, DisplacementDim > const &specific_body_force)
Definition EqP.h:44
Eigen::Vector< double, DisplacementDim > const b_
Gravity vector (specific body force).
Definition EqP.h:71
Eigen::Vector< double, DisplacementDim > specific_body_force