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