Reference documentation for deal.II version 9.1.0-pre
Main Page
Tutorial
Code gallery
Modules
Namespaces
Classes
Related Pages
Files
dealii.org
File List
File Members
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.md at
12
// the top level directory of deal.II.
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 "9.1.0-pre"
27
28
#define DEAL_II_VERSION_MAJOR 9
29
#define DEAL_II_VERSION_MINOR 1
30
#define DEAL_II_VERSION_SUBMINOR 0
31
32
33
/***********************************************************************
34
* Configured deal.II features:
35
*/
36
37
#define DEAL_II_WITH_64BIT_INDICES
38
/* #undef DEAL_II_WITH_ADOLC */
39
#define DEAL_II_WITH_ARPACK
40
#define DEAL_II_WITH_ASSIMP
41
/* #undef DEAL_II_WITH_CUDA */
42
#define DEAL_II_WITH_CXX14
43
/* #undef DEAL_II_WITH_CXX17 */
44
#define DEAL_II_WITH_GSL
45
#define DEAL_II_WITH_GMSH
46
/* #undef DEAL_II_WITH_HDF5 */
47
#define DEAL_II_WITH_LAPACK
48
/* #undef LAPACK_WITH_64BIT_BLAS_INDICES */
49
#define DEAL_II_WITH_METIS
50
#define DEAL_II_WITH_MPI
51
#define DEAL_II_WITH_MUPARSER
52
#define DEAL_II_WITH_NANOFLANN
53
#define DEAL_II_WITH_NETCDF
54
#define DEAL_II_WITH_OPENCASCADE
55
#define DEAL_II_WITH_P4EST
56
#define DEAL_II_WITH_PETSC
57
/* #undef DEAL_II_WITH_SCALAPACK */
58
#define DEAL_II_WITH_SLEPC
59
#define DEAL_II_WITH_SUNDIALS
60
#define DEAL_II_WITH_THREADS
61
#define DEAL_II_WITH_TRILINOS
62
#define DEAL_II_WITH_UMFPACK
63
#define DEAL_II_WITH_ZLIB
64
65
// defined for backwards compatibility with pre-C++11
66
#define DEAL_II_WITH_CXX11
67
#define DEAL_II_NOEXCEPT noexcept
68
69
/***********************************************************************
70
* Compiler bugs:
71
*
72
* For documentation see cmake/checks/check_03_compiler_bugs.cmake
73
*/
74
75
/* #undef DEAL_II_TEMPL_SPEC_FRIEND_BUG */
76
/* #undef DEAL_II_MEMBER_ARRAY_SPECIALIZATION_BUG */
77
/* #undef DEAL_II_CONST_MEMBER_DEDUCTION_BUG */
78
/* #undef DEAL_II_BIND_NO_CONST_OP_PARENTHESES */
79
/* #undef DEAL_II_CONSTEXPR_BUG */
80
81
82
/***********************************************************************
83
* Compiler features:
84
*
85
* For documentation see cmake/checks/check_01_compiler_features.cmake
86
*/
87
88
#define DEAL_II_COMPILER_USE_VECTOR_ARITHMETICS
89
/* #undef DEAL_II_VECTOR_ITERATOR_IS_POINTER */
90
#define DEAL_II_HAVE_BUILTIN_EXPECT
91
#define DEAL_II_HAVE_GLIBC_STACKTRACE
92
#define DEAL_II_HAVE_LIBSTDCXX_DEMANGLER
93
/* #undef __PRETTY_FUNCTION__ */
94
#define DEAL_II_DEPRECATED [[deprecated]]
95
#define DEAL_II_ALWAYS_INLINE __attribute__((always_inline))
96
#define DEAL_II_RESTRICT __restrict
97
#define DEAL_II_COMPILER_HAS_DIAGNOSTIC_PRAGMA
98
99
100
/***********************************************************************
101
* CPU features:
102
*
103
* For documentation see cmake/checks/check_01_cpu_features.cmake
104
*/
105
106
/* #undef DEAL_II_WORDS_BIGENDIAN */
107
#define DEAL_II_COMPILER_VECTORIZATION_LEVEL 1
108
#define DEAL_II_OPENMP_SIMD_PRAGMA _Pragma("omp simd")
109
110
111
/***********************************************************************
112
* Language features:
113
*
114
* For documentation see cmake/checks/check_01_cxx_features.cmake
115
*/
116
117
#define DEAL_II_HAVE_CXX11_IS_TRIVIALLY_COPYABLE
118
#define DEAL_II_HAVE_FP_EXCEPTIONS
119
/* #undef DEAL_II_HAVE_COMPLEX_OPERATOR_OVERLOADS */
120
#define DEAL_II_FALLTHROUGH
121
122
123
/***********************************************************************
124
* System features:
125
*
126
* For documentation see cmake/checks/check_02_system_features.cmake
127
*/
128
129
#define DEAL_II_HAVE_SYS_RESOURCE_H
130
#define DEAL_II_HAVE_UNISTD_H
131
#define DEAL_II_HAVE_GETHOSTNAME
132
#define DEAL_II_HAVE_GETPID
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/FindADOLC.cmake */
146
/* #undef DEAL_II_ADOLC_WITH_ATRIG_ERF */
147
/* #undef DEAL_II_ADOLC_WITH_ADVANCED_BRANCHING */
148
/* #undef DEAL_II_ADOLC_WITH_TAPELESS_REFCOUNTING */
149
150
/* cmake/modules/FindARPACK.cmake */
151
#define DEAL_II_ARPACK_WITH_PARPACK
152
153
/* cmake/modules/FindPETSC.cmake */
154
#define DEAL_II_PETSC_WITH_HYPRE
155
/* #undef DEAL_II_PETSC_WITH_MUMPS */
156
157
/* cmake/modules/FindSUNDIALS.cmake */
158
#define DEAL_II_SUNDIALS_WITH_IDAS
159
160
/* cmake/configure/configure_1_threads.cmake */
161
#define DEAL_II_USE_MT_POSIX
162
/* #undef DEAL_II_USE_MT_POSIX_NO_BARRIERS */
163
164
/* cmake/configure/configure_2_trilinos.cmake */
165
/* #undef DEAL_II_TRILINOS_CXX_SUPPORTS_SACADO_COMPLEX_RAD */
166
/* #undef DEAL_II_TRILINOS_WITH_ROL */
167
#define DEAL_II_TRILINOS_WITH_SACADO
168
#define DEAL_II_TRILINOS_WITH_ZOLTAN
169
170
171
/***********************************************************************
172
* Various macros for version number query and comparison:
173
*
174
* These macros are defined to make testing for specific versions within
175
* the deal.II main code as simple as possible.
176
*/
177
178
/*
179
* deal.II:
180
*/
181
182
#define DEAL_II_VERSION_GTE(major,minor,subminor) \
183
((DEAL_II_VERSION_MAJOR * 10000 + \
184
DEAL_II_VERSION_MINOR * 100 + \
185
DEAL_II_VERSION_SUBMINOR) \
186
>= \
187
(major)*10000 + (minor)*100 + (subminor))
188
189
190
/*
191
* Gmsh:
192
*/
193
#ifdef DEAL_II_WITH_GMSH
194
# define DEAL_II_GMSH_EXECUTABLE_PATH "/export/home/darndt/bin/gmsh"
195
#endif
196
197
/*
198
* p4est:
199
*/
200
201
#ifdef DEAL_II_WITH_P4EST
202
# define DEAL_II_P4EST_VERSION_MAJOR 2
203
# define DEAL_II_P4EST_VERSION_MINOR 0
204
# define DEAL_II_P4EST_VERSION_SUBMINOR 0
205
# define DEAL_II_P4EST_VERSION_PATCH 0
206
207
# define DEAL_II_P4EST_VERSION_GTE(major,minor,subminor,patch) \
208
((DEAL_II_P4EST_VERSION_MAJOR * 1000000 + \
209
DEAL_II_P4EST_VERSION_MINOR * 10000 + \
210
DEAL_II_P4EST_VERSION_SUBMINOR * 100 + \
211
DEAL_II_P4EST_VERSION_PATCH) \
212
>= \
213
(major)*1000000 + (minor)*10000 + (subminor)*100 + (patch))
214
#else
215
// p4est up to 0.3.4.1 didn't define P4EST_VERSION_*. since
216
// we didn't supports anything before 0.3.4, we assume 0.3.4
217
// This means that we can't use the new features in 0.3.4.1
218
# define DEAL_II_P4EST_VERSION_GTE(major,minor,subminor,patch) \
219
((0 * 1000000 + \
220
3 * 10000 + \
221
4 * 100 + \
222
0) \
223
>= \
224
(major)*1000000 + (minor)*10000 + (subminor)*100 + (patch))
225
#endif
226
227
/*
228
* SUNDIALS:
229
*
230
* Note: The following definitions will be set in sundials_config.h,
231
* so we don't repeat them here.
232
*
233
* SUNDIALS_VERSION_MAJOR
234
* SUNDIALS_VERSION_MINOR
235
* SUNDIALS_VERSION_PATCH
236
*/
237
238
#define DEAL_II_SUNDIALS_VERSION_GTE(major,minor,subminor) \
239
((SUNDIALS_VERSION_MAJOR * 10000 + \
240
SUNDIALS_VERSION_MINOR * 100 + \
241
SUNDIALS_VERSION_SUBMINOR) \
242
>= \
243
(major)*10000 + (minor)*100 + (subminor))
244
245
#define DEAL_II_SUNDIALS_VERSION_LT(major,minor,subminor) \
246
((SUNDIALS_VERSION_MAJOR * 10000 + \
247
SUNDIALS_VERSION_MINOR * 100 + \
248
SUNDIALS_VERSION_SUBMINOR) \
249
< \
250
(major)*10000 + (minor)*100 + (subminor))
251
252
/*
253
* PETSc:
254
*
255
* Note: The following definitions will be set in petscconf.h and
256
* petscversion.h, so we don't repeat them here.
257
*
258
* PETSC_VERSION_MAJOR
259
* PETSC_VERSION_MINOR
260
* PETSC_VERSION_SUBMINOR
261
* PETSC_VERSION_PATCH
262
* PETSC_VERSION_RELEASE
263
* PETSC_USE_COMPLEX
264
*/
265
266
#define DEAL_II_PETSC_VERSION_LT(major,minor,subminor) \
267
((PETSC_VERSION_MAJOR * 10000 + \
268
PETSC_VERSION_MINOR * 100 + \
269
PETSC_VERSION_SUBMINOR) \
270
< \
271
(major)*10000 + (minor)*100 + (subminor))
272
273
#define DEAL_II_PETSC_VERSION_GTE(major,minor,subminor) \
274
((PETSC_VERSION_MAJOR * 10000 + \
275
PETSC_VERSION_MINOR * 100 + \
276
PETSC_VERSION_SUBMINOR) \
277
>= \
278
(major)*10000 + (minor)*100 + (subminor))
279
280
/*
281
* SLEPC
282
* see slepcversion.h
283
*/
284
#define DEAL_II_SLEPC_VERSION_GTE(major,minor,subminor) \
285
((SLEPC_VERSION_MAJOR * 10000 + \
286
SLEPC_VERSION_MINOR * 100 + \
287
SLEPC_VERSION_SUBMINOR) \
288
>= \
289
(major)*10000 + (minor)*100 + (subminor))
290
291
/*
292
* Trilinos:
293
*/
294
295
#ifdef DEAL_II_WITH_TRILINOS
296
# define DEAL_II_TRILINOS_VERSION_MAJOR 12
297
# define DEAL_II_TRILINOS_VERSION_MINOR 10
298
# define DEAL_II_TRILINOS_VERSION_SUBMINOR 1
299
300
# define DEAL_II_TRILINOS_VERSION_GTE(major,minor,subminor) \
301
((DEAL_II_TRILINOS_VERSION_MAJOR * 10000 + \
302
DEAL_II_TRILINOS_VERSION_MINOR * 100 + \
303
DEAL_II_TRILINOS_VERSION_SUBMINOR) \
304
>= \
305
(major)*10000 + (minor)*100 + (subminor))
306
#endif
307
308
/*
309
* MPI
310
*/
311
312
#ifdef DEAL_II_WITH_MPI
313
# define DEAL_II_MPI_VERSION_MAJOR 3
314
# define DEAL_II_MPI_VERSION_MINOR 1
315
316
# define DEAL_II_MPI_VERSION_GTE(major,minor) \
317
((DEAL_II_MPI_VERSION_MAJOR * 100 + \
318
DEAL_II_MPI_VERSION_MINOR) \
319
>= \
320
(major)*100 + (minor))
321
#endif
322
323
/***********************************************************************
324
* Two macro names that we put at the top and bottom of all deal.II files
325
* and that will be expanded to "namespace dealii {" and "}".
326
*/
327
328
#define DEAL_II_NAMESPACE_OPEN namespace dealii {
329
#define DEAL_II_NAMESPACE_CLOSE }
330
331
/***********************************************************************
332
* Two macros to guard external header includes.
333
*
334
* Selectively disable diagnostics set by "-Wextra" (and similar flags) for
335
* GCC and compiler accepting GCC dialects (such as clang).
336
* "diagnostic push" is supported since gcc-4.6 and clang-3.3.
337
*/
338
339
#ifdef DEAL_II_COMPILER_HAS_DIAGNOSTIC_PRAGMA
340
341
/* keep pragmas with an exclamation mark in order.. */
342
# define DEAL_II_DISABLE_EXTRA_DIAGNOSTICS \
343
_Pragma("GCC diagnostic push") \
344
_Pragma("GCC diagnostic ignored \"-Wunknown-pragmas\"") \
345
_Pragma("GCC diagnostic ignored \"-Wpragmas\"") \
346
_Pragma("GCC diagnostic ignored \"-Wunknown-warning-option\"") \
347
_Pragma("GCC diagnostic ignored \"-Wunknown-warning\"") \
348
_Pragma("GCC diagnostic ignored \"-Wextra\"") \
349
_Pragma("GCC diagnostic ignored \"-Waddress-of-packed-member\"") \
350
_Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") \
351
_Pragma("GCC diagnostic ignored \"-Wexpansion-to-defined\"") \
352
_Pragma("GCC diagnostic ignored \"-Wexpansion-to-defined\"") \
353
_Pragma("GCC diagnostic ignored \"-Wignored-attributes\"") \
354
_Pragma("GCC diagnostic ignored \"-Wignored-qualifiers\"") \
355
_Pragma("GCC diagnostic ignored \"-Wimplicit-fallthrough\"") \
356
_Pragma("GCC diagnostic ignored \"-Winfinite-recursion\"") \
357
_Pragma("GCC diagnostic ignored \"-Wint-in-bool-context\"") \
358
_Pragma("GCC diagnostic ignored \"-Wmisleading-indentation\"") \
359
_Pragma("GCC diagnostic ignored \"-Wmissing-field-initializers\"") \
360
_Pragma("GCC diagnostic ignored \"-Wnested-anon-types\"") \
361
_Pragma("GCC diagnostic ignored \"-Wnon-virtual-dtor\"") \
362
_Pragma("GCC diagnostic ignored \"-Woverflow\"") \
363
_Pragma("GCC diagnostic ignored \"-Woverloaded-virtual\"") \
364
_Pragma("GCC diagnostic ignored \"-Wpedantic\"") \
365
_Pragma("GCC diagnostic ignored \"-Wtautological-constant-out-of-range-compare\"") \
366
_Pragma("GCC diagnostic ignored \"-Wtype-limits\"") \
367
_Pragma("GCC diagnostic ignored \"-Wundef\"") \
368
_Pragma("GCC diagnostic ignored \"-Wunused-but-set-parameter\"") \
369
_Pragma("GCC diagnostic ignored \"-Wunused-but-set-variable\"") \
370
_Pragma("GCC diagnostic ignored \"-Wunused-function\"") \
371
_Pragma("GCC diagnostic ignored \"-Wunused-parameter\"") \
372
_Pragma("GCC diagnostic ignored \"-Wunused-private-field\"") \
373
_Pragma("GCC diagnostic ignored \"-Wunused-variable\"") \
374
_Pragma("GCC diagnostic warning \"-Wpragmas\"")
375
376
# define DEAL_II_ENABLE_EXTRA_DIAGNOSTICS \
377
_Pragma("GCC diagnostic pop")
378
379
#else
380
381
# define DEAL_II_DISABLE_EXTRA_DIAGNOSTICS
382
# define DEAL_II_ENABLE_EXTRA_DIAGNOSTICS
383
384
#endif
385
386
/***********************************************************************
387
* Define a portable preprocessor macro that generates custom warnings
388
* reporting the line and the file where the warning appears. Taken from:
389
* http://goodliffe.blogspot.com/2009/07/c-how-to-say-warning-to-visual-studio-c.html
390
*/
391
392
#ifdef _MSC_VER
393
#define DEAL_II_STRINGIZE_HELPER(x) #x
394
#define DEAL_II_STRINGIZE(x) DEAL_II_STRINGIZE_HELPER(x)
395
#define DEAL_II_DO_PRAGMA(x) __pragma(x)
396
#define DEAL_II_WARNING(desc) DEAL_II_DO_PRAGMA(message(__FILE__ "(" DEAL_II_STRINGIZE(__LINE__) ") : warning: " #desc))
397
#else
398
#define DEAL_II_DO_PRAGMA(x) _Pragma(#x)
399
#define DEAL_II_WARNING(desc) DEAL_II_DO_PRAGMA(message(#desc))
400
#endif
401
402
/***********************************************************************
403
* Final inclusions:
404
*/
405
406
/*
407
* Some systems require including mpi.h before stdio.h which happens in
408
* types.h
409
*/
410
#if defined(DEAL_II_WITH_MPI) || defined(DEAL_II_WITH_PETSC)
411
# include <mpi.h>
412
#endif
413
414
#include <deal.II/base/numbers.h>
415
#include <deal.II/base/types.h>
416
417
#endif
Generated by
1.8.11