dune-assembler 2.12
Loading...
Searching...
No Matches
Dune::Assembler::Concepts::Archetypes::LocalBoundaryIntersectionMatrixAssembler< RowLocalView, ColLocalView > Class Template Reference

#include <dune/assembler/archetypes/localboundaryintersectionmatrixassembler.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 bindElement (const Element &e) noexcept
 
template<Concepts::Matrix LocalMatrix>
void assembleBoundaryIntersectionMatrix (const Intersection &is, LocalMatrix &m) noexcept
 
template<Concepts::LocalMatrixPattern LocalPattern>
void assembleBoundaryIntersectionMatrixPattern (const Intersection &is, LocalPattern &p) noexcept
 

Detailed Description

template<Concepts::LocalView RowLocalView, Concepts::LocalView ColLocalView>
class Dune::Assembler::Concepts::Archetypes::LocalBoundaryIntersectionMatrixAssembler< RowLocalView, ColLocalView >

Local assembler of a linear Matrix on a boundary intersection.

Template Parameters
RowLocalViewType of the local view associated to the test space.
ColLocalViewType of the local view associated to the trial space.

Requirements:

  • RowLocalView is a model of Concepts::LocalView,
  • ColLocalView is a model of Concepts::LocalView.

Member Typedef Documentation

◆ Element

template<Concepts::LocalView RowLocalView, Concepts::LocalView ColLocalView>
using Dune::Assembler::Concepts::Archetypes::LocalBoundaryIntersectionMatrixAssembler< RowLocalView, ColLocalView >::Element = typename GridView::template Codim<0>::Entity

◆ GridView

template<Concepts::LocalView RowLocalView, Concepts::LocalView ColLocalView>
using Dune::Assembler::Concepts::Archetypes::LocalBoundaryIntersectionMatrixAssembler< RowLocalView, ColLocalView >::GridView = typename RowLocalView::GridView

◆ Intersection

template<Concepts::LocalView RowLocalView, Concepts::LocalView ColLocalView>
using Dune::Assembler::Concepts::Archetypes::LocalBoundaryIntersectionMatrixAssembler< RowLocalView, ColLocalView >::Intersection = typename GridView::Intersection

Member Function Documentation

◆ assembleBoundaryIntersectionMatrix()

template<Concepts::LocalView RowLocalView, Concepts::LocalView ColLocalView>
template<Concepts::Matrix LocalMatrix>
void Dune::Assembler::Concepts::Archetypes::LocalBoundaryIntersectionMatrixAssembler< RowLocalView, ColLocalView >::assembleBoundaryIntersectionMatrix ( const Intersection &  is,
LocalMatrix &  m 
)
noexcept

The matrix m is assumed to be large enough to be indexable by all local view indices. It is not guaranteed that the matrix has the exact size as the local views. It is not allowed to resize the matrix. The matrix is initialized and the assembler must only add its contributions to the matrix and not replace values.

Parameters
isAn intersection to assembler the local matrix on.
mA 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 domain boundary intersections. It is not called for other inner or processor boundary intersections unless this assembler is also an intersection assembler.
The user might check is.boundary()

[[pre: m.rows() == rowLocalView.size() && m.cols() == colLocalView.size()]] [[pre: bindElement was called before with current element]]

◆ assembleBoundaryIntersectionMatrixPattern()

template<Concepts::LocalView RowLocalView, Concepts::LocalView ColLocalView>
template<Concepts::LocalMatrixPattern LocalPattern>
void Dune::Assembler::Concepts::Archetypes::LocalBoundaryIntersectionMatrixAssembler< RowLocalView, ColLocalView >::assembleBoundaryIntersectionMatrixPattern ( const Intersection &  is,
LocalPattern &  p 
)
noexcept

Similar as assembleElementMatrix but for a local pattern instead of a matrix. The local pattern can be accessed by p.add(row,col). Additionally, it is possible to set a local pattern to be full, by p.addAll().

◆ bindElement()

template<Concepts::LocalView RowLocalView, Concepts::LocalView ColLocalView>
void Dune::Assembler::Concepts::Archetypes::LocalBoundaryIntersectionMatrixAssembler< RowLocalView, ColLocalView >::bindElement ( const Element &  e)
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
eGrid element the local assembler can be bound to.
Note
This function is called for all boundary elements. It is not called for inner elements unless this assembler is also an element or intersection assembler.
The user might check e.hasBoundaryIntersections()

[[pre: rowLocalView.bound() && colLocalView.bound()]]

◆ bindLocalViews()

template<Concepts::LocalView RowLocalView, Concepts::LocalView ColLocalView>
void Dune::Assembler::Concepts::Archetypes::LocalBoundaryIntersectionMatrixAssembler< RowLocalView, ColLocalView >::bindLocalViews ( const RowLocalView &  rlv,
const ColLocalView &  clv 
)
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
rlvA local view of the test space
clvA local view of the trial space

The documentation for this class was generated from the following file: