version 3.9-dev
Fluid-matrix interactions

Constitutive models for interaction of fluids and solids. More...

Description

This module includes constitutive relations such as pc-Sw relations, kr-Sw relations, effective diffusion coefficients, friction laws. The relations depend on both the fluid state as well as material parameters of the solid matrix. For example, in porous media theory, the effective heat conductivity depends on the solid heat conductivity, the fluid heat conductivity, as well as the porosity of the solid and the fluid saturation.

Modules

 Effective diffusivity in porous media
 Laws for calculating effective diffusion coefficients.
 
 Effective heat conductivity in porous media
 Laws for calculating effective heat conductivity coefficients.
 

Files

file  fluidsolidinterfacialareashiwang.hh
 Description of a interfacial area between solid and fluid phase.
 
file  brookscorey.hh
 Implementation of the capillary pressure and relative permeability <-> saturation relations according to Brooks and Corey.
 
file  datasplinemateriallaw.hh
 Pc- and Kr-sw curves based on monotone splines through given data points.
 
file  efftoabsdefaultpolicy.hh
 This is a policy for 2p material laws how to convert absolute to relative saturations and vice versa.
 
file  heatpipelaw.hh
 Implementation of the capillary pressure <-> saturation relation for the heatpipe problem.
 
file  exponential.hh
 Specification of a function relating volume specific interfacial area to capillary pressure and saturation. This function is exponential.
 
file  exponentialcubic.hh
 Specification of a function relating volume specific interfacial area to capillary pressure and saturation. This function is of third order in pc.
 
file  interfacialarea.hh
 Implementation helper for capillary-pressure-saturation-interfacial-area relations.
 
file  pcmax.hh
 Specification of a function relating volume specific interfacial area to capillary pressure and saturation. This parametrization uses a maximum value of capillary pressure.
 
file  polynomial2ndorder.hh
 Specification of a function relating volume specific interfacial area to capillary pressure and saturation. This parametrization is a second order polynomial.
 
file  polynomialedgezero2ndorder.hh
 Specification of a function relating volume specific interfacial area to capillary pressure and saturation. This parametrization is a second order polynomial which is zero for saturations of zero and one.
 
file  linearmaterial.hh
 Linear capillary pressure and relative permeability <-> saturation relations.
 
file  materiallaw.hh
 Implementation helper for capillary pressure and relative permeability <-> saturation relations for two-phase models.
 
file  noregularization.hh
 A tag to turn off regularization and it's overhead.
 
file  smoothedlinearlaw.hh
 Implementation of the capillary pressure / relPerm <-> saturation relation using a linear relation smoothed at the upper and lower bounds for kr.
 
file  splinemateriallaw.hh
 A spline approximation wrapper for 2p material laws.
 
file  vangenuchten.hh
 Implementation of the capillary pressure and relative permeability <-> saturation relations according to van Genuchten.
 
file  napladsorption.hh
 Implementation of a NAPL adsorption model.
 
file  parkervangenuchten.hh
 Implementation of van Genuchten's capillary pressure-saturation relation for three phases.
 
file  fulltensor.hh
 
file  scheidegger.hh
 
file  fluidmatrixinteraction.hh
 Wrapper type to combine an arbitrary number of different laws for fluid-matrix interaction (e.g., pc-Sw-curves).
 
file  frictionlaw.hh
 
file  manning.hh
 
file  nikuradse.hh
 
file  nofriction.hh
 
file  viscousnoslip.hh
 
file  mpadapter.hh
 Makes the capillary pressure-saturation relations available under the M-phase API for material laws.
 
file  mplinearmaterial.hh
 Implements a linear saturation-capillary pressure relation.
 
file  permeabilitykozenycarman.hh
 The Kozeny-Carman relationship for the calculation of a porosity-dependent permeability.
 
file  localrulesforplatonicbody.hh
 Pore-local pc-Sw curves for for platonic bodies (tetrahedron, cube, octahedron, dodecahedron, icosahedron).
 
file  multishapelocalrules.hh
 Implementation of capillary pressure curves for multiple pore body geometries.
 
file  singleshapelocalrules.hh
 Base classes for standard pore-local pc-Sw curves.
 
file  emptycache.hh
 An empty cache for transmissibility laws using only standard quantities.
 
file  thresholdcapillarypressures.hh
 Specification of threshold capillary pressures for the PNM.
 
