version 3.9-dev
Dumux::FluidMatrix::DataSplineTwoPMaterialLaw< S, approximatePcSwInverse > Class Template Reference

Pc- and Kr-sw curves based on monotone splines through given data points. More...

#include <dumux/material/fluidmatrixinteractions/2p/datasplinemateriallaw.hh>

Inheritance diagram for Dumux::FluidMatrix::DataSplineTwoPMaterialLaw< S, approximatePcSwInverse >:

Description

template<class S, bool approximatePcSwInverse = false>
class Dumux::FluidMatrix::DataSplineTwoPMaterialLaw< S, approximatePcSwInverse >
Template Parameters
Sthe type for scalar numbers
approximatePcSwInverseif this is set true, the spline approximates sw(pc) and evaluating pc(sw) needs spline inversion. if this is false, the spline approximates pc(sw) and evaluating sw(pc) needs spline inversion. Spline inversion is rather expensive since it has to be done numerically.

Public Types

using Scalar = S
 

Public Member Functions

 DataSplineTwoPMaterialLaw ()=delete
 Deleted default constructor (so we are never in an undefined state) More...
 
 DataSplineTwoPMaterialLaw (const std::string &paramGroup)
 Construct from a subgroup from the global parameter tree. More...
 
 DataSplineTwoPMaterialLaw (const std::vector< Scalar > &swPc, const std::vector< Scalar > &pc, const std::vector< Scalar > &swKrw, const std::vector< Scalar > &krw, const std::vector< Scalar > &swKrn, const std::vector< Scalar > &krn)
 Construct from user data. More...
 
Scalar pc (const Scalar sw) const
 The capillary pressure-saturation curve. More...
 
Scalar dpc_dsw (const Scalar sw) const
 The partial derivative of the capillary pressure w.r.t. the saturation. More...
 
Scalar sw (const Scalar pc) const
 The saturation-capillary pressure curve. More...
 
Scalar dsw_dpc (const Scalar pc) const
 The partial derivative of the saturation to the capillary pressure. More...
 
Scalar krw (const Scalar sw) const
 The relative permeability for the wetting phase. More...
 
Scalar dkrw_dsw (const Scalar sw) const
 The derivative of the relative permeability for the wetting phase w.r.t. saturation. More...
 
Scalar krn (const Scalar sw) const
 The relative permeability for the non-wetting phase. More...
 
Scalar dkrn_dsw (const Scalar sw) const
 The derivative of the relative permeability for the non-wetting phase w.r.t. saturation. More...
 

Static Public Member Functions

static constexpr int numFluidPhases ()
 Return the number of fluid phases. More...
 
static constexpr bool isRegularized ()
 

Member Typedef Documentation

◆ Scalar

template<class S , bool approximatePcSwInverse = false>
using Dumux::FluidMatrix::DataSplineTwoPMaterialLaw< S, approximatePcSwInverse >::Scalar = S

Constructor & Destructor Documentation

◆ DataSplineTwoPMaterialLaw() [1/3]

template<class S , bool approximatePcSwInverse = false>
Dumux::FluidMatrix::DataSplineTwoPMaterialLaw< S, approximatePcSwInverse >::DataSplineTwoPMaterialLaw ( )
delete
Note
store owning pointers to laws instead if you need default-constructible objects

◆ DataSplineTwoPMaterialLaw() [2/3]

template<class S , bool approximatePcSwInverse = false>
Dumux::FluidMatrix::DataSplineTwoPMaterialLaw< S, approximatePcSwInverse >::DataSplineTwoPMaterialLaw ( const std::string &  paramGroup)
inlineexplicit

◆ DataSplineTwoPMaterialLaw() [3/3]

template<class S , bool approximatePcSwInverse = false>
Dumux::FluidMatrix::DataSplineTwoPMaterialLaw< S, approximatePcSwInverse >::DataSplineTwoPMaterialLaw ( const std::vector< Scalar > &  swPc,
const std::vector< Scalar > &  pc,
const std::vector< Scalar > &  swKrw,
const std::vector< Scalar > &  krw,
const std::vector< Scalar > &  swKrn,
const std::vector< Scalar > &  krn 
)
inline

Member Function Documentation

◆ dkrn_dsw()

template<class S , bool approximatePcSwInverse = false>
Scalar Dumux::FluidMatrix::DataSplineTwoPMaterialLaw< S, approximatePcSwInverse >::dkrn_dsw ( const Scalar  sw) const
inline

◆ dkrw_dsw()

template<class S , bool approximatePcSwInverse = false>
Scalar Dumux::FluidMatrix::DataSplineTwoPMaterialLaw< S, approximatePcSwInverse >::dkrw_dsw ( const Scalar  sw) const
inline

◆ dpc_dsw()

template<class S , bool approximatePcSwInverse = false>
Scalar Dumux::FluidMatrix::DataSplineTwoPMaterialLaw< S, approximatePcSwInverse >::dpc_dsw ( const Scalar  sw) const
inline

◆ dsw_dpc()

template<class S , bool approximatePcSwInverse = false>
Scalar Dumux::FluidMatrix::DataSplineTwoPMaterialLaw< S, approximatePcSwInverse >::dsw_dpc ( const Scalar  pc) const
inline

◆ isRegularized()

template<class S , bool approximatePcSwInverse = false>
static constexpr bool Dumux::FluidMatrix::DataSplineTwoPMaterialLaw< S, approximatePcSwInverse >::isRegularized ( )
inlinestaticconstexpr

◆ krn()

template<class S , bool approximatePcSwInverse = false>
Scalar Dumux::FluidMatrix::DataSplineTwoPMaterialLaw< S, approximatePcSwInverse >::krn ( const Scalar  sw) const
inline

◆ krw()

template<class S , bool approximatePcSwInverse = false>
Scalar Dumux::FluidMatrix::DataSplineTwoPMaterialLaw< S, approximatePcSwInverse >::krw ( const Scalar  sw) const
inline

◆ numFluidPhases()

template<class S , bool approximatePcSwInverse = false>
static constexpr int Dumux::FluidMatrix::DataSplineTwoPMaterialLaw< S, approximatePcSwInverse >::numFluidPhases ( )
inlinestaticconstexpr

◆ pc()

template<class S , bool approximatePcSwInverse = false>
Scalar Dumux::FluidMatrix::DataSplineTwoPMaterialLaw< S, approximatePcSwInverse >::pc ( const Scalar  sw) const
inline

◆ sw()

template<class S , bool approximatePcSwInverse = false>
Scalar Dumux::FluidMatrix::DataSplineTwoPMaterialLaw< S, approximatePcSwInverse >::sw ( const Scalar  pc) const
inline

The documentation for this class was generated from the following file: