3.6-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
Dumux::StokesDarcyCouplingDataImplementation< MDTraits, CouplingManager, enableEnergyBalance, true > Class Template Reference

Coupling data specialization for compositional models. More...

#include <dumux/multidomain/boundary/stokesdarcy/couplingdata.hh>

Inheritance diagram for Dumux::StokesDarcyCouplingDataImplementation< MDTraits, CouplingManager, enableEnergyBalance, true >:

Description

template<class MDTraits, class CouplingManager, bool enableEnergyBalance>
class Dumux::StokesDarcyCouplingDataImplementation< MDTraits, CouplingManager, enableEnergyBalance, true >

Coupling data specialization for compositional models.

Public Member Functions

NumEqVector massCouplingCondition (const Element< darcyIdx > &element, const FVElementGeometry< darcyIdx > &fvGeometry, const ElementVolumeVariables< darcyIdx > &darcyElemVolVars, const SubControlVolumeFace< darcyIdx > &scvf, const DiffusionCoefficientAveragingType diffCoeffAvgType=DiffusionCoefficientAveragingType::ffOnly) const
 Returns the mass flux across the coupling boundary as seen from the Darcy domain. More...
 
NumEqVector massCouplingCondition (const Element< stokesIdx > &element, const FVElementGeometry< stokesIdx > &fvGeometry, const ElementVolumeVariables< stokesIdx > &stokesElemVolVars, const ElementFaceVariables< stokesIdx > &stokesElemFaceVars, const SubControlVolumeFace< stokesIdx > &scvf, const DiffusionCoefficientAveragingType diffCoeffAvgType=DiffusionCoefficientAveragingType::ffOnly) const
 Returns the mass flux across the coupling boundary as seen from the free-flow domain. More...
 
template<bool isNI = enableEnergyBalance, typename std::enable_if_t< isNI, int > = 0>
Scalar energyCouplingCondition (const Element< darcyIdx > &element, const FVElementGeometry< darcyIdx > &fvGeometry, const ElementVolumeVariables< darcyIdx > &darcyElemVolVars, const SubControlVolumeFace< darcyIdx > &scvf, const DiffusionCoefficientAveragingType diffCoeffAvgType=DiffusionCoefficientAveragingType::ffOnly) const
 Returns the energy flux across the coupling boundary as seen from the Darcy domain. More...
 
template<bool isNI = enableEnergyBalance, typename std::enable_if_t< isNI, int > = 0>
Scalar energyCouplingCondition (const Element< stokesIdx > &element, const FVElementGeometry< stokesIdx > &fvGeometry, const ElementVolumeVariables< stokesIdx > &stokesElemVolVars, const ElementFaceVariables< stokesIdx > &stokesElemFaceVars, const SubControlVolumeFace< stokesIdx > &scvf, const DiffusionCoefficientAveragingType diffCoeffAvgType=DiffusionCoefficientAveragingType::ffOnly) const
 Returns the energy flux across the coupling boundary as seen from the free-flow domain. More...
 
const CouplingManagercouplingManager () const
 Returns a reference to the coupling manager. More...
 
auto darcyPermeability (const Element< stokesIdx > &element, const SubControlVolumeFace< stokesIdx > &scvf) const
 Returns the intrinsic permeability of the coupled Darcy element. More...
 
template<class ElementFaceVariables >
Scalar momentumCouplingCondition (const Element< stokesIdx > &element, const FVElementGeometry< stokesIdx > &fvGeometry, const ElementVolumeVariables< stokesIdx > &stokesElemVolVars, const ElementFaceVariables &stokesElemFaceVars, const SubControlVolumeFace< stokesIdx > &scvf) const
 Returns the momentum flux across the coupling boundary. More...
 
Scalar advectiveFlux (const Scalar insideQuantity, const Scalar outsideQuantity, const Scalar volumeFlow, bool insideIsUpstream) const
 Evaluate an advective flux across the interface and consider upwinding. More...
 

Static Public Member Functions

