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

Coupling manager for coupling freeflow and pore-network models. More...

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

Inheritance diagram for Dumux::FreeFlowPoreNetworkCouplingManager< MDTraits >:

Description

template<class MDTraits>
class Dumux::FreeFlowPoreNetworkCouplingManager< MDTraits >

Coupling manager for coupling freeflow and pore-network models.

Public Types

template<std::size_t i, std::size_t j>
using SubCouplingManager = typename ParentType::template SubCouplingManager< i, j >
 

Public Member Functions

template<class GridVarsTuple >
void init (std::shared_ptr< Problem< freeFlowMomentumIndex > > freeFlowMomentumProblem, std::shared_ptr< Problem< freeFlowMassIndex > > freeFlowMassProblem, std::shared_ptr< Problem< poreNetworkIndex > > poreNetworkProblem, GridVarsTuple &&gridVarsTuple, const SolutionVector &curSol)
 
auto massCouplingCondition (Dune::index_constant< poreNetworkIndex > domainI, Dune::index_constant< freeFlowMassIndex > domainJ, const FVElementGeometry< poreNetworkIndex > &fvGeometry, const typename FVElementGeometry< poreNetworkIndex >::SubControlVolume &scv, const ElementVolumeVariables< poreNetworkIndex > &elemVolVars) const
 Returns the mass flux across the coupling boundary. More...
 
auto massCouplingCondition (Dune::index_constant< freeFlowMassIndex > domainI, Dune::index_constant< poreNetworkIndex > domainJ, const FVElementGeometry< freeFlowMassIndex > &fvGeometry, const typename FVElementGeometry< freeFlowMassIndex >::SubControlVolumeFace &scvf, const ElementVolumeVariables< freeFlowMassIndex > &elemVolVars) const
 Returns the mass flux across the coupling boundary. More...
 
NumEqVector< freeFlowMomentumIndexmomentumCouplingCondition (Dune::index_constant< freeFlowMomentumIndex > domainI, Dune::index_constant< poreNetworkIndex > domainJ, const FVElementGeometry< freeFlowMomentumIndex > &fvGeometry, const typename FVElementGeometry< freeFlowMomentumIndex >::SubControlVolumeFace &scvf, const ElementVolumeVariables< freeFlowMomentumIndex > &elemVolVars) const
 
Scalar coupledPoreInscribedRadius (const FVElementGeometry< freeFlowMomentumIndex > &fvGeometry, const typename FVElementGeometry< freeFlowMomentumIndex >::SubControlVolumeFace &scvf) const
 
auto interfaceThroatVelocity (const FVElementGeometry< freeFlowMomentumIndex > &fvGeometry, const typename FVElementGeometry< freeFlowMomentumIndex >::SubControlVolumeFace &scvf) const
 
Scalar pressure (const Element< freeFlowMomentumIndex > &element, const FVElementGeometry< freeFlowMomentumIndex > &fvGeometry, const SubControlVolumeFace< freeFlowMomentumIndex > &scvf) const
 Returns the pressure at a given sub control volume face. More...
 
Scalar cellPressure (const Element< freeFlowMomentumIndex > &element, const SubControlVolumeFace< freeFlowMomentumIndex > &scvf) const
 Returns the pressure at the center of a sub control volume corresponding to a given sub control volume face. This is used for setting a Dirichlet pressure for the mass model when a fixed pressure for the momentum balance is set at another boundary. Since the the pressure at the given scvf is solution-dependent and thus unknown a priori, we just use the value of the interior cell here. More...
 
Scalar density (const Element< freeFlowMomentumIndex > &element, const FVElementGeometry< freeFlowMomentumIndex > &fvGeometry, const SubControlVolumeFace< freeFlowMomentumIndex > &scvf, const bool considerPreviousTimeStep=false) const
 Returns the density at a given sub control volume face. More...
 
auto insideAndOutsideDensity (const Element< freeFlowMomentumIndex > &element, const FVElementGeometry< freeFlowMomentumIndex > &fvGeometry, const SubControlVolumeFace< freeFlowMomentumIndex > &scvf, const bool considerPreviousTimeStep=false) const
 
