Dune-Fufem 2.11-git
Loading...
Searching...
No Matches
InteriorPenaltyDGAssembler< GridType > Class Template Reference

Local assembler for edge contributions in the Interior Penalty Discontinuous Galerkin (IPDG) method. More...

#include <dune/fufem/assemblers/localassemblers/interiorpenaltydgassembler.hh>

Public Member Functions

 InteriorPenaltyDGAssembler ()
 
 InteriorPenaltyDGAssembler (double penalty, bool dirichlet=true, DGType dgType=DGType::SIPG, double gradientPenalty=0)
 
void setPenalty (double penaltyParameter)
 
void setGradientPenalty (double gradientPenalty)
 
template<class Edge , class BoolMatrix , class TestLocalFE , class AnsatzLocalFE >
void indices (const Edge &it, BoolMatrix &isNonZero, const TestLocalFE &tFE, const AnsatzLocalFE &aFE) const
 
template<class Edge , class BoolMatrix , class TestLocalFE , class AnsatzLocalFE >
void indices (const Edge &it, BoolMatrix &isNonZero, const TestLocalFE &tFEi, const AnsatzLocalFE &aFEi, const TestLocalFE &tFEo, const AnsatzLocalFE &aFEo) const
 
template<class Edge , class LocalMatrix , class TestLocalFE , class AnsatzLocalFE >
void assemble (const Edge &edge, LocalMatrix &localMatrix, const TestLocalFE &tFE, const AnsatzLocalFE &aFE) const
 Assemble penalty term for boundary edges.
 
template<class Edge , class LocalMatrix , class TestLocalFE , class AnsatzLocalFE >
void assemble (const Edge &edge, LocalMatrix &localMatrix, const TestLocalFE &tFEinside, const AnsatzLocalFE &aFEinside, const TestLocalFE &tFEoutside, const AnsatzLocalFE &aFEoutside) const
 Assemble penalty term for interior edges.
 
template<class Edge , class MC , class TestLocalFE , class AnsatzLocalFE >
void assembleBlockwise (const Edge &edge, MC &matrixContainer, const TestLocalFE &tFEinside, const AnsatzLocalFE &aFEinside, const TestLocalFE &tFEoutside, const AnsatzLocalFE &aFEoutside) const
 Assemble penalty term for interior edges.
 

Detailed Description

template<class GridType>
class InteriorPenaltyDGAssembler< GridType >

Local assembler for edge contributions in the Interior Penalty Discontinuous Galerkin (IPDG) method.

This local assembler is meant to work in combination with the global IntersectionOperatorAssembler. Note that mixed boundary conditions are not yet supported.

For reference, see e.g.

‍B. Riviere. Discontinuous Galerkin Methods for Solving Elliptic and Parabalic Equations. SIAM, 2008.

Deprecated:
This class is deprecated and will be removed after 2.11. Use Dune::Fufen::Forms instead.

Constructor & Destructor Documentation

◆ InteriorPenaltyDGAssembler() [1/2]

template<class GridType >
InteriorPenaltyDGAssembler< GridType >::InteriorPenaltyDGAssembler ( )
inline

◆ InteriorPenaltyDGAssembler() [2/2]

template<class GridType >
InteriorPenaltyDGAssembler< GridType >::InteriorPenaltyDGAssembler ( double  penalty,
bool  dirichlet = true,
DGType  dgType = DGType::SIPG,
double  gradientPenalty = 0 
)
inline

Member Function Documentation

◆ assemble() [1/2]

template<class GridType >
template<class Edge , class LocalMatrix , class TestLocalFE , class AnsatzLocalFE >
void InteriorPenaltyDGAssembler< GridType >::assemble ( const Edge &  edge,
LocalMatrix &  localMatrix,
const TestLocalFE &  tFE,
const AnsatzLocalFE &  aFE 
) const
inline

Assemble penalty term for boundary edges.

This method should be called for boundary edges, ie. those who only intersect with a single element.

◆ assemble() [2/2]

template<class GridType >
template<class Edge , class LocalMatrix , class TestLocalFE , class AnsatzLocalFE >
void InteriorPenaltyDGAssembler< GridType >::assemble ( const Edge &  edge,
LocalMatrix &  localMatrix,
const TestLocalFE &  tFEinside,
const AnsatzLocalFE &  aFEinside,
const TestLocalFE &  tFEoutside,
const AnsatzLocalFE &  aFEoutside 
) const
inline

Assemble penalty term for interior edges.

This method should be called for edges, ie. those who intersect two elements.

(Note: 'edge' means a face with codim 1 here, so for 3d we mean a 2d face (usually a triangle).)

Warning
The localMatrix will be organized as in the classis IntersectionOperatorAssembler.

◆ assembleBlockwise()

template<class GridType >
template<class Edge , class MC , class TestLocalFE , class AnsatzLocalFE >
void InteriorPenaltyDGAssembler< GridType >::assembleBlockwise ( const Edge &  edge,
MC &  matrixContainer,
const TestLocalFE &  tFEinside,
const AnsatzLocalFE &  aFEinside,
const TestLocalFE &  tFEoutside,
const AnsatzLocalFE &  aFEoutside 
) const
inline

Assemble penalty term for interior edges.

This method should be called for edges, ie. those who intersect two elements.

(Note: 'edge' means a face with codim 1 here, so for 3d we mean a 2d face (usually a triangle).)

◆ indices() [1/2]

template<class GridType >
template<class Edge , class BoolMatrix , class TestLocalFE , class AnsatzLocalFE >
void InteriorPenaltyDGAssembler< GridType >::indices ( const Edge &  it,
BoolMatrix &  isNonZero,
const TestLocalFE &  tFE,
const AnsatzLocalFE &  aFE 
) const
inline

◆ indices() [2/2]

template<class GridType >
template<class Edge , class BoolMatrix , class TestLocalFE , class AnsatzLocalFE >
void InteriorPenaltyDGAssembler< GridType >::indices ( const Edge &  it,
BoolMatrix &  isNonZero,
const TestLocalFE &  tFEi,
const AnsatzLocalFE &  aFEi,
const TestLocalFE &  tFEo,
const AnsatzLocalFE &  aFEo 
) const
inline

◆ setGradientPenalty()

template<class GridType >
void InteriorPenaltyDGAssembler< GridType >::setGradientPenalty ( double  gradientPenalty)
inline

◆ setPenalty()

template<class GridType >
void InteriorPenaltyDGAssembler< GridType >::setPenalty ( double  penaltyParameter)
inline

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