Reference documentation for deal.II version GIT 9042b9283b 2023-12-02 14:50:02+00:00
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
config.h
Go to the documentation of this file.
1 // ---------------------------------------------------------------------
2 //
3 // Copyright (C) 2012 - 2023 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 "GIT 9042b9283b 2023-12-02 14:50:02+00:00"
27 
28 #define DEAL_II_VERSION_MAJOR GIT 9042b9283b 2023-12-02 14:50:02+00:00
29 #define DEAL_II_VERSION_MINOR GIT 9042b9283b 2023-12-02 14:50:02+00:00
30 #define DEAL_II_VERSION_SUBMINOR GIT 9042b9283b 2023-12-02 14:50:02+00:00
31 
32 
33 /***********************************************************************
34  * Configured deal.II features:
35  */
36 
37 /* #undef DEAL_II_WITH_64BIT_INDICES */
38 /* #undef DEAL_II_WITH_ADOLC */
39 /* #undef DEAL_II_WITH_ARPACK */
40 /* #undef DEAL_II_WITH_ARBORX */
41 /* #undef DEAL_II_WITH_ASSIMP */
42 #define DEAL_II_FEATURE_BOOST_BUNDLED_CONFIGURED
43 /* #undef DEAL_II_WITH_CGAL */
44 #define DEAL_II_WITH_COMPLEX_VALUES
45 /* #undef DEAL_II_WITH_CUDA */
46 /* #undef DEAL_II_WITH_GINKGO */
47 /* #undef DEAL_II_WITH_GMSH */
48 /* #undef DEAL_II_WITH_GSL */
49 /* #undef DEAL_II_WITH_HDF5 */
50 #define DEAL_II_WITH_KOKKOS
51 #define DEAL_II_FEATURE_KOKKOS_BUNDLED_CONFIGURED
52 /* #undef DEAL_II_WITH_LAPACK */
53 /* #undef LAPACK_WITH_64BIT_BLAS_INDICES */
54 /* #undef DEAL_II_LAPACK_WITH_MKL */
55 /* #undef DEAL_II_WITH_METIS */
56 /* #undef DEAL_II_WITH_MPI */
57 #define DEAL_II_WITH_MUPARSER
58 #define DEAL_II_FEATURE_MUPARSER_BUNDLED_CONFIGURED
59 /* #undef DEAL_II_WITH_OPENCASCADE */
60 /* #undef DEAL_II_WITH_P4EST */
61 /* #undef DEAL_II_WITH_PETSC */
62 /* #undef DEAL_II_WITH_SCALAPACK */
63 /* #undef DEAL_II_WITH_SLEPC */
64 /* #undef DEAL_II_WITH_SUNDIALS */
65 /* #undef DEAL_II_WITH_SYMENGINE */
66 /* #undef DEAL_II_WITH_TASKFLOW */
67 /* #undef DEAL_II_FEATURE_TASKFLOW_BUNDLED_CONFIGURED */
68 #define DEAL_II_WITH_TBB
69 #define DEAL_II_FEATURE_TBB_BUNDLED_CONFIGURED
70 /* #undef DEAL_II_WITH_TRILINOS */
71 /* #undef DEAL_II_WITH_UMFPACK */
72 /* #undef DEAL_II_FEATURE_UMFPACK_BUNDLED_CONFIGURED */
73 #define DEAL_II_USE_VECTORIZATION_GATHER
74 /* #undef DEAL_II_WITH_VTK */
75 /* #undef DEAL_II_WITH_ZLIB */
76 
77 #ifdef DEAL_II_WITH_TBB
82 #define DEAL_II_WITH_THREADS
83 
84 #define TBB_SUPPRESS_DEPRECATED_MESSAGES 1
85 
86 /* #undef DEAL_II_TBB_WITH_ONEAPI */
87 
88 #endif
89 
90 /***********************************************************************
91  * Compiler bugs:
92  *
93  * For documentation see cmake/checks/check_03_compiler_bugs.cmake
94  */
95 
96 /* #undef DEAL_II_DELETED_MOVE_CONSTRUCTOR_BUG */
97 
98 /***********************************************************************
99  * Compiler features:
100  *
101  * For documentation see cmake/checks/check_01_compiler_features.cmake
102  */
103 
104 #define DEAL_II_COMPILER_USE_VECTOR_ARITHMETICS
105 /* #undef DEAL_II_VECTOR_ITERATOR_IS_POINTER */
106 #define DEAL_II_HAVE_BUILTIN_EXPECT
107 #define DEAL_II_HAVE_GLIBC_STACKTRACE
108 #define DEAL_II_HAVE_LIBSTDCXX_DEMANGLER
109 /* #undef __PRETTY_FUNCTION__ */
110 #define DEAL_II_ALWAYS_INLINE __attribute__((always_inline))
111 #define DEAL_II_RESTRICT __restrict
112 #define DEAL_II_COMPILER_HAS_DIAGNOSTIC_PRAGMA
113 
114 /***********************************************************************
115  * CPU features:
116  *
117  * For documentation see cmake/checks/check_01_cpu_features.cmake
118  */
119 
120 /* #undef DEAL_II_WORDS_BIGENDIAN */
121 
122 /*
123  * This sets the largest number of vectorization bits detected for the given
124  * compiler flags and hardware (e.g. 256 for AVX on x86-64 architectures) for
125  * use in deal.II's intrinsics-based VectorizedArray class.
126  */
127 #define DEAL_II_VECTORIZATION_WIDTH_IN_BITS 128
128 
129 /*
130  * Backward compatibility setting
131  */
132 #if DEAL_II_VECTORIZATION_WIDTH_IN_BITS == 512
133 #define DEAL_II_COMPILER_VECTORIZATION_LEVEL 3
134 #elif DEAL_II_VECTORIZATION_WIDTH_IN_BITS == 256
135 #define DEAL_II_COMPILER_VECTORIZATION_LEVEL 2
136 #elif DEAL_II_VECTORIZATION_WIDTH_IN_BITS == 128
137 #define DEAL_II_COMPILER_VECTORIZATION_LEVEL 1
138 #else
139 #define DEAL_II_COMPILER_VECTORIZATION_LEVEL 0
140 #endif
141 
142 #define DEAL_II_HAVE_ARM_NEON
143 
144 #define DEAL_II_OPENMP_SIMD_PRAGMA _Pragma("omp simd")
145 
146 
147 /***********************************************************************
148  * Language features:
149  *
150  * For documentation see cmake/checks/check_01_cxx_features.cmake
151  */
152 
153 /* #undef DEAL_II_HAVE_CXX14 */
154 #define DEAL_II_HAVE_CXX17
155 /* #undef DEAL_II_HAVE_CXX20 */
156 
163 #if defined(DEAL_II_HAVE_CXX20) && !defined(DEAL_II_DOXYGEN_DO_NOT_PARSE_REQUIRES_CLAUSES)
164 # define DEAL_II_CXX20_REQUIRES(condition) requires(condition)
165 #else
166 # define DEAL_II_CXX20_REQUIRES(condition)
167 #endif
168 
169 #define DEAL_II_HAVE_FP_EXCEPTIONS
170 /* #undef DEAL_II_HAVE_COMPLEX_OPERATOR_OVERLOADS */
171 #define DEAL_II_HAVE_CXX17_BESSEL_FUNCTIONS
172 /* #undef DEAL_II_CXX14_CONSTEXPR_BUG */
173 
178 #define DEAL_II_DEPRECATED [[deprecated]]
179 #define DEAL_II_DEPRECATED_WITH_COMMENT(comment) [[deprecated(comment)]]
180 
187 /* #undef DEAL_II_EARLY_DEPRECATIONS */
188 #ifndef DEAL_II_DEPRECATED_EARLY
189 // guard to allow user to override DEAL_II_DEPRECATED_EARLY
190 #ifdef DEAL_II_EARLY_DEPRECATIONS
191 #define DEAL_II_DEPRECATED_EARLY [[deprecated]]
192 #else
193 #define DEAL_II_DEPRECATED_EARLY
194 #endif
195 #endif
196 
197 #ifndef DEAL_II_DEPRECATED_EARLY_WITH_COMMENT
198 // guard to allow user to override DEAL_II_DEPRECATED_EARLY
199 #ifdef DEAL_II_EARLY_DEPRECATIONS
200 #define DEAL_II_DEPRECATED_EARLY_WITH_COMMENT(comment) [[deprecated(comment)]]
201 #else
202 #define DEAL_II_DEPRECATED_EARLY_WITH_COMMENT(comment)
203 #endif
204 #endif
205 
206 #define DEAL_II_FALLTHROUGH [[fallthrough]]
207 #define DEAL_II_CONSTEXPR constexpr
208 
209 // The following three are defined for backwards compatibility with older deal.II versions:
210 #define DEAL_II_WITH_CXX11
211 #define DEAL_II_WITH_CXX14
212 #define DEAL_II_WITH_CXX17
213 
214 
215 /***********************************************************************
216  * System features:
217  *
218  * For documentation see cmake/checks/check_02_system_features.cmake
219  */
220 
221 #define DEAL_II_HAVE_SYS_RESOURCE_H
222 #define DEAL_II_HAVE_UNISTD_H
223 #define DEAL_II_HAVE_GETHOSTNAME
224 #define DEAL_II_HAVE_GETPID
225 /* #undef DEAL_II_HAVE_JN */
226 
227 /* #undef DEAL_II_MSVC */
228 
229 
230 /***********************************************************************
231  * Feature configuration
232  *
233  * For documentation see cmake/configure/configure_*.cmake and
234  * cmake/modules/Find*.cmake
235  */
236 
237 /* cmake/modules/FindADOLC.cmake */
238 /* #undef DEAL_II_ADOLC_WITH_ATRIG_ERF */
239 /* #undef DEAL_II_ADOLC_WITH_ADVANCED_BRANCHING */
240 /* #undef DEAL_II_ADOLC_WITH_TAPELESS_REFCOUNTING */
241 
242 /* cmake/modules/FindARBORX.cmake */
243 /* #undef DEAL_II_ARBORX_WITH_MPI */
244 
245 /* cmake/modules/FindARPACK.cmake */
246 /* #undef DEAL_II_ARPACK_WITH_PARPACK */
247 
248 /* cmake/modules/FindGMSH.cmake */
249 /* #undef DEAL_II_GMSH_WITH_API */
250 
251 /* cmake/modules/FindPETSC.cmake */
252 /* #undef DEAL_II_PETSC_WITH_COMPLEX */
253 /* #undef DEAL_II_PETSC_WITH_HYPRE */
254 /* #undef DEAL_II_PETSC_WITH_MUMPS */
255 /* #undef DEAL_II_PETSC_WITH_KOKKOS */
256 
257 /* cmake/modules/FindSUNDIALS.cmake */
258 /* #undef DEAL_II_SUNDIALS_WITH_IDAS */
259 
260 /* cmake/modules/FindSYMENGINE.cmake */
261 /* #undef DEAL_II_SYMENGINE_WITH_LLVM */
262 
263 /* cmake/configure/configure_20_boost.cmake */
264 /* #undef DEAL_II_BOOST_HAS_BROKEN_HEADER_DEPRECATIONS */
265 
266 /* cmake/configure/configure_50_cgal.cmake */
267 /* #undef DEAL_II_CGAL_HAS_DEPRECATED_BOOST_INCLUDES */
268 
269 /* cmake/configure/configure_2_trilinos.cmake */
270 /* #undef DEAL_II_TRILINOS_CXX_SUPPORTS_SACADO_COMPLEX_RAD */
271 /* #undef DEAL_II_TRILINOS_WITH_BELOS */
272 /* #undef DEAL_II_TRILINOS_WITH_EPETRAEXT */
273 /* #undef DEAL_II_TRILINOS_WITH_MUELU */
274 /* #undef DEAL_II_TRILINOS_WITH_NOX */
275 /* #undef DEAL_II_TRILINOS_WITH_ROL */
276 /* #undef DEAL_II_TRILINOS_WITH_SACADO */
277 /* #undef DEAL_II_TRILINOS_WITH_SEACAS */
278 /* #undef DEAL_II_TRILINOS_WITH_TPETRA */
279 /* #undef DEAL_II_TRILINOS_WITH_ZOLTAN */
280 
281 #if defined(DEAL_II_BOOST_HAS_BROKEN_HEADER_DEPRECATIONS) || \
282  defined(DEAL_II_CGAL_HAS_DEPRECATED_BOOST_INCLUDES)
283 # ifndef BOOST_ALLOW_DEPRECATED_HEADERS
284 # define BOOST_ALLOW_DEPRECATED_HEADERS
285 # endif
286 #endif
287 
288 /***********************************************************************
289  * Various macros for version number query and comparison:
290  *
291  * These macros are defined to make testing for specific versions within
292  * the deal.II main code as simple as possible.
293  */
294 
295 /*
296  * deal.II:
297  */
298 
305 #define DEAL_II_VERSION_GTE(major,minor,subminor) \
306  ((DEAL_II_VERSION_MAJOR * 10000 + \
307  DEAL_II_VERSION_MINOR * 100 + \
308  DEAL_II_VERSION_SUBMINOR) \
309  >= \
310  (major)*10000 + (minor)*100 + (subminor))
311 
312 /*
313  * boost:
314  */
315 #define DEAL_II_BOOST_VERSION_MAJOR 1
316 #define DEAL_II_BOOST_VERSION_MINOR 70
317 #define DEAL_II_BOOST_VERSION_SUBMINOR 0
318 
319 #define DEAL_II_BOOST_VERSION_GTE(major,minor,subminor) \
320  ((DEAL_II_BOOST_VERSION_MAJOR * 100000 + \
321  DEAL_II_BOOST_VERSION_MINOR * 100 + \
322  DEAL_II_BOOST_VERSION_SUBMINOR) \
323  >= \
324  (major)*100000 + (minor)*100 + (subminor))
325 
326 /*
327  * Gmsh:
328  */
329 #ifdef DEAL_II_WITH_GMSH
330 # define DEAL_II_GMSH_EXECUTABLE_PATH ""
331 #endif
332 
337 #ifdef DEAL_II_WITH_OPENCASCADE
338 # define DEAL_II_OPENCASCADE_VERSION_MAJOR
339 # define DEAL_II_OPENCASCADE_VERSION_MINOR
340 # define DEAL_II_OPENCASCADE_VERSION_SUBMINOR
341 
342 # define DEAL_II_OPENCASCADE_VERSION_GTE(major,minor,subminor) \
343  ((DEAL_II_OPENCASCADE_VERSION_MAJOR * 10000 + \
344  DEAL_II_OPENCASCADE_VERSION_MINOR * 100 + \
345  DEAL_II_OPENCASCADE_VERSION_SUBMINOR) \
346  >= \
347  (major)*10000 + (minor)*100 + (subminor))
348 #endif
349 
350 /*
351  * p4est:
352  */
353 
354 #ifdef DEAL_II_WITH_P4EST
355 # define DEAL_II_P4EST_VERSION_MAJOR
356 # define DEAL_II_P4EST_VERSION_MINOR
357 # define DEAL_II_P4EST_VERSION_SUBMINOR
358 # define DEAL_II_P4EST_VERSION_PATCH
359 
360 # define DEAL_II_P4EST_VERSION_GTE(major,minor,subminor,patch) \
361  ((DEAL_II_P4EST_VERSION_MAJOR * 1000000 + \
362  DEAL_II_P4EST_VERSION_MINOR * 10000 + \
363  DEAL_II_P4EST_VERSION_SUBMINOR * 100 + \
364  DEAL_II_P4EST_VERSION_PATCH) \
365  >= \
366  (major)*1000000 + (minor)*10000 + (subminor)*100 + (patch))
367 #endif
368 
369 /*
370  * SUNDIALS:
371  */
372 
373 #ifdef DEAL_II_WITH_SUNDIALS
374  # define DEAL_II_SUNDIALS_VERSION_MAJOR
375  # define DEAL_II_SUNDIALS_VERSION_MINOR
376  # define DEAL_II_SUNDIALS_VERSION_PATCH
377 
378  #define DEAL_II_SUNDIALS_VERSION_GTE(major,minor,patch) \
379  ((DEAL_II_SUNDIALS_VERSION_MAJOR * 10000 + \
380  DEAL_II_SUNDIALS_VERSION_MINOR * 100 + \
381  DEAL_II_SUNDIALS_VERSION_PATCH) \
382  >= \
383  (major)*10000 + (minor)*100 + (patch))
384 
385  #define DEAL_II_SUNDIALS_VERSION_LT(major,minor,patch) \
386  ((DEAL_II_SUNDIALS_VERSION_MAJOR * 10000 + \
387  DEAL_II_SUNDIALS_VERSION_MINOR * 100 + \
388  DEAL_II_SUNDIALS_VERSION_PATCH) \
389  < \
390  (major)*10000 + (minor)*100 + (patch))
391 #endif
392 
393 /*
394  * PETSc:
395  *
396  * Note: The following macros are defined in petscversion.h
397  * so we don't repeat them here.
398  */
399 
400 #ifdef DEAL_II_WITH_PETSC
401 # define DEAL_II_PETSC_VERSION_LT(major,minor,subminor) \
402  PETSC_VERSION_LT(major,minor,subminor)
403 # define DEAL_II_PETSC_VERSION_GTE(major,minor,subminor) \
404  PETSC_VERSION_GE(major,minor,subminor)
405 #endif
406 
407 /*
408  * SLEPC:
409  */
410 
411 #ifdef DEAL_II_WITH_SLEPC
412 # define DEAL_II_SLEPC_VERSION_LT(major,minor,subminor) \
413  SLEPC_VERSION_LT(major,minor,subminor)
414 # define DEAL_II_SLEPC_VERSION_GTE(major,minor,subminor) \
415  SLEPC_VERSION_GE(major,minor,subminor)
416 #endif
417 
418 /*
419  * Trilinos:
420  */
421 
422 #ifdef DEAL_II_WITH_TRILINOS
423 # define DEAL_II_TRILINOS_VERSION_MAJOR
424 # define DEAL_II_TRILINOS_VERSION_MINOR
425 # define DEAL_II_TRILINOS_VERSION_SUBMINOR
426 
427 # define DEAL_II_TRILINOS_VERSION_GTE(major,minor,subminor) \
428  ((DEAL_II_TRILINOS_VERSION_MAJOR * 10000 + \
429  DEAL_II_TRILINOS_VERSION_MINOR * 100 + \
430  DEAL_II_TRILINOS_VERSION_SUBMINOR) \
431  >= \
432  (major)*10000 + (minor)*100 + (subminor))
433 #endif
434 
435 /*
436  * CGAL:
437  */
438 
439 #ifdef DEAL_II_WITH_CGAL
440 # define DEAL_II_CGAL_VERSION_MAJOR
441 # define DEAL_II_CGAL_VERSION_MINOR
442 # define DEAL_II_CGAL_VERSION_SUBMINOR
443 
444 # define DEAL_II_CGAL_VERSION_GTE(major, minor, subminor) \
445  ((DEAL_II_CGAL_VERSION_MAJOR * 10000 + DEAL_II_CGAL_VERSION_MINOR * 100 + \
446  DEAL_II_CGAL_VERSION_SUBMINOR) >= \
447  (major)*10000 + (minor)*100 + (subminor))
448 #endif
449 
450 /*
451  * MPI
452  */
453 
454 #ifdef DEAL_II_WITH_MPI
455 # define DEAL_II_MPI_VERSION_MAJOR
456 # define DEAL_II_MPI_VERSION_MINOR
457 
458 # define DEAL_II_MPI_VERSION_GTE(major,minor) \
459  ((DEAL_II_MPI_VERSION_MAJOR * 100 + \
460  DEAL_II_MPI_VERSION_MINOR) \
461  >= \
462  (major)*100 + (minor))
463 #else
464 # define DEAL_II_MPI_VERSION_GTE(major,minor) false
465 #endif
466 
467 /* #undef DEAL_II_MPI_WITH_DEVICE_SUPPORT */
468 #ifdef DEAL_II_MPI_WITH_DEVICE_SUPPORT
469 /* #undef DEAL_II_MPI_WITH_CUDA_SUPPORT */
470 #endif
471 
472 /***********************************************************************
473  * Two macro names that we put at the top and bottom of all deal.II files
474  * and that will be expanded to "namespace dealii {" and "}".
475  */
476 
477 #define DEAL_II_NAMESPACE_OPEN namespace dealii {
478 #define DEAL_II_NAMESPACE_CLOSE }
479 
480 /***********************************************************************
481  * Two macros to guard external header includes.
482  *
483  * Selectively disable diagnostics set by "-Wextra" (and similar flags) for
484  * GCC and compiler accepting GCC dialects (such as clang).
485  * "diagnostic push" is supported since gcc-4.6 and clang-3.3.
486  */
487 
488 #ifdef DEAL_II_COMPILER_HAS_DIAGNOSTIC_PRAGMA
489 
490 /* keep pragmas with an exclamation mark in order.. */
491 # define DEAL_II_DISABLE_EXTRA_DIAGNOSTICS \
492 _Pragma("GCC diagnostic push") \
493 _Pragma("GCC diagnostic ignored \"-Wunknown-pragmas\"") \
494 _Pragma("GCC diagnostic ignored \"-Wpragmas\"") \
495 _Pragma("GCC diagnostic ignored \"-Wunknown-warning-option\"") \
496 _Pragma("GCC diagnostic ignored \"-Wunknown-warning\"") \
497 _Pragma("GCC diagnostic ignored \"-Wextra\"") \
498 _Pragma("GCC diagnostic ignored \"-Waddress-of-packed-member\"") \
499 _Pragma("GCC diagnostic ignored \"-Wcast-function-type\"") \
500 _Pragma("GCC diagnostic ignored \"-Wdeprecated-copy\"") \
501 _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") \
502 _Pragma("GCC diagnostic ignored \"-Wdeprecated-volatile\"") \
503 _Pragma("GCC diagnostic ignored \"-Wexpansion-to-defined\"") \
504 _Pragma("GCC diagnostic ignored \"-Wfloat-conversion\"") \
505 _Pragma("GCC diagnostic ignored \"-Wignored-attributes\"") \
506 _Pragma("GCC diagnostic ignored \"-Wignored-qualifiers\"") \
507 _Pragma("GCC diagnostic ignored \"-Wimplicit-fallthrough\"") \
508 _Pragma("GCC diagnostic ignored \"-Winfinite-recursion\"") \
509 _Pragma("GCC diagnostic ignored \"-Wint-in-bool-context\"") \
510 _Pragma("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") \
511 _Pragma("GCC diagnostic ignored \"-Wmisleading-indentation\"") \
512 _Pragma("GCC diagnostic ignored \"-Wmissing-field-initializers\"") \
513 _Pragma("GCC diagnostic ignored \"-Wnested-anon-types\"") \
514 _Pragma("GCC diagnostic ignored \"-Wnon-template-friend\"") \
515 _Pragma("GCC diagnostic ignored \"-Wnon-virtual-dtor\"") \
516 _Pragma("GCC diagnostic ignored \"-Wnonnull\"") \
517 _Pragma("GCC diagnostic ignored \"-Woverflow\"") \
518 _Pragma("GCC diagnostic ignored \"-Woverloaded-virtual\"") \
519 _Pragma("GCC diagnostic ignored \"-Wpedantic\"") \
520 _Pragma("GCC diagnostic ignored \"-Wsuggest-override\"") \
521 _Pragma("GCC diagnostic ignored \"-Wtautological-constant-out-of-range-compare\"") \
522 _Pragma("GCC diagnostic ignored \"-Wtautological-overlap-compare\"") \
523 _Pragma("GCC diagnostic ignored \"-Wtype-limits\"") \
524 _Pragma("GCC diagnostic ignored \"-Wundef\"") \
525 _Pragma("GCC diagnostic ignored \"-Wunused-but-set-parameter\"") \
526 _Pragma("GCC diagnostic ignored \"-Wunused-but-set-variable\"") \
527 _Pragma("GCC diagnostic ignored \"-Wunused-function\"") \
528 _Pragma("GCC diagnostic ignored \"-Wunused-parameter\"") \
529 _Pragma("GCC diagnostic ignored \"-Wunused-private-field\"") \
530 _Pragma("GCC diagnostic ignored \"-Wunused-variable\"") \
531 _Pragma("GCC diagnostic ignored \"-Wuse-after-free\"") \
532 _Pragma("GCC diagnostic warning \"-Wpragmas\"")
533 
534 # define DEAL_II_ENABLE_EXTRA_DIAGNOSTICS \
535 _Pragma("GCC diagnostic pop")
536 
537 #else
538 
539 # define DEAL_II_DISABLE_EXTRA_DIAGNOSTICS
540 # define DEAL_II_ENABLE_EXTRA_DIAGNOSTICS
541 
542 #endif
543 
544 /***********************************************************************
545  * Define macros for picking the correct C linkage name for a Fortran function.
546  * See cmake/configure/configure_fortran_mangling.cmake for more information.
547  */
548 
549 #define DEAL_II_FORTRAN_MANGLE(name, NAME) name ## _
550 
551 #define DEAL_II_FORTRAN_MANGLE_UNDERSCORE(name, NAME) name ## _
552 
553 /***********************************************************************
554  * Define a portable preprocessor macro that generates custom warnings
555  * reporting the line and the file where the warning appears. Taken from:
556  * http://goodliffe.blogspot.com/2009/07/c-how-to-say-warning-to-visual-studio-c.html
557  */
558 
559 #ifdef _MSC_VER
560  #define DEAL_II_STRINGIZE_HELPER(x) #x
561  #define DEAL_II_STRINGIZE(x) DEAL_II_STRINGIZE_HELPER(x)
562  #define DEAL_II_DO_PRAGMA(x) __pragma(x)
563  #define DEAL_II_WARNING(desc) DEAL_II_DO_PRAGMA(message(__FILE__ "(" DEAL_II_STRINGIZE(__LINE__) ") : warning: " #desc))
564 #else
565  #define DEAL_II_DO_PRAGMA(x) _Pragma(#x)
566  #define DEAL_II_WARNING(desc) DEAL_II_DO_PRAGMA(message(#desc))
567 #endif
568 
569 
570 /***********************************************************************
571  * Final inclusions:
572  */
573 
574 /*
575  * Some systems require including mpi.h before stdio.h which happens in
576  * types.h
577  */
578 #if defined(DEAL_II_WITH_MPI)
580 # include <mpi.h>
582 #endif
583 
584 #include <deal.II/base/numbers.h>
585 #include <deal.II/base/types.h>
586 
587 /*
588  * Include the boost version header to do a quick version check in case, by
589  * accident, we have configured with one version of boost but are compiling
590  * either the library or an external application with a different version of
591  * boost.
592  */
593 #include <boost/version.hpp>
594 static_assert(
595  BOOST_VERSION == 100000 * DEAL_II_BOOST_VERSION_MAJOR +
598  "The version number of boost that you are compiling with does not match the "
599  "version number of boost found during deal.II's configuration step. This "
600  "leads to difficult to understand bugs and is not supported. Please check "
601  "that you have set up your application with the same version of boost as "
602  "deal.II.");
603 
604 #endif
#define DEAL_II_BOOST_VERSION_MINOR
Definition: config.h:316
#define DEAL_II_DISABLE_EXTRA_DIAGNOSTICS
Definition: config.h:491
#define DEAL_II_BOOST_VERSION_MAJOR
Definition: config.h:315
#define DEAL_II_ENABLE_EXTRA_DIAGNOSTICS
Definition: config.h:534
#define DEAL_II_BOOST_VERSION_SUBMINOR
Definition: config.h:317