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

#include <dune/assembler/archetypes/localelementmatrixassembler.hh>

Public Types

using GridView = typename RowLocalView::GridView
 
using Element = typename GridView::template Codim< 0 >::Entity
 

Public Member Functions

void bindLocalViews (const RowLocalView &rlv, const ColLocalView &clv) noexcept
 
void bindElement (const Element &e) noexcept
 
template<Concepts::Matrix LocalMatrix>
void assembleElementMatrix (const Element &e, LocalMatrix &m) noexcept
 
template<Concepts::LocalMatrixPattern LocalPattern>
void assembleElementMatrixPattern (const Element &e, LocalPattern &p) noexcept
 

Detailed Description

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

Local assembler of a linear Matrix on an element.

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::LocalElementMatrixAssembler< RowLocalView, ColLocalView >::Element = typename GridView::template Codim<0>::Entity

◆ GridView

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

Member Function Documentation

◆ assembleElementMatrix()

template<Concepts::LocalView RowLocalView, Concepts::LocalView ColLocalView>
template<Concepts::Matrix LocalMatrix>
void Dune::Assembler::Concepts::Archetypes::LocalElementMatrixAssembler< RowLocalView, ColLocalView >::assembleElementMatrix ( const Element &  e,
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
mA matrix to be filled with the local element contributions.
eGrid element the local assembler is already bound to.
Note
The local assembler implementation should allow flexible matrix types as argument.

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

◆ assembleElementMatrixPattern()

template<Concepts::LocalView RowLocalView, Concepts::LocalView ColLocalView>
template<Concepts::LocalMatrixPattern LocalPattern>
void Dune::Assembler::Concepts::Archetypes::LocalElementMatrixAssembler< RowLocalView, ColLocalView >::assembleElementMatrixPattern ( const Element &  e,
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::LocalElementMatrixAssembler< 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.

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

◆ bindLocalViews()

template<Concepts::LocalView RowLocalView, Concepts::LocalView ColLocalView>
void Dune::Assembler::Concepts::Archetypes::LocalElementMatrixAssembler< 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: