version 3.10.0
Loading...
Searching...
No Matches
Dumux::FreeFlowPoreNetworkCouplingConditionsImplementationBase< MDTraits, CouplingManager > Class Template Reference

A base class which provides some common methods used for free-flow/pore-network coupling.

#include <dumux/multidomain/boundary/freeflowporenetwork/couplingconditions.hh>

Inheritance diagram for Dumux::FreeFlowPoreNetworkCouplingConditionsImplementationBase< MDTraits, CouplingManager >:

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.
 
template<std::size_t i>
static constexpr auto couplingCompIdx (Dune::index_constant< i > id, int coupledCompIdx)
 Returns the corresponding component index needed for coupling.
 
template<class Context>
static NumEqVector< freeFlowMomentumIndexmomentumCouplingCondition (const FVElementGeometry< freeFlowMomentumIndex > &fvGeometry, const SubControlVolumeFace< freeFlowMomentumIndex > &scvf, const ElementVolumeVariables< freeFlowMomentumIndex > &elemVolVars, const Context &context)
 Returns the momentum flux across the coupling boundary.
 
template<class Context>
static VelocityVector interfaceThroatVelocity (const FVElementGeometry< freeFlowMomentumIndex > &fvGeometry, const SubControlVolumeFace< freeFlowMomentumIndex > &scvf, const Context &context)
 
static Scalar advectiveFlux (const Scalar insideQuantity, const Scalar outsideQuantity, const Scalar volumeFlow, bool insideIsUpstream)
 Evaluate an advective flux across the interface and consider upwinding.
 
template<std::size_t i, std::size_t j, bool isNI = enableEnergyBalance, typename std::enable_if_t< isNI, int > = 0>
static Scalar conductiveEnergyFlux (Dune::index_constant< i > domainI, Dune::index_constant< j > domainJ, const SubControlVolumeFace< freeFlowMassIndex > &scvf, const SubControlVolume< i > &scvI, const SubControlVolume< j > &scvJ, const VolumeVariables< i > &volVarsI, const VolumeVariables< j > &volVarsJ)
 Evaluate the conductive energy flux across the interface.
 

Static Public Attributes

static constexpr auto freeFlowMomentumIndex = CouplingManager::freeFlowMomentumIndex
 
static constexpr auto freeFlowMassIndex = CouplingManager::freeFlowMassIndex
 
static constexpr auto poreNetworkIndex = CouplingManager::poreNetworkIndex
 

Static Protected Member Functions

template<class Scv, class Scvf>
static Scalar getDistance_ (const Scv &scv, const Scvf &scvf)
 Returns the distance between an scvf and the corresponding scv center.
 

Member Function Documentation

◆ advectiveFlux()

template<class MDTraits, class CouplingManager>
static Scalar Dumux::FreeFlowPoreNetworkCouplingConditionsImplementationBase< MDTraits, CouplingManager >::advectiveFlux ( const Scalar insideQuantity,
const Scalar outsideQuantity,
const Scalar volumeFlow,
bool insideIsUpstream )
inlinestatic

◆ 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>
static Scalar Dumux::FreeFlowPoreNetworkCouplingConditionsImplementationBase< MDTraits, CouplingManager >::conductiveEnergyFlux ( Dune::index_constant< i > domainI,
Dune::index_constant< j > domainJ,
const SubControlVolumeFace< freeFlowMassIndex > & scvf,
const SubControlVolume< i > & scvI,
const SubControlVolume< j > & scvJ,
const VolumeVariables< i > & volVarsI,
const VolumeVariables< j > & volVarsJ )
inlinestatic

◆ couplingCompIdx()

template<class MDTraits, class CouplingManager>
template<std::size_t i>
static constexpr auto Dumux::FreeFlowPoreNetworkCouplingConditionsImplementationBase< MDTraits, CouplingManager >::couplingCompIdx ( Dune::index_constant< i > id,
int coupledCompIdx )
inlinestaticconstexpr

◆ couplingPhaseIdx()

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

◆ getDistance_()

template<class MDTraits, class CouplingManager>
template<class Scv, class Scvf>
static Scalar Dumux::FreeFlowPoreNetworkCouplingConditionsImplementationBase< MDTraits, CouplingManager >::getDistance_ ( const Scv & scv,
const Scvf & scvf )
inlinestaticprotected

◆ interfaceThroatVelocity()

template<class MDTraits, class CouplingManager>
template<class Context>
static VelocityVector Dumux::FreeFlowPoreNetworkCouplingConditionsImplementationBase< MDTraits, CouplingManager >::interfaceThroatVelocity ( const FVElementGeometry< freeFlowMomentumIndex > & fvGeometry,
const SubControlVolumeFace< freeFlowMomentumIndex > & scvf,
const Context & context )
inlinestatic

◆ momentumCouplingCondition()

template<class MDTraits, class CouplingManager>
template<class Context>
static NumEqVector< freeFlowMomentumIndex > Dumux::FreeFlowPoreNetworkCouplingConditionsImplementationBase< MDTraits, CouplingManager >::momentumCouplingCondition ( const FVElementGeometry< freeFlowMomentumIndex > & fvGeometry,
const SubControlVolumeFace< freeFlowMomentumIndex > & scvf,
const ElementVolumeVariables< freeFlowMomentumIndex > & elemVolVars,
const Context & context )
inlinestatic

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

Member Data Documentation

◆ freeFlowMassIndex

template<class MDTraits, class CouplingManager>
auto Dumux::FreeFlowPoreNetworkCouplingConditionsImplementationBase< MDTraits, CouplingManager >::freeFlowMassIndex = CouplingManager::freeFlowMassIndex
staticconstexpr

◆ freeFlowMomentumIndex

template<class MDTraits, class CouplingManager>
auto Dumux::FreeFlowPoreNetworkCouplingConditionsImplementationBase< MDTraits, CouplingManager >::freeFlowMomentumIndex = CouplingManager::freeFlowMomentumIndex
staticconstexpr

◆ poreNetworkIndex

template<class MDTraits, class CouplingManager>
auto Dumux::FreeFlowPoreNetworkCouplingConditionsImplementationBase< MDTraits, CouplingManager >::poreNetworkIndex = CouplingManager::poreNetworkIndex
staticconstexpr

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