This file is indexed.

/usr/include/deal.II/base/types.h is in libdeal.ii-dev 8.1.0-6ubuntu1.

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
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
// ---------------------------------------------------------------------
// $Id: types.h 31224 2013-10-14 12:19:27Z bangerth $
//
// Copyright (C) 2009 - 2013 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 __deal2__types_h
#define __deal2__types_h


#include <deal.II/base/config.h>
#include <cstddef>
DEAL_II_NAMESPACE_OPEN

/**
 * A namespace in which we declare typedefs for types used in deal.II,
 * as well as special values for these types.
 */
namespace types
{
  /**
   * The type used to denote
   * subdomain_ids of cells.
   *
   * See the @ref GlossSubdomainId
   * "glossary" for more information.
  *
  * There is a special value,
  * numbers::invalid_subdomain_id
  * that is used to indicate an
  * invalid value of this type.
   */
  typedef unsigned int subdomain_id;

  /**
   * @deprecated Old name for the typedef above.
   */
  typedef subdomain_id subdomain_id_t DEAL_II_DEPRECATED;

  /**
  * @deprecated Use numbers::invalid_subdomain_id
   */
  const unsigned int invalid_subdomain_id DEAL_II_DEPRECATED = static_cast<subdomain_id>(-1);

  /**
   * @deprecated Use numbers::artificial_subdomain_id
   */
  const unsigned int artificial_subdomain_id DEAL_II_DEPRECATED = static_cast<subdomain_id>(-2);

#ifdef DEAL_II_USE_LARGE_INDEX_TYPE
  /**
   * The type used for global indices of
   * degrees of freedom. While in sequential
   * computations the 4 billion indices of
   * 32-bit unsigned integers is plenty,
   * parallel computations using the
   * parallel::distributed::Triangulation
   * class can overflow this number and we
   * need a bigger index space.
   *
   * The data type always indicates an
   * unsigned integer type.
   *
   * See the @ref GlobalDoFIndex page for guidance on when this
   * type should or should not be used.
   */
  // TODO: we should check that unsigned long long int
  // has the same size as uint64_t
  typedef unsigned long long int global_dof_index;

  /**
   * An identifier that denotes the MPI type
   * associated with types::global_dof_index.
   */
#  define DEAL_II_DOF_INDEX_MPI_TYPE MPI_UNSIGNED_LONG_LONG
#else
  /**
   * The type used for global indices of
   * degrees of freedom. While in sequential
   * computations the 4 billion indices of
   * 32-bit unsigned integers is plenty,
   * parallel computations using the
   * parallel::distributed::Triangulation
   * class can overflow this number and we
   * need a bigger index space.
   *
   * The data type always indicates an
   * unsigned integer type.
   */
  typedef unsigned int global_dof_index;

  /**
   * An identifier that denotes the MPI type
   * associated with types::global_dof_index.
   */
#  define DEAL_II_DOF_INDEX_MPI_TYPE MPI_UNSIGNED
#endif


  /**
   *  @deprecated Use numbers::invalid_dof_index
   */
  const global_dof_index invalid_dof_index DEAL_II_DEPRECATED = static_cast<global_dof_index>(-1);

  /**
   * The type used to denote boundary indicators associated with every
   * piece of the boundary and, in the case of meshes that describe
   * manifolds in higher dimensions, associated with every cell.
   *
   * There is a special value, numbers::internal_face_boundary_id
   * that is used to indicate an invalid value of this type and that
   * is used as the boundary indicator for faces that are in the interior
   * of the domain and therefore not part of any addressable boundary
   * component.
   *
   * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
   */
  typedef unsigned char boundary_id;

  /**
   * @deprecated Old name for the typedef above.
   */
  typedef boundary_id boundary_id_t DEAL_II_DEPRECATED;

  /**
   * The type used to denote material indicators associated with every
   * cell.
  *
  * There is a special value, numbers::invalid_material_id
  * that is used to indicate an invalid value of this type.
   */
  typedef unsigned char material_id;

