Reference documentation for deal.II version 8.4.2
deal.II
base
config.h
1
// ---------------------------------------------------------------------
2
//
3
// Copyright (C) 2012 - 2016 by the deal.II authors
4
//
5
// This file is part of the deal.II library.
6
//
7
// The deal.II library is free software; you can use it, redistribute
8
// it, and/or modify it under the terms of the GNU Lesser General
9
// Public License as published by the Free Software Foundation; either
10
// version 2.1 of the License, or (at your option) any later version.
11
// The full text of the license can be found in the file LICENSE at
12
// the top level of the deal.II distribution.
13
//
14
// ---------------------------------------------------------------------
15
16
#ifndef dealii__config_h
17
#define dealii__config_h
18
19
20
/***********************************************************************
21
* Information about deal.II:
22
*/
23
24
#define DEAL_II_PACKAGE_NAME "deal.II"
25
26
#define DEAL_II_PACKAGE_VERSION "8.4.2"
27
28
#define DEAL_II_VERSION_MAJOR 8
29
#define DEAL_II_VERSION_MINOR 4
30
#define DEAL_II_VERSION_SUBMINOR 2
31
32
33
/***********************************************************************
34
* Configured deal.II features:
35
*/
36
37
/* #undef DEAL_II_WITH_64BIT_INDICES */
38
#define DEAL_II_WITH_ARPACK
39
#define DEAL_II_WITH_BZIP2
40
#define DEAL_II_WITH_CXX11
41
#define DEAL_II_WITH_CXX14
42
#define DEAL_II_WITH_HDF5
43
#define DEAL_II_WITH_LAPACK
44
/* #undef DEAL_II_WITH_METIS */
45
#define DEAL_II_WITH_MPI
46
#define DEAL_II_WITH_MUPARSER
47
#define DEAL_II_WITH_NETCDF
48
#define DEAL_II_WITH_OPENCASCADE
49
#define DEAL_II_WITH_P4EST
50
#define DEAL_II_WITH_PETSC
51
#define DEAL_II_WITH_SLEPC
52
#define DEAL_II_WITH_THREADS
53
#define DEAL_II_WITH_TRILINOS
54
#define DEAL_II_WITH_UMFPACK
55
#define DEAL_II_WITH_ZLIB
56
57
58
/***********************************************************************
59
* Compiler bugs:
60
*
61
* For documentation see cmake/checks/check_03_compiler_bugs.cmake
62
*/
63
64
/* #undef DEAL_II_TEMPL_SPEC_FRIEND_BUG */
65
/* #undef DEAL_II_MEMBER_ARRAY_SPECIALIZATION_BUG */
66
/* #undef DEAL_II_MEMBER_VAR_SPECIALIZATION_BUG */
67
/* #undef DEAL_II_EXPLICIT_CONSTRUCTOR_BUG */
68
/* #undef DEAL_II_CONST_MEMBER_DEDUCTION_BUG */
69
/* #undef DEAL_II_BOOST_BIND_COMPILER_BUG */
70
/* #undef DEAL_II_BIND_NO_CONST_OP_PARENTHESES */
71
/* #undef DEAL_II_CONSTEXPR_BUG */
72
/* #undef DEAL_II_ICC_SFINAE_BUG */
73
74
75
/***********************************************************************
76
* Compiler features:
77
*
78
* For documentation see cmake/checks/check_01_compiler_features.cmake
79
*/
80
81
#define DEAL_II_COMPILER_USE_VECTOR_ARITHMETICS
82
/* #undef DEAL_II_VECTOR_ITERATOR_IS_POINTER */
83
#define DEAL_II_HAVE_BUILTIN_EXPECT
84
#define DEAL_II_HAVE_VERBOSE_TERMINATE
85
#define DEAL_II_HAVE_GLIBC_STACKTRACE
86
#define DEAL_II_HAVE_LIBSTDCXX_DEMANGLER
87
/* #undef __PRETTY_FUNCTION__ */
88
#define DEAL_II_DEPRECATED __attribute__((deprecated))
89
#define DEAL_II_ALWAYS_INLINE __attribute__((always_inline))
90
#define DEAL_II_COMPILER_HAS_DIAGNOSTIC_PRAGMA
91
92
93
/***********************************************************************
94
* CPU features:
95
*
96
* For documentation see cmake/checks/check_01_cpu_features.cmake
97
*/
98
99
/* #undef DEAL_II_WORDS_BIGENDIAN */
100
#define DEAL_II_COMPILER_VECTORIZATION_LEVEL 0
101
#define DEAL_II_OPENMP_SIMD_PRAGMA _Pragma("omp simd")
102
103
104
/***********************************************************************
105
* Language features:
106
*
107
* For documentation see cmake/checks/check_01_cxx_features.cmake
108
*/
109
110
#define DEAL_II_HAVE_CXX11_IS_TRIVIALLY_COPYABLE
111
/* #undef DEAL_II_HAVE_ISNAN */
112
#define DEAL_II_HAVE_STD_ISNAN
113
/* #undef DEAL_II_HAVE_UNDERSCORE_ISNAN */
114
#define DEAL_II_HAVE_ISFINITE
115
#define DEAL_II_HAVE_FP_EXCEPTIONS
116
/* #undef DEAL_II_HAVE_COMPLEX_OPERATOR_OVERLOADS */
117
118
119
/***********************************************************************
120
* System features:
121
*
122
* For documentation see cmake/checks/check_02_system_features.cmake
123
*/
124
125
#define DEAL_II_HAVE_SYS_RESOURCE_H
126
#define DEAL_II_HAVE_SYS_TIME_H
127
#define DEAL_II_HAVE_SYS_TIMES_H
128
#define DEAL_II_HAVE_SYS_TYPES_H
129
#define DEAL_II_HAVE_UNISTD_H
130
#define DEAL_II_HAVE_GETHOSTNAME
131
#define DEAL_II_HAVE_GETPID
132
#define DEAL_II_HAVE_TIMES
133
#define DEAL_II_HAVE_JN
134
135
/* #undef DEAL_II_MSVC */
136
137
138
/***********************************************************************
139
* Feature configuration
140
*
141
* For documentation see cmake/configure/configure_*.cmake and
142
* cmake/modules/Find*.cmake
143
*/
144
145
/* cmake/modules/FindARPACK.cmake */
146
#define DEAL_II_ARPACK_WITH_PARPACK
147
148
/* cmake/configure/configure_1_threads.cmake */
149
#define DEAL_II_USE_MT_POSIX
150
/* #undef DEAL_II_USE_MT_POSIX_NO_BARRIERS */
151
152
/*
153
* Depending on the use of threads, we will have to make some variables
154
* volatile. We do this here in a very old-fashioned C-style, but still
155
* convenient way.
156
*/
157
#ifdef DEAL_II_WITH_THREADS
158
# define DEAL_VOLATILE volatile
159
#else
160
# define DEAL_VOLATILE
161
#endif
162
163
164
/***********************************************************************
165
* Various macros for version number query and comparison:
166
*
167
* These macros are defined to make testing for specific versions within
168
* the deal.II main code as simple as possible.
169
*/
170
171
/*
172
* deal.II:
173
*/
174
175
#define DEAL_II_VERSION_GTE(major,minor,subminor) \
176
((DEAL_II_VERSION_MAJOR * 10000 + \
177
DEAL_II_VERSION_MINOR * 100 + \
178
DEAL_II_VERSION_SUBMINOR) \
179
>= \
180
(major)*10000 + (minor)*100 + (subminor))
181
182
/*
183
* p4est:
184
*/
185
186
#ifdef DEAL_II_WITH_P4EST
187
# define DEAL_II_P4EST_VERSION_MAJOR 1
188
# define DEAL_II_P4EST_VERSION_MINOR 1
189
# define DEAL_II_P4EST_VERSION_SUBMINOR 0
190
# define DEAL_II_P4EST_VERSION_PATCH 0
191
192
# define DEAL_II_P4EST_VERSION_GTE(major,minor,subminor,patch) \
193
((DEAL_II_P4EST_VERSION_MAJOR * 1000000 + \
194
DEAL_II_P4EST_VERSION_MINOR * 10000 + \
195
DEAL_II_P4EST_VERSION_SUBMINOR * 100 + \
196
DEAL_II_P4EST_VERSION_PATCH) \
197
>= \
198
(major)*1000000 + (minor)*10000 + (subminor)*100 + (patch))
199
#else
200
// p4est up to 0.3.4.1 didn't define P4EST_VERSION_*. since
201
// we didn't supports anything before 0.3.4, we assume 0.3.4
202
// This means that we can't use the new features in 0.3.4.1
203
# define DEAL_II_P4EST_VERSION_GTE(major,minor,subminor,patch) \
204
((0 * 1000000 + \
205
3 * 10000 + \
206
4 * 100 + \
207
0) \
208
>= \
209
(major)*1000000 + (minor)*10000 + (subminor)*100 + (patch))
210
#endif
211
212
/*
213
* PETSc:
214
*
215
* Note: The following definitions will be set in petscconf.h and
216
* petscversion.h, so we don't repeat them here.
217
*
218
* PETSC_VERSION_MAJOR
219
* PETSC_VERSION_MINOR
220
* PETSC_VERSION_SUBMINOR
221
* PETSC_VERSION_PATCH
222
* PETSC_VERSION_RELEASE
223
* PETSC_USE_COMPLEX
224
*/
225
226
#define DEAL_II_PETSC_VERSION_LT(major,minor,subminor) \
227
((PETSC_VERSION_MAJOR * 10000 + \
228
PETSC_VERSION_MINOR * 100 + \
229
PETSC_VERSION_SUBMINOR) \
230
< \
231
(major)*10000 + (minor)*100 + (subminor))
232
233
#define DEAL_II_PETSC_VERSION_GTE(major,minor,subminor) \
234
((PETSC_VERSION_MAJOR * 10000 + \
235
PETSC_VERSION_MINOR * 100 + \
236
PETSC_VERSION_SUBMINOR) \
237
>= \
238
(major)*10000 + (minor)*100 + (subminor))
239
240
/*
241
* Trilinos:
242
*/
243
244
#ifdef DEAL_II_WITH_TRILINOS
245
# define DEAL_II_TRILINOS_VERSION_MAJOR 12
246
# define DEAL_II_TRILINOS_VERSION_MINOR 10
247
# define DEAL_II_TRILINOS_VERSION_SUBMINOR 1
248
249
# define DEAL_II_TRILINOS_VERSION_GTE(major,minor,subminor) \
250
((DEAL_II_TRILINOS_VERSION_MAJOR * 10000 + \
251
DEAL_II_TRILINOS_VERSION_MINOR * 100 + \
252
DEAL_II_TRILINOS_VERSION_SUBMINOR) \
253
>= \
254
(major)*10000 + (minor)*100 + (subminor))
255
#endif
256
257
258
/***********************************************************************
259
* Two macro names that we put at the top and bottom of all deal.II files
260
* and that will be expanded to "namespace dealii {" and "}".
261
*/
262
263
#define DEAL_II_NAMESPACE_OPEN namespace dealii {
264
#define DEAL_II_NAMESPACE_CLOSE }
265
266
267
/***********************************************************************
268
* Two macros to guard external header includes.
269
*
270
* Selectively disable diagnostics set by "-Wextra" (and similar flags) for
271
* GCC and compiler accepting GCC dialects (such as clang).
272
* "diagnostic push" is supported since gcc-4.6 and clang-3.3.
273
*/
274
275
#ifdef DEAL_II_COMPILER_HAS_DIAGNOSTIC_PRAGMA
276
277
# define DEAL_II_DISABLE_EXTRA_DIAGNOSTICS \
278
_Pragma("GCC diagnostic push") \
279
_Pragma("GCC diagnostic ignored \"-Wunknown-pragmas\"") \
280
_Pragma("GCC diagnostic ignored \"-Wpragmas\"") \
281
_Pragma("GCC diagnostic ignored \"-Wextra\"") \
282
_Pragma("GCC diagnostic ignored \"-Woverloaded-virtual\"") \
283
_Pragma("GCC diagnostic ignored \"-Wunused-function\"") \
284
_Pragma("GCC diagnostic ignored \"-Wunused-parameter\"") \
285
_Pragma("GCC diagnostic ignored \"-Wunused-variable\"") \
286
_Pragma("GCC diagnostic ignored \"-Wtype-limits\"") \
287
_Pragma("GCC diagnostic ignored \"-Wtautological-constant-out-of-range-compare\"") \
288
_Pragma("GCC diagnostic ignored \"-Wmissing-field-initializers\"") \
289
_Pragma("GCC diagnostic ignored \"-Winfinite-recursion\"") \
290
_Pragma("GCC diagnostic ignored \"-Wunused-but-set-parameter\"") \
291
_Pragma("GCC diagnostic ignored \"-Wnested-anon-types\"") \
292
_Pragma("GCC diagnostic ignored \"-Wunused-private-field\"") \
293
_Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") \
294
_Pragma("GCC diagnostic ignored \"-Wunused-but-set-variable\"") \
295
_Pragma("GCC diagnostic warning \"-Wpragmas\"")
296
297
# define DEAL_II_ENABLE_EXTRA_DIAGNOSTICS \
298
_Pragma("GCC diagnostic pop")
299
300
#else
301
302
# define DEAL_II_DISABLE_EXTRA_DIAGNOSTICS
303
# define DEAL_II_ENABLE_EXTRA_DIAGNOSTICS
304
305
#endif
306
307
313
#ifndef DEAL_II_WITH_CXX11
314
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
315
#endif
316
317
318
/***********************************************************************
319
* Final inclusions:
320
*/
321
322
/*
323
* Some systems require including mpi.h before stdio.h which happens in
324
* types.h
325
*/
326
#if defined(DEAL_II_WITH_MPI) || defined(DEAL_II_WITH_PETSC)
327
# include <mpi.h>
328
#endif
329
330
#include <deal.II/base/numbers.h>
331
#include <deal.II/base/types.h>
332
333
#endif
334
Generated by
1.8.12