file  transmissibility1p.hh
 Implementation of the single-phase transmissibility laws for throats.
 
file  transmissibility2p.hh
 Implementation of the transmissibility laws for throats.
 
file  porositydeformation.hh
 A relationship for the porosity of a porous medium under mechanical deformation.
 
file  porosityprecipitation.hh
 Class for the evaluation of the porosity subject to precipitation.
 

Classes

class  Dumux::FluidSolidInterfacialAreaShiWang< Scalar >
 Description of a interfacial area between solid and fluid phase. More...
 
class  Dumux::FluidMatrix::BrooksCorey
 Implementation of the Brooks-Corey capillary pressure <-> saturation relation. This class bundles the "raw" curves as static members and doesn't concern itself converting absolute to effective saturations and vice versa. More...
 
class  Dumux::FluidMatrix::BrooksCoreyRegularization< Scalar >
 A regularization for the BrooksCorey material law. More...
 
class  Dumux::FluidMatrix::DataSplineTwoPMaterialLaw< S, approximatePcSwInverse >
 Pc- and Kr-sw curves based on monotone splines through given data points. More...
 
class  Dumux::FluidMatrix::TwoPEffToAbsDefaultPolicy
 This is a policy for 2p material laws how to convert absolute to relative saturations and vice versa. More...
 
class  Dumux::FluidMatrix::HeatPipeLaw< ScalarType, EffToAbsPolicy >
 Implementation of the capillary pressure <-> saturation relation for the heatpipe problem. More...
 
class  Dumux::FluidMatrix::InterfacialAreaExponential
 Implementation of the exponential function relating specific interfacial area to wetting phase saturation and capillary pressure as suggested by Nuske(2009) (Diploma thesis) [56] . More...
 
class  Dumux::FluidMatrix::InterfacialAreaExponentialCubic
 Implementation of a exponential function relating specific interfacial area to wetting phase saturation and capillary pressure. More...
 
class  Dumux::FluidMatrix::InterfacialArea< ScalarType, BaseLaw, InterfaceType, Regularization, EffToAbsPolicy >
 Wrapper class to implement regularized laws (pc-sw-a) with a conversion policy between absolution and effective saturations. More...
 
class  Dumux::FluidMatrix::InterfacialAreaPcMax
 Implementation of the polynomial of second order relating specific interfacial area to wetting phase saturation and capillary pressure. More...
 
class  Dumux::FluidMatrix::InterfacialAreaPolynomialSecondOrder
 Implementation of the polynomial of second order relating specific interfacial area to wetting phase saturation and capillary pressure as suggested by Joekar-Niasar(2008) [42] . More...
 
class  Dumux::FluidMatrix::InterfacialAreaolynomialEdgeZero2ndOrder
 Implementation of the polynomial of second order relating specific interfacial area to wetting phase saturation and capillary pressure. More...
 
class  Dumux::FluidMatrix::LinearMaterial
 Linear capillary pressure and relative permeability <-> saturation relations. More...
 
class  Dumux::FluidMatrix::TwoPMaterialLaw< ScalarType, BaseLaw, Regularization, EffToAbsPolicy >
 Wrapper class to implement regularized material laws (pc-sw, kr-sw) with a conversion policy between absolution and effective saturations. More...
 
struct  Dumux::FluidMatrix::NoRegularization
 A tag to turn off regularization and it's overhead. More...
 
class  Dumux::FluidMatrix::SmoothedLinearLaw< ScalarType, EffToAbsPolicy >
 Implements a linear saturation-capillary pressure relation. More...
 
class  Dumux::FluidMatrix::SplineTwoPMaterialLaw< TwoPMaterialLaw, approximatePcSwInverse >
 A spline approximation wrapper for 2p material laws. More...
 
class  Dumux::FluidMatrix::VanGenuchten
 Implementation of the van Genuchten capillary pressure <-> saturation relation, and relative permeability. More...
 
class  Dumux::FluidMatrix::VanGenuchtenRegularization< Scalar >
 A regularization for the VanGenuchten material law. More...
 
class  Dumux::FluidMatrix::ThreePNAPLAdsorption< Scalar >
 Implementation of a NAPL adsorption model. More...
 
class  Dumux::FluidMatrix::ParkerVanGenuchten3P
 Implementation of Parker/vanGenuchten's capillary pressure <-> saturation relation for three phases. This class bundles the "raw" curves as static members and doesn't concern itself converting absolute to effective saturations and vince versa. More...
 
