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.0"
28 #define DEAL_II_VERSION_MAJOR 9
29 #define DEAL_II_VERSION_MINOR 4
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
42 #define DEAL_II_WITH_CGAL
43 #define DEAL_II_WITH_COMPLEX_VALUES
46 #define DEAL_II_WITH_GMSH
47 #define DEAL_II_WITH_GSL
48 #define DEAL_II_WITH_HDF5
49 #define DEAL_II_WITH_KOKKOS
50 #define DEAL_II_WITH_LAPACK
53 #define DEAL_II_WITH_METIS
54 #define DEAL_II_WITH_MPI
55 #define DEAL_II_WITH_MUPARSER
56 #define DEAL_II_WITH_OPENCASCADE
57 #define DEAL_II_WITH_P4EST
58 #define DEAL_II_WITH_PETSC
59 #define DEAL_II_WITH_SCALAPACK
60 #define DEAL_II_WITH_SLEPC
61 #define DEAL_II_WITH_SUNDIALS
64 #define DEAL_II_WITH_TBB
65 #define DEAL_II_WITH_TRILINOS
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 0
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
151 #define DEAL_II_HAVE_CXX14
152 #define DEAL_II_HAVE_CXX17
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
218 #define DEAL_II_ARPACK_WITH_PARPACK
221 #define DEAL_II_GMSH_WITH_API
225 #define DEAL_II_PETSC_WITH_HYPRE
226 #define DEAL_II_PETSC_WITH_MUMPS
229 #define DEAL_II_SUNDIALS_WITH_IDAS
235 #define DEAL_II_BOOST_HAS_BROKEN_HEADER_DEPRECATIONS
241 #define DEAL_II_TRILINOS_CXX_SUPPORTS_SACADO_COMPLEX_RAD
242 #define DEAL_II_TRILINOS_WITH_EPETRAEXT
244 #define DEAL_II_TRILINOS_WITH_ROL
245 #define DEAL_II_TRILINOS_WITH_SACADO
248 #define DEAL_II_TRILINOS_WITH_ZOLTAN
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 74
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 5
309 # define DEAL_II_OPENCASCADE_VERSION_SUBMINOR 2
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 2
325 # define DEAL_II_P4EST_VERSION_MINOR 2
326 # define DEAL_II_P4EST_VERSION_SUBMINOR 0
327 # define DEAL_II_P4EST_VERSION_PATCH 0
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 5
344 # define DEAL_II_SUNDIALS_VERSION_MINOR 8
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 13
407 # define DEAL_II_TRILINOS_VERSION_MINOR 2
408 # define DEAL_II_TRILINOS_VERSION_SUBMINOR 0
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 3
424 # define DEAL_II_MPI_VERSION_MINOR 1
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