template<std::size_t i>
static constexpr auto couplingPhaseIdx (Dune::index_constant< i > id, int coupledPhaseIdx=0)
 Returns the corresponding phase index needed for coupling. More...
 
template<std::size_t i>
static constexpr auto couplingCompIdx (Dune::index_constant< i > id, int coupledCompdIdx)
 Returns the corresponding component index needed for coupling. More...
 

Protected Member Functions

template<std::size_t i, std::size_t j>
NumEqVector massFlux_ (Dune::index_constant< i > domainI, Dune::index_constant< j > domainJ, const FVElementGeometry< i > &insideFvGeometry, const SubControlVolumeFace< i > &scvf, const VolumeVariables< i > &insideVolVars, const VolumeVariables< j > &outsideVolVars, const SubControlVolume< j > &outsideScv, const Scalar velocity, const bool insideIsUpstream, const DiffusionCoefficientAveragingType diffCoeffAvgType) const
 Evaluate the compositional mole/mass flux across the interface. More...
 
Scalar getComponentEnthalpy (const VolumeVariables< stokesIdx > &volVars, int phaseIdx, int compIdx) const
 
Scalar getComponentEnthalpy (const VolumeVariables< darcyIdx > &volVars, int phaseIdx, int compIdx) const
 
template<std::size_t i, std::size_t j>
NumEqVector diffusiveMolecularFluxMaxwellStefan_ (Dune::index_constant< i > domainI, Dune::index_constant< j > domainJ, const SubControlVolumeFace< i > &scvfI, const SubControlVolume< i > &scvI, const SubControlVolume< j > &scvJ, const VolumeVariables< i > &volVarsI, const VolumeVariables< j > &volVarsJ) const
 Evaluate the diffusive mole/mass flux across the interface. More...
 
template<std::size_t i, std::size_t j>
NumEqVector diffusiveMolecularFluxFicksLaw_ (Dune::index_constant< i > domainI, Dune::index_constant< j > domainJ, const SubControlVolumeFace< i > &scvfI, const SubControlVolume< i > &scvI, const SubControlVolume< j > &scvJ, const VolumeVariables< i > &volVarsI, const VolumeVariables< j > &volVarsJ, const DiffusionCoefficientAveragingType diffCoeffAvgType) const
 
template<std::size_t i, std::size_t j, bool isNI = enableEnergyBalance, typename std::enable_if_t< isNI, int > = 0>
Scalar energyFlux_ (Dune::index_constant< i > domainI, Dune::index_constant< j > domainJ, const FVElementGeometry< i > &insideFvGeometry, const FVElementGeometry< j > &outsideFvGeometry, const SubControlVolumeFace< i > &scvf, const VolumeVariables< i > &insideVolVars, const VolumeVariables< j > &outsideVolVars, const Scalar velocity, const bool insideIsUpstream, const DiffusionCoefficientAveragingType diffCoeffAvgType) const
 Evaluate the energy flux across the interface. More...
 
template<std::size_t i, std::size_t j>
Scalar transmissibility_ (Dune::index_constant< i > domainI, Dune::index_constant< j > domainJ, const Scalar insideDistance, const Scalar outsideDistance, const Scalar avgQuantityI, const Scalar avgQuantityJ, const DiffusionCoefficientAveragingType diffCoeffAvgType) const
 Returns the transmissibility used for either molecular diffusion or thermal conductivity. More...
 
template<class Scv , class Scvf >
Scalar getDistance_ (const Scv &scv, const Scvf &scvf) const
 Returns the distance between an scvf and the corresponding scv center. More...
 
template<std::size_t i, std::size_t j, bool isNI = enableEnergyBalance, typename std::enable_if_t< isNI, int > = 0>
Scalar conductiveEnergyFlux_ (Dune::index_constant< i > domainI, Dune::index_constant< j > domainJ, const FVElementGeometry< i > &fvGeometryI, const FVElementGeometry< j > &fvGeometryJ, const SubControlVolumeFace< i > &scvfI, const SubControlVolume< i > &scvI, const SubControlVolume< j > &scvJ, const VolumeVariables< i > &volVarsI, const VolumeVariables< j > &volVarsJ, const DiffusionCoefficientAveragingType diffCoeffAvgType) const
 Returns the conductive energy flux across the interface. More...
 
