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.0"
28 #define DEAL_II_VERSION_MAJOR 9
29 #define DEAL_II_VERSION_MINOR 3
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_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
89 #define DEAL_II_COMPILER_USE_VECTOR_ARITHMETICS
91 #define DEAL_II_HAVE_BUILTIN_EXPECT
92 #define DEAL_II_HAVE_GLIBC_STACKTRACE
93 #define DEAL_II_HAVE_LIBSTDCXX_DEMANGLER
95 #define DEAL_II_ALWAYS_INLINE __attribute__((always_inline))
96 #define DEAL_II_RESTRICT __restrict
97 #define DEAL_II_COMPILER_HAS_DIAGNOSTIC_PRAGMA
103 #if defined(DEAL_II_WITH_CUDA) && defined(__CUDACC__)
104 # define DEAL_II_COMPILER_CUDA_AWARE
120 #define DEAL_II_VECTORIZATION_WIDTH_IN_BITS 0
125 #if DEAL_II_VECTORIZATION_WIDTH_IN_BITS == 512
126 #define DEAL_II_COMPILER_VECTORIZATION_LEVEL 3
127 #elif DEAL_II_VECTORIZATION_WIDTH_IN_BITS == 256
128 #define DEAL_II_COMPILER_VECTORIZATION_LEVEL 2
129 #elif DEAL_II_VECTORIZATION_WIDTH_IN_BITS == 128
130 #define DEAL_II_COMPILER_VECTORIZATION_LEVEL 1
132 #define DEAL_II_COMPILER_VECTORIZATION_LEVEL 0
135 #define DEAL_II_OPENMP_SIMD_PRAGMA
144 #define DEAL_II_HAVE_CXX14
157 #define DEAL_II_DEPRECATED [[deprecated]]
165 #define DEAL_II_DEPRECATED_EARLY
166 #define DEAL_II_FALLTHROUGH [[fallthrough]]
167 #define DEAL_II_CONSTEXPR constexpr
170 #define DEAL_II_WITH_CXX11
171 #define DEAL_II_WITH_CXX14
172 #ifdef DEAL_II_HAVE_CXX17
173 # define DEAL_II_WITH_CXX17
183 #define DEAL_II_HAVE_SYS_RESOURCE_H
184 #define DEAL_II_HAVE_UNISTD_H
185 #define DEAL_II_HAVE_GETHOSTNAME
186 #define DEAL_II_HAVE_GETPID
200 #define DEAL_II_ADOLC_WITH_ATRIG_ERF
205 #define DEAL_II_ARPACK_WITH_PARPACK
208 #define DEAL_II_GMSH_WITH_API
212 #define DEAL_II_PETSC_WITH_HYPRE
213 #define DEAL_II_PETSC_WITH_MUMPS
216 #define DEAL_II_SUNDIALS_WITH_IDAS
222 #define DEAL_II_TRILINOS_CXX_SUPPORTS_SACADO_COMPLEX_RAD
223 #define DEAL_II_TRILINOS_WITH_EPETRAEXT
224 #define DEAL_II_TRILINOS_WITH_MUELU
225 #define DEAL_II_TRILINOS_WITH_ROL
226 #define DEAL_II_TRILINOS_WITH_SACADO
229 #define DEAL_II_TRILINOS_WITH_ZOLTAN
243 #define DEAL_II_VERSION_GTE(major,minor,subminor) \
244 ((DEAL_II_VERSION_MAJOR * 10000 + \
245 DEAL_II_VERSION_MINOR * 100 + \
246 DEAL_II_VERSION_SUBMINOR) \
248 (major)*10000 + (minor)*100 + (subminor))
253 #define DEAL_II_BOOST_VERSION_MAJOR 1
254 #define DEAL_II_BOOST_VERSION_MINOR 74
255 #define DEAL_II_BOOST_VERSION_SUBMINOR 0
257 #define DEAL_II_BOOST_VERSION_GTE(major,minor,subminor) \
258 ((DEAL_II_BOOST_VERSION_MAJOR * 100000 + \
259 DEAL_II_BOOST_VERSION_MINOR * 100 + \
260 DEAL_II_BOOST_VERSION_SUBMINOR) \
262 (major)*100000 + (minor)*100 + (subminor))
267 #ifdef DEAL_II_WITH_GMSH
268 # define DEAL_II_GMSH_EXECUTABLE_PATH "/usr/bin/gmsh"
275 #ifdef DEAL_II_WITH_P4EST
276 # define DEAL_II_P4EST_VERSION_MAJOR 2
277 # define DEAL_II_P4EST_VERSION_MINOR 2
278 # define DEAL_II_P4EST_VERSION_SUBMINOR 0
279 # define DEAL_II_P4EST_VERSION_PATCH 0
281 # define DEAL_II_P4EST_VERSION_GTE(major,minor,subminor,patch) \
282 ((DEAL_II_P4EST_VERSION_MAJOR * 1000000 + \
283 DEAL_II_P4EST_VERSION_MINOR * 10000 + \
284 DEAL_II_P4EST_VERSION_SUBMINOR * 100 + \
285 DEAL_II_P4EST_VERSION_PATCH) \
287 (major)*1000000 + (minor)*10000 + (subminor)*100 + (patch))
294 #ifdef DEAL_II_WITH_SUNDIALS
295 # define DEAL_II_SUNDIALS_VERSION_MAJOR 5
296 # define DEAL_II_SUNDIALS_VERSION_MINOR 7
297 # define DEAL_II_SUNDIALS_VERSION_PATCH 0
299 #define DEAL_II_SUNDIALS_VERSION_GTE(major,minor,patch) \
300 ((DEAL_II_SUNDIALS_VERSION_MAJOR * 10000 + \
301 DEAL_II_SUNDIALS_VERSION_MINOR * 100 + \
302 DEAL_II_SUNDIALS_VERSION_PATCH) \
304 (major)*10000 + (minor)*100 + (patch))
306 #define DEAL_II_SUNDIALS_VERSION_LT(major,minor,patch) \
307 ((DEAL_II_SUNDIALS_VERSION_MAJOR * 10000 + \
308 DEAL_II_SUNDIALS_VERSION_MINOR * 100 + \
309 DEAL_II_SUNDIALS_VERSION_PATCH) \
311 (major)*10000 + (minor)*100 + (patch))
328 #define DEAL_II_PETSC_VERSION_LT(major,minor,subminor) \
329 ((PETSC_VERSION_MAJOR * 10000 + \
330 PETSC_VERSION_MINOR * 100 + \
331 PETSC_VERSION_SUBMINOR) \
333 (major)*10000 + (minor)*100 + (subminor))
335 #define DEAL_II_PETSC_VERSION_GTE(major,minor,subminor) \
336 ((PETSC_VERSION_MAJOR * 10000 + \
337 PETSC_VERSION_MINOR * 100 + \
338 PETSC_VERSION_SUBMINOR) \
340 (major)*10000 + (minor)*100 + (subminor))
346 #define DEAL_II_SLEPC_VERSION_GTE(major,minor,subminor) \
347 ((SLEPC_VERSION_MAJOR * 10000 + \
348 SLEPC_VERSION_MINOR * 100 + \
349 SLEPC_VERSION_SUBMINOR) \
351 (major)*10000 + (minor)*100 + (subminor))
357 #ifdef DEAL_II_WITH_TRILINOS
358 # define DEAL_II_TRILINOS_VERSION_MAJOR 12
359 # define DEAL_II_TRILINOS_VERSION_MINOR 18
360 # define DEAL_II_TRILINOS_VERSION_SUBMINOR 1
362 # define DEAL_II_TRILINOS_VERSION_GTE(major,minor,subminor) \
363 ((DEAL_II_TRILINOS_VERSION_MAJOR * 10000 + \
364 DEAL_II_TRILINOS_VERSION_MINOR * 100 + \
365 DEAL_II_TRILINOS_VERSION_SUBMINOR) \
367 (major)*10000 + (minor)*100 + (subminor))
374 #ifdef DEAL_II_WITH_MPI
375 # define DEAL_II_MPI_VERSION_MAJOR 3
376 # define DEAL_II_MPI_VERSION_MINOR 1
378 # define DEAL_II_MPI_VERSION_GTE(major,minor) \
379 ((DEAL_II_MPI_VERSION_MAJOR * 100 + \
380 DEAL_II_MPI_VERSION_MINOR) \
382 (major)*100 + (minor))
384 # define DEAL_II_MPI_VERSION_GTE(major,minor) false
394 #define DEAL_II_NAMESPACE_OPEN namespace dealii {
395 #define DEAL_II_NAMESPACE_CLOSE }
405 #ifdef DEAL_II_COMPILER_HAS_DIAGNOSTIC_PRAGMA
408 # define DEAL_II_DISABLE_EXTRA_DIAGNOSTICS \
409 _Pragma("GCC diagnostic push") \
410 _Pragma("GCC diagnostic ignored \"-Wunknown-pragmas\"") \
411 _Pragma("GCC diagnostic ignored \"-Wpragmas\"") \
412 _Pragma("GCC diagnostic ignored \"-Wunknown-warning-option\"") \
413 _Pragma("GCC diagnostic ignored \"-Wunknown-warning\"") \
414 _Pragma("GCC diagnostic ignored \"-Wextra\"") \
415 _Pragma("GCC diagnostic ignored \"-Waddress-of-packed-member\"") \
416 _Pragma("GCC diagnostic ignored \"-Wdeprecated-copy\"") \
417 _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") \
418 _Pragma("GCC diagnostic ignored \"-Wdeprecated-volatile\"") \
419 _Pragma("GCC diagnostic ignored \"-Wexpansion-to-defined\"") \
420 _Pragma("GCC diagnostic ignored \"-Wignored-attributes\"") \
421 _Pragma("GCC diagnostic ignored \"-Wignored-qualifiers\"") \
422 _Pragma("GCC diagnostic ignored \"-Wimplicit-fallthrough\"") \
423 _Pragma("GCC diagnostic ignored \"-Winfinite-recursion\"") \
424 _Pragma("GCC diagnostic ignored \"-Wint-in-bool-context\"") \
425 _Pragma("GCC diagnostic ignored \"-Wmisleading-indentation\"") \
426 _Pragma("GCC diagnostic ignored \"-Wmissing-field-initializers\"") \
427 _Pragma("GCC diagnostic ignored \"-Wnested-anon-types\"") \
428 _Pragma("GCC diagnostic ignored \"-Wnon-virtual-dtor\"") \
429 _Pragma("GCC diagnostic ignored \"-Woverflow\"") \
430 _Pragma("GCC diagnostic ignored \"-Woverloaded-virtual\"") \
431 _Pragma("GCC diagnostic ignored \"-Wpedantic\"") \
432 _Pragma("GCC diagnostic ignored \"-Wsuggest-override\"") \
433 _Pragma("GCC diagnostic ignored \"-Wtautological-constant-out-of-range-compare\"") \
434 _Pragma("GCC diagnostic ignored \"-Wtautological-overlap-compare\"") \
435 _Pragma("GCC diagnostic ignored \"-Wtype-limits\"") \
436 _Pragma("GCC diagnostic ignored \"-Wundef\"") \
437 _Pragma("GCC diagnostic ignored \"-Wunused-but-set-parameter\"") \
438 _Pragma("GCC diagnostic ignored \"-Wunused-but-set-variable\"") \
439 _Pragma("GCC diagnostic ignored \"-Wunused-function\"") \
440 _Pragma("GCC diagnostic ignored \"-Wunused-parameter\"") \
441 _Pragma("GCC diagnostic ignored \"-Wunused-private-field\"") \
442 _Pragma("GCC diagnostic ignored \"-Wunused-variable\"") \
443 _Pragma("GCC diagnostic warning \"-Wpragmas\"")
445 # define DEAL_II_ENABLE_EXTRA_DIAGNOSTICS \
446 _Pragma("GCC diagnostic pop")
450 # define DEAL_II_DISABLE_EXTRA_DIAGNOSTICS
451 # define DEAL_II_ENABLE_EXTRA_DIAGNOSTICS
460 #define DEAL_II_FORTRAN_MANGLE(name, NAME) name ## _
462 #define DEAL_II_FORTRAN_MANGLE_UNDERSCORE(name, NAME) name ## _
471 #define DEAL_II_STRINGIZE_HELPER(x) #x
472 #define DEAL_II_STRINGIZE(x) DEAL_II_STRINGIZE_HELPER(x)
473 #define DEAL_II_DO_PRAGMA(x) __pragma(x)
474 #define DEAL_II_WARNING(desc) DEAL_II_DO_PRAGMA(message(__FILE__ "(" DEAL_II_STRINGIZE(__LINE__) ") : warning: " #desc))
476 #define DEAL_II_DO_PRAGMA(x) _Pragma(#x)
477 #define DEAL_II_WARNING(desc) DEAL_II_DO_PRAGMA(message(#desc))
488 #if defined(DEAL_II_WITH_MPI) || defined(DEAL_II_WITH_PETSC)
503 #include <boost/version.hpp>
508 "The version number of boost that you are compiling with does not match the "
509 "version number of boost found during deal.II's configuration step. This "
510 "leads to difficult to understand bugs and is not supported. Please check "
511 "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