class  Dumux::FluidMatrix::ParkerVanGenuchten3PRegularization< Scalar >
 A regularization for the ParkerVanGenuchten3PRegularization material law. More...
 
class  Dumux::FluidMatrix::ParkerVanGenuchtenMaterialLaw< ScalarType, BaseLaw, Regularization, EffToAbsPolicy >
 Parker van Genuchten material law. More...
 
class  Dumux::FullDispersionTensor< TypeTag >
 Full dispersion tensor. More...
 
class  Dumux::ScheideggersDispersionTensor< TypeTag >
 Scheidegger's dispersion tensor. More...
 
struct  Dumux::FluidMatrixInteraction< Laws >
 Wrapper type to combine an arbitrary number of different laws for fluid-matrix interaction (e.g., pc-Sw-curves). More...
 
struct  Dumux::FluidMatrix::Adapter< A, Wrapper >
 Adapter to inherit from, allowing the inheriting class to be wrapped by the makeFluidMatrixInteraction function. More...
 
class  Dumux::FluidMatrix::PcKrSw< T >
 Wrapper type for laws providing pc-Sw and kr-Sw rules. More...
 
class  Dumux::FluidMatrix::MultiPhasePcKrSw< T >
 Wrapper type for multiphase interface laws providing pc-S and kr-S rules. More...
 
struct  Dumux::FluidMatrix::ThreePhasePcKrSw< T >
 Wrapper type for 3p interface laws providing pc-S and kr-S rules. More...
 
class  Dumux::FluidMatrix::WettingNonwettingInterfacialAreaPcSw< T >
 Wrapper type for laws providing rules for the wetting-nonwetting interfacial area. More...
 
class  Dumux::FluidMatrix::WettingSolidInterfacialAreaPcSw< T >
 Wrapper type for laws providing rules for the wetting-solid interfacial area. More...
 
class  Dumux::FluidMatrix::NonwettingSolidInterfacialAreaPcSw< T >
 Wrapper type for laws providing rules for the nonwetting-solid interfacial area. More...
 
class  Dumux::FluidMatrix::Adsorption< T >
 Wrapper type for adsorption laws. More...
 
class  Dumux::FrictionLaw< VolumeVariables >
 Implementation of the abstract base class for friction laws. More...
 
class  Dumux::FrictionLawManning< VolumeVariables >
 Implementation of the friction law after Manning. More...
 
class  Dumux::FrictionLawNikuradse< VolumeVariables >
 Implementation of the friction law after Nikuradse. More...
 
class  Dumux::FrictionLawNoFriction< VolumeVariables >
 A pseudo friction law with no bottom friction. More...
 
class  Dumux::FrictionLawViscousNoSlip< VolumeVariables >
 Implementation of a viscous no-slip bottom friction law. More...
 
class  Dumux::FluidMatrix::MPAdapter< MaterialLaw, numFluidPhases >
 An adapter for mpnc to use the capillary pressure-saturation relationships. More...
 
class  Dumux::FluidMatrix::MPLinearMaterial< S, numFluidPhases >
 Implements a linear saturation-capillary pressure relation. More...
 
class  Dumux::PermeabilityKozenyCarman< PermeabilityType >
 The Kozeny-Carman relationship for the calculation of a porosity-dependent permeability. When the porosity is implemented as solution-independent, using this relationship for the permeability leads to unnecessary overhead. More...
 
struct  Dumux::PoreNetwork::FluidMatrix::TwoPLocalRulesPlatonicBody< shape >
 Implementation of the simplified pore-local capillary pressure-saturation curve for platonic bodies (tetrahedron, cube, octahedron, dodecahedron, icosahedron). More...
 
class  Dumux::PoreNetwork::FluidMatrix::TwoPLocalRulesPlatonicBodyRegularization< Scalar, BaseLaw >
 Two-phase rules for regularizing the pc-SW for platonic bodies. More...
 
struct  Dumux::PoreNetwork::FluidMatrix::LocalRulesTraits< ScalarT >
 LocalRulesTraits for implementation of capillary pressure curves for multiple pore body geometries. More...
 
class  Dumux::PoreNetwork::FluidMatrix::MultiShapeTwoPLocalRules< ScalarT >
 Implementation of capillary pressure curves for multiple pore body geometries. More...
 
