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

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

Public Types

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

Public Member Functions

void bindLocalView (const LocalView &lv) noexcept
 
void bindElement (const Element &e) noexcept
 
template<Concepts::Vector LocalVector>
void assembleBoundaryIntersectionVector (const Intersection &is, LocalVector &v) noexcept
 
void bindLocalView (const LocalView &lv) noexcept
 
void bindOutsideLocalView (const LocalView &lv) noexcept
 
void bindElement (const Element &e) noexcept
 
template<Concepts::BlockVector LocalVectors>
void assembleInteriorIntersectionVector (const Intersection &is, LocalVectors &v) noexcept
 

Detailed Description

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

Local assembler of a local vector on a boundary intersection.

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 [1/2]

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

◆ Element [2/2]

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

◆ GridView [1/2]

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

◆ GridView [2/2]

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

◆ Intersection [1/2]

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

◆ Intersection [2/2]

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

Member Function Documentation

◆ assembleBoundaryIntersectionVector()

template<Concepts::LocalView LocalView>
template<Concepts::Vector LocalVector>
void Dune::Assembler::Concepts::Archetypes::LocalBoundaryIntersectionVectorAssembler< LocalView >::assembleBoundaryIntersectionVector ( const Intersection &  is,
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
isAn intersection to assembler the local vector on.
vA vector 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: v.size() == testLocalView.size()]] [[pre: bindElement was called before with current element]]

◆ assembleInteriorIntersectionVector()

template<Concepts::LocalView LocalView>
template<Concepts::BlockVector LocalVectors>
void Dune::Assembler::Concepts::Archetypes::LocalBoundaryIntersectionVectorAssembler< LocalView >::assembleInteriorIntersectionVector ( const Intersection &  is,
LocalVectors &  v 
)
noexcept

The the vector v is a 2-component vector [i, o] with i...inside and o...outside. Each subvectorv[i]` is assumed to be large enough to be indexable by the corresponding inside/outside local view indices. It is not guaranteed that the subvectors have the exact size as the local views. It is not allowed to resize the subvectors. The vector is already initialized and the assembler must only add its contributions to the vector and not replace values.

Parameters
isAn intersection to assembler the local vector on.
vA 2 component block-vector to be filled with the local element contributions.
Note
The local assembler implementation should allow flexible vector 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: v.size() == 2]] [[pre: v[0].size() == localView.size()]] [[pre: v[1].size() == outsideLocalView.size()]] [[pre: bindElement was called before with current element]]

◆ bindElement() [1/2]

template<Concepts::LocalView LocalView>
void Dune::Assembler::Concepts::Archetypes::LocalBoundaryIntersectionVectorAssembler< 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()]]

◆ bindElement() [2/2]

template<Concepts::LocalView LocalView>
void Dune::Assembler::Concepts::Archetypes::LocalBoundaryIntersectionVectorAssembler< 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() [1/2]

template<Concepts::LocalView LocalView>
void Dune::Assembler::Concepts::Archetypes::LocalBoundaryIntersectionVectorAssembler< LocalView >::bindLocalView ( const LocalView &  lv)
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
lvA local views associated to a function space basis

◆ bindLocalView() [2/2]

template<Concepts::LocalView LocalView>
void Dune::Assembler::Concepts::Archetypes::LocalBoundaryIntersectionVectorAssembler< LocalView >::bindLocalView ( const LocalView &  lv)
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
lvA local views associated to a function space basis

◆ bindOutsideLocalView()

template<Concepts::LocalView LocalView>
void Dune::Assembler::Concepts::Archetypes::LocalBoundaryIntersectionVectorAssembler< LocalView >::bindOutsideLocalView ( 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 view that will be bound to an outside element of an intersection.

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