template<class ElementFaceVariables , class CouplingContext >
Scalar pressureAtInterface_ (const Element< stokesIdx > &element, const SubControlVolumeFace< stokesIdx > &scvf, const ElementFaceVariables &elemFaceVars, const CouplingContext &context) const
 Returns the pressure at the interface. More...
 
Scalar computeCouplingPhasePressureAtInterface_ (const Element< darcyIdx > &element, const FVElementGeometry< darcyIdx > &fvGeometry, const SubControlVolumeFace< darcyIdx > &scvf, const VolumeVariables< darcyIdx > &volVars, const typename Element< stokesIdx >::Geometry::GlobalCoordinate &couplingPhaseVelocity, ForchheimersLaw) const
 Returns the pressure at the interface using Forchheimers's law for reconstruction. More...
 
Scalar computeCouplingPhasePressureAtInterface_ (const Element< darcyIdx > &element, const FVElementGeometry< darcyIdx > &fvGeometry, const SubControlVolumeFace< darcyIdx > &scvf, const VolumeVariables< darcyIdx > &volVars, const typename Element< stokesIdx >::Geometry::GlobalCoordinate &couplingPhaseVelocity, DarcysLaw) const
 Returns the pressure at the interface using Darcy's law for reconstruction. More...
 

Member Function Documentation

◆ advectiveFlux()

template<class MDTraits , class CouplingManager >
Scalar Dumux::StokesDarcyCouplingDataImplementationBase< MDTraits, CouplingManager >::advectiveFlux ( const Scalar  insideQuantity,
const Scalar  outsideQuantity,
const Scalar  volumeFlow,
bool  insideIsUpstream 
) const
inlineinherited

Evaluate an advective flux across the interface and consider upwinding.

◆ computeCouplingPhasePressureAtInterface_() [1/2]

template<class MDTraits , class CouplingManager >
Scalar Dumux::StokesDarcyCouplingDataImplementationBase< MDTraits, CouplingManager >::computeCouplingPhasePressureAtInterface_ ( const Element< darcyIdx > &  element,
const FVElementGeometry< darcyIdx > &  fvGeometry,
const SubControlVolumeFace< darcyIdx > &  scvf,
const VolumeVariables< darcyIdx > &  volVars,
const typename Element< stokesIdx >::Geometry::GlobalCoordinate &  couplingPhaseVelocity,
DarcysLaw   
) const
inlineprotectedinherited

Returns the pressure at the interface using Darcy's law for reconstruction.

◆ computeCouplingPhasePressureAtInterface_() [2/2]

template<class MDTraits , class CouplingManager >
Scalar Dumux::StokesDarcyCouplingDataImplementationBase< MDTraits, CouplingManager >::computeCouplingPhasePressureAtInterface_ ( const Element< darcyIdx > &  element,
const FVElementGeometry< darcyIdx > &  fvGeometry,
const SubControlVolumeFace< darcyIdx > &  scvf,
const VolumeVariables< darcyIdx > &  volVars,
const typename Element< stokesIdx >::Geometry::GlobalCoordinate &  couplingPhaseVelocity,
ForchheimersLaw   
) const
inlineprotectedinherited

Returns the pressure at the interface using Forchheimers's law for reconstruction.

◆ conductiveEnergyFlux_()

template<class MDTraits , class CouplingManager >
template<std::size_t i, std::size_t j, bool isNI = enableEnergyBalance, typename std::enable_if_t< isNI, int > = 0>
Scalar Dumux::StokesDarcyCouplingDataImplementationBase< MDTraits, CouplingManager >::conductiveEnergyFlux_ ( Dune::index_constant< i >  domainI,
Dune::index_constant< j >  domainJ,
const FVElementGeometry< i > &  fvGeometryI,
const FVElementGeometry< j > &  fvGeometryJ,
const SubControlVolumeFace< i > &  scvfI,
const SubControlVolume< i > &  scvI,
const SubControlVolume< j > &  scvJ,
const VolumeVariables< i > &  volVarsI,
const VolumeVariables< j > &  volVarsJ,
const DiffusionCoefficientAveragingType  diffCoeffAvgType 
) const
inlineprotectedinherited