class  Dumux::PoreNetwork::FluidMatrix::SingleShapeTwoPLocalRules< ScalarType, BaseLaw, Regularization >
 Base class for all standard pore-local pc-Sw curves. More...
 
class  Dumux::PoreNetwork::TransmissibilityBruus< Scalar >
 Collection of single-phase flow throat transmissibilities based on Bruus, H. (2011). Acoustofluidics 1: Governing equations in microfluidics. Lab on a Chip, 11(22), 3742-3751. https://backend.orbit.dtu.dk/ws/portalfiles/portal/5900070/rsc%5B1%5D.pdf. More...
 
class  Dumux::PoreNetwork::TransmissibilityPatzekSilin< Scalar, considerPoreResistance, interpolateK >
 Single-phase flow throat transmissibility based on Patzek & Silin (2001) https://doi.org/10.1006/jcis.2000.7413. More...
 
class  Dumux::PorosityDeformation< Scalar >
 A relationship for the porosity of a porous medium under mechanical deformation. More...
 
class  Dumux::PorosityPrecipitation< Scalar, numComp, numSolidPhases >
 Calculates the porosity depending on the volume fractions of precipitated minerals. More...
 

Typedefs

template<typename Scalar = double>
using Dumux::FluidMatrix::BrooksCoreyDefault = TwoPMaterialLaw< Scalar, BrooksCorey, BrooksCoreyRegularization< Scalar >, TwoPEffToAbsDefaultPolicy >
 A default configuration for using the Brooks Corey material law. More...
 
template<typename Scalar = double>
using Dumux::FluidMatrix::BrooksCoreyNoReg = TwoPMaterialLaw< Scalar, BrooksCorey, NoRegularization, TwoPEffToAbsDefaultPolicy >
 A default configuration without regularization for using the Brooks Corey material law. More...
 
template<typename Scalar = double>
using Dumux::FluidMatrix::VanGenuchtenDefault = TwoPMaterialLaw< Scalar, VanGenuchten, VanGenuchtenRegularization< Scalar >, TwoPEffToAbsDefaultPolicy >
 A default configuration for using the VanGenuchten material law. More...
 
template<typename Scalar = double>
using Dumux::FluidMatrix::VanGenuchtenNoReg = TwoPMaterialLaw< Scalar, VanGenuchten, NoRegularization, TwoPEffToAbsDefaultPolicy >
 A default configuration without regularization for using the VanGenuchten material law. More...
 
template<class Scalar >
using Dumux::FluidMatrix::ParkerVanGenuchten3PNoReg = ParkerVanGenuchtenMaterialLaw< Scalar, ParkerVanGenuchten3P, NoRegularization, ParkerVanGenuchten3PEffToAbsPolicy >
 A configuration for using the ParkerVanGenuchten material law without regularization. More...
 
template<class Scalar >
using Dumux::FluidMatrix::ParkerVanGenuchten3PDefault = ParkerVanGenuchtenMaterialLaw< Scalar, ParkerVanGenuchten3P, ParkerVanGenuchten3PRegularization< Scalar >, ParkerVanGenuchten3PEffToAbsPolicy >
 A default configuration for using the ParkerVanGenuchten material law. More...
 
template<Pore::Shape shape, typename Scalar = double>
using Dumux::PoreNetwork::FluidMatrix::TwoPLocalRulesPlatonicBodyDefault = SingleShapeTwoPLocalRules< Scalar, TwoPLocalRulesPlatonicBody< shape >, TwoPLocalRulesPlatonicBodyRegularization< Scalar, TwoPLocalRulesPlatonicBody< shape > > >
 A default configuration for using the VanGenuchten material law. More...
 
template<Pore::Shape shape, typename Scalar = double>
using Dumux::PoreNetwork::FluidMatrix::TwoPLocalRulesPlatonicBodyNoReg = SingleShapeTwoPLocalRules< Scalar, TwoPLocalRulesPlatonicBody< shape >, Dumux::FluidMatrix::NoRegularization >
 A default configuration without regularization for using the VanGenuchten material law. More...
 

Functions

template<class... Laws>
auto Dumux::makeFluidMatrixInteraction (Laws &&... laws)
 Helper function to create an FluidMatrixInteraction object containing an arbitrary number of fluid matrix interaction laws (e.g., pc-Sw curves and interfacial area laws). To be used in the spatial parameters. More...
 
