template<class MDTraits>
class Dumux::FreeFlowPorousMediumCouplingManager< MDTraits >
Coupling manager for coupling freeflow and porous medium flow models.
|
template<class GridVarsTuple > |
void | init (std::shared_ptr< Problem< freeFlowMomentumIndex > > freeFlowMomentumProblem, std::shared_ptr< Problem< freeFlowMassIndex > > freeFlowMassProblem, std::shared_ptr< Problem< porousMediumIndex > > porousMediumProblem, GridVarsTuple &&gridVarsTuple, const SolutionVector &curSol) |
|
template<std::size_t i, std::size_t j> |
auto | massCouplingCondition (Dune::index_constant< i > domainI, Dune::index_constant< j > domainJ, const FVElementGeometry< i > &fvGeometry, const typename FVElementGeometry< i >::SubControlVolumeFace &scvf, const ElementVolumeVariables< i > &elemVolVars) const |
| Returns the mass flux across the coupling boundary. More...
|
|
NumEqVector< freeFlowMomentumIndex > | momentumCouplingCondition (Dune::index_constant< freeFlowMomentumIndex > domainI, Dune::index_constant< porousMediumIndex > domainJ, const FVElementGeometry< freeFlowMomentumIndex > &fvGeometry, const typename FVElementGeometry< freeFlowMomentumIndex >::SubControlVolumeFace &scvf, const ElementVolumeVariables< freeFlowMomentumIndex > &elemVolVars) const |
|
auto | darcyPermeability (const FVElementGeometry< freeFlowMomentumIndex > &fvGeometry, const SubControlVolumeFace< freeFlowMomentumIndex > &scvf) const |
| Returns the intrinsic permeability of the coupled Darcy element. More...
|
|
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...
|
|
bool | isCoupledLateralScvf (Dune::index_constant< freeFlowMomentumIndex > domainI, Dune::index_constant< porousMediumIndex > domainJ, const SubControlVolumeFace< freeFlowMomentumIndex > &scvf) const |
| Returns whether a given scvf is coupled to the other domain. 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 |
| 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 More...
|
|
template<std::size_t i, class Entity , std::size_t j> |
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...
|
|
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...
|
|
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 ¶mGroup) 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) |
|