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 2896a7e638 2023-05-31 13:10:02+00:00"
28 #define DEAL_II_VERSION_MAJOR GIT 2896a7e638 2023-05-31 13:10:02+00:00
29 #define DEAL_II_VERSION_MINOR GIT 2896a7e638 2023-05-31 13:10:02+00:00
30 #define DEAL_II_VERSION_SUBMINOR GIT 2896a7e638 2023-05-31 13:10: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
75 #ifdef DEAL_II_WITH_TBB
80 #define DEAL_II_WITH_THREADS
82 #define TBB_SUPPRESS_DEPRECATED_MESSAGES 1
102 #define DEAL_II_COMPILER_USE_VECTOR_ARITHMETICS
104 #define DEAL_II_HAVE_BUILTIN_EXPECT
105 #define DEAL_II_HAVE_GLIBC_STACKTRACE
106 #define DEAL_II_HAVE_LIBSTDCXX_DEMANGLER
108 #define DEAL_II_ALWAYS_INLINE __attribute__((always_inline))
109 #define DEAL_II_RESTRICT __restrict
110 #define DEAL_II_COMPILER_HAS_DIAGNOSTIC_PRAGMA
125 #define DEAL_II_VECTORIZATION_WIDTH_IN_BITS 128
130 #if DEAL_II_VECTORIZATION_WIDTH_IN_BITS == 512
131 #define DEAL_II_COMPILER_VECTORIZATION_LEVEL 3
132 #elif DEAL_II_VECTORIZATION_WIDTH_IN_BITS == 256
133 #define DEAL_II_COMPILER_VECTORIZATION_LEVEL 2
134 #elif DEAL_II_VECTORIZATION_WIDTH_IN_BITS == 128
135 #define DEAL_II_COMPILER_VECTORIZATION_LEVEL 1
137 #define DEAL_II_COMPILER_VECTORIZATION_LEVEL 0
140 #define DEAL_II_OPENMP_SIMD_PRAGMA _Pragma("omp simd")
149 #define DEAL_II_HAVE_CXX14
159 #if defined(DEAL_II_HAVE_CXX20) && !defined(DEAL_II_DOXYGEN_DO_NOT_PARSE_REQUIRES_CLAUSES)
160 # define DEAL_II_CXX20_REQUIRES(condition) requires(condition)
162 # define DEAL_II_CXX20_REQUIRES(condition)
165 #define DEAL_II_HAVE_FP_EXCEPTIONS
174 #define DEAL_II_DEPRECATED [[deprecated]]
182 #ifndef DEAL_II_DEPRECATED_EARLY
184 #define DEAL_II_DEPRECATED_EARLY
186 #define DEAL_II_FALLTHROUGH [[fallthrough]]
187 #define DEAL_II_CONSTEXPR constexpr
190 #define DEAL_II_WITH_CXX11
191 #define DEAL_II_WITH_CXX14
193 #ifdef DEAL_II_HAVE_CXX17
194 # define DEAL_II_WITH_CXX17
204 #define DEAL_II_HAVE_SYS_RESOURCE_H
205 #define DEAL_II_HAVE_UNISTD_H
206 #define DEAL_II_HAVE_GETHOSTNAME
207 #define DEAL_II_HAVE_GETPID
264 #if defined(DEAL_II_BOOST_HAS_BROKEN_HEADER_DEPRECATIONS) || \
265 defined(DEAL_II_CGAL_HAS_DEPRECATED_BOOST_INCLUDES)
266 # ifndef BOOST_ALLOW_DEPRECATED_HEADERS
267 # define BOOST_ALLOW_DEPRECATED_HEADERS
288 #define DEAL_II_VERSION_GTE(major,minor,subminor) \
289 ((DEAL_II_VERSION_MAJOR * 10000 + \
290 DEAL_II_VERSION_MINOR * 100 + \
291 DEAL_II_VERSION_SUBMINOR) \
293 (major)*10000 + (minor)*100 + (subminor))
298 #define DEAL_II_BOOST_VERSION_MAJOR 1
299 #define DEAL_II_BOOST_VERSION_MINOR 70
300 #define DEAL_II_BOOST_VERSION_SUBMINOR 0
302 #define DEAL_II_BOOST_VERSION_GTE(major,minor,subminor) \
303 ((DEAL_II_BOOST_VERSION_MAJOR * 100000 + \
304 DEAL_II_BOOST_VERSION_MINOR * 100 + \
305 DEAL_II_BOOST_VERSION_SUBMINOR) \
307 (major)*100000 + (minor)*100 + (subminor))
312 #ifdef DEAL_II_WITH_GMSH
313 # define DEAL_II_GMSH_EXECUTABLE_PATH ""
320 #ifdef DEAL_II_WITH_OPENCASCADE
321 # define DEAL_II_OPENCASCADE_VERSION_MAJOR
322 # define DEAL_II_OPENCASCADE_VERSION_MINOR
323 # define DEAL_II_OPENCASCADE_VERSION_SUBMINOR
325 # define DEAL_II_OPENCASCADE_VERSION_GTE(major,minor,subminor) \
326 ((DEAL_II_OPENCASCADE_VERSION_MAJOR * 10000 + \
327 DEAL_II_OPENCASCADE_VERSION_MINOR * 100 + \
328 DEAL_II_OPENCASCADE_VERSION_SUBMINOR) \
330 (major)*10000 + (minor)*100 + (subminor))
337 #ifdef DEAL_II_WITH_P4EST
338 # define DEAL_II_P4EST_VERSION_MAJOR
339 # define DEAL_II_P4EST_VERSION_MINOR
340 # define DEAL_II_P4EST_VERSION_SUBMINOR
341 # define DEAL_II_P4EST_VERSION_PATCH
343 # define DEAL_II_P4EST_VERSION_GTE(major,minor,subminor,patch) \
344 ((DEAL_II_P4EST_VERSION_MAJOR * 1000000 + \
345 DEAL_II_P4EST_VERSION_MINOR * 10000 + \
346 DEAL_II_P4EST_VERSION_SUBMINOR * 100 + \
347 DEAL_II_P4EST_VERSION_PATCH) \
349 (major)*1000000 + (minor)*10000 + (subminor)*100 + (patch))
356 #ifdef DEAL_II_WITH_SUNDIALS
357 # define DEAL_II_SUNDIALS_VERSION_MAJOR
358 # define DEAL_II_SUNDIALS_VERSION_MINOR
359 # define DEAL_II_SUNDIALS_VERSION_PATCH
361 #define DEAL_II_SUNDIALS_VERSION_GTE(major,minor,patch) \
362 ((DEAL_II_SUNDIALS_VERSION_MAJOR * 10000 + \
363 DEAL_II_SUNDIALS_VERSION_MINOR * 100 + \
364 DEAL_II_SUNDIALS_VERSION_PATCH) \
366 (major)*10000 + (minor)*100 + (patch))
368 #define DEAL_II_SUNDIALS_VERSION_LT(major,minor,patch) \
369 ((DEAL_II_SUNDIALS_VERSION_MAJOR * 10000 + \
370 DEAL_II_SUNDIALS_VERSION_MINOR * 100 + \
371 DEAL_II_SUNDIALS_VERSION_PATCH) \
373 (major)*10000 + (minor)*100 + (patch))
390 #define DEAL_II_PETSC_VERSION_LT(major,minor,subminor) \
391 ((PETSC_VERSION_MAJOR * 10000 + \
392 PETSC_VERSION_MINOR * 100 + \
393 PETSC_VERSION_SUBMINOR) \
395 (major)*10000 + (minor)*100 + (subminor))
397 #define DEAL_II_PETSC_VERSION_GTE(major,minor,subminor) \
398 ((PETSC_VERSION_MAJOR * 10000 + \
399 PETSC_VERSION_MINOR * 100 + \
400 PETSC_VERSION_SUBMINOR) \
402 (major)*10000 + (minor)*100 + (subminor))
408 #define DEAL_II_SLEPC_VERSION_GTE(major,minor,subminor) \
409 ((SLEPC_VERSION_MAJOR * 10000 + \
410 SLEPC_VERSION_MINOR * 100 + \
411 SLEPC_VERSION_SUBMINOR) \
413 (major)*10000 + (minor)*100 + (subminor))
419 #ifdef DEAL_II_WITH_TRILINOS
420 # define DEAL_II_TRILINOS_VERSION_MAJOR
421 # define DEAL_II_TRILINOS_VERSION_MINOR
422 # define DEAL_II_TRILINOS_VERSION_SUBMINOR
424 # define DEAL_II_TRILINOS_VERSION_GTE(major,minor,subminor) \
425 ((DEAL_II_TRILINOS_VERSION_MAJOR * 10000 + \
426 DEAL_II_TRILINOS_VERSION_MINOR * 100 + \
427 DEAL_II_TRILINOS_VERSION_SUBMINOR) \
429 (major)*10000 + (minor)*100 + (subminor))
436 #ifdef DEAL_II_WITH_CGAL
437 # define DEAL_II_CGAL_VERSION_MAJOR
438 # define DEAL_II_CGAL_VERSION_MINOR
439 # define DEAL_II_CGAL_VERSION_SUBMINOR
441 # define DEAL_II_CGAL_VERSION_GTE(major, minor, subminor) \
442 ((DEAL_II_CGAL_VERSION_MAJOR * 10000 + DEAL_II_CGAL_VERSION_MINOR * 100 + \
443 DEAL_II_CGAL_VERSION_SUBMINOR) >= \
444 (major)*10000 + (minor)*100 + (subminor))
451 #ifdef DEAL_II_WITH_MPI
452 # define DEAL_II_MPI_VERSION_MAJOR
453 # define DEAL_II_MPI_VERSION_MINOR
455 # define DEAL_II_MPI_VERSION_GTE(major,minor) \
456 ((DEAL_II_MPI_VERSION_MAJOR * 100 + \
457 DEAL_II_MPI_VERSION_MINOR) \
459 (major)*100 + (minor))
461 # define DEAL_II_MPI_VERSION_GTE(major,minor) false
465 #ifdef DEAL_II_MPI_WITH_DEVICE_SUPPORT
474 #define DEAL_II_NAMESPACE_OPEN namespace dealii {
475 #define DEAL_II_NAMESPACE_CLOSE }
485 #ifdef DEAL_II_COMPILER_HAS_DIAGNOSTIC_PRAGMA
488 # define DEAL_II_DISABLE_EXTRA_DIAGNOSTICS \
489 _Pragma("GCC diagnostic push") \
490 _Pragma("GCC diagnostic ignored \"-Wunknown-pragmas\"") \
491 _Pragma("GCC diagnostic ignored \"-Wpragmas\"") \
492 _Pragma("GCC diagnostic ignored \"-Wunknown-warning-option\"") \
493 _Pragma("GCC diagnostic ignored \"-Wunknown-warning\"") \
494 _Pragma("GCC diagnostic ignored \"-Wextra\"") \
495 _Pragma("GCC diagnostic ignored \"-Waddress-of-packed-member\"") \
496 _Pragma("GCC diagnostic ignored \"-Wcast-function-type\"") \
497 _Pragma("GCC diagnostic ignored \"-Wdeprecated-copy\"") \
498 _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") \
499 _Pragma("GCC diagnostic ignored \"-Wdeprecated-volatile\"") \
500 _Pragma("GCC diagnostic ignored \"-Wexpansion-to-defined\"") \
501 _Pragma("GCC diagnostic ignored \"-Wfloat-conversion\"") \
502 _Pragma("GCC diagnostic ignored \"-Wignored-attributes\"") \
503 _Pragma("GCC diagnostic ignored \"-Wignored-qualifiers\"") \
504 _Pragma("GCC diagnostic ignored \"-Wimplicit-fallthrough\"") \
505 _Pragma("GCC diagnostic ignored \"-Winfinite-recursion\"") \
506 _Pragma("GCC diagnostic ignored \"-Wint-in-bool-context\"") \
507 _Pragma("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") \
508 _Pragma("GCC diagnostic ignored \"-Wmisleading-indentation\"") \
509 _Pragma("GCC diagnostic ignored \"-Wmissing-field-initializers\"") \
510 _Pragma("GCC diagnostic ignored \"-Wnested-anon-types\"") \
511 _Pragma("GCC diagnostic ignored \"-Wnon-template-friend\"") \
512 _Pragma("GCC diagnostic ignored \"-Wnon-virtual-dtor\"") \
513 _Pragma("GCC diagnostic ignored \"-Wnonnull\"") \
514 _Pragma("GCC diagnostic ignored \"-Woverflow\"") \
515 _Pragma("GCC diagnostic ignored \"-Woverloaded-virtual\"") \
516 _Pragma("GCC diagnostic ignored \"-Wpedantic\"") \
517 _Pragma("GCC diagnostic ignored \"-Wsuggest-override\"") \
518 _Pragma("GCC diagnostic ignored \"-Wtautological-constant-out-of-range-compare\"") \
519 _Pragma("GCC diagnostic ignored \"-Wtautological-overlap-compare\"") \
520 _Pragma("GCC diagnostic ignored \"-Wtype-limits\"") \
521 _Pragma("GCC diagnostic ignored \"-Wundef\"") \
522 _Pragma("GCC diagnostic ignored \"-Wunused-but-set-parameter\"") \
523 _Pragma("GCC diagnostic ignored \"-Wunused-but-set-variable\"") \
524 _Pragma("GCC diagnostic ignored \"-Wunused-function\"") \
525 _Pragma("GCC diagnostic ignored \"-Wunused-parameter\"") \
526 _Pragma("GCC diagnostic ignored \"-Wunused-private-field\"") \
527 _Pragma("GCC diagnostic ignored \"-Wunused-variable\"") \
528 _Pragma("GCC diagnostic ignored \"-Wuse-after-free\"") \
529 _Pragma("GCC diagnostic warning \"-Wpragmas\"")
531 # define DEAL_II_ENABLE_EXTRA_DIAGNOSTICS \
532 _Pragma("GCC diagnostic pop")
536 # define DEAL_II_DISABLE_EXTRA_DIAGNOSTICS
537 # define DEAL_II_ENABLE_EXTRA_DIAGNOSTICS
546 #define DEAL_II_FORTRAN_MANGLE(name, NAME) name ## _
548 #define DEAL_II_FORTRAN_MANGLE_UNDERSCORE(name, NAME) name ## _
557 #define DEAL_II_STRINGIZE_HELPER(x) #x
558 #define DEAL_II_STRINGIZE(x) DEAL_II_STRINGIZE_HELPER(x)
559 #define DEAL_II_DO_PRAGMA(x) __pragma(x)
560 #define DEAL_II_WARNING(desc) DEAL_II_DO_PRAGMA(message(__FILE__ "(" DEAL_II_STRINGIZE(__LINE__) ") : warning: " #desc))
562 #define DEAL_II_DO_PRAGMA(x) _Pragma(#x)
563 #define DEAL_II_WARNING(desc) DEAL_II_DO_PRAGMA(message(#desc))
573 #ifdef DEAL_II_HAVE_CXX17
574 #define DEAL_II_CONSTEXPR_IN_CONDITIONAL constexpr
576 #define DEAL_II_CONSTEXPR_IN_CONDITIONAL
588 #if defined(DEAL_II_WITH_MPI) || defined(DEAL_II_WITH_PETSC)
603 #include <boost/version.hpp>
608 "The version number of boost that you are compiling with does not match the "
609 "version number of boost found during deal.II's configuration step. This "
610 "leads to difficult to understand bugs and is not supported. Please check "
611 "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