template<class MDTraits>
class Dumux::DarcyDarcyBoundaryCouplingManager< MDTraits >
Coupling manager for equal-dimension boundary coupling of darcy models.
|
void | init (std::shared_ptr< Problem< domainIdx< 0 >()> > problem0, std::shared_ptr< Problem< domainIdx< 1 >()> > problem1, const SolutionVector &curSol) |
| Methods to be accessed by main. More...
|
|
template<std::size_t i, std::size_t j> |
const CouplingStencil & | couplingStencil (Dune::index_constant< i > domainI, const Element< i > &element, Dune::index_constant< j > domainJ) const |
| Methods to be accessed by the assembly. More...
|
|
template<std::size_t i> |
bool | isCoupled (Dune::index_constant< i > domainI, const SubControlVolumeFace< i > &scvf) const |
| If the boundary entity is on a coupling boundary. More...
|
|
template<std::size_t i> |
Scalar | advectiveFluxCoupling (Dune::index_constant< i > domainI, const Element< i > &element, const FVElementGeometry< i > &fvGeometry, const ElementVolumeVariables< i > &elemVolVars, const SubControlVolumeFace< i > &scvf, int phaseIdx=0) const |
| Evaluate the boundary conditions for a coupled Neumann boundary segment. More...
|
|
template<std::size_t i> |
VolumeVariables< i > | volVars (Dune::index_constant< i > domainI, const Element< i > &element, const SubControlVolume< i > &scv) const |
| Return the volume variables of domain i for a given element and scv. 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 | updateCouplingContext (Dune::index_constant< i > domainI, const LocalAssemblerI &localAssemblerI, Dune::index_constant< j > domainJ, std::size_t dofIdxGlobalJ, const PrimaryVariables< j > &priVarsJ, int pvIdxJ) |
| updates all data and variables that are necessary to evaluate the residual of the element of domain i this is called whenever one of the primary variables that the element residual depends on changes in domain j 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. 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...
|
|
SolutionVector & | curSol () |
| the solution vector of the coupled problem More...
|
|
const SolutionVector & | curSol () const |
| the solution vector of the coupled problem More...
|
|
template<class MDTraits >
template<std::size_t i>
Scalar Dumux::DarcyDarcyBoundaryCouplingManager< MDTraits >::advectiveFluxCoupling |
( |
Dune::index_constant< i > |
domainI, |
|
|
const Element< i > & |
element, |
|
|
const FVElementGeometry< i > & |
fvGeometry, |
|
|
const ElementVolumeVariables< i > & |
elemVolVars, |
|
|
const SubControlVolumeFace< i > & |
scvf, |
|
|
int |
phaseIdx = 0 |
|
) |
| const |
|
inline |
Evaluate the boundary conditions for a coupled Neumann boundary segment.
This is the method for the case where the Neumann condition is potentially solution dependent
- Parameters
-
domainI | the domain index for which to compute the flux |
element | The finite element |
fvGeometry | The finite-volume geometry |
elemVolVars | All volume variables for the element |
scvf | The sub control volume face |
phaseIdx | the phase for which to compute the flux |
Negative values mean influx. E.g. for the mass balance that would the mass flux in \( [ kg / (m^2 \cdot s)] \).
compute alpha := n^T*K*g
template<class MDTraits >
template<std::size_t i, std::size_t j>
const CouplingStencil & Dumux::DarcyDarcyBoundaryCouplingManager< MDTraits >::couplingStencil |
( |
Dune::index_constant< i > |
domainI, |
|
|
const Element< i > & |
element, |
|
|
Dune::index_constant< j > |
domainJ |
|
) |
| const |
|
inline |
Methods to be accessed by the assembly.
returns an iteratable 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
- Parameters
-
domainI | the domain index of domain i |
element | the coupled element of domain í |
domainJ | the domain index of domain j |