Manages the coupling between bulk elements and lower dimensional elements Point sources on each integration point are computed by an AABB tree.
More...
template<class MDTraits, class Implementation, class PSTraits = DefaultPointSourceTraits<MDTraits>>
class Dumux::EmbeddedCouplingManagerBase< MDTraits, Implementation, PSTraits >
Manages the coupling between bulk elements and lower dimensional elements Point sources on each integration point are computed by an AABB tree.
|
| void | updateAfterGridAdaption (std::shared_ptr< const GridGeometry< bulkIdx > > bulkFvGridGeometry, std::shared_ptr< const GridGeometry< lowDimIdx > > lowDimFvGridGeometry) |
| | call this after grid adaption More...
|
| |
| | EmbeddedCouplingManagerBase (std::shared_ptr< const GridGeometry< bulkIdx > > bulkFvGridGeometry, std::shared_ptr< const GridGeometry< lowDimIdx > > lowDimFvGridGeometry) |
| | Constructor. More...
|
| |
| void | init (std::shared_ptr< Problem< bulkIdx > > bulkProblem, std::shared_ptr< Problem< lowDimIdx > > lowDimProblem, 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, std::size_t j, class LocalAssemblerI > |
| decltype(auto) | evalCouplingResidual (Dune::index_constant< i > domainI, const LocalAssemblerI &localAssemblerI, Dune::index_constant< j > domainJ, std::size_t dofIdxGlobalJ) |
| | 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 | computePointSourceData (std::size_t order=1, bool verbose=false) |
| |
| const PointSourceData & | pointSourceData (std::size_t id) const |
| | Methods to be accessed by the subproblems. More...
|
| |
| template<std::size_t id> |
| const GridView< id > & | gridView (Dune::index_constant< id > domainIdx) const |
| | Return a reference to the bulk problem. More...
|
| |
| PrimaryVariables< bulkIdx > | bulkPriVars (std::size_t id) const |
| | Return data for a bulk point source with the identifier id. More...
|
| |
| PrimaryVariables< lowDimIdx > | lowDimPriVars (std::size_t id) const |
| | Return data for a low dim point source with the identifier id. More...
|
| |
| Scalar | averageDistance (std::size_t id) const |
| | return the average distance to the coupled bulk cell center More...
|
| |
| const std::vector< PointSource< bulkIdx > > & | bulkPointSources () const |
| | Return reference to bulk point sources. More...
|
| |
| const std::vector< PointSource< lowDimIdx > > & | lowDimPointSources () const |
| | Return reference to low dim point sources. More...
|
| |
| template<std::size_t i> |
| const std::vector< PointSource< i > > & | pointSources (Dune::index_constant< i > dom) const |
| | Return the point source if domain i. More...
|
| |
| template<std::size_t i> |
| const CouplingStencils & | couplingStencils (Dune::index_constant< i > dom) const |
| | Return reference to bulk coupling stencil member of domain i. More...
|
| |
| const std::vector< PointSourceData > & | pointSourceData () const |
| | Return reference to point source data vector member. More...
|
| |
| const CouplingStencil & | emptyStencil () const |
| | Return a reference to an empty stencil. 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...
|
| |
|
| template<std::size_t id> |
| void | preComputeVertexIndices (Dune::index_constant< id > domainIdx) |
| | computes the vertex indices per element for the box method More...
|
| |
| template<std::size_t i, class FVGG , class Geometry , class ShapeValues , typename std::enable_if_t< FVGG::discMethod==DiscretizationMethod::box, int > = 0> |
| void | getShapeValues (Dune::index_constant< i > domainI, const FVGG &gridGeometry, const Geometry &geo, const GlobalPosition &globalPos, ShapeValues &shapeValues) |
| | compute the shape function for a given point and geometry More...
|
| |
| template<std::size_t i, class FVGG , class Geometry , class ShapeValues , typename std::enable_if_t< FVGG::discMethod !=DiscretizationMethod::box, int > = 0> |
| void | getShapeValues (Dune::index_constant< i > domainI, const FVGG &gridGeometry, const Geometry &geo, const GlobalPosition &globalPos, ShapeValues &shapeValues) |
| | compute the shape function for a given point and geometry More...
|
| |
| void | clear () |
| | Clear all internal data members. More...
|
| |
| void | glueGrids () |
| | compute the intersections between the two grids More...
|
| |
| template<class Geometry , class GlobalPosition > |
| Scalar | computeDistance (const Geometry &geometry, const GlobalPosition &p) |
| |
| std::vector< PointSourceData > & | pointSourceData () |
| | Return reference to point source data vector member. More...
|
| |
| std::vector< Scalar > & | averageDistanceToBulkCell () |
| | Return reference to average distances to bulk cell. More...
|
| |
| template<std::size_t i> |
| std::vector< PointSource< i > > & | pointSources (Dune::index_constant< i > dom) |
| | Return the point source if domain i. More...
|
| |
| template<std::size_t i> |
| CouplingStencils & | couplingStencils (Dune::index_constant< i > dom) |
| | Return reference to bulk coupling stencil member of domain i. More...
|
| |
| template<std::size_t i> |
| std::vector< std::size_t > & | vertexIndices (Dune::index_constant< i > dom, std::size_t eIdx) |
| | Return a reference to the vertex indices. More...
|
| |
| template<std::size_t i> |
| std::vector< std::vector< std::size_t > > & | vertexIndices (Dune::index_constant< i > dom) |
| | Return a reference to the vertex indices container. More...
|
| |
| const GlueType & | glue () const |
| |
| Implementation & | asImp_ () |
| | Returns the implementation of the problem (i.e. static polymorphism) More...
|
| |
| const Implementation & | asImp_ () const |
| | Returns the implementation of the problem (i.e. static polymorphism) 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 , class Implementation , class PSTraits = DefaultPointSourceTraits<MDTraits>>
template<std::size_t i, std::size_t j>
| const CouplingStencil & Dumux::EmbeddedCouplingManagerBase< MDTraits, Implementation, PSTraits >::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 |
- Note
- The element residual definition depends on the discretization scheme of domain i box: a container of the residuals of all sub control volumes cc : the residual of the (sub) control volume fem: the residual of the element
-
This function has to be implemented by all coupling managers for all combinations of i and j
template<class MDTraits , class Implementation , class PSTraits = DefaultPointSourceTraits<MDTraits>>
template<std::size_t i, std::size_t j, class LocalAssemblerI >
| decltype(auto) Dumux::EmbeddedCouplingManagerBase< MDTraits, Implementation, PSTraits >::evalCouplingResidual |
( |
Dune::index_constant< i > |
domainI, |
|
|
const LocalAssemblerI & |
localAssemblerI, |
|
|
Dune::index_constant< j > |
domainJ, |
|
|
std::size_t |
dofIdxGlobalJ |
|
) |
| |
|
inline |
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
- Parameters
-
| domainI | the domain index of domain i |
| localAssemblerI | the local assembler assembling the element residual of an element of domain i |
| domainJ | the domain index of domain j |
| dofIdxGlobalJ | the index of the degree of freedom of domain j which has an influence on the element residual of domain i |
- Note
- we only need to evaluate the source contribution to the residual here as the coupling term is the source
- Returns
- the element residual