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 > > bulkGridGeometry, std::shared_ptr< const GridGeometry< lowDimIdx > > lowDimGridGeometry) |
| call this after grid adaption More...
|
|
| EmbeddedCouplingManagerBase (std::shared_ptr< const GridGeometry< bulkIdx > > bulkGridGeometry, std::shared_ptr< const GridGeometry< lowDimIdx > > lowDimGridGeometry) |
| 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< j > & | 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< i > & | 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...
|
|
template<std::size_t i> |
const CouplingStencil< i > & | emptyStencil (Dune::index_constant< i > dom) const |
| Return a reference to an empty stencil. More...
|
|
template<std::size_t i> |
auto & | curSol (Dune::index_constant< i > domainIdx) |
| the solution vector of the subproblem More...
|
|
template<std::size_t i> |
const auto & | curSol (Dune::index_constant< i > domainIdx) const |
| the solution vector of the subproblem More...
|
|
void | computeColorsForAssembly () |
| Compute colors for multithreaded assembly. More...
|
|
template<std::size_t i, class AssembleElementFunc > |
void | assembleMultithreaded (Dune::index_constant< i > domainId, AssembleElementFunc &&assembleElement) const |
| Execute assembly kernel in parallel. More...
|
|
const CouplingStencil< bulkIdx > & | extendedSourceStencil (std::size_t eIdx) const |
| Extended source stencil (for the bulk domain) 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 > |
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...
|
|
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< i > & | couplingStencils (Dune::index_constant< i > dom) |
| Return reference to bulk coupling stencil member of domain i. More...
|
|
template<std::size_t i> |
std::vector< GridIndex< i > > & | vertexIndices (Dune::index_constant< i > dom, GridIndex< i > eIdx) |
| Return a reference to the vertex indices. More...
|
|
template<std::size_t i> |
std::vector< std::vector< GridIndex< i > > > & | 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 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...
|
|