16 #ifndef dealii_config_h
17 #define dealii_config_h
24 #define DEAL_II_PACKAGE_NAME "deal.II"
26 #define DEAL_II_PACKAGE_VERSION "GIT 9042b9283b 2023-12-02 14:50:02+00:00"
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
42 #define DEAL_II_FEATURE_BOOST_BUNDLED_CONFIGURED
44 #define DEAL_II_WITH_COMPLEX_VALUES
50 #define DEAL_II_WITH_KOKKOS
51 #define DEAL_II_FEATURE_KOKKOS_BUNDLED_CONFIGURED
57 #define DEAL_II_WITH_MUPARSER
58 #define DEAL_II_FEATURE_MUPARSER_BUNDLED_CONFIGURED
68 #define DEAL_II_WITH_TBB
69 #define DEAL_II_FEATURE_TBB_BUNDLED_CONFIGURED
73 #define DEAL_II_USE_VECTORIZATION_GATHER
77 #ifdef DEAL_II_WITH_TBB
82 #define DEAL_II_WITH_THREADS
84 #define TBB_SUPPRESS_DEPRECATED_MESSAGES 1
104 #define DEAL_II_COMPILER_USE_VECTOR_ARITHMETICS
106 #define DEAL_II_HAVE_BUILTIN_EXPECT
107 #define DEAL_II_HAVE_GLIBC_STACKTRACE
108 #define DEAL_II_HAVE_LIBSTDCXX_DEMANGLER
110 #define DEAL_II_ALWAYS_INLINE __attribute__((always_inline))
111 #define DEAL_II_RESTRICT __restrict
112 #define DEAL_II_COMPILER_HAS_DIAGNOSTIC_PRAGMA
127 #define DEAL_II_VECTORIZATION_WIDTH_IN_BITS 128
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
139 #define DEAL_II_COMPILER_VECTORIZATION_LEVEL 0
142 #define DEAL_II_HAVE_ARM_NEON
144 #define DEAL_II_OPENMP_SIMD_PRAGMA _Pragma("omp simd")
154 #define DEAL_II_HAVE_CXX17
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)
166 # define DEAL_II_CXX20_REQUIRES(condition)
169 #define DEAL_II_HAVE_FP_EXCEPTIONS
171 #define DEAL_II_HAVE_CXX17_BESSEL_FUNCTIONS
178 #define DEAL_II_DEPRECATED [[deprecated]]
179 #define DEAL_II_DEPRECATED_WITH_COMMENT(comment) [[deprecated(comment)]]
188 #ifndef DEAL_II_DEPRECATED_EARLY
190 #ifdef DEAL_II_EARLY_DEPRECATIONS
191 #define DEAL_II_DEPRECATED_EARLY [[deprecated]]
193 #define DEAL_II_DEPRECATED_EARLY
197 #ifndef DEAL_II_DEPRECATED_EARLY_WITH_COMMENT
199 #ifdef DEAL_II_EARLY_DEPRECATIONS
200 #define DEAL_II_DEPRECATED_EARLY_WITH_COMMENT(comment) [[deprecated(comment)]]
202 #define DEAL_II_DEPRECATED_EARLY_WITH_COMMENT(comment)
206 #define DEAL_II_FALLTHROUGH [[fallthrough]]
207 #define DEAL_II_CONSTEXPR constexpr
210 #define DEAL_II_WITH_CXX11
211 #define DEAL_II_WITH_CXX14
212 #define DEAL_II_WITH_CXX17
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
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
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) \
310 (major)*10000 + (minor)*100 + (subminor))
315 #define DEAL_II_BOOST_VERSION_MAJOR 1
316 #define DEAL_II_BOOST_VERSION_MINOR 70
317 #define DEAL_II_BOOST_VERSION_SUBMINOR 0
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) \
324 (major)*100000 + (minor)*100 + (subminor))
329 #ifdef DEAL_II_WITH_GMSH
330 # define DEAL_II_GMSH_EXECUTABLE_PATH ""
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
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) \
347 (major)*10000 + (minor)*100 + (subminor))
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
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) \
366 (major)*1000000 + (minor)*10000 + (subminor)*100 + (patch))
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
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) \
383 (major)*10000 + (minor)*100 + (patch))
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) \
390 (major)*10000 + (minor)*100 + (patch))
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)
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)
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
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) \
432 (major)*10000 + (minor)*100 + (subminor))
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
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))
454 #ifdef DEAL_II_WITH_MPI
455 # define DEAL_II_MPI_VERSION_MAJOR
456 # define DEAL_II_MPI_VERSION_MINOR
458 # define DEAL_II_MPI_VERSION_GTE(major,minor) \
459 ((DEAL_II_MPI_VERSION_MAJOR * 100 + \
460 DEAL_II_MPI_VERSION_MINOR) \
462 (major)*100 + (minor))
464 # define DEAL_II_MPI_VERSION_GTE(major,minor) false
468 #ifdef DEAL_II_MPI_WITH_DEVICE_SUPPORT
477 #define DEAL_II_NAMESPACE_OPEN namespace dealii {
478 #define DEAL_II_NAMESPACE_CLOSE }
488 #ifdef DEAL_II_COMPILER_HAS_DIAGNOSTIC_PRAGMA
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\"")
534 # define DEAL_II_ENABLE_EXTRA_DIAGNOSTICS \
535 _Pragma("GCC diagnostic pop")
539 # define DEAL_II_DISABLE_EXTRA_DIAGNOSTICS
540 # define DEAL_II_ENABLE_EXTRA_DIAGNOSTICS
549 #define DEAL_II_FORTRAN_MANGLE(name, NAME) name ## _
551 #define DEAL_II_FORTRAN_MANGLE_UNDERSCORE(name, NAME) name ## _
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))
565 #define DEAL_II_DO_PRAGMA(x) _Pragma(#x)
566 #define DEAL_II_WARNING(desc) DEAL_II_DO_PRAGMA(message(#desc))
578 #if defined(DEAL_II_WITH_MPI)
593 #include <boost/version.hpp>
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 "
#define DEAL_II_BOOST_VERSION_MINOR
#define DEAL_II_DISABLE_EXTRA_DIAGNOSTICS
#define DEAL_II_BOOST_VERSION_MAJOR
#define DEAL_II_ENABLE_EXTRA_DIAGNOSTICS
#define DEAL_II_BOOST_VERSION_SUBMINOR