Returns the conductive energy flux across the interface.

◆ couplingCompIdx()

template<class MDTraits , class CouplingManager , bool enableEnergyBalance>
template<std::size_t i>
static constexpr auto Dumux::StokesDarcyCouplingDataImplementationBase< MDTraits, CouplingManager >::couplingCompIdx ( Dune::index_constant< i >  id,
int  coupledCompdIdx 
)
inlinestaticconstexpr

Returns the corresponding component index needed for coupling.

◆ couplingManager()

template<class MDTraits , class CouplingManager >
const CouplingManager & Dumux::StokesDarcyCouplingDataImplementationBase< MDTraits, CouplingManager >::couplingManager ( ) const
inlineinherited

Returns a reference to the coupling manager.

◆ couplingPhaseIdx()

template<class MDTraits , class CouplingManager , bool enableEnergyBalance>
template<std::size_t i>
static constexpr auto Dumux::StokesDarcyCouplingDataImplementationBase< MDTraits, CouplingManager >::couplingPhaseIdx ( Dune::index_constant< i >  id,
int  coupledPhaseIdx = 0 
)
inlinestaticconstexpr

Returns the corresponding phase index needed for coupling.

◆ darcyPermeability()

template<class MDTraits , class CouplingManager >
auto Dumux::StokesDarcyCouplingDataImplementationBase< MDTraits, CouplingManager >::darcyPermeability ( const Element< stokesIdx > &  element,
const SubControlVolumeFace< stokesIdx > &  scvf 
) const
inlineinherited

Returns the intrinsic permeability of the coupled Darcy element.

◆ diffusiveMolecularFluxFicksLaw_()

template<class MDTraits , class CouplingManager , bool enableEnergyBalance>
template<std::size_t i, std::size_t j>
NumEqVector Dumux::StokesDarcyCouplingDataImplementation< MDTraits, CouplingManager, enableEnergyBalance, true >::diffusiveMolecularFluxFicksLaw_ ( Dune::index_constant< i >  domainI,
Dune::index_constant< j >  domainJ,
const SubControlVolumeFace< i > &  scvfI,
const SubControlVolume< i > &  scvI,
const SubControlVolume< j > &  scvJ,
const VolumeVariables< i > &  volVarsI,
const VolumeVariables< j > &  volVarsJ,
const DiffusionCoefficientAveragingType  diffCoeffAvgType 
) const
inlineprotected

◆ diffusiveMolecularFluxMaxwellStefan_()

template<class MDTraits , class CouplingManager , bool enableEnergyBalance>
template<std::size_t i, std::size_t j>
NumEqVector Dumux::StokesDarcyCouplingDataImplementation< MDTraits, CouplingManager, enableEnergyBalance, true >::diffusiveMolecularFluxMaxwellStefan_ ( Dune::index_constant< i >  domainI,
Dune::index_constant< j >  domainJ,
const SubControlVolumeFace< i > &  scvfI,
const SubControlVolume< i > &  scvI,
const SubControlVolume< j > &  scvJ,
const VolumeVariables< i > &  volVarsI,
const VolumeVariables< j > &  volVarsJ 
) const
inlineprotected

Evaluate the diffusive mole/mass flux across the interface.

◆ energyCouplingCondition() [1/2]

