]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Update the changelog file for the release.
authorMatthias Maier <tamiko@43-1.org>
Tue, 27 Jun 2023 15:42:35 +0000 (10:42 -0500)
committerMatthias Maier <tamiko@43-1.org>
Tue, 27 Jun 2023 15:43:55 +0000 (10:43 -0500)
doc/news/9.4.0-vs-9.5.0.h [new file with mode: 0644]

diff --git a/doc/news/9.4.0-vs-9.5.0.h b/doc/news/9.4.0-vs-9.5.0.h
new file mode 100644 (file)
index 0000000..876a407
--- /dev/null
@@ -0,0 +1,1108 @@
+// ---------------------------------------------------------------------
+//
+// Copyright (C) 2017 - 2023 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_5_0 Changes between Version 9.4.0 and 9.5.0
+
+<p>
+This is the list of changes made between the release of deal.II version
+9.4.0 and that of 9.5.0. All entries are signed with the names of the
+author.
+</p>
+<!-- ----------- INCOMPATIBILITIES ----------------- -->
+
+<a name="incompatible"></a>
+<h3 style="color:red">Incompatibilities</h3>
+
+<p style="color:red">
+Following are a few modifications to the library that unfortunately
+are incompatible with previous versions of the library, but which we
+deem necessary for the future maintainability of the
+library. Unfortunately, some of these changes will require
+modifications to application programs. We apologize for the
+inconvenience this causes.
+</p>
+<ol>
+
+ <li>
+  Changed: The SUNDIALS::KINSOL, SUNDIALS::ARKode, and SUNDIALS::IDA
+  interfaces used to use callbacks through which users provide
+  information to these solvers. If user code encountered errors, this
+  was indicated via integer return codes -- a zero return value
+  indicating success.
+  This is not in line with how C++ typically operates; in C++ errors are
+  typically indicated via exceptions. The interfaces to the libraries
+  above have been changed to now use exceptions instead, and this
+  convention has been documented in a glossary entry on
+  @ref GlossUserProvidedCallBack "user provided callback".
+  <br>
+  (Wolfgang Bangerth, 2023/05/31)
+ </li>
+
+ <li>
+  Changed: The integrate() function of FEPointEvaluation now multiplies the submitted
+  entities internally with a JxW value to represent a proper integration like in FEEvaluation.
+  The old behavior (where the entities are only multiplied with the test functions and summed up)
+  is available through the new function test_and_sum().
+  <br>
+  (Maximilian Bergbauer, 2023/05/29)
+ </li>
+
+ <li>
+  Deprecated: All vector classes had member functions called `import()`
+  to copy elements from a source into the current vector. Unfortunately,
+  `import` is a 
+  [keyword (of sorts) in C++20](https://en.cppreference.com/w/cpp/keyword/import). 
+  While not strictly necessary because we do not use the name in a
+  context where it would be recognized as a keyword, it is useful to
+  avoid the name nonetheless, if only to avoid confusing readers and
+  IDEs. As a consequence, these functions have been renamed to
+  `import_elements()`. The old name remains for now, but is deprecated.
+  <br>
+  (Wolfgang Bangerth, 2023/05/23)
+ </li>
+
+ <li>
+  Extensive rework of CUDAWrappers::MatrixFree and CUDAWrappers::FEEvaluation.
+  <br>
+  (Bruno Turcksin, 2023/05/11)
+ </li>
+
+ <li>
+  Changed: The get_mpi_communicator() methods no longer return references to MPI_Comm.
+  They all now return the MPI_Comm by value.
+  <br>
+  (Stefano Zampini, 2023/04/12)
+ </li>
+
+ <li>
+  Removed: The docker image with root user has been removed.
+  <br>
+  If you would like to use the docker image in the context of github actions,
+  you can use the regular image and override the default user like this:
+  ```
+  container:
+    image: dealii/dealii:master-focal
+    options: --user root
+  ```
+  (Marc Fehling, 2023/04/09)
+ </li>
+
+ <li>
+  Removed: The CUDAWrappers::MatrixFee::AdditionalData::ParallelizationScheme
+  parameter has been removed.
+  <br>
+  (Bruno Turcksin, 2023/03/30)
+ </li>
+
+ <li>
+  Updated: deal.II no longer exports the -fPIC/-fpic compiler flags for
+  compiling relocatable, position independent code. This should have minimal
+  impact on user projects because CMake is handling the -fPIC/-fpic
+  automatically. But for some less common scenarios in user projects (e.g.,
+  object targets) it might be necessary to set the POSITION_INDEPENDENT_CODE
+  target property in CMake.
+  <br>
+  (Matthias Maier, 2023/03/29)
+ </li>
+
+ <li>
+  Changed: The default behavior of the hdf5 output is changed from "not compressed" to "compressed" (default compression_level: best_speed).
+  <br>
+  (Christoph Schmidt, 2023/03/24)
+ </li>
+
+ <li>
+  Updated: deal.II now requires CMake version 3.13.4 or later.
+  <br>
+  (Matthias Maier, 2023/01/26)
+ </li>
+
+ <li>
+  Fixed: The function ParameterHandler::add_parameter() used to
+  call the internal action. Within that step, the action
+  converts the default value to a string and back afterwards.
+  This can lead to round-off errors so that the default
+  values might change in the case of floating-point numbers.
+  The action is not called any more during ParameterHandler::add_parameter(),
+  fixing the problem.
+  <br>
+  (Peter Munch, Magdalena Schreter, 2022/12/11)
+ </li>
+
+ <li>
+  Removed: A number of obscure CMake configuration options have been removed:
+  <code>DEAL_II_PREFER_STATIC_LINKAGE</code>,
+  <code>DEAL_II_STATIC_EXECUTABLE</code>,
+  <code>DEAL_II_SETUP_DEFAULT_COMPILER_FLAGS</code>.
+  <br>
+  (Matthias Maier, 2022/12/02)
+ </li>
+
+ <li>
+  Removed: The build system no longer generates pkg-config files.
+  <br>
+  (Matthias Maier, 2022/11/30)
+ </li>
+
+ <li>
+  Removed: The <code>deal.IIFeatureConfig.cmake</code> configuration file
+  has been removed. This file used to contain a record of all
+  <code>FEATURE_[suffix]</code> variables for a given external library.
+  Said information is now exported via interface targets in CMake.
+  <br>
+  (Matthias Maier, 2022/11/30)
+ </li>
+
+ <li>
+  Changed: We introduced a stronger datatype for FE indices:
+  <ul>
+    <li> Instead of unsigned int, we now use types::fe_index for FE indices throughout the library.
+    <li> For invalid FE indices, we no longer use numbers::invalid_unsigned_int, but numbers::invalid_fe_index.
+  </ul>
+  This affects interfaces to a lot of functions. Most of them are backwards compatible via implicit conversion.
+  Functions that do not fall in that category are listed below and might need your attention.
+  Some of them have been deprecated, some are replaced because we imagine them only being used internally.
+  <ul>
+    <li> DoFHandler::set_active_fe_indices() (deprecated)
+    <li> DoFHandler::get_active_fe_indices() (deprecated)
+  </ul>
+  Further, the serialization of parallel::distributed::Triangulation objects is also affected by this change
+  as we write FE indices to disk. Thus, the version in the serialization metafile has been bumped to `5`.
+  <br>
+  (Marc Fehling, 2022/10/27)
+ </li>
+
+ <li>
+  Removed: The base class of SparsityPattern, SparsityPatternBase, has been removed.
+  <br>
+  (David Wells, 2022/09/22)
+ </li>
+
+ <li>
+  Updated: The version of the vtu output has been increased to 2.2
+  if high-order output is requested.
+  This is necessary to fix visualization issues in Paraview.
+  <br>
+  (Peter Munch, Magdalena Schreter, 2022/09/18)
+ </li>
+
+ <li>
+  Changed: The function DoFHandler::get_active_fe_indices() now returns
+  the result vector. The previous version that writes into the argument
+  as well as DoFTools::get_active_fe_indices() have been deprecated.
+  <br>
+  (Marc Fehling, 2022/08/20)
+ </li>
+
+ <li>
+  Moved: The functions in Utilities::Trilinos have been moved to a separate header,
+  base/trilinos_utilities.h.
+  <br>
+  (David Wells, 2022/08/16)
+ </li>
+
+ <li>
+  Changed: The oldest supported version of PETSc has been increased from 3.3.0
+  to 3.7.0.
+  <br>
+  (David Wells, 2022/07/27)
+ </li>
+
+ <li>
+  Removed: The deprecated QTrapez, ParticleHandler::locally_relevant_ids(),
+  and Arkode::reinit_vector have been removed.
+  <br>
+  (Daniel Arndt, 2022/06/29)
+ </li>
+
+ <li>
+  Removed: The deprecated member function CellId::to_cell() has been removed.
+  <br>
+  (Daniel Arndt, 2022/06/28)
+ </li>
+
+ <li>
+  Removed: The deprecated header file lac/parallel_block_vector.h
+  has been removed.
+  <br>
+  (Daniel Arndt, 2022/06/27)
+ </li>
+
+ <li>
+  Removed: The deprecated classes ConstantFunction and ZeroFunction
+  have been removed.
+  <br>
+  (Daniel Arndt, 2022/06/24)
+ </li>
+
+ <li>
+  Removed: The deprecated member functions DoFHandler::initialize() and
+  DoFHandler::set_fe() have been removed.
+  <br>
+  (Daniel Arndt, 2022/06/24)
+ </li>
+
+ <li>
+  Removed: The deprecated member functions of QProjector not using a ReferenceCell
+  object have been removed.
+  <br>
+  (Daniel Arndt, 2022/06/24)
+ </li>
+
+ <li>
+  Removed: The deprecated functions MatrixFree::n_macro_cells(),
+  MatrixFree::get_hp_cell_iterator(), MatrixFree::n_components_filled(),
+  MatrixFree::get_dof_handler(), and
+  MatrixFree::reinit() with default Mapping argument have been removed.
+  <br>
+  (Daniel Arndt, 2022/06/22)
+ </li>
+
+ <li>
+  Removed: The deprecated constructors for SparseVanka and SparseBlockVanka
+  have been removed.
+  <br>
+  (Daniel Arndt, 2022/06/22)
+ </li>
+
+ <li>
+  Removed: The deprecated LinearAlgebra::CUDAWrappers::atomicAdd_wrapper
+  has been removed.
+  <br>
+  (Daniel Arndt, 2022/06/22)
+ </li>
+
+ <li>
+  Rotated: The list of incompatible changes has been rotated.
+  <br>
+  (Matthias Maier, 2022/06/16)
+ </li>
+
+ <li>
+  Removed: The previously deprecated class hp::DoFHandler has been
+  removed, and with it all functions and classes that required the
+  template parameter DoFHandlerType.
+  <br>
+  From now on, use the standard DoFHandler. All hp-functionality has been
+  integrated to this one.
+  <br>
+  (Marc Fehling, Peter Munch, 2022/05/24)
+ </li>
+
+ <li>
+  Changed: All GridIn functions now remove unused vertices and will attempt to fix
+  pyramids and wedges with negative volumes.
+  <br>
+  (David Wells, 2022/05/25)
+ </li>
+
+ <li>
+  Removed: Deprecated constructors for PETScWrappers::MPI::SparseMatrix,
+  a deprecated overload for PETScWrappers::MatrixBase::add and a deprecated
+  constructor for PETScWrappers::MPI::Vector have been removed.
+  <br>
+  (Daniel Arndt, 2020/04/21)
+ </li>
+
+</ol>
+
+
+<!-- ----------- GENERAL IMPROVEMENTS ----------------- -->
+
+<a name="general"></a>
+<h3>General</h3>
+<ol>
+
+ <li>
+  New: Added support for the VTK library (https://vtk.org/).
+  <br>
+  (Pasquale Africa, 2023/05/24)
+ </li>
+
+ <li>
+  New: The new function distributed_compute_intersection_locations() computes
+  intersections on parallel::distributed::Triangulations using CGAL. It
+  returns a new class DistributedComputeIntersectionLocationsInternal which
+  stores the found intersections and relevant information about communication.
+  The class contains a helper function
+  convert_to_distributed_compute_point_locations_internal() to produce
+  DistributedComputePointLocationsInternal without an additional
+  (possibly expensive) search of points and can therefore be used to
+  initialize RemotePointEvaluation.
+  <br>
+  (Johannes Heinz, 2023/05/18)
+ </li>
+
+ <li>
+  Changed: Several parts of the library involve interfacing with
+  external libraries by way of user-defined callback functions. Specific
+  examples are the interfaces to the SUNDIALS solvers (e.g., the
+  SUNDIALS::KINSOL class). These interfaces typically required using the
+  convention for error reporting defined by the underlying library -- in
+  the case of SUNDIALS, for example, callbacks needed to return zero in
+  case of success, a negative value for an irrecoverable error, and a
+  positive value for a recoverable error.
+  This approach does not scale across the many interfaces we have. As a
+  consequence, we standardized how callbacks should behave, as
+  documented in @ref GlossUserProvidedCallBack "this glossary entry".
+  The interfaces in SUNDIALS::KINSOL and SUNDIALS::ARKode have been
+  changed correspondingly.
+  <br>
+  (Wolfgang Bangerth, 2023/05/08)
+ </li>
+
+ <li>
+  New: Add a two level transfer operator between non-nested multigrid levels for CG and DG.
+  <br>
+  (Marco Feder, Johannes Heinz, Peter Munch, Martin Kronbichler, 2023/04/26)
+ </li>
+
+ <li>
+  New: Add wrappers to the non-linear solver SNES (PETScWrappers::NonLinearSolver ) and
+  the ode integrator TS (PETScWrappers::TimeStepper) from the PETSc library.
+  <br>
+  (Stefano Zampini, 2023/04/22)
+ </li>
+
+ <li>
+  New: Kokkos is now a required dependency.
+  <br>
+  (Daniel Arndt, 2022/10/26)
+ </li>
+
+ <li>
+  New: Add a wrapper to the non-linear solver NOX from the
+  Trilinos library.
+  <br>
+  (Peter Munch, Vladimir Ivannikov, 2022/10/02)
+ </li>
+
+</ol>
+
+
+<!-- ----------- SPECIFIC IMPROVEMENTS ----------------- -->
+
+<a name="specific"></a>
+<h3>Specific improvements</h3>
+<ol>
+
+ <li>
+  Fixed: With some compilers, calling Threads::Task::Task() with a
+  function object that ends with an exception lead to a segmentation
+  fault. This is now fixed.
+  <br>
+  (Wolfgang Bangerth, 2023/06/26)
+ </li>
+
+ <li>
+  Fixed: Originally, the LAPACK in /source/lac/lapack_full_matrix.cc directly
+  printed errors to the console. This is fixed by using the AssertThrow mechanism
+  to explicitly display various error messages based on the error values that are 
+  consistent with the LAPACK manual.
+  <br>
+  (Tao Jin, 2023/06/20)
+ </li>
+
+ <li>
+  Fixed: The numbering applied within FEPointEvaluation did not work correctly
+  for multiple components and when used with first_selected_component!=0 for
+  certain FiniteElement types, leading to wrong results. This is now fixed.
+  <br>
+  (Johannes Heinz, Peter Munch, 2023/06/11)
+ </li>
+
+ <li>
+  Fixed: DoFCellAccessor::distribute_local_to_global() now works with std:: iterators.
+  <br>
+  (Johannes Heinz, 2022/06/06)
+ </li>
+
+ <li>
+  New: All parallel BlockVector classes now have a reinit function that takes
+  collections of Utilities::MPI::Partitioner objects as an argument. This
+  affects TrilinosWrappers::MPI::BlockVector, PETScWrappers::MPI::BlockVector,
+  and LinearAlgebra::distributed::BlockVector. The interface is compatible.
+  <br>
+  (Marc Fehling, 2023/06/02)
+ </li>
+
+ <li>
+  Improved: Make it possible to fill JxW in NonMatching::MappingInfo from quadratures which contain JxW as weights.
+  <br>
+  (Johannes Heinz, 2023/06/01)
+ </li>
+
+ <li>
+  Fixed: Patterns::pattern_factory now parses lists of lists correctly.
+  <br>
+  (Daniel Arndt, 2023/05/16)
+ </li>
+
+ <li>
+  Changed: The KINSOL wrapper used to copy vectors to/from deal.II format
+  to/from a native SUNDIALS format. These copies are no longer made.
+  <br>
+  (Sebastian Proell, 2023/05/15)
+ </li>
+
+ <li>
+  Fixed: step-77 contained a bug where the residual was not
+  zeroed out before assembly.
+  <br>
+  (Sebastian Proell, 2023/05/14)
+ </li>
+
+ <li>
+  Changed: MPI communicators (of type `MPI_Comm`) are now treated as
+  trivially copyable POD types throughout the library. This means that
+  we store and pass them by value instead of by reference.
+  <br>
+  (Timo Heister, 2023/05/08)
+ </li>
+
+ <li>
+  New: The new class ScopeExit is useful in ensuring that cleanup code
+  is always run, regardless of how a function is left.
+  <br>
+  (Wolfgang Bangerth, 2023/05/05)
+ </li>
+
+ <li>
+  New: Added new nonlinear solver class NonlinearSolverSelector.
+  <br>
+  (Sean Ingimarson, 2023/05/01)
+ </li>
+
+ <li>
+  New: FEInterfaceValues::reinit() sometimes had trouble automatically
+  determining which quadrature or mapping object to use in the hp
+  context. There are now two more rules that help determine which
+  objects to use, as described in detail in the documentation.
+  <br>
+  (Wolfgang Bangerth, 2023/04/25)
+ </li>
+
+ <li>
+  Fixed: Consider the following scenario: You initialize a DoFHandler with a
+  parallel::distributed::Triangulation, and afterwards you want to create the
+  Triangulation by calling Triangulation::create_triangulation() that takes a
+  TriangulationDescription::Description as an argument. This caused an issue
+  as the active FE tables of the DoFHandler have not been properly updated
+  during the creation of the Triangulation. This is fixed now by treating the
+  resulting Triangultion as a 'fresh' one by triggering Triangulation::Signals::create
+  at the end of Triangulation::create_triangulation(), which in turn
+  reinitializes the DoFHandler.
+  <br>
+  (Marc Fehling, 2023/04/21)
+ </li>
+
+ <li>
+  Fixed: ParameterAcceptor::clear() had issues with 'use after free'.
+  <br>
+  (Luca Heltai, 2023/04/20)
+ </li>
+
+ <li>
+  Fixed: Mesh files in COMSOL's `.mphtxt` format are often created on
+  Windows and then read using deal.II on Unix. Windows uses a different
+  line ending style than Linux, and this led to error messages that were
+  impossible to understand because the different line ending style is
+  not visible in most editors. This is now fixed: The
+  GridIn::read_comsol_mphtxt() function also accepts Windows line
+  endings.
+  <br>
+  (Wolfgang Bangerth, 2023/04/20)
+ </li>
+
+ <li>
+  Fixed: In FEInterfaceValues::reinit(), if `q_index` is not explicitly
+  given but none of the two adjacent elements dominates the other, one
+  used to get a rather obscure error. The error now produced points at
+  the actual problem, and a much expanded discussion of what is going
+  wrong is provided in the documentation of the function.
+  <br>
+  (Simon Sticko, Wolfgang Bangerth, 2023/04/13)
+ </li>
+
+ <li>
+  Deprecated: The DoFTools::map_dofs_to_support_points() function family
+  had functions that returned what they computed via a non-const
+  reference argument `support_points` of type `std::map`. These
+  overloads are now deprecated and replaced by functions that return the
+  map via a regular `return` value.
+  <br>
+  (Wolfgang Bangerth, 2023/04/07)
+ </li>
+
+ <li>
+  New: Added Functions::SignedDistance::ZalesakDisk()
+  to compute the signed distance function of Zalesak's disk.
+  <br>
+  (Magdalena Schreter, Simon Sticko, Peter Munch, 2023/04/06)
+ </li>
+
+ <li>
+  Fixed: In grid_out.cc VtkFlags with default settings were passed to the
+  write_vtu method instead of the available vtu_flags. Thus, a
+  compression_level that has been set was simply ignored. This has been
+  fixed in #14983 by passing the available vtu_flags to the method.
+  <br>
+  (Christoph Schmidt, 2023/04/05)
+ </li>
+
+ <li>
+  New: Added Functions::SignedDistance::Rectangle() and BoundingBox::signed_distance()
+  to compute the signed distance function of a rectangle.
+  <br>
+  (Magdalena Schreter, Peter Munch, 2023/03/31)
+ </li>
+
+ <li>
+  Changed: The default `compression_level` for vtu output is changed from `best_compression` to `best_speed`.
+  <br>
+  (Christoph Schmidt, 2023/03/28)
+ </li>
+
+ <li>
+  New: Added an ArrayView::empty() function.
+  <br>
+  (Maximilian Bergbauer, 2023/03/21)
+ </li>
+
+ <li>
+  New: Added functionality to the matrix-free CellwiseInverseMassMatrix
+  operator for coupling (dyadic) coefficients. `fill_inverse_JxW_values`
+  and `CellwiseInverseMassMatrixImplFlexible` have been extended.
+  Internal interfaces for the coefficients now use ArrayView instead
+  of AlignedVector.
+  <br>
+  (Bugrahan Temur, 2023/03/15)
+ </li>
+
+ <li>
+  Fixed: There was no instance of GridTools::collect_periodic_faces() with
+  MeshType = parallel::shared::Triangulation<1,1>. But the function works with the
+  template parameter as well. Thus, it should be instantiated.
+  <br>
+  (Nils Schween, 2023/03/14)
+ </li>
+
+ <li>
+  New: LAPACKFullMatrix now provides two new functions,
+  LAPACKFullMatrix::get_right_eigenvectors() and
+  LAPACKFullMatrix::get_left_eigenvectors(), to return eigenvectors after calls
+  to LAPACKFullMatrix::compute_eigenvalues().
+  <br>
+  (Martin Kronbichler, 2023/03/09)
+ </li>
+
+ <li>
+  New: Provide overloads for `make_array_view` for `AlignedVector`.
+  <br>
+  (Sebastian Proell, 2023/03/06)
+ </li>
+
+ <li>
+  Fixed: It was previously possible to assign scalar values to
+  Tensor and VectorizedArray objects that were temporaries -- say in expressions
+  such as
+  ```
+    VectorizedArray<...> my_function();
+    ...
+    my_function() = 1.234;
+  ```
+  This does not make any sense: What `my_function()` returns is a
+  temporary object, and assigning a value to it has no consequences
+  because the temporary object dies at the end of the line. Whatever the
+  programmer intended to do here was almost certainly a mistake.
+  As a consequence, this is now prohibited and the compiler will produce
+  an error when trying to do this.
+  <br>
+  (Wolfgang Bangerth, 2023/03/05)
+ </li>
+
+ <li>
+  Fixed: SolverCG used with matrices and preconditioners that support
+  interleaving of the vector updates with the matrix-vector product (e.g. with
+  certain matrix-free operators) sometimes performed the final update to the
+  result vector `x` with a wrong coefficient. This could affect the returned
+  solution for coarse tolerances far away from convergence. This is now fixed.
+  <br>
+  (Martin Kronbichler, 2023/02/26)
+ </li>
+
+ <li>
+  Fixed: When used with the linear-polynomial MappingQCache(1),
+  FEValues::reinit() could previously trigger CellSimilarity in case the
+  underlying mesh was affine, but the deformed state described via MappingQCache
+  was not. This is now fixed.
+  <br>
+  (Martin Kronbichler, 2023/02/22)
+ </li>
+
+ <li>
+  New: Implement `VectorTools::add_constant` that adds a constant
+  to a given component of a finite element solution.
+  <br>
+  (Timo Heister, 2023/02/17)
+ </li>
+
+ <li>
+  New: The function ReferenceCell::face_vertex_location() allows
+  translating between the vertices of faces of cells and the coordinate
+  system of the cell itself.
+  <br>
+  (Wolfgang Bangerth, 2023/02/09)
+ </li>
+
+ <li>
+  Fixed: Fix GridTools::find_all_active_cells_around_point() to return the correct cells
+  if the requested point is located on a cell edge adjacent to neighbor cells at different 
+  refinement levels.
+  <br>
+  (Peter Munch, Magdalena Schreter, 2023/02/07)
+ </li>
+
+ <li>
+  Fixed: The DerivativeForm class had a constructor that took an array
+  of elements via the type
+  `Tensor<order, spacedim, Tensor<1, dim,Number>>`.
+  This should have been
+  `Tensor<1, spacedim, Tensor<order, dim, Number>>`, and it is now fixed.
+  <br>
+  (Robin Goermer, Wolfgang Bangerth, 2023/02/01)
+ </li>
+
+ <li>
+  New: The function IndexSet::get_index_vector() returns a vector
+  with all indices that are part of an index set.
+  <br>
+  (Wolfgang Bangerth, 2023/01/26)
+ </li>
+
+ <li>
+  Improved: Mapping can now return vertices on a face of a cell.
+  <br>
+  (Johannes Heinz, 2023/01/25)
+ </li>
+
+ <li>
+  Fixed: When outputting hexahedral meshes in AVS Explorer's UCD file format,
+  cells were written with an inverted vertex order. While they were shown
+  correctly, these cells had negative volume. This has now been fixed.
+  <br>
+  (Nils Margenberg, 2023/01/22)
+ </li>
+
+ <li>
+  Improved: Introduce a function that only checks if Bounding Boxes are overlapping.
+  Fixed: If a 1D BBox is completely contained in another one, it was not recognized as mergeable neighbor.
+  <br>
+  (Johannes Heinz, 2022/07/07)
+ </li>
+
+ <li>
+  New: The function ReferenceCell::contains_points() is now implemented
+  for all reference cell kinds (it had been missing for wedges and
+  pyramids before).
+  <br>
+  (Wolfgang Bangerth, 2023/01/11)
+ </li>
+
+ <li>
+  New: There are now overloads of the make_array_view() function for objects of
+  type std::array.
+  <br>
+  (Wolfgang Bangerth, 2023/01/09)
+ </li>
+
+ <li>
+  Deprecated: The functions ReferenceCell::compute_orientation() and
+  ReferenceCell::permute_according_orientation() have been deprecated. Use
+  ReferenceCell::get_orientation_index() and
+  ReferenceCell::reorient_based_on_orientation_index() instead.
+  <br>
+  (Wolfgang Bangerth, 2023/01/09)
+ </li>
+
+ <li>
+  New: Writing graphical output in VTU format now uses a workflow that
+  uses multiple threads where possible, substantially increasing the
+  speed with which functions such as DataOut::write_vtu() work.
+  <br>
+  (Wolfgang Bangerth, 2022/12/30)
+ </li>
+
+ <li>
+  Improved: The FEInterfaceValues values public interface has been extended
+  further to support hp-FEM. Functions have been added to report if the class has
+  been initialized with hp support, and to get the underlying
+  hp::MappingCollection, hp::FECollection and hp::QCollection. The various
+  FEInterfaceValues::reinit() methods now accept indices to indicate which
+  quadrature rule, mapping (and, in some cases, finite elements) should be used to
+  compute values across the interface.
+  <br>
+  (Jean-Paul Pelteret, 2022/12/28)
+ </li>
+
+ <li>
+  New: ScratchData now has support for hp finite elements on interfaces.
+  <br>
+  (Jean-Paul Pelteret, 2022/12/23)
+ </li>
+
+ <li>
+  New: Allow the construction of a deal.II PETSc matrices from a PETSc Mat.
+  <br>
+  (Stefano Zampini, 2022/12/21)
+ </li>
+
+ <li>
+  New: Expose PETScWrappers::MPI::BlockVector as a PETSc VecNest vector, and make sure the mpi communicator is always
+  queried from the internal vec object.
+  <br>
+  (Stefano Zampini, 2022/12/21)
+ </li>
+
+ <li>
+  New: PETScWrappers:BlockSparseMatrix now is also a PETSc MATNEST type.
+  <br>
+  (Stefano Zampini, 2022/12/20)
+ </li>
+
+ <li>
+  Fixed: Small fixes to commnicator handling in PETSc classes. Move from 
+  GetArray to GetArrayRead (threadsafe version).
+  <br>
+  (Stefano Zampini, 2022/12/20)
+ </li>
+
+ <li>
+  New: LinearAlgebra::distributed::BlockVector::reinit now accepts
+  a vector of Utilities::MPI::Partitioner objects.
+  <br>
+  (Marc Fehling, 2022/12/20)
+ </li>
+
+ <li>
+  Improved: FEInterfaceValues objects can now also be constructed using hp-collections.
+  <br>
+  (Marco Feder, 2022/12/20)
+ </li>
+
+ <li>
+  Fixed: Add default MPI getter for PETSc Mat objects, that queries the underlying PETSc type.
+  <br>
+  (Stefano Zampini, 2022/12/13)
+ </li>
+
+ <li>
+  Fixed: PETSc has no concept of ownership, but only shared ownership. Vec and Mat objects are
+  reference counted, and automatically cleaned when no longer used. We do not need to keep track 
+  of ownership manually.
+  <br>
+  (Stefano Zampini, 2022/12/13)
+ </li>
+
+ <li>
+  Improved: The function GridTools::rotate()
+  can now also handle Triangulation objects with
+  dim=1 and spacedim=2.
+  <br>
+  (Peter Munch, 2022/12/08)
+ </li>
+
+ <li>
+  New: SolverGMRES and SolverFGMRES now also support classical 
+  Gram-Schmidt orthonormalization
+  alongside to the existing modified Gram-Schmidt algorithm. This
+  algorithm allows to reduce the cost of vector operations in terms of
+  communication latency and memory transfer significantly.
+  <br>
+  (Peter Munch, Martin Kronbichler, 2022/12/08)
+ </li>
+
+ <li>
+  Fixed: The residual assembly in step-77 contained a bug that prevented
+  the correct residual from being computed. This is now fixed.
+  <br>
+  (Stefano Zampini, 2022/12/06)
+ </li>
+
+ <li>
+  Improved: The history of linear residuals norms inside classes SolverControl and
+  ReductionControl is now cleared at the first step of the solution.
+  <br>
+  (Vladimir Ivannikov, 2022/12/05)
+ </li>
+
+ <li>
+  New: TrilinosWrappers::MPI::Vector and PETScWrappers::MPI::Vector now both have
+  reinit functions that take a Utilities::MPI::Partitioner as an argument, so
+  their interface is compatible to LinearAlgebra::distributed::Vector.
+  <br>
+  (Marc Fehling, 2022/12/05)
+ </li>
+
+ <li>
+  Improved: The quick_tests mechanism has been redesigned. Quick tests are
+  now part of the regular deal.II testsuite. This means they can be
+  configured via the <code>setup_tests_quick_tests</code> target, and run via
+  invoking ctest from the build directory. The <code>test</code> target will
+  now ensure that the library is fully compiled and quick tests are
+  configured prior to running all quick tests.
+  <br>
+  (Matthias Maier, 2022/11/29, 2022/12/10)
+ </li>
+
+ <li>
+  New: There is now a new function Threads::TaskGroup::return_values() that waits
+  for all tasks in a task group and returns a vector of their returned objects.
+  <br>
+  (Wolfgang Bangerth, 2022/11/29)
+ </li>
+
+ <li>
+  Changed: All SparsityPattern classes now inherit from a new class SparsityPatternBase
+  which provides an API for efficiently adding new entries. As a consequence of this change,
+  the majority of templates over the sparsity pattern type have been removed.
+  <br>
+  (David Wells, 2022/11/25)
+ </li>
+
+ <li>
+  New: Add utility function Utilities::MPI::scatter.
+  <br>
+  (Magdalena Schreter, Peter Munch, 2022/11/24)
+ </li>
+
+ <li>
+  Improved: The deal.II CMake project configuration and the
+  deal_II_invoke_autopilot() CMake macro that is used in user projects now
+  always export the <code>compile_commands.json</code> file used for various
+  tooling (such as completion backends like clangd).
+  <br>
+  (Matthias Maier, 2022/11/24)
+ </li>
+
+ <li>
+  Improved: Added capability in the particle handler to generate ghost particles 
+  in ghost cells close to periodic boundary conditions.
+  <br>
+  (Bruno Blais, Audrey Collard-Daigneault, 2022-11-18)
+ </li>
+
+ <li>
+  Changed: The constructors of the various solver classes in the PETScWrappers namespace
+  used to take an `MPI_Comm` argument. This has now been changed: There
+  is a new set of constructors that no longer take this argument, and
+  the old constructors have been deprecated. In practice, the solvers
+  now use the same MPI communicator as the matrix give to the `solve()`
+  function.
+  <br>
+  (Wolfgang Bangerth, 2022/11/16)
+ </li>
+
+ <li>
+  New: PreconditionChebyshev now also supports
+  James Lottes
+  s fourth-kind Chebyshev.
+  <br>
+  (Martin Kronbichler, Peter Munch, 2022/11/12)
+ </li>
+
+ <li>
+  Workaround: The testsuite CMake macros now generate a top-level target
+  compile_test_executables in user projects that can be used to force the
+  compilation of all test executables. This works around an issue with the
+  ninja build system that concurrent invocation of tests
+  (via <code>ctest -jN</code>) that build executables will fail when calling
+  back into cmake. As a workaround it is now possible to first build all
+  executables first via <code>ninja compile_test_executables</code> and then
+  run tests in parallel with <code>ctest -jN</code>.
+  <br>
+  (Matthias Maier, 2022/11/11)
+ </li>
+
+ <li>
+  Improved: FEImmersedSurfaceValues can now be constructed using a MappingFEField.
+  <br>
+  (Marco Feder, 2022/10/31)
+ </li>
+
+ <li>
+  New: A new overload for MatrixFree::loop allows
+  to specify a pre- and post-operation, similar
+  to MatrixFree::cell_loop.
+  <br>
+  (Sebastian Proell, 2022/10/11)
+ </li>
+
+ <li>
+  New: We now instruct doxygen to build the documentation with multiple
+  threads, substantially reducing the amount of time it takes to
+  complete this step.
+  <br>
+  (Wolfgang Bangerth, 2022/10/04)
+ </li>
+
+ <li>
+  New: The GridTools::MarchingCubeAlgorithm supports now also 1D.
+  <br>
+  (Magdalena Schreter, Peter Munch, 2022/09/23)
+ </li>
+
+ <li>
+  Fixed: On very coarse meshes, with very particular manifolds, e.g., polar manifolds, 
+  cylindrical manifolds, Manifold<3, 3>::normal_vector may return a zero vector.
+  This is fixed now. 
+  <br>
+  (Timo Heister, Luca Heltai, Jiaqi Zhang, 2022/09/20)
+ </li>
+
+ <li>
+  New: The new function CGALWrappers::compute_intersection_of_cells computes
+  the intersection between two (affine) cells starting from the location of the
+  vertices. The intersection is described by a vector of arrays, where each array 
+  identifies a simplex of the sub-tassellation of the intersection.
+  <br>
+  (Marco Feder, Johannes Heinz, 2022/09/20)
+ </li>
+
+ <li>
+  Fixed: The function GridTools::internal::distributed_compute_point_locations()
+  now projects reference points outside of a cell (but within a tolerance) onto
+  the unit cell. This enables the use of FE_Q_iso_Q1 in 
+  Utilities::MPI::RemotePointEvaluation.
+  <br>
+  (Peter Munch, Magdalena Schreter, 2022/09/12)
+ </li>
+
+ <li>
+  Improved: The functions VectorTools::point_values()/::point_gradients() and 
+  the class Utilities::MPI::RemotePointEvaluation now allow to specify the first
+  component to be selected. The feature is used in the class DataOutResample
+  to output multi-component solutions.
+  <br>
+  (Peter Munch, Magdalena Schreter, 2022/09/12)
+ </li>
+
+ <li>
+  Improved: The vector operations in SolverIDR::solve() have been revised for
+  performance.  The new implementation should show a speedup in case the
+  matrix-vector product and preconditioner are not much more expensive than the
+  vector operations. Furthermore, the usage of temporary vectors has been
+  reduced by two.
+  <br>
+  (Martin Kronbichler, 2022/09/12)
+ </li>
+
+ <li>
+  New: Functions DoFHandler::get_future_fe_indices() and
+  DoFHandler::set_future_fe_indices() that store and recover future FE
+  indices on a DoFHandler. They can also be used to transfer future FE
+  indices between different DoFHandler objects.
+  <br>
+  (Marc Fehling, 2022/08/20)
+ </li>
+
+ <li>
+  New: The CellAccessor::as_dof_handler_iterator() function can be used
+  to convert from a Triangulation active cell iterator to a DoFHandler active cell
+  iterator, or from an active cell iterator of one DoFHandler to that of another
+  DoFHandler.
+  <br>
+  (Jean-Paul Pelteret, 2022/07/15)
+ </li>
+
+ <li>
+  Improved: Refinement and coarsening flags are now
+  communicated in parallel::shared::Triangulation.
+  <br>
+  (Peter Munch, 2022/07/12)
+ </li>
+
+ <li>
+  New: The new class MatrixFreeTools::ElementActivationAndDeactivationMatrixFree
+  is a wrapper around MatrixFree designed to deal with 
+  DoFHandler objects involving cells without degrees of freedom, i.e.,
+  cells using FENothing as element type. The class helps to implement the
+  "element birth and death technique".
+  <br>
+  (Peter Munch, Sebastian Proell, 2022/07/09)
+ </li>
+
+ <li>
+  New: Implement `DataOut::write_deal_II_intermediate_in_parallel()`
+  that writes a combined file from all MPI ranks using MPI I/O of the
+  internal patches and a corresponding
+  `DataOutReader::read_whole_parallel_file()` to read them back in.
+  <br>
+  (Timo Heister, 2022/07/07)
+ </li>
+
+ <li>
+  Improved: The function GridGenerator::merge_triangulations() can now copy boundary ids to remaining boundary faces.
+  <br>
+  (Johannes Heinz, 2022/07/07)
+ </li>
+
+ <li>
+  New: There are now functions Utilities::MPI::isend() and
+  Utilities::MPI::irecv() that can send and receive arbitrary objects to
+  and from other processes, and that handle all of the setting up and
+  tearing down of MPI objects and temporary buffers.
+  <br>
+  (Wolfgang Bangerth, 2022/07/07)
+ </li>
+
+ <li>
+  Improved: The function VectorTools::point_values() can now handle
+  cell-data vectors.
+  <br>
+  (Peter Munch, 2022/07/06)
+ </li>
+
+ <li>
+  Added the missing explicit instantiations of DoFTools::distribute_cell_to_dof_vector
+  for problems with non-zero codim (dim != spacedim) 
+  <br>
+  (Ahmad Shahba, 2022/07/06)
+ </li>
+
+ <li>
+  Fixed: MappingCartesian used to throw exceptions in debug mode when checking if
+  small cells in a large domain size are actually aligned to coordinate axes.
+  This is fixed now.
+  <br>
+  (Rene Gassmoeller, 2022/07/04)
+ </li>
+
+ <li>
+  Fixed: The function find_active_cell_around_point() now skips cells without any marked vertices.
+  <br>
+  (Johannes Heinz, 2022/06/28)
+ </li>
+
+ <li>
+  New: The PetscWrappers::PreconditionBDDC preconditioner has been implemented. It requires a special matrix type (IS), which is initialized with the new function PetscWrappers::reinit.
+  <br>
+  (Nicolas Barnafi, 2022/05/10)
+ </li>
+
+</ol>
+
+*/

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.