template<typename T >
 Dumux::FluidMatrix::PcKrSw (T &&) -> PcKrSw< T >
 Deduction guide for the PcKrSw class. Makes sure that PcKrSw stores a copy of T if the constructor is called with a temporary object. More...
 
template<typename T >
 Dumux::FluidMatrix::MultiPhasePcKrSw (T &&) -> MultiPhasePcKrSw< T >
 Deduction guide for the MultiPhasePcKrSw class. Makes sure that MultiPhasePcKrSw stores a copy of T if the constructor is called with a temporary object. More...
 
template<typename T >
 Dumux::FluidMatrix::ThreePhasePcKrSw (T &&) -> ThreePhasePcKrSw< T >
 Deduction guide for the ThreePhasePcKrSw class. Makes sure that ThreePhasePcKrSw stores a copy of T if the constructor is called with a temporary object. More...
 
template<typename T >
 Dumux::FluidMatrix::WettingNonwettingInterfacialAreaPcSw (T &&) -> WettingNonwettingInterfacialAreaPcSw< T >
 Deduction guide for the WettingNonwettingInterfacialAreaPcSw class. Makes sure that WettingNonwettingInterfacialAreaPcSw stores a copy of T if the constructor is called with a temporary object. More...
 
template<typename T >
 Dumux::FluidMatrix::WettingSolidInterfacialAreaPcSw (T &&) -> WettingSolidInterfacialAreaPcSw< T >
 Deduction guide for the WettingSolidInterfacialAreaPcSw class. Makes sure that WettingSolidInterfacialAreaPcSw stores a copy of T if the constructor is called with a temporary object. More...
 
template<typename T >
 Dumux::FluidMatrix::NonwettingSolidInterfacialAreaPcSw (T &&) -> NonwettingSolidInterfacialAreaPcSw< T >
 Deduction guide for the NonwettingSolidInterfacialAreaPcSw class. Makes sure that NonwettingSolidInterfacialAreaPcSw stores a copy of T if the constructor is called with a temporary object. More...
 
template<typename T >
 Dumux::FluidMatrix::Adsorption (T &&) -> Adsorption< T >
 Deduction guide for the Adsorption class. Makes sure that Adsorption stores a copy of T if the constructor is called with a temporary object. More...
 
template<typename T >
 Dumux::FluidMatrix::MPAdapter (T &&) -> MPAdapter< T >
 Deduction guide for the MPAdapter class. Makes sure that MPAdapter stores a copy of T if the constructor is called with a temporary object. More...
 

Typedef Documentation

◆ BrooksCoreyDefault

template<typename Scalar = double>
using Dumux::FluidMatrix::BrooksCoreyDefault = typedef TwoPMaterialLaw<Scalar, BrooksCorey, BrooksCoreyRegularization<Scalar>, TwoPEffToAbsDefaultPolicy>

◆ BrooksCoreyNoReg

◆ ParkerVanGenuchten3PDefault

◆ ParkerVanGenuchten3PNoReg

◆ TwoPLocalRulesPlatonicBodyDefault

◆ TwoPLocalRulesPlatonicBodyNoReg

◆ VanGenuchtenDefault

◆ VanGenuchtenNoReg

Function Documentation

◆ Adsorption()

template<typename T >
Dumux::FluidMatrix::Adsorption ( T &&  ) -> Adsorption< T >

◆ makeFluidMatrixInteraction()

template<class... Laws>
auto Dumux::makeFluidMatrixInteraction ( Laws &&...  laws)

◆ MPAdapter()

template<typename T >
Dumux::FluidMatrix::MPAdapter ( T &&  ) -> MPAdapter< T >

◆ MultiPhasePcKrSw()

template<typename T >
Dumux::FluidMatrix::MultiPhasePcKrSw ( T &&  ) -> MultiPhasePcKrSw< T >

◆ NonwettingSolidInterfacialAreaPcSw()

◆ PcKrSw()

template<typename T >
Dumux::FluidMatrix::PcKrSw ( T &&  ) -> PcKrSw< T >

◆ ThreePhasePcKrSw()

template<typename T >
Dumux::FluidMatrix::ThreePhasePcKrSw ( T &&  ) -> ThreePhasePcKrSw< T >

◆ WettingNonwettingInterfacialAreaPcSw()

◆ WettingSolidInterfacialAreaPcSw()