25#ifndef DUMUX_MATERIAL_FLUIDMATRIX_INTERACTIONS_FLUIDMATRIX_INTERACTION_HH
26#define DUMUX_MATERIAL_FLUIDMATRIX_INTERACTIONS_FLUIDMATRIX_INTERACTION_HH
38template<
class... Laws>
50template<
class... Laws>
65template<
class A,
template<
class>
class Wrapper>
68 template<
class T, std::enable_if_t<std::is_same_v<A, std::decay_t<T>>,
int> = 0>
69 friend auto wrap(T&& t) {
return Wrapper(std::forward<T>(t)); }
80 using Scalar =
typename std::decay_t<T>::Scalar;
84 PcKrSw(T&& impl) : impl_(std::forward<T>(impl)) {}
120 using Scalar =
typename std::decay_t<T>::Scalar;
151 using Scalar =
typename std::decay_t<T>::Scalar;
PcKrSw(T &&) -> PcKrSw< T >
Deduction guide for the PcKrSw class. Makes sure that PcKrSw stores a copy of T if the constructor is...
NonwettingSolidInterfacialAreaPcSw(T &&) -> NonwettingSolidInterfacialAreaPcSw< T >
Deduction guide for the NonwettingSolidInterfacialAreaPcSw class. Makes sure that NonwettingSolidInte...
WettingSolidInterfacialAreaPcSw(T &&) -> WettingSolidInterfacialAreaPcSw< T >
Deduction guide for the WettingSolidInterfacialAreaPcSw class. Makes sure that WettingSolidInterfacia...
ThreePhasePcKrSw(T &&) -> ThreePhasePcKrSw< T >
Deduction guide for the ThreePhasePcKrSw class. Makes sure that ThreePhasePcKrSw stores a copy of T i...
Adsorption(T &&) -> Adsorption< T >
Deduction guide for the Adsorption class. Makes sure that Adsorption stores a copy of T if the constr...
auto makeFluidMatrixInteraction(Laws &&... laws)
Helper function to create an FluidMatrixInteraction object containing an arbitrary number of fluid ma...
Definition: fluidmatrixinteraction.hh:51
MultiPhasePcKrSw(T &&) -> MultiPhasePcKrSw< T >
Deduction guide for the MultiPhasePcKrSw class. Makes sure that MultiPhasePcKrSw stores a copy of T i...
WettingNonwettingInterfacialAreaPcSw(T &&) -> WettingNonwettingInterfacialAreaPcSw< T >
Deduction guide for the WettingNonwettingInterfacialAreaPcSw class. Makes sure that WettingNonwetting...
Adaption of the non-isothermal two-phase two-component flow model to problems with CO2.
Definition: adapt.hh:29
Definition: brookscorey.hh:35
Wrapper type to combine an arbitrary number of different laws for fluid-matrix interaction (e....
Definition: fluidmatrixinteraction.hh:40
FluidMatrixInteraction(Laws &&... laws)
Definition: fluidmatrixinteraction.hh:41
Adapter to inherit from, allowing the inheriting class to be wrapped by the makeFluidMatrixInteractio...
Definition: fluidmatrixinteraction.hh:67
friend auto wrap(T &&t)
Definition: fluidmatrixinteraction.hh:69
Wrapper type for laws providing pc-Sw and kr-Sw rules.
Definition: fluidmatrixinteraction.hh:78
const T & krSwCurve() const
Definition: fluidmatrixinteraction.hh:97
Scalar krn(const Scalar sw) const
Definition: fluidmatrixinteraction.hh:93
Scalar pc(const Scalar sw) const
Definition: fluidmatrixinteraction.hh:86
PcKrSw(T &&impl)
Definition: fluidmatrixinteraction.hh:84
Scalar dsw_dpc(const Scalar pc) const
Definition: fluidmatrixinteraction.hh:90
Scalar sw(const Scalar pc) const
Definition: fluidmatrixinteraction.hh:89
Scalar dpc_dsw(const Scalar sw) const
Definition: fluidmatrixinteraction.hh:87
Scalar krw(const Scalar sw) const
Definition: fluidmatrixinteraction.hh:91
T PcKrSwType
Definition: fluidmatrixinteraction.hh:82
typename std::decay_t< T >::Scalar Scalar
Definition: fluidmatrixinteraction.hh:80
Scalar dkrn_dsw(const Scalar sw) const
Definition: fluidmatrixinteraction.hh:94
const T & pcSwCurve() const
Definition: fluidmatrixinteraction.hh:96
Scalar dkrw_dsw(const Scalar sw) const
Definition: fluidmatrixinteraction.hh:92
Scalar endPointPc() const
Definition: fluidmatrixinteraction.hh:88
Wrapper type for multiphase interface laws providing pc-S and kr-S rules.
Definition: fluidmatrixinteraction.hh:118
auto relativePermeabilities(const FS &fs, int wp) const
Definition: fluidmatrixinteraction.hh:127
MultiPhasePcKrSw(T &&impl)
Definition: fluidmatrixinteraction.hh:122
const T & multiPhasePcKrS() const
Definition: fluidmatrixinteraction.hh:129
auto capillaryPressures(const FS &fs, int wp) const
Definition: fluidmatrixinteraction.hh:125
typename std::decay_t< T >::Scalar Scalar
Definition: fluidmatrixinteraction.hh:120
Wrapper type for 3p interface laws providing pc-S and kr-S rules.
Definition: fluidmatrixinteraction.hh:150
Scalar kr(const int phaseIdx, const Scalar sw, const Scalar sn) const
Definition: fluidmatrixinteraction.hh:166
Scalar krw(const Scalar sw, const Scalar sn) const
Definition: fluidmatrixinteraction.hh:163
Scalar krg(const Scalar sw, const Scalar sn) const
Definition: fluidmatrixinteraction.hh:165
const T & krSwCurve() const
Definition: fluidmatrixinteraction.hh:169
T value_type
Definition: fluidmatrixinteraction.hh:152
ThreePhasePcKrSw(T &&impl)
Definition: fluidmatrixinteraction.hh:156
T PcKrSwType
Definition: fluidmatrixinteraction.hh:154
Scalar pcgn(const Scalar sw, const Scalar sn) const
Definition: fluidmatrixinteraction.hh:160
typename std::decay_t< T >::Scalar Scalar
Definition: fluidmatrixinteraction.hh:151
Scalar krn(const Scalar sw, const Scalar sn) const
Definition: fluidmatrixinteraction.hh:164
Scalar pcgw(const Scalar sw, const Scalar sn) const
Definition: fluidmatrixinteraction.hh:158
Scalar pcnw(const Scalar sw, const Scalar sn) const
Definition: fluidmatrixinteraction.hh:159
Scalar pcAlpha(const Scalar sw, const Scalar sn) const
Definition: fluidmatrixinteraction.hh:161
const T & pcSwCurve() const
Definition: fluidmatrixinteraction.hh:168
Wrapper type for laws providing rules for the wetting-nonwetting interfacial area.
Definition: fluidmatrixinteraction.hh:189
const T & wettingNonwettingInterface() const
Definition: fluidmatrixinteraction.hh:192
WettingNonwettingInterfacialAreaPcSw(T &&impl)
Definition: fluidmatrixinteraction.hh:191
Wrapper type for laws providing rules for the wetting-solid interfacial area.
Definition: fluidmatrixinteraction.hh:212
WettingSolidInterfacialAreaPcSw(T &&impl)
Definition: fluidmatrixinteraction.hh:214
const T & wettingSolidInterface() const
Definition: fluidmatrixinteraction.hh:215
Wrapper type for laws providing rules for the nonwetting-solid interfacial area.
Definition: fluidmatrixinteraction.hh:235
const T & nonwettingSolidInterface() const
Definition: fluidmatrixinteraction.hh:238
NonwettingSolidInterfacialAreaPcSw(T &&impl)
Definition: fluidmatrixinteraction.hh:237
Wrapper type for adsorption laws.
Definition: fluidmatrixinteraction.hh:259
T value_type
Definition: fluidmatrixinteraction.hh:261
Adsorption(T &&impl)
Definition: fluidmatrixinteraction.hh:263
const T & adsorptionModel() const
Definition: fluidmatrixinteraction.hh:264