16#ifndef dealii_config_h
17#define dealii_config_h
24#define DEAL_II_PACKAGE_NAME "deal.II"
26#define DEAL_II_PACKAGE_VERSION "9.5.0"
28#define DEAL_II_VERSION_MAJOR 9
29#define DEAL_II_VERSION_MINOR 5
30#define DEAL_II_VERSION_SUBMINOR 0
38#define DEAL_II_WITH_ADOLC
39#define DEAL_II_WITH_ARPACK
41#define DEAL_II_WITH_ASSIMP
43#define DEAL_II_WITH_CGAL
44#define DEAL_II_WITH_COMPLEX_VALUES
46#define DEAL_II_WITH_GINKGO
47#define DEAL_II_WITH_GMSH
48#define DEAL_II_WITH_GSL
50#define DEAL_II_WITH_KOKKOS
52#define DEAL_II_WITH_LAPACK
55#define DEAL_II_WITH_METIS
57#define DEAL_II_WITH_MUPARSER
64#define DEAL_II_WITH_SUNDIALS
65#define DEAL_II_WITH_SYMENGINE
66#define DEAL_II_WITH_TBB
69#define DEAL_II_WITH_UMFPACK
71#define DEAL_II_WITH_ZLIB
73#ifdef DEAL_II_WITH_TBB
78#define DEAL_II_WITH_THREADS
80#define TBB_SUPPRESS_DEPRECATED_MESSAGES 1
82#define DEAL_II_TBB_WITH_ONEAPI
100#define DEAL_II_COMPILER_USE_VECTOR_ARITHMETICS
102#define DEAL_II_HAVE_BUILTIN_EXPECT
103#define DEAL_II_HAVE_GLIBC_STACKTRACE
104#define DEAL_II_HAVE_LIBSTDCXX_DEMANGLER
106#define DEAL_II_ALWAYS_INLINE __attribute__((always_inline))
107#define DEAL_II_RESTRICT __restrict
108#define DEAL_II_COMPILER_HAS_DIAGNOSTIC_PRAGMA
123#define DEAL_II_VECTORIZATION_WIDTH_IN_BITS 128
128#if DEAL_II_VECTORIZATION_WIDTH_IN_BITS == 512
129#define DEAL_II_COMPILER_VECTORIZATION_LEVEL 3
130#elif DEAL_II_VECTORIZATION_WIDTH_IN_BITS == 256
131#define DEAL_II_COMPILER_VECTORIZATION_LEVEL 2
132#elif DEAL_II_VECTORIZATION_WIDTH_IN_BITS == 128
133#define DEAL_II_COMPILER_VECTORIZATION_LEVEL 1
135#define DEAL_II_COMPILER_VECTORIZATION_LEVEL 0
138#define DEAL_II_OPENMP_SIMD_PRAGMA _Pragma("omp simd")
147#define DEAL_II_HAVE_CXX14
148#define DEAL_II_HAVE_CXX17
157#if defined(DEAL_II_HAVE_CXX20) && !defined(DEAL_II_DOXYGEN_DO_NOT_PARSE_REQUIRES_CLAUSES)
158# define DEAL_II_CXX20_REQUIRES(condition) requires(condition)
160# define DEAL_II_CXX20_REQUIRES(condition)
163#define DEAL_II_HAVE_FP_EXCEPTIONS
165#define DEAL_II_HAVE_CXX17_BESSEL_FUNCTIONS
172#define DEAL_II_DEPRECATED [[deprecated]]
180#ifndef DEAL_II_DEPRECATED_EARLY
182#define DEAL_II_DEPRECATED_EARLY
184#define DEAL_II_FALLTHROUGH [[fallthrough]]
185#define DEAL_II_CONSTEXPR constexpr
188#define DEAL_II_WITH_CXX11
189#define DEAL_II_WITH_CXX14
191#ifdef DEAL_II_HAVE_CXX17
192# define DEAL_II_WITH_CXX17
202#define DEAL_II_HAVE_SYS_RESOURCE_H
203#define DEAL_II_HAVE_UNISTD_H
204#define DEAL_II_HAVE_GETHOSTNAME
205#define DEAL_II_HAVE_GETPID
219#define DEAL_II_ADOLC_WITH_ATRIG_ERF
220#define DEAL_II_ADOLC_WITH_ADVANCED_BRANCHING
224#define DEAL_II_ARBORX_WITH_MPI
230#define DEAL_II_GMSH_WITH_API
234#define DEAL_II_PETSC_WITH_HYPRE
235#define DEAL_II_PETSC_WITH_MUMPS
239#define DEAL_II_SUNDIALS_WITH_IDAS
242#define DEAL_II_SYMENGINE_WITH_LLVM
262#if defined(DEAL_II_BOOST_HAS_BROKEN_HEADER_DEPRECATIONS) || \
263 defined(DEAL_II_CGAL_HAS_DEPRECATED_BOOST_INCLUDES)
264# ifndef BOOST_ALLOW_DEPRECATED_HEADERS
265# define BOOST_ALLOW_DEPRECATED_HEADERS
286#define DEAL_II_VERSION_GTE(major,minor,subminor) \
287 ((DEAL_II_VERSION_MAJOR * 10000 + \
288 DEAL_II_VERSION_MINOR * 100 + \
289 DEAL_II_VERSION_SUBMINOR) \
291 (major)*10000 + (minor)*100 + (subminor))
296#define DEAL_II_BOOST_VERSION_MAJOR 1
297#define DEAL_II_BOOST_VERSION_MINOR 82
298#define DEAL_II_BOOST_VERSION_SUBMINOR 0
300#define DEAL_II_BOOST_VERSION_GTE(major,minor,subminor) \
301 ((DEAL_II_BOOST_VERSION_MAJOR * 100000 + \
302 DEAL_II_BOOST_VERSION_MINOR * 100 + \
303 DEAL_II_BOOST_VERSION_SUBMINOR) \
305 (major)*100000 + (minor)*100 + (subminor))
310#ifdef DEAL_II_WITH_GMSH
311# define DEAL_II_GMSH_EXECUTABLE_PATH "/usr/bin/gmsh"
318#ifdef DEAL_II_WITH_OPENCASCADE
319# define DEAL_II_OPENCASCADE_VERSION_MAJOR 7
320# define DEAL_II_OPENCASCADE_VERSION_MINOR 7
321# define DEAL_II_OPENCASCADE_VERSION_SUBMINOR 0
323# define DEAL_II_OPENCASCADE_VERSION_GTE(major,minor,subminor) \
324 ((DEAL_II_OPENCASCADE_VERSION_MAJOR * 10000 + \
325 DEAL_II_OPENCASCADE_VERSION_MINOR * 100 + \
326 DEAL_II_OPENCASCADE_VERSION_SUBMINOR) \
328 (major)*10000 + (minor)*100 + (subminor))
335#ifdef DEAL_II_WITH_P4EST
336# define DEAL_II_P4EST_VERSION_MAJOR
337# define DEAL_II_P4EST_VERSION_MINOR
338# define DEAL_II_P4EST_VERSION_SUBMINOR
339# define DEAL_II_P4EST_VERSION_PATCH
341# define DEAL_II_P4EST_VERSION_GTE(major,minor,subminor,patch) \
342 ((DEAL_II_P4EST_VERSION_MAJOR * 1000000 + \
343 DEAL_II_P4EST_VERSION_MINOR * 10000 + \
344 DEAL_II_P4EST_VERSION_SUBMINOR * 100 + \
345 DEAL_II_P4EST_VERSION_PATCH) \
347 (major)*1000000 + (minor)*10000 + (subminor)*100 + (patch))
354#ifdef DEAL_II_WITH_SUNDIALS
355 # define DEAL_II_SUNDIALS_VERSION_MAJOR 6
356 # define DEAL_II_SUNDIALS_VERSION_MINOR 5
357 # define DEAL_II_SUNDIALS_VERSION_PATCH 0
359 #define DEAL_II_SUNDIALS_VERSION_GTE(major,minor,patch) \
360 ((DEAL_II_SUNDIALS_VERSION_MAJOR * 10000 + \
361 DEAL_II_SUNDIALS_VERSION_MINOR * 100 + \
362 DEAL_II_SUNDIALS_VERSION_PATCH) \
364 (major)*10000 + (minor)*100 + (patch))
366 #define DEAL_II_SUNDIALS_VERSION_LT(major,minor,patch) \
367 ((DEAL_II_SUNDIALS_VERSION_MAJOR * 10000 + \
368 DEAL_II_SUNDIALS_VERSION_MINOR * 100 + \
369 DEAL_II_SUNDIALS_VERSION_PATCH) \
371 (major)*10000 + (minor)*100 + (patch))
388#define DEAL_II_PETSC_VERSION_LT(major,minor,subminor) \
389 ((PETSC_VERSION_MAJOR * 10000 + \
390 PETSC_VERSION_MINOR * 100 + \
391 PETSC_VERSION_SUBMINOR) \
393 (major)*10000 + (minor)*100 + (subminor))
395#define DEAL_II_PETSC_VERSION_GTE(major,minor,subminor) \
396 ((PETSC_VERSION_MAJOR * 10000 + \
397 PETSC_VERSION_MINOR * 100 + \
398 PETSC_VERSION_SUBMINOR) \
400 (major)*10000 + (minor)*100 + (subminor))
406#define DEAL_II_SLEPC_VERSION_GTE(major,minor,subminor) \
407 ((SLEPC_VERSION_MAJOR * 10000 + \
408 SLEPC_VERSION_MINOR * 100 + \
409 SLEPC_VERSION_SUBMINOR) \
411 (major)*10000 + (minor)*100 + (subminor))
417#ifdef DEAL_II_WITH_TRILINOS
418# define DEAL_II_TRILINOS_VERSION_MAJOR
419# define DEAL_II_TRILINOS_VERSION_MINOR
420# define DEAL_II_TRILINOS_VERSION_SUBMINOR
422# define DEAL_II_TRILINOS_VERSION_GTE(major,minor,subminor) \
423 ((DEAL_II_TRILINOS_VERSION_MAJOR * 10000 + \
424 DEAL_II_TRILINOS_VERSION_MINOR * 100 + \
425 DEAL_II_TRILINOS_VERSION_SUBMINOR) \
427 (major)*10000 + (minor)*100 + (subminor))
434#ifdef DEAL_II_WITH_CGAL
435# define DEAL_II_CGAL_VERSION_MAJOR 5
436# define DEAL_II_CGAL_VERSION_MINOR 5
437# define DEAL_II_CGAL_VERSION_SUBMINOR 2
439# define DEAL_II_CGAL_VERSION_GTE(major, minor, subminor) \
440 ((DEAL_II_CGAL_VERSION_MAJOR * 10000 + DEAL_II_CGAL_VERSION_MINOR * 100 + \
441 DEAL_II_CGAL_VERSION_SUBMINOR) >= \
442 (major)*10000 + (minor)*100 + (subminor))
449#ifdef DEAL_II_WITH_MPI
450# define DEAL_II_MPI_VERSION_MAJOR
451# define DEAL_II_MPI_VERSION_MINOR
453# define DEAL_II_MPI_VERSION_GTE(major,minor) \
454 ((DEAL_II_MPI_VERSION_MAJOR * 100 + \
455 DEAL_II_MPI_VERSION_MINOR) \
457 (major)*100 + (minor))
459# define DEAL_II_MPI_VERSION_GTE(major,minor) false
463#ifdef DEAL_II_MPI_WITH_DEVICE_SUPPORT
472#define DEAL_II_NAMESPACE_OPEN namespace dealii {
473#define DEAL_II_NAMESPACE_CLOSE }
483#ifdef DEAL_II_COMPILER_HAS_DIAGNOSTIC_PRAGMA
486# define DEAL_II_DISABLE_EXTRA_DIAGNOSTICS \
487_Pragma("GCC diagnostic push") \
488_Pragma("GCC diagnostic ignored \"-Wunknown-pragmas\"") \
489_Pragma("GCC diagnostic ignored \"-Wpragmas\"") \
490_Pragma("GCC diagnostic ignored \"-Wunknown-warning-option\"") \
491_Pragma("GCC diagnostic ignored \"-Wunknown-warning\"") \
492_Pragma("GCC diagnostic ignored \"-Wextra\"") \
493_Pragma("GCC diagnostic ignored \"-Waddress-of-packed-member\"") \
494_Pragma("GCC diagnostic ignored \"-Wcast-function-type\"") \
495_Pragma("GCC diagnostic ignored \"-Wdeprecated-copy\"") \
496_Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") \
497_Pragma("GCC diagnostic ignored \"-Wdeprecated-volatile\"") \
498_Pragma("GCC diagnostic ignored \"-Wexpansion-to-defined\"") \
499_Pragma("GCC diagnostic ignored \"-Wfloat-conversion\"") \
500_Pragma("GCC diagnostic ignored \"-Wignored-attributes\"") \
501_Pragma("GCC diagnostic ignored \"-Wignored-qualifiers\"") \
502_Pragma("GCC diagnostic ignored \"-Wimplicit-fallthrough\"") \
503_Pragma("GCC diagnostic ignored \"-Winfinite-recursion\"") \
504_Pragma("GCC diagnostic ignored \"-Wint-in-bool-context\"") \
505_Pragma("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") \
506_Pragma("GCC diagnostic ignored \"-Wmisleading-indentation\"") \
507_Pragma("GCC diagnostic ignored \"-Wmissing-field-initializers\"") \
508_Pragma("GCC diagnostic ignored \"-Wnested-anon-types\"") \
509_Pragma("GCC diagnostic ignored \"-Wnon-template-friend\"") \
510_Pragma("GCC diagnostic ignored \"-Wnon-virtual-dtor\"") \
511_Pragma("GCC diagnostic ignored \"-Wnonnull\"") \
512_Pragma("GCC diagnostic ignored \"-Woverflow\"") \
513_Pragma("GCC diagnostic ignored \"-Woverloaded-virtual\"") \
514_Pragma("GCC diagnostic ignored \"-Wpedantic\"") \
515_Pragma("GCC diagnostic ignored \"-Wsuggest-override\"") \
516_Pragma("GCC diagnostic ignored \"-Wtautological-constant-out-of-range-compare\"") \
517_Pragma("GCC diagnostic ignored \"-Wtautological-overlap-compare\"") \
518_Pragma("GCC diagnostic ignored \"-Wtype-limits\"") \
519_Pragma("GCC diagnostic ignored \"-Wundef\"") \
520_Pragma("GCC diagnostic ignored \"-Wunused-but-set-parameter\"") \
521_Pragma("GCC diagnostic ignored \"-Wunused-but-set-variable\"") \
522_Pragma("GCC diagnostic ignored \"-Wunused-function\"") \
523_Pragma("GCC diagnostic ignored \"-Wunused-parameter\"") \
524_Pragma("GCC diagnostic ignored \"-Wunused-private-field\"") \
525_Pragma("GCC diagnostic ignored \"-Wunused-variable\"") \
526_Pragma("GCC diagnostic ignored \"-Wuse-after-free\"") \
527_Pragma("GCC diagnostic warning \"-Wpragmas\"")
529# define DEAL_II_ENABLE_EXTRA_DIAGNOSTICS \
530_Pragma("GCC diagnostic pop")
534# define DEAL_II_DISABLE_EXTRA_DIAGNOSTICS
535# define DEAL_II_ENABLE_EXTRA_DIAGNOSTICS
544#define DEAL_II_FORTRAN_MANGLE(name, NAME) name ## _
546#define DEAL_II_FORTRAN_MANGLE_UNDERSCORE(name, NAME) name ## _
555 #define DEAL_II_STRINGIZE_HELPER(x) #x
556 #define DEAL_II_STRINGIZE(x) DEAL_II_STRINGIZE_HELPER(x)
557 #define DEAL_II_DO_PRAGMA(x) __pragma(x)
558 #define DEAL_II_WARNING(desc) DEAL_II_DO_PRAGMA(message(__FILE__ "(" DEAL_II_STRINGIZE(__LINE__) ") : warning: " #desc))
560 #define DEAL_II_DO_PRAGMA(x) _Pragma(#x)
561 #define DEAL_II_WARNING(desc) DEAL_II_DO_PRAGMA(message(#desc))
571#ifdef DEAL_II_HAVE_CXX17
572 #define DEAL_II_CONSTEXPR_IN_CONDITIONAL constexpr
574 #define DEAL_II_CONSTEXPR_IN_CONDITIONAL
586#if defined(DEAL_II_WITH_MPI) || defined(DEAL_II_WITH_PETSC)
601#include <boost/version.hpp>
606 "The version number of boost that you are compiling with does not match the "
607 "version number of boost found during deal.II's configuration step. This "
608 "leads to difficult to understand bugs and is not supported. Please check "
609 "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