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.3.3"
28#define DEAL_II_VERSION_MAJOR 9
29#define DEAL_II_VERSION_MINOR 3
30#define DEAL_II_VERSION_SUBMINOR 3
38#define DEAL_II_WITH_ADOLC
39#define DEAL_II_WITH_ARPACK
41#define DEAL_II_WITH_ASSIMP
42#define DEAL_II_WITH_COMPLEX_VALUES
44#define DEAL_II_WITH_GINKGO
45#define DEAL_II_WITH_GMSH
46#define DEAL_II_WITH_GSL
49#define DEAL_II_WITH_LAPACK
52#define DEAL_II_WITH_METIS
54#define DEAL_II_WITH_MUPARSER
60#define DEAL_II_WITH_SUNDIALS
61#define DEAL_II_WITH_SYMENGINE
62#define DEAL_II_WITH_TBB
64#define DEAL_II_WITH_UMFPACK
65#define DEAL_II_WITH_ZLIB
67#ifdef DEAL_II_WITH_TBB
72#define DEAL_II_WITH_THREADS
74#define TBB_SUPPRESS_DEPRECATED_MESSAGES 1
76#define DEAL_II_TBB_WITH_ONEAPI
94#define DEAL_II_COMPILER_USE_VECTOR_ARITHMETICS
96#define DEAL_II_HAVE_BUILTIN_EXPECT
97#define DEAL_II_HAVE_GLIBC_STACKTRACE
98#define DEAL_II_HAVE_LIBSTDCXX_DEMANGLER
100#define DEAL_II_ALWAYS_INLINE __attribute__((always_inline))
101#define DEAL_II_RESTRICT __restrict
102#define DEAL_II_COMPILER_HAS_DIAGNOSTIC_PRAGMA
108#if defined(DEAL_II_WITH_CUDA) && defined(__CUDACC__)
109# define DEAL_II_COMPILER_CUDA_AWARE
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
150#define DEAL_II_HAVE_CXX17
153#define DEAL_II_HAVE_FP_EXCEPTIONS
155#define DEAL_II_HAVE_CXX17_BESSEL_FUNCTIONS
162#define DEAL_II_DEPRECATED [[deprecated]]
170#define DEAL_II_DEPRECATED_EARLY
171#define DEAL_II_FALLTHROUGH [[fallthrough]]
172#define DEAL_II_CONSTEXPR constexpr
175#define DEAL_II_WITH_CXX11
176#define DEAL_II_WITH_CXX14
177#ifdef DEAL_II_HAVE_CXX17
178# define DEAL_II_WITH_CXX17
188#define DEAL_II_HAVE_SYS_RESOURCE_H
189#define DEAL_II_HAVE_UNISTD_H
190#define DEAL_II_HAVE_GETHOSTNAME
191#define DEAL_II_HAVE_GETPID
205#define DEAL_II_ADOLC_WITH_ATRIG_ERF
206#define DEAL_II_ADOLC_WITH_ADVANCED_BRANCHING
221#define DEAL_II_SUNDIALS_WITH_IDAS
251#define DEAL_II_VERSION_GTE(major,minor,subminor) \
252 ((DEAL_II_VERSION_MAJOR * 10000 + \
253 DEAL_II_VERSION_MINOR * 100 + \
254 DEAL_II_VERSION_SUBMINOR) \
256 (major)*10000 + (minor)*100 + (subminor))
261#define DEAL_II_BOOST_VERSION_MAJOR 1
262#define DEAL_II_BOOST_VERSION_MINOR 78
263#define DEAL_II_BOOST_VERSION_SUBMINOR 0
265#define DEAL_II_BOOST_VERSION_GTE(major,minor,subminor) \
266 ((DEAL_II_BOOST_VERSION_MAJOR * 100000 + \
267 DEAL_II_BOOST_VERSION_MINOR * 100 + \
268 DEAL_II_BOOST_VERSION_SUBMINOR) \
270 (major)*100000 + (minor)*100 + (subminor))
275#ifdef DEAL_II_WITH_GMSH
276# define DEAL_II_GMSH_EXECUTABLE_PATH "/usr/bin/gmsh"
283#ifdef DEAL_II_WITH_P4EST
284# define DEAL_II_P4EST_VERSION_MAJOR
285# define DEAL_II_P4EST_VERSION_MINOR
286# define DEAL_II_P4EST_VERSION_SUBMINOR
287# define DEAL_II_P4EST_VERSION_PATCH
289# define DEAL_II_P4EST_VERSION_GTE(major,minor,subminor,patch) \
290 ((DEAL_II_P4EST_VERSION_MAJOR * 1000000 + \
291 DEAL_II_P4EST_VERSION_MINOR * 10000 + \
292 DEAL_II_P4EST_VERSION_SUBMINOR * 100 + \
293 DEAL_II_P4EST_VERSION_PATCH) \
295 (major)*1000000 + (minor)*10000 + (subminor)*100 + (patch))
302#ifdef DEAL_II_WITH_SUNDIALS
303 # define DEAL_II_SUNDIALS_VERSION_MAJOR 6
304 # define DEAL_II_SUNDIALS_VERSION_MINOR 2
305 # define DEAL_II_SUNDIALS_VERSION_PATCH 0
307 #define DEAL_II_SUNDIALS_VERSION_GTE(major,minor,patch) \
308 ((DEAL_II_SUNDIALS_VERSION_MAJOR * 10000 + \
309 DEAL_II_SUNDIALS_VERSION_MINOR * 100 + \
310 DEAL_II_SUNDIALS_VERSION_PATCH) \
312 (major)*10000 + (minor)*100 + (patch))
314 #define DEAL_II_SUNDIALS_VERSION_LT(major,minor,patch) \
315 ((DEAL_II_SUNDIALS_VERSION_MAJOR * 10000 + \
316 DEAL_II_SUNDIALS_VERSION_MINOR * 100 + \
317 DEAL_II_SUNDIALS_VERSION_PATCH) \
319 (major)*10000 + (minor)*100 + (patch))
336#define DEAL_II_PETSC_VERSION_LT(major,minor,subminor) \
337 ((PETSC_VERSION_MAJOR * 10000 + \
338 PETSC_VERSION_MINOR * 100 + \
339 PETSC_VERSION_SUBMINOR) \
341 (major)*10000 + (minor)*100 + (subminor))
343#define DEAL_II_PETSC_VERSION_GTE(major,minor,subminor) \
344 ((PETSC_VERSION_MAJOR * 10000 + \
345 PETSC_VERSION_MINOR * 100 + \
346 PETSC_VERSION_SUBMINOR) \
348 (major)*10000 + (minor)*100 + (subminor))
354#define DEAL_II_SLEPC_VERSION_GTE(major,minor,subminor) \
355 ((SLEPC_VERSION_MAJOR * 10000 + \
356 SLEPC_VERSION_MINOR * 100 + \
357 SLEPC_VERSION_SUBMINOR) \
359 (major)*10000 + (minor)*100 + (subminor))
365#ifdef DEAL_II_WITH_TRILINOS
366# define DEAL_II_TRILINOS_VERSION_MAJOR
367# define DEAL_II_TRILINOS_VERSION_MINOR
368# define DEAL_II_TRILINOS_VERSION_SUBMINOR
370# define DEAL_II_TRILINOS_VERSION_GTE(major,minor,subminor) \
371 ((DEAL_II_TRILINOS_VERSION_MAJOR * 10000 + \
372 DEAL_II_TRILINOS_VERSION_MINOR * 100 + \
373 DEAL_II_TRILINOS_VERSION_SUBMINOR) \
375 (major)*10000 + (minor)*100 + (subminor))
382#ifdef DEAL_II_WITH_MPI
383# define DEAL_II_MPI_VERSION_MAJOR
384# define DEAL_II_MPI_VERSION_MINOR
386# define DEAL_II_MPI_VERSION_GTE(major,minor) \
387 ((DEAL_II_MPI_VERSION_MAJOR * 100 + \
388 DEAL_II_MPI_VERSION_MINOR) \
390 (major)*100 + (minor))
392# define DEAL_II_MPI_VERSION_GTE(major,minor) false
402#define DEAL_II_NAMESPACE_OPEN namespace dealii {
403#define DEAL_II_NAMESPACE_CLOSE }
413#ifdef DEAL_II_COMPILER_HAS_DIAGNOSTIC_PRAGMA
416# define DEAL_II_DISABLE_EXTRA_DIAGNOSTICS \
417_Pragma("GCC diagnostic push") \
418_Pragma("GCC diagnostic ignored \"-Wunknown-pragmas\"") \
419_Pragma("GCC diagnostic ignored \"-Wpragmas\"") \
420_Pragma("GCC diagnostic ignored \"-Wunknown-warning-option\"") \
421_Pragma("GCC diagnostic ignored \"-Wunknown-warning\"") \
422_Pragma("GCC diagnostic ignored \"-Wextra\"") \
423_Pragma("GCC diagnostic ignored \"-Waddress-of-packed-member\"") \
424_Pragma("GCC diagnostic ignored \"-Wdeprecated-copy\"") \
425_Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") \
426_Pragma("GCC diagnostic ignored \"-Wdeprecated-volatile\"") \
427_Pragma("GCC diagnostic ignored \"-Wexpansion-to-defined\"") \
428_Pragma("GCC diagnostic ignored \"-Wignored-attributes\"") \
429_Pragma("GCC diagnostic ignored \"-Wignored-qualifiers\"") \
430_Pragma("GCC diagnostic ignored \"-Wimplicit-fallthrough\"") \
431_Pragma("GCC diagnostic ignored \"-Winfinite-recursion\"") \
432_Pragma("GCC diagnostic ignored \"-Wint-in-bool-context\"") \
433_Pragma("GCC diagnostic ignored \"-Wmisleading-indentation\"") \
434_Pragma("GCC diagnostic ignored \"-Wmissing-field-initializers\"") \
435_Pragma("GCC diagnostic ignored \"-Wnested-anon-types\"") \
436_Pragma("GCC diagnostic ignored \"-Wnon-virtual-dtor\"") \
437_Pragma("GCC diagnostic ignored \"-Wnonnull\"") \
438_Pragma("GCC diagnostic ignored \"-Woverflow\"") \
439_Pragma("GCC diagnostic ignored \"-Woverloaded-virtual\"") \
440_Pragma("GCC diagnostic ignored \"-Wpedantic\"") \
441_Pragma("GCC diagnostic ignored \"-Wsuggest-override\"") \
442_Pragma("GCC diagnostic ignored \"-Wtautological-constant-out-of-range-compare\"") \
443_Pragma("GCC diagnostic ignored \"-Wtautological-overlap-compare\"") \
444_Pragma("GCC diagnostic ignored \"-Wtype-limits\"") \
445_Pragma("GCC diagnostic ignored \"-Wundef\"") \
446_Pragma("GCC diagnostic ignored \"-Wunused-but-set-parameter\"") \
447_Pragma("GCC diagnostic ignored \"-Wunused-but-set-variable\"") \
448_Pragma("GCC diagnostic ignored \"-Wunused-function\"") \
449_Pragma("GCC diagnostic ignored \"-Wunused-parameter\"") \
450_Pragma("GCC diagnostic ignored \"-Wunused-private-field\"") \
451_Pragma("GCC diagnostic ignored \"-Wunused-variable\"") \
452_Pragma("GCC diagnostic warning \"-Wpragmas\"")
454# define DEAL_II_ENABLE_EXTRA_DIAGNOSTICS \
455_Pragma("GCC diagnostic pop")
459# define DEAL_II_DISABLE_EXTRA_DIAGNOSTICS
460# define DEAL_II_ENABLE_EXTRA_DIAGNOSTICS
469#define DEAL_II_FORTRAN_MANGLE(name, NAME) name ## _
471#define DEAL_II_FORTRAN_MANGLE_UNDERSCORE(name, NAME) name ## _
480 #define DEAL_II_STRINGIZE_HELPER(x) #x
481 #define DEAL_II_STRINGIZE(x) DEAL_II_STRINGIZE_HELPER(x)
482 #define DEAL_II_DO_PRAGMA(x) __pragma(x)
483 #define DEAL_II_WARNING(desc) DEAL_II_DO_PRAGMA(message(__FILE__ "(" DEAL_II_STRINGIZE(__LINE__) ") : warning: " #desc))
485 #define DEAL_II_DO_PRAGMA(x) _Pragma(#x)
486 #define DEAL_II_WARNING(desc) DEAL_II_DO_PRAGMA(message(#desc))
497#if defined(DEAL_II_WITH_MPI) || defined(DEAL_II_WITH_PETSC)
512#include <boost/version.hpp>
517 "The version number of boost that you are compiling with does not match the "
518 "version number of boost found during deal.II's configuration step. This "
519 "leads to difficult to understand bugs and is not supported. Please check "
520 "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