|
dune-assembler 2.12
|
#include <dune/assembler/archetypes/localinteriorintersectionmatrixassembler.hh>
Public Types | |
| using | GridView = typename RowLocalView::GridView |
| using | Element = typename GridView::template Codim< 0 >::Entity |
| using | Intersection = typename GridView::Intersection |
Public Member Functions | |
| void | bindLocalViews (const RowLocalView &rlv, const ColLocalView &clv) noexcept |
| void | bindOutsideLocalViews (const RowLocalView &rlv, const ColLocalView &clv) noexcept |
| void | bindElement (const Element &e) noexcept |
| template<Concepts::BlockMatrix LocalMatrices> | |
| void | assembleInteriorIntersectionMatrix (const Intersection &is, LocalMatrices &m) noexcept |
| template<Concepts::BlockLocalMatrixPattern LocalPatterns> | |
| void | assembleInteriorIntersectionMatrixPattern (const Intersection &is, LocalPatterns &p) noexcept |
Detailed Description
class Dune::Assembler::Concepts::Archetypes::LocalInteriorIntersectionMatrixAssembler< RowLocalView, ColLocalView >
Local assembler of a linear Matrix on an interior intersection.
- Template Parameters
-
RowLocalView Type of the local view associated to the test space. ColLocalView Type of the local view associated to the trial space.
Requirements:
RowLocalViewis a model of Concepts::LocalView,ColLocalViewis a model of Concepts::LocalView.
Member Typedef Documentation
◆ Element
| using Dune::Assembler::Concepts::Archetypes::LocalInteriorIntersectionMatrixAssembler< RowLocalView, ColLocalView >::Element = typename GridView::template Codim<0>::Entity |
◆ GridView
| using Dune::Assembler::Concepts::Archetypes::LocalInteriorIntersectionMatrixAssembler< RowLocalView, ColLocalView >::GridView = typename RowLocalView::GridView |
◆ Intersection
| using Dune::Assembler::Concepts::Archetypes::LocalInteriorIntersectionMatrixAssembler< RowLocalView, ColLocalView >::Intersection = typename GridView::Intersection |
Member Function Documentation
◆ assembleInteriorIntersectionMatrix()
|
noexcept |
The matrix m is a 2x2 block-matrix for [ii, io; oi, oo] couplings with i...inside and o...outside. Each submatrixm[i][j]` is assumed to be large enough to be indexable by all corresponding inside/outside local view indices. It is not guaranteed that the submatrices havae the exact size as the local views. It is not allowed to resize the submatrices. The matrix is initialized and the assembler must only add its contributions to the matrix and not replace values.
- Parameters
-
is An intersection to assembler the local matrix on. m A 2x2 block-matrix to be filled with the local element contributions.
- Note
- The local assembler implementation should allow flexible matrix types as argument.
- This function is called for all interior intersections. It is not called for domain or processor boundary intersections unless this assembler is also a boundary intersection assembler.
-
The user might check
is.neighbor() -
The outside element is accessible via
is.outside -
The inside element is equal to the element the assembler was bound to in
bindElement().
[[pre: m.rows() == 2 && m.cols() == 2]] [[pre: m[0][0].rows() == rowLocalView.size() && m[0][0].cols() == colLocalView.size()]] [[pre: m[0][1].rows() == rowLocalView.size() && m[0][1].cols() == outsideColLocalView.size()]] [[pre: m[1][0].rows() == outsideRowLocalView.size() && m[1][0].cols() == colLocalView.size()]] [[pre: m[1][1].rows() == outsideRowLocalView.size() && m[1][1].cols() == outsideColLocalView.size()]] [[pre: bindElement was called before with current element]]
◆ assembleInteriorIntersectionMatrixPattern()
|
noexcept |
Similar as assembleInteriorIntersectionMatrix but the 2x2 block matrix contains local patterns. Each local pattern can be accessed by p[i][j].add(row,col). Additionally, it is possible to set a local pattern to be full, by p[i][j].addAll().
◆ bindElement()
|
noexcept |
When this function is called, the test and trial local views are already bound to this element. The lifetime of the passed element is longer than the lifetime of the local assembler.
- Parameters
-
e Grid element the local assembler can be bound to.
- Note
- The user might check
e.hasBoundaryIntersections()
[[pre: rowLocalView.bound() && colLocalView.bound()]]
◆ bindLocalViews()
|
noexcept |
This function is called typically before the elements of the grid are traversed. Thus, the local views are not necessarily bound to any element. The lifetime of the passed local view is longer than the lifetime of the local assembler.
- Parameters
-
rlv A local view of the test space clv A local view of the trial space
◆ bindOutsideLocalViews()
|
noexcept |
This function is called typically before the elements of the grid are traversed. Thus, the local views are not necessarily bound to any element. The lifetime of the passed local view is longer than the lifetime of the local assembler.
- Parameters
-
rlv A local view of the test space that will be bound to an intersection-outside element. clv A local view of the trial space that will be bound to an intersection-outside element.
The documentation for this class was generated from the following file:
Legal Statements / Impressum | Hosted by TU Dresden & Uni Heidelberg | Generated by
1.9.8