15#ifndef dealii_config_h
16#define dealii_config_h
21#include <Kokkos_Macros.hpp>
27#define DEAL_II_PACKAGE_NAME "deal.II"
29#define DEAL_II_PACKAGE_VERSION "GIT relicensing-2890-gf173123fa3 2025-03-22 01:40:00+00:00"
31#define DEAL_II_VERSION_MAJOR GIT relicensing-2890-gf173123fa3 2025-03-22 01:40:00+00:00
32#define DEAL_II_VERSION_MINOR GIT relicensing-2890-gf173123fa3 2025-03-22 01:40:00+00:00
33#define DEAL_II_VERSION_SUBMINOR GIT relicensing-2890-gf173123fa3 2025-03-22 01:40:00+00:00
40#define DEAL_II_NAMESPACE_OPEN namespace dealii {
41#define DEAL_II_NAMESPACE_CLOSE }
96#define DEAL_II_FEATURE_BOOST_BUNDLED_CONFIGURED
103#define DEAL_II_WITH_KOKKOS
104#define DEAL_II_FEATURE_KOKKOS_BUNDLED_CONFIGURED
111#define DEAL_II_WITH_MUPARSER
112#define DEAL_II_FEATURE_MUPARSER_BUNDLED_CONFIGURED
120#define DEAL_II_WITH_TASKFLOW
121#define DEAL_II_FEATURE_TASKFLOW_BUNDLED_CONFIGURED
122#define DEAL_II_WITH_TBB
123#define DEAL_II_FEATURE_TBB_BUNDLED_CONFIGURED
127#define DEAL_II_USE_VECTORIZATION_GATHER
131#ifdef DEAL_II_WITH_TBB
136#define DEAL_II_WITH_THREADS
138#define TBB_SUPPRESS_DEPRECATED_MESSAGES 1
158#define DEAL_II_COMPILER_USE_VECTOR_ARITHMETICS
160#define DEAL_II_HAVE_BUILTIN_EXPECT
161#define DEAL_II_HAVE_GLIBC_STACKTRACE
162#define DEAL_II_HAVE_LIBSTDCXX_DEMANGLER
164#define DEAL_II_ALWAYS_INLINE __attribute__((always_inline))
165#define DEAL_II_RESTRICT __restrict
166#define DEAL_II_COMPILER_HAS_DIAGNOSTIC_PRAGMA
169#define DEAL_II_HOST_DEVICE KOKKOS_FUNCTION
170#define DEAL_II_HOST_DEVICE_ALWAYS_INLINE KOKKOS_FORCEINLINE_FUNCTION
176#if (defined(__clang__) && defined(__CUDA__)) || defined(KOKKOS_ENABLE_HIP)
177# define DEAL_II_HOST __host__
196#define DEAL_II_VECTORIZATION_WIDTH_IN_BITS 128
201#if DEAL_II_VECTORIZATION_WIDTH_IN_BITS == 512
202#define DEAL_II_COMPILER_VECTORIZATION_LEVEL 3
203#elif DEAL_II_VECTORIZATION_WIDTH_IN_BITS == 256
204#define DEAL_II_COMPILER_VECTORIZATION_LEVEL 2
205#elif DEAL_II_VECTORIZATION_WIDTH_IN_BITS == 128
206#define DEAL_II_COMPILER_VECTORIZATION_LEVEL 1
208#define DEAL_II_COMPILER_VECTORIZATION_LEVEL 0
211#define DEAL_II_OPENMP_SIMD_PRAGMA _Pragma("omp simd")
221#define DEAL_II_HAVE_CXX17
225#define DEAL_II_HAVE_FP_EXCEPTIONS
227#define DEAL_II_HAVE_CXX17_BESSEL_FUNCTIONS
232#define DEAL_II_WITH_CXX11
233#define DEAL_II_WITH_CXX14
234#define DEAL_II_WITH_CXX17
242#if defined(DEAL_II_HAVE_CXX20) && !defined(DEAL_II_DOXYGEN_DO_NOT_PARSE_REQUIRES_CLAUSES)
243# define DEAL_II_CXX20_REQUIRES(condition) requires(condition)
245# define DEAL_II_CXX20_REQUIRES(condition)
253#ifdef DEAL_II_HAVE_CXX23
254# define DEAL_II_CXX23_ASSUME(expr) [[assume(expr)]]
256# if defined(__clang__)
257# define DEAL_II_CXX23_ASSUME(expr) __builtin_assume(static_cast<bool>(expr))
258# elif defined(_MSC_VER) || defined(__ICC)
259# define DEAL_II_CXX23_ASSUME(expr) __assume(expr);
262# define DEAL_II_CXX23_ASSUME(expr) \
270#define DEAL_II_FALLTHROUGH [[fallthrough]]
271#define DEAL_II_CONSTEXPR constexpr
283#define DEAL_II_DEPRECATED [[deprecated]]
284#define DEAL_II_DEPRECATED_WITH_COMMENT(comment) [[deprecated(comment)]]
293#ifndef DEAL_II_DEPRECATED_EARLY
295#ifdef DEAL_II_EARLY_DEPRECATIONS
296#define DEAL_II_DEPRECATED_EARLY [[deprecated]]
298#define DEAL_II_DEPRECATED_EARLY
302#ifndef DEAL_II_DEPRECATED_EARLY_WITH_COMMENT
304#ifdef DEAL_II_EARLY_DEPRECATIONS
305#define DEAL_II_DEPRECATED_EARLY_WITH_COMMENT(comment) [[deprecated(comment)]]
307#define DEAL_II_DEPRECATED_EARLY_WITH_COMMENT(comment)
318#define DEAL_II_HAVE_SYS_RESOURCE_H
319#define DEAL_II_HAVE_UNISTD_H
320#define DEAL_II_HAVE_GETHOSTNAME
321#define DEAL_II_HAVE_GETPID
380#if defined(DEAL_II_BOOST_HAS_BROKEN_HEADER_DEPRECATIONS) || \
381 defined(DEAL_II_CGAL_HAS_DEPRECATED_BOOST_INCLUDES)
382# ifndef BOOST_ALLOW_DEPRECATED_HEADERS
383# define BOOST_ALLOW_DEPRECATED_HEADERS
404#define DEAL_II_VERSION_GTE(major,minor,subminor) \
405 ((DEAL_II_VERSION_MAJOR * 10000 + \
406 DEAL_II_VERSION_MINOR * 100 + \
407 DEAL_II_VERSION_SUBMINOR) \
409 (major)*10000 + (minor)*100 + (subminor))
414#define DEAL_II_BOOST_VERSION_MAJOR 1
415#define DEAL_II_BOOST_VERSION_MINOR 84
416#define DEAL_II_BOOST_VERSION_SUBMINOR 0
418#define DEAL_II_BOOST_VERSION_GTE(major,minor,subminor) \
419 ((DEAL_II_BOOST_VERSION_MAJOR * 100000 + \
420 DEAL_II_BOOST_VERSION_MINOR * 100 + \
421 DEAL_II_BOOST_VERSION_SUBMINOR) \
423 (major)*100000 + (minor)*100 + (subminor))
428#ifdef DEAL_II_WITH_GMSH
429# define DEAL_II_GMSH_EXECUTABLE_PATH ""
436#ifdef DEAL_II_WITH_OPENCASCADE
437# define DEAL_II_OPENCASCADE_VERSION_MAJOR
438# define DEAL_II_OPENCASCADE_VERSION_MINOR
439# define DEAL_II_OPENCASCADE_VERSION_SUBMINOR
441# define DEAL_II_OPENCASCADE_VERSION_GTE(major,minor,subminor) \
442 ((DEAL_II_OPENCASCADE_VERSION_MAJOR * 10000 + \
443 DEAL_II_OPENCASCADE_VERSION_MINOR * 100 + \
444 DEAL_II_OPENCASCADE_VERSION_SUBMINOR) \
446 (major)*10000 + (minor)*100 + (subminor))
453#ifdef DEAL_II_WITH_P4EST
454# define DEAL_II_P4EST_VERSION_MAJOR
455# define DEAL_II_P4EST_VERSION_MINOR
456# define DEAL_II_P4EST_VERSION_SUBMINOR
457# define DEAL_II_P4EST_VERSION_PATCH
459# define DEAL_II_P4EST_VERSION_GTE(major,minor,subminor,patch) \
460 ((DEAL_II_P4EST_VERSION_MAJOR * 1000000 + \
461 DEAL_II_P4EST_VERSION_MINOR * 10000 + \
462 DEAL_II_P4EST_VERSION_SUBMINOR * 100 + \
463 DEAL_II_P4EST_VERSION_PATCH) \
465 (major)*1000000 + (minor)*10000 + (subminor)*100 + (patch))
472#ifdef DEAL_II_WITH_SUNDIALS
473 # define DEAL_II_SUNDIALS_VERSION_MAJOR
474 # define DEAL_II_SUNDIALS_VERSION_MINOR
475 # define DEAL_II_SUNDIALS_VERSION_PATCH
477 #define DEAL_II_SUNDIALS_VERSION_GTE(major,minor,patch) \
478 ((DEAL_II_SUNDIALS_VERSION_MAJOR * 10000 + \
479 DEAL_II_SUNDIALS_VERSION_MINOR * 100 + \
480 DEAL_II_SUNDIALS_VERSION_PATCH) \
482 (major)*10000 + (minor)*100 + (patch))
484 #define DEAL_II_SUNDIALS_VERSION_LT(major,minor,patch) \
485 ((DEAL_II_SUNDIALS_VERSION_MAJOR * 10000 + \
486 DEAL_II_SUNDIALS_VERSION_MINOR * 100 + \
487 DEAL_II_SUNDIALS_VERSION_PATCH) \
489 (major)*10000 + (minor)*100 + (patch))
499#ifdef DEAL_II_WITH_PETSC
500# define DEAL_II_PETSC_VERSION_LT(major,minor,subminor) \
501 PETSC_VERSION_LT(major,minor,subminor)
502# define DEAL_II_PETSC_VERSION_GTE(major,minor,subminor) \
503 PETSC_VERSION_GE(major,minor,subminor)
510#ifdef DEAL_II_WITH_SLEPC
511# define DEAL_II_SLEPC_VERSION_LT(major,minor,subminor) \
512 SLEPC_VERSION_LT(major,minor,subminor)
513# define DEAL_II_SLEPC_VERSION_GTE(major,minor,subminor) \
514 SLEPC_VERSION_GE(major,minor,subminor)
521#ifdef DEAL_II_WITH_TRILINOS
522# define DEAL_II_TRILINOS_VERSION_MAJOR
523# define DEAL_II_TRILINOS_VERSION_MINOR
524# define DEAL_II_TRILINOS_VERSION_SUBMINOR
526# define DEAL_II_TRILINOS_VERSION_GTE(major,minor,subminor) \
527 ((DEAL_II_TRILINOS_VERSION_MAJOR * 10000 + \
528 DEAL_II_TRILINOS_VERSION_MINOR * 100 + \
529 DEAL_II_TRILINOS_VERSION_SUBMINOR) \
531 (major)*10000 + (minor)*100 + (subminor))
538#ifdef DEAL_II_WITH_CGAL
539# define DEAL_II_CGAL_VERSION_MAJOR
540# define DEAL_II_CGAL_VERSION_MINOR
541# define DEAL_II_CGAL_VERSION_SUBMINOR
543# define DEAL_II_CGAL_VERSION_GTE(major, minor, subminor) \
544 ((DEAL_II_CGAL_VERSION_MAJOR * 10000 + DEAL_II_CGAL_VERSION_MINOR * 100 + \
545 DEAL_II_CGAL_VERSION_SUBMINOR) >= \
546 (major)*10000 + (minor)*100 + (subminor))
553#ifdef DEAL_II_WITH_MPI
554# define DEAL_II_MPI_VERSION_MAJOR
555# define DEAL_II_MPI_VERSION_MINOR
557# define DEAL_II_MPI_VERSION_GTE(major,minor) \
558 ((DEAL_II_MPI_VERSION_MAJOR * 100 + \
559 DEAL_II_MPI_VERSION_MINOR) \
561 (major)*100 + (minor))
563# define DEAL_II_MPI_VERSION_GTE(major,minor) false
576#ifdef DEAL_II_COMPILER_HAS_DIAGNOSTIC_PRAGMA
579# define DEAL_II_DISABLE_EXTRA_DIAGNOSTICS \
580_Pragma("GCC diagnostic push") \
581_Pragma("GCC diagnostic ignored \"-Wunknown-pragmas\"") \
582_Pragma("GCC diagnostic ignored \"-Wpragmas\"") \
583_Pragma("GCC diagnostic ignored \"-Wunknown-warning-option\"") \
584_Pragma("GCC diagnostic ignored \"-Wunknown-warning\"") \
585_Pragma("GCC diagnostic ignored \"-Wextra\"") \
586_Pragma("GCC diagnostic ignored \"-Waddress-of-packed-member\"") \
587_Pragma("GCC diagnostic ignored \"-Wcast-function-type\"") \
588_Pragma("GCC diagnostic ignored \"-Wdeprecated-copy\"") \
589_Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") \
590_Pragma("GCC diagnostic ignored \"-Wdeprecated-volatile\"") \
591_Pragma("GCC diagnostic ignored \"-Wexpansion-to-defined\"") \
592_Pragma("GCC diagnostic ignored \"-Wfloat-conversion\"") \
593_Pragma("GCC diagnostic ignored \"-Wignored-attributes\"") \
594_Pragma("GCC diagnostic ignored \"-Wignored-qualifiers\"") \
595_Pragma("GCC diagnostic ignored \"-Wimplicit-fallthrough\"") \
596_Pragma("GCC diagnostic ignored \"-Winfinite-recursion\"") \
597_Pragma("GCC diagnostic ignored \"-Wint-in-bool-context\"") \
598_Pragma("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") \
599_Pragma("GCC diagnostic ignored \"-Wmisleading-indentation\"") \
600_Pragma("GCC diagnostic ignored \"-Wmissing-field-initializers\"") \
601_Pragma("GCC diagnostic ignored \"-Wnested-anon-types\"") \
602_Pragma("GCC diagnostic ignored \"-Wnon-template-friend\"") \
603_Pragma("GCC diagnostic ignored \"-Wnon-virtual-dtor\"") \
604_Pragma("GCC diagnostic ignored \"-Wnonnull\"") \
605_Pragma("GCC diagnostic ignored \"-Woverflow\"") \
606_Pragma("GCC diagnostic ignored \"-Woverloaded-virtual\"") \
607_Pragma("GCC diagnostic ignored \"-Wpedantic\"") \
608_Pragma("GCC diagnostic ignored \"-Wsuggest-override\"") \
609_Pragma("GCC diagnostic ignored \"-Wtautological-constant-out-of-range-compare\"") \
610_Pragma("GCC diagnostic ignored \"-Wtautological-overlap-compare\"") \
611_Pragma("GCC diagnostic ignored \"-Wtype-limits\"") \
612_Pragma("GCC diagnostic ignored \"-Wundef\"") \
613_Pragma("GCC diagnostic ignored \"-Wunused-but-set-parameter\"") \
614_Pragma("GCC diagnostic ignored \"-Wunused-but-set-variable\"") \
615_Pragma("GCC diagnostic ignored \"-Wunused-function\"") \
616_Pragma("GCC diagnostic ignored \"-Wunused-parameter\"") \
617_Pragma("GCC diagnostic ignored \"-Wunused-private-field\"") \
618_Pragma("GCC diagnostic ignored \"-Wunused-variable\"") \
619_Pragma("GCC diagnostic ignored \"-Wuse-after-free\"") \
620_Pragma("GCC diagnostic warning \"-Wpragmas\"")
622# define DEAL_II_ENABLE_EXTRA_DIAGNOSTICS \
623_Pragma("GCC diagnostic pop")
627# define DEAL_II_DISABLE_EXTRA_DIAGNOSTICS
628# define DEAL_II_ENABLE_EXTRA_DIAGNOSTICS
637#define DEAL_II_FORTRAN_MANGLE(name, NAME) name ## _
639#define DEAL_II_FORTRAN_MANGLE_UNDERSCORE(name, NAME) name ## _
648 #define DEAL_II_STRINGIZE_HELPER(x) #x
649 #define DEAL_II_STRINGIZE(x) DEAL_II_STRINGIZE_HELPER(x)
650 #define DEAL_II_DO_PRAGMA(x) __pragma(x)
651 #define DEAL_II_WARNING(desc) DEAL_II_DO_PRAGMA(message(__FILE__ "(" DEAL_II_STRINGIZE(__LINE__) ") : warning: " #desc))
653 #define DEAL_II_DO_PRAGMA(x) _Pragma(#x)
654 #define DEAL_II_WARNING(desc) DEAL_II_DO_PRAGMA(message(#desc))
668#include <boost/version.hpp>
673 "The version number of boost that you are compiling with does not match the "
674 "version number of boost found during deal.II's configuration step. This "
675 "leads to difficult to understand bugs and is not supported. Please check "
676 "that you have set up your application with the same version of boost as "
#define DEAL_II_BOOST_VERSION_MINOR
constexpr LibraryBuildMode library_build_mode
#define DEAL_II_NAMESPACE_OPEN
constexpr bool running_in_debug_mode()
#define DEAL_II_BOOST_VERSION_MAJOR
#define DEAL_II_NAMESPACE_CLOSE
#define DEAL_II_BOOST_VERSION_SUBMINOR