template<class MDTraits , class CouplingManager , bool enableEnergyBalance>
template<bool isNI = enableEnergyBalance, typename std::enable_if_t< isNI, int > = 0>
Scalar Dumux::StokesDarcyCouplingDataImplementation< MDTraits, CouplingManager, enableEnergyBalance, true >::energyCouplingCondition ( const Element< darcyIdx > &  element,
const FVElementGeometry< darcyIdx > &  fvGeometry,
const ElementVolumeVariables< darcyIdx > &  darcyElemVolVars,
const SubControlVolumeFace< darcyIdx > &  scvf,
const DiffusionCoefficientAveragingType  diffCoeffAvgType = DiffusionCoefficientAveragingType::ffOnly 
) const
inline

Returns the energy flux across the coupling boundary as seen from the Darcy domain.

◆ energyCouplingCondition() [2/2]

template<class MDTraits , class CouplingManager , bool enableEnergyBalance>
template<bool isNI = enableEnergyBalance, typename std::enable_if_t< isNI, int > = 0>
Scalar Dumux::StokesDarcyCouplingDataImplementation< MDTraits, CouplingManager, enableEnergyBalance, true >::energyCouplingCondition ( const Element< stokesIdx > &  element,
const FVElementGeometry< stokesIdx > &  fvGeometry,
const ElementVolumeVariables< stokesIdx > &  stokesElemVolVars,
const ElementFaceVariables< stokesIdx > &  stokesElemFaceVars,
const SubControlVolumeFace< stokesIdx > &  scvf,
const DiffusionCoefficientAveragingType  diffCoeffAvgType = DiffusionCoefficientAveragingType::ffOnly 
) const
inline

Returns the energy flux across the coupling boundary as seen from the free-flow domain.

◆ energyFlux_()

template<class MDTraits , class CouplingManager , bool enableEnergyBalance>
template<std::size_t i, std::size_t j, bool isNI = enableEnergyBalance, typename std::enable_if_t< isNI, int > = 0>
Scalar Dumux::StokesDarcyCouplingDataImplementation< MDTraits, CouplingManager, enableEnergyBalance, true >::energyFlux_ ( Dune::index_constant< i >  domainI,
Dune::index_constant< j >  domainJ,
const FVElementGeometry< i > &  insideFvGeometry,
const FVElementGeometry< j > &  outsideFvGeometry,
const SubControlVolumeFace< i > &  scvf,
const VolumeVariables< i > &  insideVolVars,
const VolumeVariables< j > &  outsideVolVars,
const Scalar  velocity,
const bool  insideIsUpstream,
const DiffusionCoefficientAveragingType  diffCoeffAvgType 
) const
inlineprotected

Evaluate the energy flux across the interface.

◆ getComponentEnthalpy() [1/2]

template<class MDTraits , class CouplingManager , bool enableEnergyBalance>
Scalar Dumux::StokesDarcyCouplingDataImplementation< MDTraits, CouplingManager, enableEnergyBalance, true >::getComponentEnthalpy ( const VolumeVariables< darcyIdx > &  volVars,
int  phaseIdx,
int  compIdx 
) const
inlineprotected

◆ getComponentEnthalpy() [2/2]

template<class MDTraits , class CouplingManager , bool enableEnergyBalance>
Scalar Dumux::StokesDarcyCouplingDataImplementation< MDTraits, CouplingManager, enableEnergyBalance, true >::getComponentEnthalpy ( const VolumeVariables< stokesIdx > &  volVars,
int  phaseIdx,
int  compIdx 
) const
inlineprotected

◆ getDistance_()

template<class MDTraits , class CouplingManager >
template<class Scv , class Scvf >
Scalar Dumux::StokesDarcyCouplingDataImplementationBase< MDTraits, CouplingManager >::getDistance_ ( const Scv &  scv,
const Scvf &  scvf 
) const
inlineprotectedinherited

Returns the distance between an scvf and the corresponding scv center.

◆ massCouplingCondition() [1/2]

template<class MDTraits , class CouplingManager , bool enableEnergyBalance>
NumEqVector Dumux::StokesDarcyCouplingDataImplementation< MDTraits, CouplingManager, enableEnergyBalance, true >::massCouplingCondition ( const Element< darcyIdx > &  element,
const FVElementGeometry< darcyIdx > &  fvGeometry,
const ElementVolumeVariables< darcyIdx > &  darcyElemVolVars,
const SubControlVolumeFace< darcyIdx > &  scvf,
const DiffusionCoefficientAveragingType  diffCoeffAvgType = DiffusionCoefficientAveragingType::ffOnly 
) const
inline