  /**
   * @deprecated Old name for the typedef above.
   */
  typedef material_id material_id_t DEAL_II_DEPRECATED;

}

namespace TrilinosWrappers
{
  namespace types
  {
#ifdef DEAL_II_USE_LARGE_INDEX_TYPE
    /**
     * Declare type of integer used in the Epetra package of Trilinos.
     */
    typedef long long int_type;
#else
    /**
     * Declare type of integer used in the Epetra package of Trilinos.
     */
    typedef int int_type;
#endif
  }
}


// this part of the namespace numbers got moved to the bottom types.h file,
// because otherwise we get a circular inclusion of config.h, types.h, and
// numbers.h
namespace numbers
{
  /**
   * Representation of the
   * largest number that
   * can be put into an
   * unsigned integer. This
   * value is widely used
   * throughout the library
   * as a marker for an
   * invalid unsigned
   * integer value, such as
   * an invalid array
   * index, an invalid
   * array size, and the
   * like.
   */
  static const unsigned int
  invalid_unsigned_int = static_cast<unsigned int> (-1);

  /**
   * Representation of the
   * largest number that
   * can be put into a
   * size_type. This value
   * is used throughout
   * the library as a
   * marker for an
   * invalid size_type
   * value, such as
   * an invalid array
   * index, an invalid
   * array size, and the
   * like. Invalid_size_type
   * is equivalent to
   * invalid_dof_index.
   */
  const types::global_dof_index
  invalid_size_type = static_cast<types::global_dof_index> (-1);

  /**
   * An invalid value for indices of degrees
   * of freedom.
   */
  const types::global_dof_index invalid_dof_index = static_cast<types::global_dof_index>(-1);

  /**
   * Invalid material_id which we
   * need in several places as a
   * default value.  We assume that
   * all material_ids lie in the
   * range [0, invalid_material_id).
   */
  const types::material_id invalid_material_id = static_cast<types::material_id>(-1);

  /**
   * Invalid boundary_id which we
   * need in several places as a
   * default value.  We assume that
   * all valid boundary_ids lie in the
   * range [0, invalid_boundary_id).
   *
   * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
   */
  const types::boundary_id invalid_boundary_id = static_cast<types::boundary_id>(-1);

  /**
   * A boundary indicator number that we reserve for
   * internal faces.  We assume that
   * all valid boundary_ids lie in the
   * range [0,
   * internal_face_boundary_id).
   *
   * This is an indicator that is used internally (by the library) to
   * differentiate between faces that lie at the boundary of the domain
   * and faces that lie in the interior of the domain. You should never try
   * to assign this boundary indicator to anything in user code.
   *
   * @see @ref GlossBoundaryIndicator "Glossary entry on boundary indicators"
   */
  const types::boundary_id internal_face_boundary_id = static_cast<types::boundary_id>(-1);

  /**
   * A special id for an invalid
   * subdomain id. This value may not
   * be used as a valid id but is
   * used, for example, for default
   * arguments to indicate a
   * subdomain id that is not to be
   * used.
   *
   * See the @ref GlossSubdomainId
   * "glossary" for more information.
   */
  const types::subdomain_id invalid_subdomain_id = static_cast<types::subdomain_id>(-1);

  /**
   * The subdomain id assigned to a
   * cell whose true subdomain id we
   * don't know, for example because
   * it resides on a different
   * processor on a mesh that is kept
   * distributed on many
   * processors. Such cells are
   * called "artificial".
   *
   * See the glossary entries on @ref
   * GlossSubdomainId "subdomain ids"
   * and @ref GlossArtificialCell
   * "artificial cells" as well as
   * the @ref distributed module for
   * more information.
   */
  const types::subdomain_id artificial_subdomain_id = static_cast<types::subdomain_id>(-2);
}


DEAL_II_NAMESPACE_CLOSE

#endif