Scalar density (const Element< freeFlowMomentumIndex > &element, const SubControlVolume< freeFlowMomentumIndex > &scv, const bool considerPreviousTimeStep=false) const
 Returns the density at a given sub control volume. More...
 
Scalar effectiveViscosity (const Element< freeFlowMomentumIndex > &element, const FVElementGeometry< freeFlowMomentumIndex > &fvGeometry, const SubControlVolumeFace< freeFlowMomentumIndex > &scvf) const
 Returns the pressure at a given sub control volume face. More...
 
auto faceVelocity (const Element< freeFlowMassIndex > &element, const SubControlVolumeFace< freeFlowMassIndex > &scvf) const
 Returns the velocity at a given sub control volume face. More...
 
template<std::size_t i>
const Problem< i > & problem (Dune::index_constant< i > domainI) const
 
template<std::size_t i, std::size_t j>
bool isCoupled (Dune::index_constant< i > domainI, Dune::index_constant< j > domainJ, const SubControlVolumeFace< i > &scvf) const
 
template<std::size_t i, std::size_t j>
bool isCoupled (Dune::index_constant< i > domainI, Dune::index_constant< j > domainJ, const SubControlVolume< i > &scv) const
 If the boundary entity is on a coupling boundary. More...
 
template<std::size_t j>
const auto & couplingStencil (Dune::index_constant< freeFlowMomentumIndex > domainI, const Element< freeFlowMomentumIndex > &elementI, const SubControlVolume< freeFlowMomentumIndex > &scvI, Dune::index_constant< j > domainJ) const
 
auto & subCouplingManager (Dune::index_constant< i > domainI, Dune::index_constant< j > domainJ)
 return the binary sub-coupling manager More...
 
const auto & subCouplingManager (Dune::index_constant< i > domainI, Dune::index_constant< j > domainJ) const
 return the binary sub-coupling manager More...
 
decltype(auto) subApply (Dune::index_constant< i > domainI, Dune::index_constant< j > domainJ, Apply &&apply)
 apply a function to the domainI-domainJ sub coupling manager using its local indices More...
 
decltype(auto) subApply (Dune::index_constant< i > domainI, Dune::index_constant< j > domainJ, const Apply &apply) const
 apply a function to the domainI-domainJ sub coupling manager using its local indices More...
 
decltype(auto) subApply (Dune::index_constant< i > domainI, Apply &&apply)
 apply a function to a sub coupling manager containing this domain More...
 
decltype(auto) subApply (Dune::index_constant< i > domainI, const Apply &apply) const
 apply a function to a sub coupling manager containing this domain More...
 
void updateSolution (const typename MDTraits::SolutionVector &curSol)
 Update the solution vector before assembly. More...
 
void extendJacobianPattern (Dune::index_constant< id > domainI, JacobianPattern &pattern) const
 extend the jacobian pattern of the diagonal block of domain i by those entries that are not already in the uncoupled pattern More...
 
const auto & couplingStencil (Dune::index_constant< i > domainI, const Entity &entity, Dune::index_constant< j > domainJ) const
 Return the coupling element stencil for a given bulk domain element. More...
 
decltype(auto) evalCouplingResidual (Dune::index_constant< i > domainI, const SubControlVolumeFace< i > &scvfI, const LocalAssemblerI &localAssemblerI, Dune::index_constant< j > domainJ, std::size_t dofIdxGlobalJ) const
 
decltype(auto) evalCouplingResidual (Dune::index_constant< i > domainI, const LocalAssemblerI &localAssemblerI, Dune::index_constant< j > domainJ, std::size_t dofIdxGlobalJ) const
 
decltype(auto) evalCouplingResidual (Dune::index_constant< i > domainI, const LocalAssemblerI &localAssemblerI, const SubControlVolume< i > &scvI, Dune::index_constant< j > domainJ, std::size_t dofIdxGlobalJ) const
 