Returns the mass flux across the coupling boundary as seen from the Darcy domain.

◆ massCouplingCondition() [2/2]

template<class MDTraits , class CouplingManager , bool enableEnergyBalance>
NumEqVector Dumux::StokesDarcyCouplingDataImplementation< MDTraits, CouplingManager, enableEnergyBalance, true >::massCouplingCondition ( const Element< stokesIdx > &  element,
const FVElementGeometry< stokesIdx > &  fvGeometry,
const ElementVolumeVariables< stokesIdx > &  stokesElemVolVars,
const ElementFaceVariables< stokesIdx > &  stokesElemFaceVars,
const SubControlVolumeFace< stokesIdx > &  scvf,
const DiffusionCoefficientAveragingType  diffCoeffAvgType = DiffusionCoefficientAveragingType::ffOnly 
) const
inline

Returns the mass flux across the coupling boundary as seen from the free-flow domain.

◆ massFlux_()

template<class MDTraits , class CouplingManager , bool enableEnergyBalance>
template<std::size_t i, std::size_t j>
NumEqVector Dumux::StokesDarcyCouplingDataImplementation< MDTraits, CouplingManager, enableEnergyBalance, true >::massFlux_ ( Dune::index_constant< i >  domainI,
Dune::index_constant< j >  domainJ,
const FVElementGeometry< i > &  insideFvGeometry,
const SubControlVolumeFace< i > &  scvf,
const VolumeVariables< i > &  insideVolVars,
const VolumeVariables< j > &  outsideVolVars,
const SubControlVolume< j > &  outsideScv,
const Scalar  velocity,
const bool  insideIsUpstream,
const DiffusionCoefficientAveragingType  diffCoeffAvgType 
) const
inlineprotected

Evaluate the compositional mole/mass flux across the interface.

◆ momentumCouplingCondition()

template<class MDTraits , class CouplingManager >
template<class ElementFaceVariables >
Scalar Dumux::StokesDarcyCouplingDataImplementationBase< MDTraits, CouplingManager >::momentumCouplingCondition ( const Element< stokesIdx > &  element,
const FVElementGeometry< stokesIdx > &  fvGeometry,
const ElementVolumeVariables< stokesIdx > &  stokesElemVolVars,
const ElementFaceVariables &  stokesElemFaceVars,
const SubControlVolumeFace< stokesIdx > &  scvf 
) const
inlineinherited

Returns the momentum flux across the coupling boundary.

For the normal momentum coupling, the porous medium side of the coupling condition is evaluated, i.e. -[p n]^pm.

◆ pressureAtInterface_()

template<class MDTraits , class CouplingManager >
template<class ElementFaceVariables , class CouplingContext >
Scalar Dumux::StokesDarcyCouplingDataImplementationBase< MDTraits, CouplingManager >::pressureAtInterface_ ( const Element< stokesIdx > &  element,
const SubControlVolumeFace< stokesIdx > &  scvf,
const ElementFaceVariables &  elemFaceVars,
const CouplingContext &  context 
) const
inlineprotectedinherited

Returns the pressure at the interface.

◆ transmissibility_()

template<class MDTraits , class CouplingManager >
template<std::size_t i, std::size_t j>
Scalar Dumux::StokesDarcyCouplingDataImplementationBase< MDTraits, CouplingManager >::transmissibility_ ( Dune::index_constant< i >  domainI,
Dune::index_constant< j >  domainJ,
const Scalar  insideDistance,
const Scalar  outsideDistance,
const Scalar  avgQuantityI,
const Scalar  avgQuantityJ,
const DiffusionCoefficientAveragingType  diffCoeffAvgType 
) const
inlineprotectedinherited

Returns the transmissibility used for either molecular diffusion or thermal conductivity.


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