OGS
DarcyLaw.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
7#include "LiquidDensity.h"
8#include "LiquidViscosity.h"
9#include "PermeabilityData.h"
11#include "ThermoOsmosis.h"
12
14{
15template <int DisplacementDim>
17 struct DarcyLawDataTag>;
18
19constexpr std::string_view ioName(struct DarcyLawDataTag*)
20{
21 return "velocity";
22}
23
24template <int DisplacementDim>
26{
28 DisplacementDim> const& specific_body_force)
29 : specific_body_force_(specific_body_force)
30 {
31 }
32
33 void eval(CapillaryPressureData<DisplacementDim> const& p_cap_data,
34 LiquidDensityData const& rho_L_data,
35 LiquidViscosityData const& mu_L_data,
36 PermeabilityData<DisplacementDim> const& perm_data,
37 ThermoOsmosisData<DisplacementDim> const& th_osmosis_data,
39
42 DisplacementDim> const& specific_body_force)
43 {
44 return DarcyLawModel{specific_body_force};
45 }
46
47private:
51};
52
53extern template struct DarcyLawModel<2>;
54extern template struct DarcyLawModel<3>;
55} // namespace ProcessLib::ThermoRichardsMechanics
BaseLib::StrongType< GlobalDimVector< DisplacementDim >, struct SpecificBodyForceTag > SpecificBodyForce
BaseLib::StrongType< Eigen::Vector< double, DisplacementDim >, struct DarcyLawDataTag > DarcyLawData
Definition DarcyLaw.h:16
constexpr std::string_view ioName(struct DarcyLawDataTag *)
Definition DarcyLaw.h:19
BaseLib::StrongType< double, struct LiquidViscosityDataTag > LiquidViscosityData
DarcyLawModel(ProcessLib::ConstitutiveRelations::SpecificBodyForce< DisplacementDim > const &specific_body_force)
Definition DarcyLaw.h:27
static DarcyLawModel create(ProcessLib::ConstitutiveRelations::SpecificBodyForce< DisplacementDim > const &specific_body_force)
Definition DarcyLaw.h:40
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:9
ProcessLib::ConstitutiveRelations::SpecificBodyForce< DisplacementDim > const specific_body_force_
Gravity vector (specific body force).
Definition DarcyLaw.h:50