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.2"
28 #define DEAL_II_VERSION_MAJOR 9
29 #define DEAL_II_VERSION_MINOR 3
30 #define DEAL_II_VERSION_SUBMINOR 2
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
45 #define DEAL_II_WITH_GMSH
46 #define DEAL_II_WITH_GSL
47 #define DEAL_II_WITH_HDF5
48 #define DEAL_II_WITH_KOKKOS
49 #define DEAL_II_WITH_LAPACK
52 #define DEAL_II_WITH_METIS
53 #define DEAL_II_WITH_MPI
54 #define DEAL_II_WITH_MUPARSER
55 #define DEAL_II_WITH_OPENCASCADE
56 #define DEAL_II_WITH_P4EST
57 #define DEAL_II_WITH_PETSC
58 #define DEAL_II_WITH_SCALAPACK
59 #define DEAL_II_WITH_SLEPC
60 #define DEAL_II_WITH_SUNDIALS
62 #define DEAL_II_WITH_TBB
63 #define DEAL_II_WITH_TRILINOS
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
91 #define DEAL_II_COMPILER_USE_VECTOR_ARITHMETICS
93 #define DEAL_II_HAVE_BUILTIN_EXPECT
94 #define DEAL_II_HAVE_GLIBC_STACKTRACE
95 #define DEAL_II_HAVE_LIBSTDCXX_DEMANGLER
97 #define DEAL_II_ALWAYS_INLINE __attribute__((always_inline))
98 #define DEAL_II_RESTRICT __restrict
99 #define DEAL_II_COMPILER_HAS_DIAGNOSTIC_PRAGMA
105 #if defined(DEAL_II_WITH_CUDA) && defined(__CUDACC__)
106 # define DEAL_II_COMPILER_CUDA_AWARE
122 #define DEAL_II_VECTORIZATION_WIDTH_IN_BITS 0
127 #if DEAL_II_VECTORIZATION_WIDTH_IN_BITS == 512
128 #define DEAL_II_COMPILER_VECTORIZATION_LEVEL 3
129 #elif DEAL_II_VECTORIZATION_WIDTH_IN_BITS == 256
130 #define DEAL_II_COMPILER_VECTORIZATION_LEVEL 2
131 #elif DEAL_II_VECTORIZATION_WIDTH_IN_BITS == 128
132 #define DEAL_II_COMPILER_VECTORIZATION_LEVEL 1
134 #define DEAL_II_COMPILER_VECTORIZATION_LEVEL 0
137 #define DEAL_II_OPENMP_SIMD_PRAGMA
146 #define DEAL_II_HAVE_CXX14
147 #define DEAL_II_HAVE_CXX17
152 #define DEAL_II_HAVE_CXX17_BESSEL_FUNCTIONS
159 #define DEAL_II_DEPRECATED [[deprecated]]
167 #define DEAL_II_DEPRECATED_EARLY
168 #define DEAL_II_FALLTHROUGH [[fallthrough]]
169 #define DEAL_II_CONSTEXPR constexpr
172 #define DEAL_II_WITH_CXX11
173 #define DEAL_II_WITH_CXX14
174 #ifdef DEAL_II_HAVE_CXX17
175 # define DEAL_II_WITH_CXX17
185 #define DEAL_II_HAVE_SYS_RESOURCE_H
186 #define DEAL_II_HAVE_UNISTD_H
187 #define DEAL_II_HAVE_GETHOSTNAME
188 #define DEAL_II_HAVE_GETPID
202 #define DEAL_II_ADOLC_WITH_ATRIG_ERF
207 #define DEAL_II_ARPACK_WITH_PARPACK
210 #define DEAL_II_GMSH_WITH_API
214 #define DEAL_II_PETSC_WITH_HYPRE
215 #define DEAL_II_PETSC_WITH_MUMPS
218 #define DEAL_II_SUNDIALS_WITH_IDAS
224 #define DEAL_II_TRILINOS_CXX_SUPPORTS_SACADO_COMPLEX_RAD
225 #define DEAL_II_TRILINOS_WITH_EPETRAEXT
227 #define DEAL_II_TRILINOS_WITH_ROL
228 #define DEAL_II_TRILINOS_WITH_SACADO
231 #define DEAL_II_TRILINOS_WITH_ZOLTAN
245 #define DEAL_II_VERSION_GTE(major,minor,subminor) \
246 ((DEAL_II_VERSION_MAJOR * 10000 + \
247 DEAL_II_VERSION_MINOR * 100 + \
248 DEAL_II_VERSION_SUBMINOR) \
250 (major)*10000 + (minor)*100 + (subminor))
255 #define DEAL_II_BOOST_VERSION_MAJOR 1
256 #define DEAL_II_BOOST_VERSION_MINOR 74
257 #define DEAL_II_BOOST_VERSION_SUBMINOR 0
259 #define DEAL_II_BOOST_VERSION_GTE(major,minor,subminor) \
260 ((DEAL_II_BOOST_VERSION_MAJOR * 100000 + \
261 DEAL_II_BOOST_VERSION_MINOR * 100 + \
262 DEAL_II_BOOST_VERSION_SUBMINOR) \
264 (major)*100000 + (minor)*100 + (subminor))
269 #ifdef DEAL_II_WITH_GMSH
270 # define DEAL_II_GMSH_EXECUTABLE_PATH "/usr/bin/gmsh"
277 #ifdef DEAL_II_WITH_P4EST
278 # define DEAL_II_P4EST_VERSION_MAJOR 2
279 # define DEAL_II_P4EST_VERSION_MINOR 2
280 # define DEAL_II_P4EST_VERSION_SUBMINOR 0
281 # define DEAL_II_P4EST_VERSION_PATCH 0
283 # define DEAL_II_P4EST_VERSION_GTE(major,minor,subminor,patch) \
284 ((DEAL_II_P4EST_VERSION_MAJOR * 1000000 + \
285 DEAL_II_P4EST_VERSION_MINOR * 10000 + \
286 DEAL_II_P4EST_VERSION_SUBMINOR * 100 + \
287 DEAL_II_P4EST_VERSION_PATCH) \
289 (major)*1000000 + (minor)*10000 + (subminor)*100 + (patch))
296 #ifdef DEAL_II_WITH_SUNDIALS
297 # define DEAL_II_SUNDIALS_VERSION_MAJOR 5
298 # define DEAL_II_SUNDIALS_VERSION_MINOR 8
299 # define DEAL_II_SUNDIALS_VERSION_PATCH 0
301 #define DEAL_II_SUNDIALS_VERSION_GTE(major,minor,patch) \
302 ((DEAL_II_SUNDIALS_VERSION_MAJOR * 10000 + \
303 DEAL_II_SUNDIALS_VERSION_MINOR * 100 + \
304 DEAL_II_SUNDIALS_VERSION_PATCH) \
306 (major)*10000 + (minor)*100 + (patch))
308 #define DEAL_II_SUNDIALS_VERSION_LT(major,minor,patch) \
309 ((DEAL_II_SUNDIALS_VERSION_MAJOR * 10000 + \
310 DEAL_II_SUNDIALS_VERSION_MINOR * 100 + \
311 DEAL_II_SUNDIALS_VERSION_PATCH) \
313 (major)*10000 + (minor)*100 + (patch))
330 #define DEAL_II_PETSC_VERSION_LT(major,minor,subminor) \
331 ((PETSC_VERSION_MAJOR * 10000 + \
332 PETSC_VERSION_MINOR * 100 + \
333 PETSC_VERSION_SUBMINOR) \
335 (major)*10000 + (minor)*100 + (subminor))
337 #define DEAL_II_PETSC_VERSION_GTE(major,minor,subminor) \
338 ((PETSC_VERSION_MAJOR * 10000 + \
339 PETSC_VERSION_MINOR * 100 + \
340 PETSC_VERSION_SUBMINOR) \
342 (major)*10000 + (minor)*100 + (subminor))
348 #define DEAL_II_SLEPC_VERSION_GTE(major,minor,subminor) \
349 ((SLEPC_VERSION_MAJOR * 10000 + \
350 SLEPC_VERSION_MINOR * 100 + \
351 SLEPC_VERSION_SUBMINOR) \
353 (major)*10000 + (minor)*100 + (subminor))
359 #ifdef DEAL_II_WITH_TRILINOS
360 # define DEAL_II_TRILINOS_VERSION_MAJOR 13
361 # define DEAL_II_TRILINOS_VERSION_MINOR 2
362 # define DEAL_II_TRILINOS_VERSION_SUBMINOR 0
364 # define DEAL_II_TRILINOS_VERSION_GTE(major,minor,subminor) \
365 ((DEAL_II_TRILINOS_VERSION_MAJOR * 10000 + \
366 DEAL_II_TRILINOS_VERSION_MINOR * 100 + \
367 DEAL_II_TRILINOS_VERSION_SUBMINOR) \
369 (major)*10000 + (minor)*100 + (subminor))
376 #ifdef DEAL_II_WITH_MPI
377 # define DEAL_II_MPI_VERSION_MAJOR 3
378 # define DEAL_II_MPI_VERSION_MINOR 1
380 # define DEAL_II_MPI_VERSION_GTE(major,minor) \
381 ((DEAL_II_MPI_VERSION_MAJOR * 100 + \
382 DEAL_II_MPI_VERSION_MINOR) \
384 (major)*100 + (minor))
386 # define DEAL_II_MPI_VERSION_GTE(major,minor) false
396 #define DEAL_II_NAMESPACE_OPEN namespace dealii {
397 #define DEAL_II_NAMESPACE_CLOSE }
407 #ifdef DEAL_II_COMPILER_HAS_DIAGNOSTIC_PRAGMA
410 # define DEAL_II_DISABLE_EXTRA_DIAGNOSTICS \
411 _Pragma("GCC diagnostic push") \
412 _Pragma("GCC diagnostic ignored \"-Wunknown-pragmas\"") \
413 _Pragma("GCC diagnostic ignored \"-Wpragmas\"") \
414 _Pragma("GCC diagnostic ignored \"-Wunknown-warning-option\"") \
415 _Pragma("GCC diagnostic ignored \"-Wunknown-warning\"") \
416 _Pragma("GCC diagnostic ignored \"-Wextra\"") \
417 _Pragma("GCC diagnostic ignored \"-Waddress-of-packed-member\"") \
418 _Pragma("GCC diagnostic ignored \"-Wdeprecated-copy\"") \
419 _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") \
420 _Pragma("GCC diagnostic ignored \"-Wdeprecated-volatile\"") \
421 _Pragma("GCC diagnostic ignored \"-Wexpansion-to-defined\"") \
422 _Pragma("GCC diagnostic ignored \"-Wignored-attributes\"") \
423 _Pragma("GCC diagnostic ignored \"-Wignored-qualifiers\"") \
424 _Pragma("GCC diagnostic ignored \"-Wimplicit-fallthrough\"") \
425 _Pragma("GCC diagnostic ignored \"-Winfinite-recursion\"") \
426 _Pragma("GCC diagnostic ignored \"-Wint-in-bool-context\"") \
427 _Pragma("GCC diagnostic ignored \"-Wmisleading-indentation\"") \
428 _Pragma("GCC diagnostic ignored \"-Wmissing-field-initializers\"") \
429 _Pragma("GCC diagnostic ignored \"-Wnested-anon-types\"") \
430 _Pragma("GCC diagnostic ignored \"-Wnon-virtual-dtor\"") \
431 _Pragma("GCC diagnostic ignored \"-Wnonnull\"") \
432 _Pragma("GCC diagnostic ignored \"-Woverflow\"") \
433 _Pragma("GCC diagnostic ignored \"-Woverloaded-virtual\"") \
434 _Pragma("GCC diagnostic ignored \"-Wpedantic\"") \
435 _Pragma("GCC diagnostic ignored \"-Wsuggest-override\"") \
436 _Pragma("GCC diagnostic ignored \"-Wtautological-constant-out-of-range-compare\"") \
437 _Pragma("GCC diagnostic ignored \"-Wtautological-overlap-compare\"") \
438 _Pragma("GCC diagnostic ignored \"-Wtype-limits\"") \
439 _Pragma("GCC diagnostic ignored \"-Wundef\"") \
440 _Pragma("GCC diagnostic ignored \"-Wunused-but-set-parameter\"") \
441 _Pragma("GCC diagnostic ignored \"-Wunused-but-set-variable\"") \
442 _Pragma("GCC diagnostic ignored \"-Wunused-function\"") \
443 _Pragma("GCC diagnostic ignored \"-Wunused-parameter\"") \
444 _Pragma("GCC diagnostic ignored \"-Wunused-private-field\"") \
445 _Pragma("GCC diagnostic ignored \"-Wunused-variable\"") \
446 _Pragma("GCC diagnostic warning \"-Wpragmas\"")
448 # define DEAL_II_ENABLE_EXTRA_DIAGNOSTICS \
449 _Pragma("GCC diagnostic pop")
453 # define DEAL_II_DISABLE_EXTRA_DIAGNOSTICS
454 # define DEAL_II_ENABLE_EXTRA_DIAGNOSTICS
463 #define DEAL_II_FORTRAN_MANGLE(name, NAME) name ## _
465 #define DEAL_II_FORTRAN_MANGLE_UNDERSCORE(name, NAME) name ## _
474 #define DEAL_II_STRINGIZE_HELPER(x) #x
475 #define DEAL_II_STRINGIZE(x) DEAL_II_STRINGIZE_HELPER(x)
476 #define DEAL_II_DO_PRAGMA(x) __pragma(x)
477 #define DEAL_II_WARNING(desc) DEAL_II_DO_PRAGMA(message(__FILE__ "(" DEAL_II_STRINGIZE(__LINE__) ") : warning: " #desc))
479 #define DEAL_II_DO_PRAGMA(x) _Pragma(#x)
480 #define DEAL_II_WARNING(desc) DEAL_II_DO_PRAGMA(message(#desc))
491 #if defined(DEAL_II_WITH_MPI) || defined(DEAL_II_WITH_PETSC)
506 #include <boost/version.hpp>
511 "The version number of boost that you are compiling with does not match the "
512 "version number of boost found during deal.II's configuration step. This "
513 "leads to difficult to understand bugs and is not supported. Please check "
514 "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