15#ifndef dealii_config_h
16#define dealii_config_h
23#define DEAL_II_PACKAGE_NAME "deal.II"
25#define DEAL_II_PACKAGE_VERSION "GIT relicensing-136-gb80d0be4af 2024-03-18 08:20:02+00:00"
27#define DEAL_II_VERSION_MAJOR GIT relicensing-136-gb80d0be4af 2024-03-18 08:20:02+00:00
28#define DEAL_II_VERSION_MINOR GIT relicensing-136-gb80d0be4af 2024-03-18 08:20:02+00:00
29#define DEAL_II_VERSION_SUBMINOR GIT relicensing-136-gb80d0be4af 2024-03-18 08:20:02+00:00
41#define DEAL_II_FEATURE_BOOST_BUNDLED_CONFIGURED
43#define DEAL_II_WITH_COMPLEX_VALUES
49#define DEAL_II_WITH_KOKKOS
50#define DEAL_II_FEATURE_KOKKOS_BUNDLED_CONFIGURED
56#define DEAL_II_WITH_MUPARSER
57#define DEAL_II_FEATURE_MUPARSER_BUNDLED_CONFIGURED
67#define DEAL_II_WITH_TBB
68#define DEAL_II_FEATURE_TBB_BUNDLED_CONFIGURED
72#define DEAL_II_USE_VECTORIZATION_GATHER
76#ifdef DEAL_II_WITH_TBB
81#define DEAL_II_WITH_THREADS
83#define TBB_SUPPRESS_DEPRECATED_MESSAGES 1
103#define DEAL_II_COMPILER_USE_VECTOR_ARITHMETICS
105#define DEAL_II_HAVE_BUILTIN_EXPECT
106#define DEAL_II_HAVE_GLIBC_STACKTRACE
107#define DEAL_II_HAVE_LIBSTDCXX_DEMANGLER
109#define DEAL_II_ALWAYS_INLINE __attribute__((always_inline))
110#define DEAL_II_RESTRICT __restrict
111#define DEAL_II_COMPILER_HAS_DIAGNOSTIC_PRAGMA
126#define DEAL_II_VECTORIZATION_WIDTH_IN_BITS 128
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
138#define DEAL_II_COMPILER_VECTORIZATION_LEVEL 0
141#define DEAL_II_HAVE_ARM_NEON
143#define DEAL_II_OPENMP_SIMD_PRAGMA _Pragma("omp simd")
153#define DEAL_II_HAVE_CXX17
157#define DEAL_II_HAVE_FP_EXCEPTIONS
159#define DEAL_II_HAVE_CXX17_BESSEL_FUNCTIONS
164#define DEAL_II_WITH_CXX11
165#define DEAL_II_WITH_CXX14
166#define DEAL_II_WITH_CXX17
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)
177# define DEAL_II_CXX20_REQUIRES(condition)
185#ifdef DEAL_II_HAVE_CXX23
186# define define DEAL_II_ASSUME(expr) [[assume(expr)]]
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);
194# define DEAL_II_CXX23_ASSUME(expr) \
207#define DEAL_II_DEPRECATED [[deprecated]]
208#define DEAL_II_DEPRECATED_WITH_COMMENT(comment) [[deprecated(comment)]]
217#ifndef DEAL_II_DEPRECATED_EARLY
219#ifdef DEAL_II_EARLY_DEPRECATIONS
220#define DEAL_II_DEPRECATED_EARLY [[deprecated]]
222#define DEAL_II_DEPRECATED_EARLY
226#ifndef DEAL_II_DEPRECATED_EARLY_WITH_COMMENT
228#ifdef DEAL_II_EARLY_DEPRECATIONS
229#define DEAL_II_DEPRECATED_EARLY_WITH_COMMENT(comment) [[deprecated(comment)]]
231#define DEAL_II_DEPRECATED_EARLY_WITH_COMMENT(comment)
235#define DEAL_II_FALLTHROUGH [[fallthrough]]
236#define DEAL_II_CONSTEXPR constexpr
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
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
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) \
335 (major)*10000 + (minor)*100 + (subminor))
340#define DEAL_II_BOOST_VERSION_MAJOR 1
341#define DEAL_II_BOOST_VERSION_MINOR 70
342#define DEAL_II_BOOST_VERSION_SUBMINOR 0
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) \
349 (major)*100000 + (minor)*100 + (subminor))
354#ifdef DEAL_II_WITH_GMSH
355# define DEAL_II_GMSH_EXECUTABLE_PATH ""
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
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) \
372 (major)*10000 + (minor)*100 + (subminor))
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
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) \
391 (major)*1000000 + (minor)*10000 + (subminor)*100 + (patch))
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
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) \
408 (major)*10000 + (minor)*100 + (patch))
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) \
415 (major)*10000 + (minor)*100 + (patch))
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)
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)
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
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) \
457 (major)*10000 + (minor)*100 + (subminor))
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
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))
479#ifdef DEAL_II_WITH_MPI
480# define DEAL_II_MPI_VERSION_MAJOR
481# define DEAL_II_MPI_VERSION_MINOR
483# define DEAL_II_MPI_VERSION_GTE(major,minor) \
484 ((DEAL_II_MPI_VERSION_MAJOR * 100 + \
485 DEAL_II_MPI_VERSION_MINOR) \
487 (major)*100 + (minor))
489# define DEAL_II_MPI_VERSION_GTE(major,minor) false
493#ifdef DEAL_II_MPI_WITH_DEVICE_SUPPORT
502#define DEAL_II_NAMESPACE_OPEN namespace dealii {
503#define DEAL_II_NAMESPACE_CLOSE }
513#ifdef DEAL_II_COMPILER_HAS_DIAGNOSTIC_PRAGMA
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\"")
559# define DEAL_II_ENABLE_EXTRA_DIAGNOSTICS \
560_Pragma("GCC diagnostic pop")
564# define DEAL_II_DISABLE_EXTRA_DIAGNOSTICS
565# define DEAL_II_ENABLE_EXTRA_DIAGNOSTICS
574#define DEAL_II_FORTRAN_MANGLE(name, NAME) name ## _
576#define DEAL_II_FORTRAN_MANGLE_UNDERSCORE(name, NAME) name ## _
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))
590 #define DEAL_II_DO_PRAGMA(x) _Pragma(#x)
591 #define DEAL_II_WARNING(desc) DEAL_II_DO_PRAGMA(message(#desc))
603#if defined(DEAL_II_WITH_MPI)
618#include <boost/version.hpp>
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 "
#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