template<class MDTraits>
class Dumux::FreeFlowMomentumPoreNetworkCouplingManager< MDTraits >
Coupling manager for free-flow momentum and pore-network models.
|
void | init (std::shared_ptr< Problem< freeFlowMomentumIndex > > freeFlowMomentumProblem, std::shared_ptr< Problem< poreNetworkIndex > > porousMediumProblem, GridVariablesTuple &&gridVariables, std::shared_ptr< CouplingMapper > couplingMapper, SolutionVectorStorage &curSol) |
| Methods to be accessed by main. More...
|
|
template<std::size_t i, class Assembler > |
void | bindCouplingContext (Dune::index_constant< i > domainI, const Element< i > &element, const Assembler &assembler) const |
| Methods to be accessed by the assembly. More...
|
|
template<std::size_t i> |
void | bindCouplingContext (Dune::index_constant< i > domainI, const Element< i > &element) const |
| prepares all data and variables that are necessary to evaluate the residual (called from the local assembler) More...
|
|
template<std::size_t i, std::size_t j, class LocalAssemblerI > |
void | updateCouplingContext (Dune::index_constant< i > domainI, const LocalAssemblerI &localAssemblerI, Dune::index_constant< j > domainJ, std::size_t dofIdxGlobalJ, const PrimaryVariables< j > &priVarsJ, int pvIdxJ) |
| Update the coupling context. More...
|
|
const auto & | couplingContext (const FVElementGeometry< freeFlowMomentumIndex > &fvGeometry, const SubControlVolumeFace< freeFlowMomentumIndex > scvf) const |
| Access the coupling context needed for the Stokes domain. More...
|
|
const auto & | couplingContext (const FVElementGeometry< poreNetworkIndex > &fvGeometry, const SubControlVolume< poreNetworkIndex > scv) const |
| Access the coupling context needed for the PNM domain. More...
|
|
const CouplingStencil & | couplingStencil (Dune::index_constant< poreNetworkIndex > domainI, const Element< poreNetworkIndex > &element, Dune::index_constant< freeFlowMomentumIndex > domainJ) const |
| The coupling stencils. More...
|
|
const CouplingStencil & | couplingStencil (Dune::index_constant< freeFlowMomentumIndex > domainI, const Element< freeFlowMomentumIndex > &elementI, const SubControlVolume< freeFlowMomentumIndex > &scvI, Dune::index_constant< poreNetworkIndex > 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<class LocalAssemblerI , std::size_t j> |
decltype(auto) | evalCouplingResidual (Dune::index_constant< freeFlowMomentumIndex > domainI, const LocalAssemblerI &localAssemblerI, const SubControlVolume< freeFlowMomentumIndex > &scvI, Dune::index_constant< j > domainJ, std::size_t dofIdxGlobalJ) const |
| evaluate the coupling residual special interface for fcstaggered methods More...
|
|
bool | isCoupledLateralScvf (Dune::index_constant< freeFlowMomentumIndex > domainI, const SubControlVolumeFace< freeFlowMomentumIndex > &scvf) const |
| Returns whether a given scvf is coupled to the other domain. More...
|
|
bool | isCoupled (Dune::index_constant< freeFlowMomentumIndex > domainI, const SubControlVolumeFace< freeFlowMomentumIndex > &scvf) const |
| Returns whether a given scvf is coupled to the other domain. More...
|
|
bool | isCoupled (Dune::index_constant< poreNetworkIndex > domainI, const SubControlVolume< poreNetworkIndex > &scv) const |
| If the boundary entity is on a coupling boundary. More...
|
|
auto | faceVelocity (const SubControlVolumeFace< freeFlowMomentumIndex > &scvf, std::size_t freeFlowMomentumDofIdx) const |
| Returns the velocity at a given sub control volume face. More...
|
|
|
const CouplingStencilType< i, j > & | couplingStencil (Dune::index_constant< i > domainI, const Element< i > &elementI, 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 element residual of the given element of domain i 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...
|
|
|
void | bindCouplingContext (Dune::index_constant< i > domainI, const Element< i > &elementI, const Assembler &assembler) |
| prepares all data and variables that are necessary to evaluate the residual of the element of domain i More...
|
|
void | updateCoupledVariables (Dune::index_constant< i > domainI, const LocalAssemblerI &localAssemblerI, UpdatableElementVolVars &elemVolVars, UpdatableFluxVarCache &elemFluxVarsCache) |
| update variables of domain i that depend on variables in domain j after the coupling context has been updated More...
|
|
void | updateSolution (const SolutionVector &curSol) |
| Updates the entire solution vector, e.g. before assembly or after grid adaption Overload might want to overload function if the solution vector is stored outside this class to make sure updates don't happen more than once. More...
|
|
decltype(auto) | evalCouplingResidual (Dune::index_constant< i > domainI, const LocalAssemblerI &localAssemblerI, Dune::index_constant< j > domainJ, std::size_t dofIdxGlobalJ) const |
| evaluates the element residual of a coupled element of domain i which depends on the variables at the degree of freedom with index dofIdxGlobalJ of domain j 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...
|
|
decltype(auto) | numericEpsilon (Dune::index_constant< i >, const std::string ¶mGroup) const |
| return the numeric epsilon used for deflecting primary variables of coupled domain i More...
|
|
void | setSubProblems (const std::tuple< std::shared_ptr< SubProblems >... > &problems) |
| set the pointers to the sub problems More...
|
|
void | setSubProblem (std::shared_ptr< SubProblem > problem, Dune::index_constant< i > domainIdx) |
| set a pointer to one of the sub problems More...
|
|
const Problem< i > & | problem (Dune::index_constant< i > domainIdx) const |
| Return a reference to the sub problem. More...
|
|
void | attachSolution (SolutionVectorStorage &curSol) |
| Attach a solution vector stored outside of this class. More...
|
|
SubSolutionVector< i > & | curSol (Dune::index_constant< i > domainIdx) |
| the solution vector of the subproblem More...
|
|
const SubSolutionVector< i > & | curSol (Dune::index_constant< i > domainIdx) const |
| the solution vector of the subproblem More...
|
|