diff -Nru deal.ii-9.4.0/cmake/macros/macro_deal_ii_invoke_autopilot.cmake deal.ii-9.4.1/cmake/macros/macro_deal_ii_invoke_autopilot.cmake --- deal.ii-9.4.0/cmake/macros/macro_deal_ii_invoke_autopilot.cmake 2022-06-24 03:28:40.000000000 +0000 +++ deal.ii-9.4.1/cmake/macros/macro_deal_ii_invoke_autopilot.cmake 2022-12-02 00:16:57.000000000 +0000 @@ -37,6 +37,8 @@ MACRO(DEAL_II_INVOKE_AUTOPILOT) + SET(CMAKE_EXPORT_COMPILE_COMMANDS TRUE) + # Generator specific values: IF(CMAKE_GENERATOR MATCHES "Ninja") SET(_make_command "$ ninja") diff -Nru deal.ii-9.4.0/cmake/modules/FindPETSC.cmake deal.ii-9.4.1/cmake/modules/FindPETSC.cmake --- deal.ii-9.4.0/cmake/modules/FindPETSC.cmake 2022-06-24 03:28:40.000000000 +0000 +++ deal.ii-9.4.1/cmake/modules/FindPETSC.cmake 2022-12-02 00:16:57.000000000 +0000 @@ -95,23 +95,23 @@ SET(PETSC_PETSCVERSION_H "${PETSC_INCLUDE_DIR_COMMON}/petscversion.h") IF(EXISTS ${PETSC_PETSCVERSION_H}) FILE(STRINGS "${PETSC_PETSCVERSION_H}" PETSC_VERSION_MAJOR_STRING - REGEX "#define.*PETSC_VERSION_MAJOR") - STRING(REGEX REPLACE "^.*PETSC_VERSION_MAJOR.* ([0-9]+).*" "\\1" + REGEX "^#[ \t]*define[ \t]+PETSC_VERSION_MAJOR[ \t]+[0-9]+[ \t]*$") + STRING(REGEX REPLACE "^#[ \t]*define[ \t]+PETSC_VERSION_MAJOR[ \t]+([0-9]+)[ \t]*$" "\\1" PETSC_VERSION_MAJOR "${PETSC_VERSION_MAJOR_STRING}" ) FILE(STRINGS "${PETSC_PETSCVERSION_H}" PETSC_VERSION_MINOR_STRING - REGEX "#define.*PETSC_VERSION_MINOR") - STRING(REGEX REPLACE "^.*PETSC_VERSION_MINOR.* ([0-9]+).*" "\\1" + REGEX "^#[ \t]*define[ \t]+PETSC_VERSION_MINOR[ \t]+[0-9]+[ \t]*$") + STRING(REGEX REPLACE "^#[ \t]*define[ \t]+PETSC_VERSION_MINOR[ \t]+([0-9]+)[ \t]*$" "\\1" PETSC_VERSION_MINOR "${PETSC_VERSION_MINOR_STRING}" ) FILE(STRINGS "${PETSC_PETSCVERSION_H}" PETSC_VERSION_SUBMINOR_STRING - REGEX "#define.*PETSC_VERSION_SUBMINOR") - STRING(REGEX REPLACE "^.*PETSC_VERSION_SUBMINOR.* ([0-9]+).*" "\\1" + REGEX "^#[ \t]*define[ \t]+PETSC_VERSION_SUBMINOR[ \t]+[0-9]+[ \t]*$") + STRING(REGEX REPLACE "^#[ \t]*define[ \t]+PETSC_VERSION_SUBMINOR[ \t]+([0-9]+)[ \t]*$" "\\1" PETSC_VERSION_SUBMINOR "${PETSC_VERSION_SUBMINOR_STRING}" ) FILE(STRINGS "${PETSC_PETSCVERSION_H}" PETSC_VERSION_PATCH_STRING - REGEX "#define.*PETSC_VERSION_PATCH") - STRING(REGEX REPLACE "^.*PETSC_VERSION_PATCH.* ([0-9]+).*" "\\1" + REGEX "^#[ \t]*define[ \t]+PETSC_VERSION_PATCH[ \t]+[0-9]+[ \t]*$") + STRING(REGEX REPLACE "^#[ \t]*define[ \t]+PETSC_VERSION_PATCH[ \t]+([0-9]+)[ \t]*$" "\\1" PETSC_VERSION_PATCH "${PETSC_VERSION_PATCH_STRING}" ) SET(PETSC_VERSION diff -Nru deal.ii-9.4.0/CMakeLists.txt deal.ii-9.4.1/CMakeLists.txt --- deal.ii-9.4.0/CMakeLists.txt 2022-06-24 03:28:40.000000000 +0000 +++ deal.ii-9.4.1/CMakeLists.txt 2022-12-02 00:16:57.000000000 +0000 @@ -35,6 +35,8 @@ CMAKE_MINIMUM_REQUIRED(VERSION 3.3.0) +set(CMAKE_EXPORT_COMPILE_COMMANDS TRUE) + # # We support all policy changes up to version 3.3. Thus, explicitly set all # policies CMP0001 - CMP0054 to new for version 3.3 (and later) to avoid diff -Nru deal.ii-9.4.0/debian/changelog deal.ii-9.4.1/debian/changelog --- deal.ii-9.4.0/debian/changelog 2023-02-07 00:46:01.000000000 +0000 +++ deal.ii-9.4.1/debian/changelog 2023-03-18 11:42:41.000000000 +0000 @@ -1,9 +1,16 @@ -deal.ii (9.4.0-2ubuntu1) lunar; urgency=low +deal.ii (9.4.1-1ubuntu1) lunar; urgency=medium - * Merge from Debian unstable. Remaining changes: - - Reduce parallelism to avoid OOM on Launchpad builders + * Build with --max-parallel=3 on riscv64 to avoid + build failure with no log - -- Steve Langasek Mon, 06 Feb 2023 16:46:01 -0800 + -- Graham Inggs Sat, 18 Mar 2023 11:42:41 +0000 + +deal.ii (9.4.1-1) unstable; urgency=medium + + * New upstream point release + * update patches, add post 9.4.1 patchset + + -- Matthias Maier Tue, 07 Feb 2023 08:01:51 +0000 deal.ii (9.4.0-2) unstable; urgency=medium @@ -16,30 +23,6 @@ -- Matthias Maier Sat, 05 Nov 2022 15:39:48 +0000 -deal.ii (9.4.0-1ubuntu4) lunar; urgency=medium - - * No-change rebuild against libpetsc-real3.18 - - -- Steve Langasek Wed, 14 Dec 2022 07:47:29 +0000 - -deal.ii (9.4.0-1ubuntu3) lunar; urgency=medium - - * No-change rebuild against petsc/slepc 3.17 - - -- Graham Inggs Thu, 17 Nov 2022 14:56:13 +0000 - -deal.ii (9.4.0-1ubuntu2) kinetic; urgency=medium - - * No-change rebuild with opencascade 7.6 - - -- Andreas Hasenack Wed, 10 Aug 2022 14:22:23 -0300 - -deal.ii (9.4.0-1ubuntu1) kinetic; urgency=medium - - * Reduce parallelism to avoid OOM on Launchpad builders - - -- Graham Inggs Thu, 21 Jul 2022 18:38:41 +0000 - deal.ii (9.4.0-1) unstable; urgency=medium [ Matthias Maier ] @@ -323,4 +306,3 @@ * Initial release. -- Matthias Maier Fri, 03 Jan 2014 20:52:34 +0100 - diff -Nru deal.ii-9.4.0/debian/control deal.ii-9.4.1/debian/control --- deal.ii-9.4.0/debian/control 2023-02-01 00:52:37.000000000 +0000 +++ deal.ii-9.4.1/debian/control 2023-03-18 11:42:41.000000000 +0000 @@ -59,7 +59,7 @@ libboost-system-dev, libboost-thread-dev, libcgal-dev, - libdeal.ii-9.4.0 (= ${binary:Version}), + libdeal.ii-9.4.1 (= ${binary:Version}), libgmsh-dev, libgsl-dev, libhdf5-dev, @@ -91,7 +91,7 @@ . This package contains the development files. -Package: libdeal.ii-9.4.0 +Package: libdeal.ii-9.4.1 Architecture: any Multi-Arch: same Depends: ${misc:Depends}, ${shlibs:Depends} diff -Nru deal.ii-9.4.0/debian/libdeal.ii-9.4.0.install deal.ii-9.4.1/debian/libdeal.ii-9.4.0.install --- deal.ii-9.4.0/debian/libdeal.ii-9.4.0.install 2023-02-01 00:52:37.000000000 +0000 +++ deal.ii-9.4.1/debian/libdeal.ii-9.4.0.install 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -usr/lib/*/libdeal.ii.g.so.* -usr/lib/*/libdeal.ii.so.* diff -Nru deal.ii-9.4.0/debian/libdeal.ii-9.4.1.install deal.ii-9.4.1/debian/libdeal.ii-9.4.1.install --- deal.ii-9.4.0/debian/libdeal.ii-9.4.1.install 1970-01-01 00:00:00.000000000 +0000 +++ deal.ii-9.4.1/debian/libdeal.ii-9.4.1.install 2023-01-29 13:22:09.000000000 +0000 @@ -0,0 +1,2 @@ +usr/lib/*/libdeal.ii.g.so.* +usr/lib/*/libdeal.ii.so.* diff -Nru deal.ii-9.4.0/debian/patches/fix_gmsh_configure.patch deal.ii-9.4.1/debian/patches/fix_gmsh_configure.patch --- deal.ii-9.4.0/debian/patches/fix_gmsh_configure.patch 1970-01-01 00:00:00.000000000 +0000 +++ deal.ii-9.4.1/debian/patches/fix_gmsh_configure.patch 2023-01-29 13:22:09.000000000 +0000 @@ -0,0 +1,37 @@ +From df39deedacde256a07c15434c85011a220233fd7 Mon Sep 17 00:00:00 2001 +From: Matthias Maier +Date: Wed, 7 Dec 2022 19:25:46 -0600 +Subject: CMake: Bugfix: only export DEAL_II_GMSH_WITH_API if gmsh is configured + +If the gmsh library is installed but the gmsh executable is missing we +currently disable gmsh support. This implies that we will not link +against the gmsh library. + +Unfortunately, on first configure pass the variable `GMSH_WITH_API` is +still populated with a `TRUE` value and the `DEAL_II_GMSH_WITH_API` +variable gets set by accident and final linkage fails. + +This issue is hard to spot because a second invocation of cmake will +cure the configure mistake (and the debian/ubuntu packages do not run +any autodetection). +--- + cmake/configure/configure_50_gmsh.cmake | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/cmake/configure/configure_50_gmsh.cmake b/cmake/configure/configure_50_gmsh.cmake +index e4764802a3..310384c806 100644 +--- a/cmake/configure/configure_50_gmsh.cmake ++++ b/cmake/configure/configure_50_gmsh.cmake +@@ -17,5 +17,8 @@ + # Configuration for the gmsh executable: + # + ++MACRO(feature_gmsh_configure_external) ++ SET(DEAL_II_GMSH_WITH_API ${GMSH_WITH_API}) ++ENDMACRO() ++ + CONFIGURE_FEATURE(GMSH) +-SET(DEAL_II_GMSH_WITH_API ${GMSH_WITH_API}) +-- +2.39.1 + diff -Nru deal.ii-9.4.0/debian/patches/fix_step_70.patch deal.ii-9.4.1/debian/patches/fix_step_70.patch --- deal.ii-9.4.0/debian/patches/fix_step_70.patch 1970-01-01 00:00:00.000000000 +0000 +++ deal.ii-9.4.1/debian/patches/fix_step_70.patch 2023-01-29 13:22:09.000000000 +0000 @@ -0,0 +1,26 @@ +From f91c2f81d925308ac88d6123a2fa221731916548 Mon Sep 17 00:00:00 2001 +From: David Wells +Date: Sat, 3 Dec 2022 08:49:47 -0500 +Subject: Fix compilation of step-70. + +I'm not sure how this ever worked. +--- + examples/step-70/step-70.cc | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/examples/step-70/step-70.cc b/examples/step-70/step-70.cc +index 44ec147865..cc8a4401c2 100644 +--- a/examples/step-70/step-70.cc ++++ b/examples/step-70/step-70.cc +@@ -143,6 +143,8 @@ namespace LA + # include + #endif + ++#include ++ + #include + #include + #include +-- +2.39.1 + diff -Nru deal.ii-9.4.0/debian/patches/fix_umfpack_type.patch deal.ii-9.4.1/debian/patches/fix_umfpack_type.patch --- deal.ii-9.4.0/debian/patches/fix_umfpack_type.patch 1970-01-01 00:00:00.000000000 +0000 +++ deal.ii-9.4.1/debian/patches/fix_umfpack_type.patch 2023-01-29 13:22:09.000000000 +0000 @@ -0,0 +1,31 @@ +From f29dbc259fae7393eb64ad78176052e1fa2a369a Mon Sep 17 00:00:00 2001 +From: David Wells +Date: Tue, 24 Jan 2023 12:30:41 -0500 +Subject: SparseDirectUMFPACK: Use the correct type alias. + +--- + source/lac/sparse_direct.cc | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/source/lac/sparse_direct.cc b/source/lac/sparse_direct.cc +index 3951c64a3f..d0b1118adf 100644 +--- a/source/lac/sparse_direct.cc ++++ b/source/lac/sparse_direct.cc +@@ -100,12 +100,12 @@ SparseDirectUMFPACK::clear() + } + + { +- std::vector tmp; ++ std::vector tmp; + tmp.swap(Ap); + } + + { +- std::vector tmp; ++ std::vector tmp; + tmp.swap(Ai); + } + +-- +2.39.1 + diff -Nru deal.ii-9.4.0/debian/patches/series deal.ii-9.4.1/debian/patches/series --- deal.ii-9.4.0/debian/patches/series 2023-02-01 00:52:37.000000000 +0000 +++ deal.ii-9.4.1/debian/patches/series 2023-01-29 13:22:09.000000000 +0000 @@ -1,3 +1,7 @@ allow_different_slepc_petsc_versions.patch python3-only.patch remove-iframes-from-documentation.patch +fix_gmsh_configure.patch +fix_step_70.patch +fix_umfpack_type.patch +use_pthread.patch diff -Nru deal.ii-9.4.0/debian/patches/use_pthread.patch deal.ii-9.4.1/debian/patches/use_pthread.patch --- deal.ii-9.4.0/debian/patches/use_pthread.patch 1970-01-01 00:00:00.000000000 +0000 +++ deal.ii-9.4.1/debian/patches/use_pthread.patch 2023-01-29 13:22:09.000000000 +0000 @@ -0,0 +1,47 @@ +From e58c2eb6300281bee444df4f742e107be8463b0f Mon Sep 17 00:00:00 2001 +From: Matthias Maier +Date: Tue, 6 Dec 2022 18:45:53 -0600 +Subject: CMake: Ensure we use "-pthread" instead of "-lpthread" for thread support + +--- + cmake/configure/configure_00_threads.cmake | 17 +++++++++++++++++ + 1 file changed, 17 insertions(+) + +diff --git a/cmake/configure/configure_00_threads.cmake b/cmake/configure/configure_00_threads.cmake +index 33ae7145c6..8ade074556 100644 +--- a/cmake/configure/configure_00_threads.cmake ++++ b/cmake/configure/configure_00_threads.cmake +@@ -20,6 +20,15 @@ + + # Clear the test flags because FindThreads.cmake will use a C compiler: + CLEAR_CMAKE_REQUIRED() ++# ++# Ensure that we use "-pthread" instead of "-lpthread". We require ++# "-pthread" for certain versions of gcc (and standard library thread ++# support). Otherwise the order of libraries might be wrong on the final ++# link interface and we end up with linker errors such as the following: ++# /usr/bin/ld: [...]/step-69.cc.o: undefined reference to symbol 'pthread_create@@GLIBC_2.2.5' ++# /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libpthread.so: error adding symbols: DSO missing from command line ++# ++SET(THREADS_PREFER_PTHREAD_FLAG true) + + SWITCH_LIBRARY_PREFERENCE() + FIND_PACKAGE(Threads) +@@ -29,6 +38,14 @@ RESET_CMAKE_REQUIRED() + + ADD_FLAGS(DEAL_II_LINKER_FLAGS "${CMAKE_THREAD_LIBS_INIT}") + ++# ++# Make sure that we compile with "-pthread" as well. The "-pthread" ++# compiler flag might add certain preprocessor definitions when compiling. ++# ++IF("${CMAKE_THREAD_LIBS_INIT}" MATCHES "-pthread") ++ ADD_FLAGS(DEAL_II_CXX_FLAGS "${CMAKE_THREAD_LIBS_INIT}") ++ENDIF() ++ + IF(NOT Threads_FOUND) + MESSAGE(FATAL_ERROR + "\nFatal configuration error: CMake was unable to detect any threading " +-- +2.39.1 + diff -Nru deal.ii-9.4.0/debian/rules deal.ii-9.4.1/debian/rules --- deal.ii-9.4.0/debian/rules 2023-02-07 00:46:01.000000000 +0000 +++ deal.ii-9.4.1/debian/rules 2023-03-16 18:11:51.000000000 +0000 @@ -4,18 +4,9 @@ export OMPI_MCA_rmaps_base_oversubscribe=1 DH_MAX_PARALLEL= -ifneq (,$(filter $(DEB_HOST_ARCH),arm64)) - DH_MAX_PARALLEL=--max-parallel=1 - export DEB_CXXFLAGS_MAINT_APPEND = -g1 -else -ifneq (,$(filter $(DEB_HOST_ARCH),amd64 riscv64 s390x)) - DH_MAX_PARALLEL=--max-parallel=2 -else -ifneq (,$(filter $(DEB_HOST_ARCH),ppc64el)) +ifneq (,$(filter $(DEB_HOST_ARCH),riscv64)) DH_MAX_PARALLEL=--max-parallel=3 endif -endif -endif ifneq (,$(filter $(DEB_HOST_ARCH),ppc64el)) CONFIGURE_LINKER_FLAGS=-DDEAL_II_LINKER_FLAGS="-Wl,-Bsymbolic-functions" @@ -111,7 +102,7 @@ # Double up the limit of debug information entries: dh_dwz -- -L 100000000 -VERSION := 9.4.0 +VERSION := 9.4.1 get-orig-source: wget --no-clobber -O deal.ii-$(VERSION).tar.gz https://github.com/dealii/dealii/releases/download/v$(VERSION)/dealii-$(VERSION).tar.gz wget --no-clobber -O deal.ii-doc-$(VERSION).tar.gz https://github.com/dealii/dealii/releases/download/v$(VERSION)/dealii-$(VERSION)-offline_documentation.tar.gz diff -Nru deal.ii-9.4.0/doc/doxygen/tutorial/tutorial.h.in deal.ii-9.4.1/doc/doxygen/tutorial/tutorial.h.in --- deal.ii-9.4.0/doc/doxygen/tutorial/tutorial.h.in 2022-06-24 03:28:40.000000000 +0000 +++ deal.ii-9.4.1/doc/doxygen/tutorial/tutorial.h.in 2022-12-02 00:16:57.000000000 +0000 @@ -660,6 +660,11 @@ * * * + * step-81 + * Solving the complex-valued time-harmonic Maxwell equations. + * + * + * * step-82 * Solving the fourth-order biharmonic equation using a lifting operator approach. * @@ -1064,6 +1069,7 @@ * step-46, * step-58, * step-62, + * step-81, * step-82 * * @@ -1316,6 +1322,12 @@ * * * + * The time-harmonic Maxwell equations + * + * step-81 + * + * + * * Coupling different equations in different parts of the domain * * step-46 diff -Nru deal.ii-9.4.0/doc/news/9.4.0-vs-9.4.1.h deal.ii-9.4.1/doc/news/9.4.0-vs-9.4.1.h --- deal.ii-9.4.0/doc/news/9.4.0-vs-9.4.1.h 1970-01-01 00:00:00.000000000 +0000 +++ deal.ii-9.4.1/doc/news/9.4.0-vs-9.4.1.h 2022-12-02 00:16:57.000000000 +0000 @@ -0,0 +1,50 @@ +// --------------------------------------------------------------------- +// +// Copyright (C) 2017 - 2022 by the deal.II authors +// +// This file is part of the deal.II library. +// +// The deal.II library is free software; you can use it, redistribute +// it, and/or modify it under the terms of the GNU Lesser General +// Public License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// The full text of the license can be found in the file LICENSE.md at +// the top level directory of deal.II. +// +// --------------------------------------------------------------------- + +/** +@page changes_between_9_4_0_and_9_4_1 Changes between Version 9.4.0 and 9.4.1 + +

