dune-assembler 2.12
Loading...
Searching...
No Matches
Dune::Assembler::Concepts::Archetypes::LocalElementVectorAssembler< LocalView > Class Template Reference

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

Public Types

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

Public Member Functions

void bindLocalView (const LocalView &lv) noexcept
 
void bindElement (const Element &e) noexcept
 
template<Concepts::Vector LocalVector>
void assembleElementVector (const Element &e, LocalVector &v) noexcept
 

Detailed Description

template<Concepts::LocalView LocalView>
class Dune::Assembler::Concepts::Archetypes::LocalElementVectorAssembler< LocalView >

Local assembler of a vector on an element.

Template Parameters
LocalViewType of the local view associated to a function space basis.

Requirements:

  • LocalView is a model of Concepts::LocalView,

Member Typedef Documentation

◆ Element

template<Concepts::LocalView LocalView>
using Dune::Assembler::Concepts::Archetypes::LocalElementVectorAssembler< LocalView >::Element = typename GridView::template Codim<0>::Entity

◆ GridView

template<Concepts::LocalView LocalView>
using Dune::Assembler::Concepts::Archetypes::LocalElementVectorAssembler< LocalView >::GridView = typename LocalView::GridView

Member Function Documentation

◆ assembleElementVector()

template<Concepts::LocalView LocalView>
template<Concepts::Vector LocalVector>
void Dune::Assembler::Concepts::Archetypes::LocalElementVectorAssembler< LocalView >::assembleElementVector ( const Element &  e,
LocalVector &  v 
)
noexcept

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

Parameters
vA vector 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 vector types as argument.

[[pre: v.size() == testLocalView.size()]] [[pre: bindElement was called before with current element]]

◆ bindElement()

template<Concepts::LocalView LocalView>
void Dune::Assembler::Concepts::Archetypes::LocalElementVectorAssembler< LocalView >::bindElement ( const Element &  e)
noexcept

When this function is called, the local view is 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: localView.bound()]]

◆ bindLocalView()

template<Concepts::LocalView LocalView>
void Dune::Assembler::Concepts::Archetypes::LocalElementVectorAssembler< LocalView >::bindLocalView ( const LocalView &  lv)
noexcept

This function is called typically before the elements of the grid are traversed. Thus, the local view is not necessarily bound to any element. The lifetime of the passed local view is longer than the lifetime of the local assembler.

Parameters
lvA local views associated to a function space basis

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