This file is indexed.

/usr/include/dune/localfunctions/lagrange/q2/q2localcoefficients.hh is in libdune-localfunctions-dev 2.3.1-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
// vi: set et ts=4 sw=2 sts=2:
#ifndef DUNE_Q2_LOCALCOEFFICIENTS_HH
#define DUNE_Q2_LOCALCOEFFICIENTS_HH

#include <cstddef>
#include <vector>

#include <dune/common/exceptions.hh>

#include <dune/localfunctions/common/localkey.hh>

namespace Dune
{

  /**@ingroup LocalLayoutImplementation
           \brief Layout map for Q2 elements

      \tparam dim Dimension of the reference element

           \nosubgrouping
       \implements Dune::LocalCoefficientsVirtualImp
   */
  template <int dim>
  class Q2LocalCoefficients
  {
  public:
    //! \brief Standard constructor
    Q2LocalCoefficients () : li(size())
    {
      switch (dim) {

      case 1 : {
        li[0] = LocalKey(0,1,0);       // left vertex
        li[1] = LocalKey(0,0,0);       // element
        li[2] = LocalKey(1,1,0);       // right vertex
        break;
      }

      case 2 : {

        li[0] = LocalKey(0,2,0);
        li[1] = LocalKey(2,1,0);
        li[2] = LocalKey(1,2,0);
        li[3] = LocalKey(0,1,0);
        li[4] = LocalKey(0,0,0);
        li[5] = LocalKey(1,1,0);
        li[6] = LocalKey(2,2,0);
        li[7] = LocalKey(3,1,0);
        li[8] = LocalKey(3,2,0);

        break;
      }

      case 3 : {

        li[ 0] = LocalKey(0,3,0);
        li[ 1] = LocalKey(6,2,0);
        li[ 2] = LocalKey(1,3,0);
        li[ 3] = LocalKey(4,2,0);
        li[ 4] = LocalKey(4,1,0);
        li[ 5] = LocalKey(5,2,0);
        li[ 6] = LocalKey(2,3,0);
        li[ 7] = LocalKey(7,2,0);
        li[ 8] = LocalKey(3,3,0);

        li[ 9] = LocalKey(0,2,0);
        li[10] = LocalKey(2,1,0);
        li[11] = LocalKey(1,2,0);
        li[12] = LocalKey(0,1,0);
        li[13] = LocalKey(0,0,0);
        li[14] = LocalKey(1,1,0);
        li[15] = LocalKey(2,2,0);
        li[16] = LocalKey(3,1,0);
        li[17] = LocalKey(3,2,0);

        li[18] = LocalKey(4,3,0);
        li[19] = LocalKey(10,2,0);
        li[20] = LocalKey(5,3,0);
        li[21] = LocalKey(8,2,0);
        li[22] = LocalKey(5,1,0);
        li[23] = LocalKey(9,2,0);
        li[24] = LocalKey(6,3,0);
        li[25] = LocalKey(11,2,0);
        li[26] = LocalKey(7,3,0);

        break;
      }
      default :
        DUNE_THROW(NotImplemented, "Q2LocalCoefficients for dim==" << dim);
      }
    }

    //! number of coefficients
    std::size_t size () const
    {
      int size = 1;
      for (int i=0; i<dim; i++)
        size *= 3;
      return size;
    }

    //! get i'th index
    const LocalKey& localKey (std::size_t i) const
    {
      return li[i];
    }

  private:
    std::vector<LocalKey> li;
  };

}

#endif