+This is the list of changes made between the release of deal.II version +9.4.0 and that of 9.4.1. All entries are signed with the names of the +author. +

+ + + + +

Specific improvements

+
    + +
  1. + Fixed: Various compatiblity issues and minor bugfixes have been resolved: +
      +
    1. cmake: always export compile_commands.json in deal.II and user projects
    2. +
    3. doxygen: fix various errors in formulas
    4. +
    5. doxygen: fix SymmetricTensor friends
    6. +
    7. cmake: fix PETSc version detection
    8. +
    9. base: fix some VectorizedArrayTypes for non-default vectorization
    10. +
    11. gitignore: ignore clangd files and directories
    12. +
    13. change ConsensusAlgorithm deprecations to early deprecated
    14. +
    15. step-81: Mention example step in the tutorial lists
    16. +
    17. bugfix: use correct tolerance in MappingCartesian check
    18. +
    +
    + (David Wells, Matthias Maier, Rene Gassmoeller, Sebastian Proell, Timo Heister, 2022/12/01) +
  2. + +
+ +*/ diff -Nru deal.ii-9.4.0/examples/step-75/doc/intro.dox deal.ii-9.4.1/examples/step-75/doc/intro.dox --- deal.ii-9.4.0/examples/step-75/doc/intro.dox 2022-06-24 03:28:40.000000000 +0000 +++ deal.ii-9.4.1/examples/step-75/doc/intro.dox 2022-12-02 00:16:57.000000000 +0000 @@ -133,7 +133,7 @@ the right-hand side in the projection system are, therefore, @f[ \int_K u_\text{hp}(x) P_k(x) dx -= \det(J_K) \int_\hat{K} u_\text{hp}(F_K(\hat{x})) P_k(F_K(\hat{x})) d\hat{x}. += \det(J_K) \int_{\hat{K}} u_\text{hp}(F_K(\hat{x})) P_k(F_K(\hat{x})) d\hat{x}. @f] Recalling the shape function representation of $u_\text{hp}(x)$, we can write this as $\det(J_K) \, \mathbf{C} \, \mathbf{c}$, where diff -Nru deal.ii-9.4.0/examples/step-81/doc/kind deal.ii-9.4.1/examples/step-81/doc/kind --- deal.ii-9.4.0/examples/step-81/doc/kind 2022-06-24 03:28:40.000000000 +0000 +++ deal.ii-9.4.1/examples/step-81/doc/kind 2022-12-02 00:16:57.000000000 +0000 @@ -1 +1 @@ -fluids +techniques diff -Nru deal.ii-9.4.0/include/deal.II/base/mpi_consensus_algorithms.h deal.ii-9.4.1/include/deal.II/base/mpi_consensus_algorithms.h --- deal.ii-9.4.0/include/deal.II/base/mpi_consensus_algorithms.h 2022-06-24 03:28:40.000000000 +0000 +++ deal.ii-9.4.1/include/deal.II/base/mpi_consensus_algorithms.h 2022-12-02 00:16:57.000000000 +0000 @@ -250,7 +250,7 @@ * the default constructor of this class along with the run() * function that takes an argument. */ - DEAL_II_DEPRECATED + DEAL_II_DEPRECATED_EARLY Interface(Process &process, const MPI_Comm & comm); @@ -269,7 +269,7 @@ * been provided to the non-default constructor. Use the run() * functions taking arguments instead. */ - DEAL_II_DEPRECATED + DEAL_II_DEPRECATED_EARLY std::vector run(); @@ -325,7 +325,7 @@ * and the run() function without argument. It is a `nullptr` * otherwise */ - DEAL_II_DEPRECATED + DEAL_II_DEPRECATED_EARLY Process *process; /** @@ -334,7 +334,7 @@ * This member variable is only used in the deprecated constructor * and the run() function without argument. */ - DEAL_II_DEPRECATED + DEAL_II_DEPRECATED_EARLY MPI_Comm comm; }; @@ -373,7 +373,7 @@ * the default constructor of this class along with the run() * function that takes an argument. */ - DEAL_II_DEPRECATED + DEAL_II_DEPRECATED_EARLY NBX(Process &process, const MPI_Comm &comm); /** @@ -617,7 +617,7 @@ * the default constructor of this class along with the run() * function that takes an argument. */ - DEAL_II_DEPRECATED + DEAL_II_DEPRECATED_EARLY PEX(Process &process, const MPI_Comm &comm); /** @@ -830,7 +830,7 @@ * the default constructor of this class along with the run() * function that takes an argument. */ - DEAL_II_DEPRECATED + DEAL_II_DEPRECATED_EARLY Serial(Process &process, const MPI_Comm &comm); // Import the declarations from the base class. @@ -962,7 +962,7 @@ * the default constructor of this class along with the run() * function that takes an argument. */ - DEAL_II_DEPRECATED + DEAL_II_DEPRECATED_EARLY Selector(Process &process, const MPI_Comm & comm); @@ -1083,7 +1083,7 @@ * own implementation but can register lambda functions directly. */ template - class DEAL_II_DEPRECATED AnonymousProcess + class DEAL_II_DEPRECATED_EARLY AnonymousProcess : public Process { public: diff -Nru deal.ii-9.4.0/include/deal.II/base/symmetric_tensor.h deal.ii-9.4.1/include/deal.II/base/symmetric_tensor.h --- deal.ii-9.4.0/include/deal.II/base/symmetric_tensor.h 2022-06-24 03:28:40.000000000 +0000 +++ deal.ii-9.4.1/include/deal.II/base/symmetric_tensor.h 2022-12-02 00:16:57.000000000 +0000 @@ -125,14 +125,46 @@ constexpr DEAL_II_ALWAYS_INLINE SymmetricTensor<4, dim, Number> invert(const SymmetricTensor<4, dim, Number> &); +/** + * Compute and return the trace of a tensor of rank 2, i.e. the sum of its + * diagonal entries. The trace is the first invariant of a rank-2 tensor. + * \f[ + * \text{tr} \mathbf A = \sum_i A_{ii} + * \f] + * + * @relatesalso SymmetricTensor + */ template constexpr inline DEAL_II_ALWAYS_INLINE Number trace(const SymmetricTensor<2, dim2, Number> &); +/** + * Compute the deviator of a symmetric tensor, which is defined as + * $\text{dev} \mathbf T = \mathbf T - + * \frac{1}{\text{dim}} \text{tr}\mathbf T \; \mathbf I$, where $\mathbf I$ + * is the identity operator. This + * quantity equals the original tensor minus its contractive or dilative + * component and refers to the shear in, for example, elasticity. + * + * @relatesalso SymmetricTensor + */ template constexpr inline DEAL_II_ALWAYS_INLINE SymmetricTensor<2, dim, Number> deviator(const SymmetricTensor<2, dim, Number> &); +/** + * Compute the determinant of a rank 2 symmetric tensor. The determinant is + * also commonly referred to as the third invariant of rank-2 tensors. + * + * For a one-dimensional tensor, the determinant equals the only element and + * is therefore equivalent to the trace. + * + * For greater notational simplicity, there is also a + * third_invariant() + * function that returns the determinant of a tensor. + * + * @relatesalso SymmetricTensor + */ template DEAL_II_CONSTEXPR inline DEAL_II_ALWAYS_INLINE Number determinant(const SymmetricTensor<2, dim, Number> &); @@ -1069,6 +1101,8 @@ */ base_tensor_type data; +#ifndef DOXYGEN + // Make all other symmetric tensors friends. template friend class SymmetricTensor; @@ -1105,6 +1139,7 @@ friend struct internal::SymmetricTensorImplementation:: Inverse<4, dim, Number>; +#endif }; @@ -2727,19 +2762,6 @@ -/** - * Compute the determinant of a rank 2 symmetric tensor. The determinant is - * also commonly referred to as the third invariant of rank-2 tensors. - * - * For a one-dimensional tensor, the determinant equals the only element and - * is therefore equivalent to the trace. - * - * For greater notational simplicity, there is also a - * third_invariant() - * function that returns the determinant of a tensor. - * - * @relatesalso SymmetricTensor - */ template DEAL_II_CONSTEXPR inline DEAL_II_ALWAYS_INLINE Number determinant(const SymmetricTensor<2, dim, Number> &t) @@ -2789,15 +2811,6 @@ -/** - * Compute and return the trace of a tensor of rank 2, i.e. the sum of its - * diagonal entries. The trace is the first invariant of a rank-2 tensor. - * \f[ - * \text{tr} \mathbf A = \sum_i A_{ii} - * \f] - * - * @relatesalso SymmetricTensor - */ template constexpr inline DEAL_II_ALWAYS_INLINE Number trace(const SymmetricTensor<2, dim, Number> &d) @@ -3297,16 +3310,6 @@ -/** - * Compute the deviator of a symmetric tensor, which is defined as - * $\text{dev} \mathbf T = \mathbf T - - * \frac{1}{\text{dim}} \text{tr}\mathbf T \; \mathbf I$, where $\mathbf I$ - * is the identity operator. This - * quantity equals the original tensor minus its contractive or dilative - * component and refers to the shear in, for example, elasticity. - * - * @relatesalso SymmetricTensor - */ template constexpr inline DEAL_II_ALWAYS_INLINE SymmetricTensor<2, dim, Number> deviator(const SymmetricTensor<2, dim, Number> &t) diff -Nru deal.ii-9.4.0/include/deal.II/matrix_free/fe_evaluation.h deal.ii-9.4.1/include/deal.II/matrix_free/fe_evaluation.h --- deal.ii-9.4.0/include/deal.II/matrix_free/fe_evaluation.h 2022-06-24 03:28:40.000000000 +0000 +++ deal.ii-9.4.1/include/deal.II/matrix_free/fe_evaluation.h 2022-12-02 00:16:57.000000000 +0000 @@ -5747,11 +5747,10 @@ this->cell_type == internal::MatrixFreeFunctions::cartesian) { // Cartesian cell - const Tensor<2, dim, dealii::VectorizedArray> jac = - this->jacobian[1]; - const VectorizedArrayType inv_det = + const Tensor<2, dim, VectorizedArrayType> jac = this->jacobian[1]; + const VectorizedArrayType inv_det = (dim == 2) ? this->jacobian[0][0][0] * this->jacobian[0][1][1] : - this->jacobian[0][0][0] * this->jacobian[0][1][1] * + this->jacobian[0][0][0] * this->jacobian[0][1][1] * this->jacobian[0][2][2]; // J * u * det(J^-1) @@ -5762,7 +5761,7 @@ else { // Affine or general cell - const Tensor<2, dim, dealii::VectorizedArray> &inv_t_jac = + const Tensor<2, dim, VectorizedArrayType> &inv_t_jac = (this->cell_type > internal::MatrixFreeFunctions::affine) ? this->jacobian[q_point] : this->jacobian[0]; @@ -5838,7 +5837,7 @@ else if (this->cell_type <= internal::MatrixFreeFunctions::affine) { // Affine cell - const Tensor<2, dim, dealii::VectorizedArray> &inv_t_jac = + const Tensor<2, dim, VectorizedArrayType> &inv_t_jac = this->jacobian[0]; const Tensor<2, dim, VectorizedArrayType> &jac = this->jacobian[1]; @@ -6081,8 +6080,7 @@ if (!is_face && this->cell_type == internal::MatrixFreeFunctions::cartesian) { - const Tensor<2, dim, dealii::VectorizedArray> jac = - this->jacobian[1]; + const Tensor<2, dim, VectorizedArrayType> jac = this->jacobian[1]; const VectorizedArrayType weight = this->quadrature_weights[q_point]; for (unsigned int comp = 0; comp < n_components; ++comp) @@ -6092,7 +6090,7 @@ else { // Affine or general cell - const Tensor<2, dim, dealii::VectorizedArray> &inv_t_jac = + const Tensor<2, dim, VectorizedArrayType> &inv_t_jac = (this->cell_type > internal::MatrixFreeFunctions::affine) ? this->jacobian[q_point] : this->jacobian[0]; @@ -6173,7 +6171,7 @@ else if (this->cell_type <= internal::MatrixFreeFunctions::affine) { // Affine cell - const Tensor<2, dim, dealii::VectorizedArray> &inv_t_jac = + const Tensor<2, dim, VectorizedArrayType> &inv_t_jac = this->jacobian[0]; const Tensor<2, dim, VectorizedArrayType> &jac = this->jacobian[1]; diff -Nru deal.ii-9.4.0/include/deal.II/non_matching/quadrature_generator.h deal.ii-9.4.1/include/deal.II/non_matching/quadrature_generator.h --- deal.ii-9.4.0/include/deal.II/non_matching/quadrature_generator.h 2022-06-24 03:28:40.000000000 +0000 +++ deal.ii-9.4.1/include/deal.II/non_matching/quadrature_generator.h 2022-12-02 00:16:57.000000000 +0000 @@ -906,7 +906,7 @@ * The roots of the functions in point_restrictions. * This will be the values of the height functions, $\{H_i(x_I)\}$ at * some lower dimensional quadrature point, - * $x_I \in \mathbb{R}^{dim-1}}$. + * $x_I \in \mathbb{R}^{dim-1}$. */ std::vector roots; }; diff -Nru deal.ii-9.4.0/source/fe/mapping_cartesian.cc deal.ii-9.4.1/source/fe/mapping_cartesian.cc --- deal.ii-9.4.0/source/fe/mapping_cartesian.cc 2022-06-24 03:28:40.000000000 +0000 +++ deal.ii-9.4.1/source/fe/mapping_cartesian.cc 2022-12-02 00:16:57.000000000 +0000 @@ -55,12 +55,21 @@ if (!cell->reference_cell().is_hyper_cube()) return false; - const double tolerance = 1e-14 * cell->diameter(); - const auto bounding_box = cell->bounding_box(); + const double tolerance = 1e-14; + const auto bounding_box = cell->bounding_box(); + const auto & bounding_vertices = bounding_box.get_boundary_points(); + const auto cell_measure = + bounding_vertices.first.distance_square(bounding_vertices.second); for (const unsigned int v : cell->vertex_indices()) - if (cell->vertex(v).distance(bounding_box.vertex(v)) > tolerance) - return false; + { + const double vertex_tolerance = + tolerance * std::max(cell->vertex(v).norm_square(), cell_measure); + + if (cell->vertex(v).distance_square(bounding_box.vertex(v)) > + vertex_tolerance) + return false; + } return true; } diff -Nru deal.ii-9.4.0/VERSION deal.ii-9.4.1/VERSION --- deal.ii-9.4.0/VERSION 2022-06-24 03:28:40.000000000 +0000 +++ deal.ii-9.4.1/VERSION 2022-12-02 00:16:57.000000000 +0000 @@ -1 +1 @@ -9.4.0 +9.4.1