void updateCouplingContext (Dune::index_constant< i > domainI, const LocalAssemblerI &localAssemblerI, Dune::index_constant< j > domainJ, const std::size_t dofIdxGlobalJ, const PrimaryVariables &priVars, int pvIdxJ)
 Update the coupling context for the bulk face residual w.r.t to the lowDim dofs. More...
 
void bindCouplingContext (Dune::index_constant< i > domainI, const Element< i > &element, const Assembler &assembler=0)
 Bind the coupling context for a low dim element TODO remove Assembler. More...
 
decltype(auto) numericEpsilon (Dune::index_constant< i > domainI, const std::string &paramGroup) const
 return the numeric epsilon used for deflecting primary variables of coupled domain i. More...
 
void evalAdditionalDomainDerivatives (Dune::index_constant< i > domainI, const LocalAssemblerI &localAssemblerI, const typename LocalAssemblerI::LocalResidual::ElementResidualVector &origResiduals, JacobianMatrixDiagBlock &A, GridVariables &gridVariables)
 evaluate additional derivatives of the element residual of a domain with respect to dofs in the same domain that are not in the regular stencil (see CouplingManager::extendJacobianPattern) More...
 
void updateCoupledVariables (Dune::index_constant< i > domainI, const LocalAssemblerI &localAssemblerI, UpdatableElementVolVars &elemVolVars, UpdatableFluxVarCache &elemFluxVarsCache)
 

Static Public Attributes

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

Protected Member Functions

SolutionVectors & curSol ()
 
const SolutionVectors & curSol () const
 

Member Typedef Documentation

◆ SubCouplingManager

template<class MDTraits >
template<std::size_t i, std::size_t j>
using Dumux::FreeFlowPoreNetworkCouplingManager< MDTraits >::SubCouplingManager = typename ParentType::template SubCouplingManager<i, j>

Member Function Documentation

◆ bindCouplingContext()

void Dumux::MultiBinaryCouplingManager< MDTraits, FreeFlowPoreNetworkDetail::CouplingMaps , CouplingMgrs >::bindCouplingContext ( Dune::index_constant< i >  domainI,
const Element< i > &  element,
const Assembler &  assembler = 0 
)
inlineinherited

Bind the coupling context for a low dim element TODO remove Assembler.

◆ cellPressure()

template<class MDTraits >
Scalar Dumux::FreeFlowPoreNetworkCouplingManager< MDTraits >::cellPressure ( const Element< freeFlowMomentumIndex > &  element,
const SubControlVolumeFace< freeFlowMomentumIndex > &  scvf 
) const
inline

Returns the pressure at the center of a sub control volume corresponding to a given sub control volume face. This is used for setting a Dirichlet pressure for the mass model when a fixed pressure for the momentum balance is set at another boundary. Since the the pressure at the given scvf is solution-dependent and thus unknown a priori, we just use the value of the interior cell here.

◆ coupledPoreInscribedRadius()

template<class MDTraits >
Scalar Dumux::FreeFlowPoreNetworkCouplingManager< MDTraits >::coupledPoreInscribedRadius ( const FVElementGeometry< freeFlowMomentumIndex > &  fvGeometry,
const typename FVElementGeometry< freeFlowMomentumIndex >::SubControlVolumeFace &  scvf 
) const
inline

◆ couplingStencil() [1/2]

template<class MDTraits >
template<std::size_t j>
const auto & Dumux::FreeFlowPoreNetworkCouplingManager< MDTraits >::couplingStencil ( Dune::index_constant< freeFlowMomentumIndex domainI,
const Element< freeFlowMomentumIndex > &  elementI,
const SubControlVolume< freeFlowMomentumIndex > &  scvI,
Dune::index_constant< j >  domainJ 
) const
inline
      \brief Returns whether a given scvf is coupled to the other domain
     &zwj;/

bool isCoupledLateralScvf(Dune::index_constant<freeFlowMomentumIndex> domainI, Dune::index_constant<poreNetworkIndex> domainJ, const SubControlVolumeFace<freeFlowMomentumIndex>& scvf) const { return this->subApply(domainI, domainJ, [&](const auto& cm, auto&& ii, auto&& jj){ return cm.isCoupledLateralScvf(ii, scvf); }); }

