dune-pdelab  2.7-git
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 
14 namespace 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
@ 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