/usr/include/deal.II/base/types.h is in libdeal.ii-dev 8.1.0-4.
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
|