2#ifndef DUNE_PDELAB_CONSTRAINTS_RAVIARTTHOMAS0_HH
3#define DUNE_PDELAB_CONSTRAINTS_RAVIARTTHOMAS0_HH
5#include<dune/typetree/typetree.hh>
7#include<dune/common/exceptions.hh>
8#include<dune/geometry/referenceelements.hh>
9#include<dune/geometry/type.hh>
12#include <dune/typetree/typetree.hh>
19 :
public TypeTree::LeafNode
35 template<
typename P,
typename IG,
typename LFS,
typename T>
36 void boundary (
const P&
p,
const IG&
ig,
const LFS& lfs, T& trafo)
const
38 const int face =
ig.indexInInside();
39 auto face_refelem = referenceElement(
ig.geometry());
40 const auto ip = face_refelem.position(0,0);
41 if (
p.isNeumann(
ig,ip)) {
42 typename T::RowType empty;
43 trafo[lfs.dofIndex(face)]=empty;
const P & p
Definition: constraints.hh:148
const IG & ig
Definition: constraints.hh:149
For backward compatibility – Do not use this!
Definition: adaptivity.hh:28
Neumann Constraints construction, as needed for RT0.
Definition: raviartthomas0.hh:20
@ doProcessor
Definition: raviartthomas0.hh:23
@ doSkeleton
Definition: raviartthomas0.hh:24
void boundary(const P &p, const IG &ig, const LFS &lfs, T &trafo) const
boundary constraints
Definition: raviartthomas0.hh:36
@ doVolume
Definition: raviartthomas0.hh:25
@ doBoundary
Definition: raviartthomas0.hh:22