Local assembler for edge contributions in the Interior Penalty Discontinuous Galerkin (IPDG) method.
More...
|
| | 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.
|
| |
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.
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.
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.
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).)