using ParentType::couplingStencil;
/*!
   \brief returns an iterable container of all indices of degrees of freedom of domain j
          that couple with / influence the residual of the given sub-control volume of domain i

   \param domainI the domain index of domain i
   \param elementI the coupled element of domain í
   \param scvI the sub-control volume of domain i
   \param domainJ the domain index of domain j

◆ couplingStencil() [2/2]

const auto & Dumux::MultiBinaryCouplingManager< MDTraits, FreeFlowPoreNetworkDetail::CouplingMaps , CouplingMgrs >::couplingStencil ( Dune::index_constant< i >  domainI,
const Entity &  entity,
Dune::index_constant< j >  domainJ 
) const
inlineinherited

Return the coupling element stencil for a given bulk domain element.

◆ curSol() [1/2]

SolutionVectors & Dumux::MultiBinaryCouplingManager< MDTraits, FreeFlowPoreNetworkDetail::CouplingMaps , CouplingMgrs >::curSol ( )
inlineprotectedinherited

◆ curSol() [2/2]

const SolutionVectors & Dumux::MultiBinaryCouplingManager< MDTraits, FreeFlowPoreNetworkDetail::CouplingMaps , CouplingMgrs >::curSol ( ) const
inlineprotectedinherited

◆ density() [1/2]

template<class MDTraits >
Scalar Dumux::FreeFlowPoreNetworkCouplingManager< MDTraits >::density ( const Element< freeFlowMomentumIndex > &  element,
const FVElementGeometry< freeFlowMomentumIndex > &  fvGeometry,
const SubControlVolumeFace< freeFlowMomentumIndex > &  scvf,
const bool  considerPreviousTimeStep = false 
) const
inline

Returns the density at a given sub control volume face.

◆ density() [2/2]

template<class MDTraits >
Scalar Dumux::FreeFlowPoreNetworkCouplingManager< MDTraits >::density ( const Element< freeFlowMomentumIndex > &  element,
const SubControlVolume< freeFlowMomentumIndex > &  scv,
const bool  considerPreviousTimeStep = false 
) const
inline

Returns the density at a given sub control volume.

◆ effectiveViscosity()

template<class MDTraits >
Scalar Dumux::FreeFlowPoreNetworkCouplingManager< MDTraits >::effectiveViscosity ( const Element< freeFlowMomentumIndex > &  element,
const FVElementGeometry< freeFlowMomentumIndex > &  fvGeometry,
const SubControlVolumeFace< freeFlowMomentumIndex > &  scvf 
) const
inline

Returns the pressure at a given sub control volume face.

◆ evalAdditionalDomainDerivatives()

void Dumux::MultiBinaryCouplingManager< MDTraits, FreeFlowPoreNetworkDetail::CouplingMaps , CouplingMgrs >::evalAdditionalDomainDerivatives ( Dune::index_constant< i >  domainI,
const LocalAssemblerI &  localAssemblerI,
const typename LocalAssemblerI::LocalResidual::ElementResidualVector &  origResiduals,
JacobianMatrixDiagBlock &  A,
GridVariables &  gridVariables 
)
inlineinherited

evaluate additional derivatives of the element residual of a domain with respect to dofs in the same domain that are not in the regular stencil (see CouplingManager::extendJacobianPattern)

Note
Such additional dependencies can arise from the coupling, e.g. if a coupling source term depends on a non-local average of a quantity of the same domain

◆ evalCouplingResidual() [1/3]

decltype(auto) Dumux::MultiBinaryCouplingManager< MDTraits, FreeFlowPoreNetworkDetail::CouplingMaps , CouplingMgrs >::evalCouplingResidual ( Dune::index_constant< i >  domainI,
const LocalAssemblerI &  localAssemblerI,
const SubControlVolume< i > &  scvI,
Dune::index_constant< j >  domainJ,
std::size_t  dofIdxGlobalJ 
) const
inlineinherited

evaluate coupling residual for the derivative low dim DOF with respect to bulk DOF we only need to evaluate the part of the residual that will be influence by the bulk DOF

◆ evalCouplingResidual() [2/3]

decltype(auto) Dumux::MultiBinaryCouplingManager< MDTraits, FreeFlowPoreNetworkDetail::CouplingMaps , CouplingMgrs >::evalCouplingResidual ( Dune::index_constant< i >  domainI,
const LocalAssemblerI &  localAssemblerI,
Dune::index_constant< j >  domainJ,
std::size_t  dofIdxGlobalJ 
) const
inlineinherited

evaluate coupling residual for the derivative low dim DOF with respect to bulk DOF we only need to evaluate the part of the residual that will be influence by the bulk DOF

◆ evalCouplingResidual() [3/3]

decltype(auto) Dumux::MultiBinaryCouplingManager< MDTraits, FreeFlowPoreNetworkDetail::CouplingMaps , CouplingMgrs >::evalCouplingResidual ( Dune::index_constant< i >  domainI,
const SubControlVolumeFace< i > &  scvfI,
const LocalAssemblerI &  localAssemblerI,
Dune::index_constant< j >  domainJ,
std::size_t  dofIdxGlobalJ 
) const
inlineinherited

◆ extendJacobianPattern()

void Dumux::MultiBinaryCouplingManager< MDTraits, FreeFlowPoreNetworkDetail::CouplingMaps , CouplingMgrs >::extendJacobianPattern ( Dune::index_constant< id >  domainI,
JacobianPattern &  pattern 
) const
inlineinherited

extend the jacobian pattern of the diagonal block of domain i by those entries that are not already in the uncoupled pattern

Note
per default we do not add such additional dependencies
Such additional dependencies can arise from the coupling, e.g. if a coupling source term depends on a non-local average of a quantity of the same domain
Warning List:
if you overload this also implement evalAdditionalDomainDerivatives

◆ faceVelocity()

template<class MDTraits >
auto Dumux::FreeFlowPoreNetworkCouplingManager< MDTraits >::faceVelocity ( const Element< freeFlowMassIndex > &  element,
const SubControlVolumeFace< freeFlowMassIndex > &  scvf 
) const
inline

Returns the velocity at a given sub control volume face.

◆ init()

template<class MDTraits >
template<class GridVarsTuple >
void Dumux::FreeFlowPoreNetworkCouplingManager< MDTraits >::init ( std::shared_ptr< Problem< freeFlowMomentumIndex > >  freeFlowMomentumProblem,
std::shared_ptr< Problem< freeFlowMassIndex > >  freeFlowMassProblem,
std::shared_ptr< Problem< poreNetworkIndex > >  poreNetworkProblem,
GridVarsTuple &&  gridVarsTuple,
const SolutionVector &  curSol 
)
inline

◆ insideAndOutsideDensity()

template<class MDTraits >
auto Dumux::FreeFlowPoreNetworkCouplingManager< MDTraits >::insideAndOutsideDensity ( const Element< freeFlowMomentumIndex > &  element,
const FVElementGeometry< freeFlowMomentumIndex > &  fvGeometry,
const SubControlVolumeFace< freeFlowMomentumIndex > &  scvf,
const bool  considerPreviousTimeStep = false 
) const
inline

◆ interfaceThroatVelocity()

template<class MDTraits >
auto Dumux::FreeFlowPoreNetworkCouplingManager< MDTraits >::interfaceThroatVelocity ( const FVElementGeometry< freeFlowMomentumIndex > &  fvGeometry,
const typename FVElementGeometry< freeFlowMomentumIndex >::SubControlVolumeFace &  scvf 
) const
inline

◆ isCoupled() [1/2]

template<class MDTraits >
template<std::size_t i, std::size_t j>
bool Dumux::FreeFlowPoreNetworkCouplingManager< MDTraits >::isCoupled ( Dune::index_constant< i >  domainI,
Dune::index_constant< j >  domainJ,
const SubControlVolume< i > &  scv 
) const
inline

If the boundary entity is on a coupling boundary.

Parameters
domainIthe domain index of domain i for which to compute the flux
domainJthe domain index of domain j for which to compute the flux
scvthe sub control volume

◆ isCoupled() [2/2]

template<class MDTraits >
template<std::size_t i, std::size_t j>
bool Dumux::FreeFlowPoreNetworkCouplingManager< MDTraits >::isCoupled ( Dune::index_constant< i >  domainI,
Dune::index_constant< j >  domainJ,
const SubControlVolumeFace< i > &  scvf 
) const
inline

◆ massCouplingCondition() [1/2]

template<class MDTraits >
auto Dumux::FreeFlowPoreNetworkCouplingManager< MDTraits >::massCouplingCondition ( Dune::index_constant< freeFlowMassIndex domainI,
Dune::index_constant< poreNetworkIndex domainJ,
const FVElementGeometry< freeFlowMassIndex > &  fvGeometry,
const typename FVElementGeometry< freeFlowMassIndex >::SubControlVolumeFace &  scvf,
const ElementVolumeVariables< freeFlowMassIndex > &  elemVolVars 
) const
inline

Returns the mass flux across the coupling boundary.

◆ massCouplingCondition() [2/2]

template<class MDTraits >
auto Dumux::FreeFlowPoreNetworkCouplingManager< MDTraits >::massCouplingCondition ( Dune::index_constant< poreNetworkIndex domainI,
Dune::index_constant< freeFlowMassIndex domainJ,
const FVElementGeometry< poreNetworkIndex > &  fvGeometry,
const typename FVElementGeometry< poreNetworkIndex >::SubControlVolume &  scv,
const ElementVolumeVariables< poreNetworkIndex > &  elemVolVars 
) const
inline

Returns the mass flux across the coupling boundary.

◆ momentumCouplingCondition()

template<class MDTraits >
NumEqVector< freeFlowMomentumIndex > Dumux::FreeFlowPoreNetworkCouplingManager< MDTraits >::momentumCouplingCondition ( Dune::index_constant< freeFlowMomentumIndex domainI,
Dune::index_constant< poreNetworkIndex domainJ,
const FVElementGeometry< freeFlowMomentumIndex > &  fvGeometry,
const typename FVElementGeometry< freeFlowMomentumIndex >::SubControlVolumeFace &  scvf,
const ElementVolumeVariables< freeFlowMomentumIndex > &  elemVolVars 
) const
inline

◆ numericEpsilon()

decltype(auto) Dumux::MultiBinaryCouplingManager< MDTraits, FreeFlowPoreNetworkDetail::CouplingMaps , CouplingMgrs >::numericEpsilon ( Dune::index_constant< i >  domainI,
const std::string &  paramGroup 
) const
inlineinherited

return the numeric epsilon used for deflecting primary variables of coupled domain i.

Note
specialization for free-flow schemes

◆ pressure()

template<class MDTraits >
Scalar Dumux::FreeFlowPoreNetworkCouplingManager< MDTraits >::pressure ( const Element< freeFlowMomentumIndex > &  element,
const FVElementGeometry< freeFlowMomentumIndex > &  fvGeometry,
const SubControlVolumeFace< freeFlowMomentumIndex > &  scvf 
) const
inline

Returns the pressure at a given sub control volume face.

◆ problem()

template<class MDTraits >
template<std::size_t i>
const Problem< i > & Dumux::FreeFlowPoreNetworkCouplingManager< MDTraits >::problem ( Dune::index_constant< i >  domainI) const
inline

◆ subApply() [1/4]

decltype(auto) Dumux::MultiBinaryCouplingManager< MDTraits, FreeFlowPoreNetworkDetail::CouplingMaps , CouplingMgrs >::subApply ( Dune::index_constant< i >  domainI,
Apply &&  apply 
)
inlineinherited

apply a function to a sub coupling manager containing this domain

◆ subApply() [2/4]

decltype(auto) Dumux::MultiBinaryCouplingManager< MDTraits, FreeFlowPoreNetworkDetail::CouplingMaps , CouplingMgrs >::subApply ( Dune::index_constant< i >  domainI,
const Apply &  apply 
) const
inlineinherited

apply a function to a sub coupling manager containing this domain

◆ subApply() [3/4]

decltype(auto) Dumux::MultiBinaryCouplingManager< MDTraits, FreeFlowPoreNetworkDetail::CouplingMaps , CouplingMgrs >::subApply ( Dune::index_constant< i >  domainI,
Dune::index_constant< j >  domainJ,
Apply &&  apply 
)
inlineinherited

apply a function to the domainI-domainJ sub coupling manager using its local indices

◆ subApply() [4/4]

decltype(auto) Dumux::MultiBinaryCouplingManager< MDTraits, FreeFlowPoreNetworkDetail::CouplingMaps , CouplingMgrs >::subApply ( Dune::index_constant< i >  domainI,
Dune::index_constant< j >  domainJ,
const Apply &  apply 
) const
inlineinherited

apply a function to the domainI-domainJ sub coupling manager using its local indices

◆ subCouplingManager() [1/2]

auto & Dumux::MultiBinaryCouplingManager< MDTraits, FreeFlowPoreNetworkDetail::CouplingMaps , CouplingMgrs >::subCouplingManager ( Dune::index_constant< i >  domainI,
Dune::index_constant< j >  domainJ 
)
inlineinherited

return the binary sub-coupling manager

◆ subCouplingManager() [2/2]

const auto & Dumux::MultiBinaryCouplingManager< MDTraits, FreeFlowPoreNetworkDetail::CouplingMaps , CouplingMgrs >::subCouplingManager ( Dune::index_constant< i >  domainI,
Dune::index_constant< j >  domainJ 
) const
inlineinherited

return the binary sub-coupling manager

◆ updateCoupledVariables()

void Dumux::MultiBinaryCouplingManager< MDTraits, FreeFlowPoreNetworkDetail::CouplingMaps , CouplingMgrs >::updateCoupledVariables ( Dune::index_constant< i >  domainI,
const LocalAssemblerI &  localAssemblerI,
UpdatableElementVolVars &  elemVolVars,
UpdatableFluxVarCache &  elemFluxVarsCache 
)
inlineinherited

◆ updateCouplingContext()

void Dumux::MultiBinaryCouplingManager< MDTraits, FreeFlowPoreNetworkDetail::CouplingMaps , CouplingMgrs >::updateCouplingContext ( Dune::index_constant< i >  domainI,
const LocalAssemblerI &  localAssemblerI,
Dune::index_constant< j >  domainJ,
const std::size_t  dofIdxGlobalJ,
const PrimaryVariables &  priVars,
int  pvIdxJ 
)
inlineinherited

Update the coupling context for the bulk face residual w.r.t to the lowDim dofs.

◆ updateSolution()

void Dumux::MultiBinaryCouplingManager< MDTraits, FreeFlowPoreNetworkDetail::CouplingMaps , CouplingMgrs >::updateSolution ( const typename MDTraits::SolutionVector &  curSol)
inlineinherited

Update the solution vector before assembly.

Member Data Documentation

◆ freeFlowMassIndex

template<class MDTraits >
constexpr auto Dumux::FreeFlowPoreNetworkCouplingManager< MDTraits >::freeFlowMassIndex = FreeFlowPoreNetworkDetail::freeFlowMassIndex
staticconstexpr

◆ freeFlowMomentumIndex

template<class MDTraits >
constexpr auto Dumux::FreeFlowPoreNetworkCouplingManager< MDTraits >::freeFlowMomentumIndex = FreeFlowPoreNetworkDetail::freeFlowMomentumIndex
staticconstexpr

◆ poreNetworkIndex

template<class MDTraits >
constexpr auto Dumux::FreeFlowPoreNetworkCouplingManager< MDTraits >::poreNetworkIndex = FreeFlowPoreNetworkDetail::poreNetworkIndex
staticconstexpr

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