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.4.1"
28#define DEAL_II_VERSION_MAJOR 9
29#define DEAL_II_VERSION_MINOR 4
30#define DEAL_II_VERSION_SUBMINOR 1
38#define DEAL_II_WITH_ADOLC
39#define DEAL_II_WITH_ARPACK
41#define DEAL_II_WITH_ASSIMP
42#define DEAL_II_WITH_CGAL
43#define DEAL_II_WITH_COMPLEX_VALUES
45#define DEAL_II_WITH_GINKGO
46#define DEAL_II_WITH_GMSH
47#define DEAL_II_WITH_GSL
50#define DEAL_II_WITH_LAPACK
53#define DEAL_II_WITH_METIS
55#define DEAL_II_WITH_MUPARSER
61#define DEAL_II_WITH_SUNDIALS
62#define DEAL_II_WITH_SYMENGINE
64#define DEAL_II_WITH_TBB
66#define DEAL_II_WITH_UMFPACK
67#define DEAL_II_WITH_ZLIB
69#ifdef DEAL_II_WITH_TBB
74#define DEAL_II_WITH_THREADS
76#define TBB_SUPPRESS_DEPRECATED_MESSAGES 1
78#define DEAL_II_TBB_WITH_ONEAPI
96#define DEAL_II_COMPILER_USE_VECTOR_ARITHMETICS
98#define DEAL_II_HAVE_BUILTIN_EXPECT
99#define DEAL_II_HAVE_GLIBC_STACKTRACE
100#define DEAL_II_HAVE_LIBSTDCXX_DEMANGLER
102#define DEAL_II_ALWAYS_INLINE __attribute__((always_inline))
103#define DEAL_II_RESTRICT __restrict
104#define DEAL_II_COMPILER_HAS_DIAGNOSTIC_PRAGMA
110#if defined(DEAL_II_WITH_CUDA) && defined(__CUDACC__)
111# define DEAL_II_COMPILER_CUDA_AWARE
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_OPENMP_SIMD_PRAGMA _Pragma("omp simd")
151#define DEAL_II_HAVE_CXX14
152#define DEAL_II_HAVE_CXX17
155#define DEAL_II_HAVE_FP_EXCEPTIONS
157#define DEAL_II_HAVE_CXX17_BESSEL_FUNCTIONS
164#define DEAL_II_DEPRECATED [[deprecated]]
172#ifndef DEAL_II_DEPRECATED_EARLY
174#define DEAL_II_DEPRECATED_EARLY
176#define DEAL_II_FALLTHROUGH [[fallthrough]]
177#define DEAL_II_CONSTEXPR constexpr
180#define DEAL_II_WITH_CXX11
181#define DEAL_II_WITH_CXX14
182#ifdef DEAL_II_HAVE_CXX17
183# define DEAL_II_WITH_CXX17
193#define DEAL_II_HAVE_SYS_RESOURCE_H
194#define DEAL_II_HAVE_UNISTD_H
195#define DEAL_II_HAVE_GETHOSTNAME
196#define DEAL_II_HAVE_GETPID
210#define DEAL_II_ADOLC_WITH_ATRIG_ERF
211#define DEAL_II_ADOLC_WITH_ADVANCED_BRANCHING
225#define DEAL_II_PETSC_WITH_HYPRE
226#define DEAL_II_PETSC_WITH_MUMPS
229#define DEAL_II_SUNDIALS_WITH_IDAS
232#define DEAL_II_SYMENGINE_WITH_LLVM
250#if defined(DEAL_II_BOOST_HAS_BROKEN_HEADER_DEPRECATIONS) || \
251 defined(DEAL_II_CGAL_HAS_DEPRECATED_BOOST_INCLUDES)
252# ifndef BOOST_ALLOW_DEPRECATED_HEADERS
253# define BOOST_ALLOW_DEPRECATED_HEADERS
274#define DEAL_II_VERSION_GTE(major,minor,subminor) \
275 ((DEAL_II_VERSION_MAJOR * 10000 + \
276 DEAL_II_VERSION_MINOR * 100 + \
277 DEAL_II_VERSION_SUBMINOR) \
279 (major)*10000 + (minor)*100 + (subminor))
284#define DEAL_II_BOOST_VERSION_MAJOR 1
285#define DEAL_II_BOOST_VERSION_MINOR 80
286#define DEAL_II_BOOST_VERSION_SUBMINOR 0
288#define DEAL_II_BOOST_VERSION_GTE(major,minor,subminor) \
289 ((DEAL_II_BOOST_VERSION_MAJOR * 100000 + \
290 DEAL_II_BOOST_VERSION_MINOR * 100 + \
291 DEAL_II_BOOST_VERSION_SUBMINOR) \
293 (major)*100000 + (minor)*100 + (subminor))
298#ifdef DEAL_II_WITH_GMSH
299# define DEAL_II_GMSH_EXECUTABLE_PATH "/usr/bin/gmsh"
306#ifdef DEAL_II_WITH_OPENCASCADE
307# define DEAL_II_OPENCASCADE_VERSION_MAJOR 7
308# define DEAL_II_OPENCASCADE_VERSION_MINOR 7
309# define DEAL_II_OPENCASCADE_VERSION_SUBMINOR 0
311# define DEAL_II_OPENCASCADE_VERSION_GTE(major,minor,subminor) \
312 ((DEAL_II_OPENCASCADE_VERSION_MAJOR * 10000 + \
313 DEAL_II_OPENCASCADE_VERSION_MINOR * 100 + \
314 DEAL_II_OPENCASCADE_VERSION_SUBMINOR) \
316 (major)*10000 + (minor)*100 + (subminor))
323#ifdef DEAL_II_WITH_P4EST
324# define DEAL_II_P4EST_VERSION_MAJOR
325# define DEAL_II_P4EST_VERSION_MINOR
326# define DEAL_II_P4EST_VERSION_SUBMINOR
327# define DEAL_II_P4EST_VERSION_PATCH
329# define DEAL_II_P4EST_VERSION_GTE(major,minor,subminor,patch) \
330 ((DEAL_II_P4EST_VERSION_MAJOR * 1000000 + \
331 DEAL_II_P4EST_VERSION_MINOR * 10000 + \
332 DEAL_II_P4EST_VERSION_SUBMINOR * 100 + \
333 DEAL_II_P4EST_VERSION_PATCH) \
335 (major)*1000000 + (minor)*10000 + (subminor)*100 + (patch))
342#ifdef DEAL_II_WITH_SUNDIALS
343 # define DEAL_II_SUNDIALS_VERSION_MAJOR 6
344 # define DEAL_II_SUNDIALS_VERSION_MINOR 2
345 # define DEAL_II_SUNDIALS_VERSION_PATCH 0
347 #define DEAL_II_SUNDIALS_VERSION_GTE(major,minor,patch) \
348 ((DEAL_II_SUNDIALS_VERSION_MAJOR * 10000 + \
349 DEAL_II_SUNDIALS_VERSION_MINOR * 100 + \
350 DEAL_II_SUNDIALS_VERSION_PATCH) \
352 (major)*10000 + (minor)*100 + (patch))
354 #define DEAL_II_SUNDIALS_VERSION_LT(major,minor,patch) \
355 ((DEAL_II_SUNDIALS_VERSION_MAJOR * 10000 + \
356 DEAL_II_SUNDIALS_VERSION_MINOR * 100 + \
357 DEAL_II_SUNDIALS_VERSION_PATCH) \
359 (major)*10000 + (minor)*100 + (patch))
376#define DEAL_II_PETSC_VERSION_LT(major,minor,subminor) \
377 ((PETSC_VERSION_MAJOR * 10000 + \
378 PETSC_VERSION_MINOR * 100 + \
379 PETSC_VERSION_SUBMINOR) \
381 (major)*10000 + (minor)*100 + (subminor))
383#define DEAL_II_PETSC_VERSION_GTE(major,minor,subminor) \
384 ((PETSC_VERSION_MAJOR * 10000 + \
385 PETSC_VERSION_MINOR * 100 + \
386 PETSC_VERSION_SUBMINOR) \
388 (major)*10000 + (minor)*100 + (subminor))
394#define DEAL_II_SLEPC_VERSION_GTE(major,minor,subminor) \
395 ((SLEPC_VERSION_MAJOR * 10000 + \
396 SLEPC_VERSION_MINOR * 100 + \
397 SLEPC_VERSION_SUBMINOR) \
399 (major)*10000 + (minor)*100 + (subminor))
405#ifdef DEAL_II_WITH_TRILINOS
406# define DEAL_II_TRILINOS_VERSION_MAJOR
407# define DEAL_II_TRILINOS_VERSION_MINOR
408# define DEAL_II_TRILINOS_VERSION_SUBMINOR
410# define DEAL_II_TRILINOS_VERSION_GTE(major,minor,subminor) \
411 ((DEAL_II_TRILINOS_VERSION_MAJOR * 10000 + \
412 DEAL_II_TRILINOS_VERSION_MINOR * 100 + \
413 DEAL_II_TRILINOS_VERSION_SUBMINOR) \
415 (major)*10000 + (minor)*100 + (subminor))
422#ifdef DEAL_II_WITH_MPI
423# define DEAL_II_MPI_VERSION_MAJOR
424# define DEAL_II_MPI_VERSION_MINOR
426# define DEAL_II_MPI_VERSION_GTE(major,minor) \
427 ((DEAL_II_MPI_VERSION_MAJOR * 100 + \
428 DEAL_II_MPI_VERSION_MINOR) \
430 (major)*100 + (minor))
432# define DEAL_II_MPI_VERSION_GTE(major,minor) false
442#define DEAL_II_NAMESPACE_OPEN namespace dealii {
443#define DEAL_II_NAMESPACE_CLOSE }
453#ifdef DEAL_II_COMPILER_HAS_DIAGNOSTIC_PRAGMA
456# define DEAL_II_DISABLE_EXTRA_DIAGNOSTICS \
457_Pragma("GCC diagnostic push") \
458_Pragma("GCC diagnostic ignored \"-Wunknown-pragmas\"") \
459_Pragma("GCC diagnostic ignored \"-Wpragmas\"") \
460_Pragma("GCC diagnostic ignored \"-Wunknown-warning-option\"") \
461_Pragma("GCC diagnostic ignored \"-Wunknown-warning\"") \
462_Pragma("GCC diagnostic ignored \"-Wextra\"") \
463_Pragma("GCC diagnostic ignored \"-Waddress-of-packed-member\"") \
464_Pragma("GCC diagnostic ignored \"-Wdeprecated-copy\"") \
465_Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") \
466_Pragma("GCC diagnostic ignored \"-Wdeprecated-volatile\"") \
467_Pragma("GCC diagnostic ignored \"-Wexpansion-to-defined\"") \
468_Pragma("GCC diagnostic ignored \"-Wignored-attributes\"") \
469_Pragma("GCC diagnostic ignored \"-Wignored-qualifiers\"") \
470_Pragma("GCC diagnostic ignored \"-Wimplicit-fallthrough\"") \
471_Pragma("GCC diagnostic ignored \"-Winfinite-recursion\"") \
472_Pragma("GCC diagnostic ignored \"-Wint-in-bool-context\"") \
473_Pragma("GCC diagnostic ignored \"-Wmisleading-indentation\"") \
474_Pragma("GCC diagnostic ignored \"-Wmissing-field-initializers\"") \
475_Pragma("GCC diagnostic ignored \"-Wnested-anon-types\"") \
476_Pragma("GCC diagnostic ignored \"-Wnon-virtual-dtor\"") \
477_Pragma("GCC diagnostic ignored \"-Wnonnull\"") \
478_Pragma("GCC diagnostic ignored \"-Woverflow\"") \
479_Pragma("GCC diagnostic ignored \"-Woverloaded-virtual\"") \
480_Pragma("GCC diagnostic ignored \"-Wpedantic\"") \
481_Pragma("GCC diagnostic ignored \"-Wsuggest-override\"") \
482_Pragma("GCC diagnostic ignored \"-Wtautological-constant-out-of-range-compare\"") \
483_Pragma("GCC diagnostic ignored \"-Wtautological-overlap-compare\"") \
484_Pragma("GCC diagnostic ignored \"-Wtype-limits\"") \
485_Pragma("GCC diagnostic ignored \"-Wundef\"") \
486_Pragma("GCC diagnostic ignored \"-Wunused-but-set-parameter\"") \
487_Pragma("GCC diagnostic ignored \"-Wunused-but-set-variable\"") \
488_Pragma("GCC diagnostic ignored \"-Wunused-function\"") \
489_Pragma("GCC diagnostic ignored \"-Wunused-parameter\"") \
490_Pragma("GCC diagnostic ignored \"-Wunused-private-field\"") \
491_Pragma("GCC diagnostic ignored \"-Wunused-variable\"") \
492_Pragma("GCC diagnostic ignored \"-Wuse-after-free\"") \
493_Pragma("GCC diagnostic warning \"-Wpragmas\"")
495# define DEAL_II_ENABLE_EXTRA_DIAGNOSTICS \
496_Pragma("GCC diagnostic pop")
500# define DEAL_II_DISABLE_EXTRA_DIAGNOSTICS
501# define DEAL_II_ENABLE_EXTRA_DIAGNOSTICS
510#define DEAL_II_FORTRAN_MANGLE(name, NAME) name ## _
512#define DEAL_II_FORTRAN_MANGLE_UNDERSCORE(name, NAME) name ## _
521 #define DEAL_II_STRINGIZE_HELPER(x) #x
522 #define DEAL_II_STRINGIZE(x) DEAL_II_STRINGIZE_HELPER(x)
523 #define DEAL_II_DO_PRAGMA(x) __pragma(x)
524 #define DEAL_II_WARNING(desc) DEAL_II_DO_PRAGMA(message(__FILE__ "(" DEAL_II_STRINGIZE(__LINE__) ") : warning: " #desc))
526 #define DEAL_II_DO_PRAGMA(x) _Pragma(#x)
527 #define DEAL_II_WARNING(desc) DEAL_II_DO_PRAGMA(message(#desc))
538#if defined(DEAL_II_WITH_MPI) || defined(DEAL_II_WITH_PETSC)
553#include <boost/version.hpp>
558 "The version number of boost that you are compiling with does not match the "
559 "version number of boost found during deal.II's configuration step. This "
560 "leads to difficult to understand bugs and is not supported. Please check "
561 "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