dune-pdelab 2.7-git
Loading...
Searching...
No Matches
raviartthomas0.hh
Go to the documentation of this file.
1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2#ifndef DUNE_PDELAB_CONSTRAINTS_RAVIARTTHOMAS0_HH
3#define DUNE_PDELAB_CONSTRAINTS_RAVIARTTHOMAS0_HH
4
5#include<dune/typetree/typetree.hh>
6
7#include<dune/common/exceptions.hh>
8#include<dune/geometry/referenceelements.hh>
9#include<dune/geometry/type.hh>
11
12#include <dune/typetree/typetree.hh>
13
14namespace Dune {
15 namespace PDELab {
16
19 : public TypeTree::LeafNode
20 {
21 public:
22 enum{doBoundary=true};
23 enum{doProcessor=false};
24 enum{doSkeleton=false};
25 enum{doVolume=false};
26
27
29
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
37 {
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; // need not interpolate
43 trafo[lfs.dofIndex(face)]=empty;
44 }
45 }
46 };
47
48 }
49}
50
51#endif // DUNE_PDELAB_CONSTRAINTS_RAVIARTTHOMAS0_HH
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
@ doBoundary
Definition raviartthomas0.hh:22
@ doVolume
Definition raviartthomas0.hh:25
@ doProcessor
Definition raviartthomas0.hh:23
void boundary(const P &p, const IG &ig, const LFS &lfs, T &trafo) const
boundary constraints
Definition raviartthomas0.hh:36
@ doSkeleton
Definition raviartthomas0.hh:24