This file is indexed.

/usr/include/deal.II/meshworker/local_integrator.h is in libdeal.ii-dev 8.4.2-2+b1.

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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
// ---------------------------------------------------------------------
//
// Copyright (C) 2006 - 2015 by the deal.II authors
//
// This file is part of the deal.II library.
//
// The deal.II library is free software; you can use it, redistribute
// it, and/or modify it under the terms of the GNU Lesser General
// Public License as published by the Free Software Foundation; either
// version 2.1 of the License, or (at your option) any later version.
// The full text of the license can be found in the file LICENSE at
// the top level of the deal.II distribution.
//
// ---------------------------------------------------------------------


#ifndef dealii__mesh_worker_local_integrator_h
#define dealii__mesh_worker_local_integrator_h

#include <deal.II/base/config.h>
#include <deal.II/base/subscriptor.h>
#include <deal.II/base/std_cxx11/function.h>

#include <vector>
#include <string>

DEAL_II_NAMESPACE_OPEN

namespace MeshWorker
{
  template <int dim, int spacedim, typename number> class DoFInfo;
  template <int dim, int spacedim> class IntegrationInfo;

  /**
   * A local integrator object, which can be used to simplify the call of
   * loop(). Instead of providing the three local integration functions
   * separately, we bundle them as virtual functions in this class.
   *
   * Additionally, since we cannot have a virtual null function, we provide
   * flags, which allow us to indicate, whether we want to integrate on
   * boundary and interior faces. These flags are true by default, but can be
   * modified by applications to speed up the loop.
   *
   * If a function is not overloaded in a derived class, but its usage flag is
   * true, the function will cause an exception ExcPureFunction.
   *
   * @ingroup MeshWorker
   * @author Guido Kanschat
   * @date 2012
   */
  template <int dim, int spacedim=dim, typename number=double>
  class LocalIntegrator : public Subscriptor
  {
  public:
    /**
     * The constructor setting default values, namely all integration flags to
     * true.
     */
    LocalIntegrator();

    /**
     * The constructor setting integration flags to specified values.
     */
    LocalIntegrator(bool use_cell, bool use_boundary, bool use_face);

    /**
     * The empty virtual destructor.
     */
    ~LocalIntegrator();

    /**
     * Virtual function for integrating on cells. Throws exception
     * PureFunctionCalled if not overloaded by a derived class.
     */
    virtual void cell(DoFInfo<dim, spacedim, number> &dinfo,
                      IntegrationInfo<dim, spacedim> &info) const;
    /**
     * Virtual function for integrating on boundary faces. Throws exception
     * PureFunctionCalled if not overloaded by a derived class.
     */
    virtual void boundary(DoFInfo<dim, spacedim, number> &dinfo,
                          IntegrationInfo<dim, spacedim> &info) const;
    /**
     * Virtual function for integrating on interior faces. Throws exception
     * PureFunctionCalled if not overloaded by a derived class.
     */
    virtual void face(DoFInfo<dim, spacedim, number> &dinfo1,
                      DoFInfo<dim, spacedim, number> &dinfo2,
                      IntegrationInfo<dim, spacedim> &info1,
                      IntegrationInfo<dim, spacedim> &info2) const;

    /**
     * The flag indicating whether the cell integrator cell() is to be used in
     * the loop. Defaults to <tt>true</tt>.
     */
    bool use_cell;

    /**
     * The flag indicating whether the boundary integrator boundary() is to be
     * used in the loop. Defaults to <tt>true</tt>.
     */
    bool use_boundary;

    /**
     * The flag indicating whether the interior face integrator face() is to
     * be used in the loop. Defaults to <tt>true</tt>.
     */
    bool use_face;

    /**
     * The names of the input vectors. If this vector is nonempty, it can be
     * used by application programs to automatically select and verify the
     * input vectors used for integration.
     *
     * @note This variable is currently not used by the library, but it is
     * provided to help develop application programs.
     */
    std::vector<std::string> input_vector_names;

    /**
     * The names of the results produced. If this vector is nonempty, it can
     * be used by application programs to automatically assign names to output
     * values and/or verify the names of vectors.
     *
     * @note This variable is currently not used by the library, but it is
     * provided to help develop application programs.
     */
    std::vector<std::string> output_names;

    /**
     * This error is thrown if one of the virtual functions cell(),
     * boundary(), or face() is called without being overloaded in a derived
     * class. Consider setting #use_cell, #use_boundary, and #use_face to
     * false, respectively.
     *
     * @ingroup Exceptions
     */
    DeclException0(ExcPureFunction);
  };
}



DEAL_II_NAMESPACE_CLOSE

#endif