OGS
DarcyLaw.h
Go to the documentation of this file.
1
11#pragma once
12
13#include "LiquidDensity.h"
14#include "LiquidViscosity.h"
15#include "PermeabilityData.h"
16#include "ThermoOsmosis.h"
17
19{
20template <int DisplacementDim>
22{
23 Eigen::Vector<double, DisplacementDim> v_darcy;
24
25 static auto reflect()
26 {
28
30 &Self::v_darcy);
31 }
32};
33
34template <int DisplacementDim>
36{
37 explicit DarcyLawModel(
38 Eigen::Vector<double, DisplacementDim> const& specific_body_force)
39 : b_(specific_body_force)
40 {
41 }
42
43 void eval(CapillaryPressureData<DisplacementDim> const& p_cap_data,
44 LiquidDensityData const& rho_L_data,
45 LiquidViscosityData const& mu_L_data,
46 PermeabilityData<DisplacementDim> const& perm_data,
47 ThermoOsmosisData<DisplacementDim> const& th_osmosis_data,
49
50private:
52 Eigen::Vector<double, DisplacementDim> const b_;
53};
54
55extern template struct DarcyLawModel<2>;
56extern template struct DarcyLawModel<3>;
57} // namespace ProcessLib::ThermoRichardsMechanics
auto reflectWithName(std::string name, Member Class::*member)
Eigen::Vector< double, DisplacementDim > v_darcy
Definition DarcyLaw.h:23
Eigen::Vector< double, DisplacementDim > const b_
Gravity vector (specific body force).
Definition DarcyLaw.h:52
void eval(CapillaryPressureData< DisplacementDim > const &p_cap_data, LiquidDensityData const &rho_L_data, LiquidViscosityData const &mu_L_data, PermeabilityData< DisplacementDim > const &perm_data, ThermoOsmosisData< DisplacementDim > const &th_osmosis_data, DarcyLawData< DisplacementDim > &out) const
Definition DarcyLaw.cpp:18
DarcyLawModel(Eigen::Vector< double, DisplacementDim > const &specific_body_force)
Definition DarcyLaw.h:37