From: Matthias Maier Date: Tue, 27 Jun 2023 15:42:35 +0000 (-0500) Subject: Update the changelog file for the release. X-Git-Tag: v9.5.0-rc1~5^2~7 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d1bfef349b2922fadd06a340d4f0e45a386edf2a;p=dealii.git Update the changelog file for the release. --- 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 index 0000000000..876a4077e5 --- /dev/null +++ b/doc/news/9.4.0-vs-9.5.0.h @@ -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 + +

+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. +

+ + + +

Incompatibilities

+ +

+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. +

+
    + +
  1. + 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". +
    + (Wolfgang Bangerth, 2023/05/31) +
  2. + +
  3. + 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(). +
    + (Maximilian Bergbauer, 2023/05/29) +
  4. + +
  5. + 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. +
    + (Wolfgang Bangerth, 2023/05/23) +
  6. + +
  7. + Extensive rework of CUDAWrappers::MatrixFree and CUDAWrappers::FEEvaluation. +
    + (Bruno Turcksin, 2023/05/11) +
  8. + +
  9. + Changed: The get_mpi_communicator() methods no longer return references to MPI_Comm. + They all now return the MPI_Comm by value. +
    + (Stefano Zampini, 2023/04/12) +
  10. + +
  11. + Removed: The docker image with root user has been removed. +
    + 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) +
  12. + +
  13. + Removed: The CUDAWrappers::MatrixFee::AdditionalData::ParallelizationScheme + parameter has been removed. +
    + (Bruno Turcksin, 2023/03/30) +
  14. + +
  15. + 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. +
    + (Matthias Maier, 2023/03/29) +
  16. + +
  17. + Changed: The default behavior of the hdf5 output is changed from "not compressed" to "compressed" (default compression_level: best_speed). +
    + (Christoph Schmidt, 2023/03/24) +
  18. + +
  19. + Updated: deal.II now requires CMake version 3.13.4 or later. +
    + (Matthias Maier, 2023/01/26) +
  20. + +
  21. + 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. +
    + (Peter Munch, Magdalena Schreter, 2022/12/11) +
  22. + +
  23. + Removed: A number of obscure CMake configuration options have been removed: + DEAL_II_PREFER_STATIC_LINKAGE, + DEAL_II_STATIC_EXECUTABLE, + DEAL_II_SETUP_DEFAULT_COMPILER_FLAGS. +
    + (Matthias Maier, 2022/12/02) +
  24. + +
  25. + Removed: The build system no longer generates pkg-config files. +
    + (Matthias Maier, 2022/11/30) +
  26. + +
  27. + Removed: The deal.IIFeatureConfig.cmake configuration file + has been removed. This file used to contain a record of all + FEATURE_[suffix] variables for a given external library. + Said information is now exported via interface targets in CMake. +
    + (Matthias Maier, 2022/11/30) +
  28. + +
  29. + Changed: We introduced a stronger datatype for FE indices: +
      +
    • Instead of unsigned int, we now use types::fe_index for FE indices throughout the library. +
    • For invalid FE indices, we no longer use numbers::invalid_unsigned_int, but numbers::invalid_fe_index. +
    + 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. +
      +
    • DoFHandler::set_active_fe_indices() (deprecated) +
    • DoFHandler::get_active_fe_indices() (deprecated) +
    + 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`. +
    + (Marc Fehling, 2022/10/27) +
  30. + +
  31. + Removed: The base class of SparsityPattern, SparsityPatternBase, has been removed. +
    + (David Wells, 2022/09/22) +
  32. + +
  33. + 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. +
    + (Peter Munch, Magdalena Schreter, 2022/09/18) +
  34. + +
  35. + 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. +
    + (Marc Fehling, 2022/08/20) +
  36. + +
  37. + Moved: The functions in Utilities::Trilinos have been moved to a separate header, + base/trilinos_utilities.h. +
    + (David Wells, 2022/08/16) +
  38. + +
  39. + Changed: The oldest supported version of PETSc has been increased from 3.3.0 + to 3.7.0. +
    + (David Wells, 2022/07/27) +
  40. + +
  41. + Removed: The deprecated QTrapez, ParticleHandler::locally_relevant_ids(), + and Arkode::reinit_vector have been removed. +
    + (Daniel Arndt, 2022/06/29) +
  42. + +
  43. + Removed: The deprecated member function CellId::to_cell() has been removed. +
    + (Daniel Arndt, 2022/06/28) +
  44. + +
  45. + Removed: The deprecated header file lac/parallel_block_vector.h + has been removed. +
    + (Daniel Arndt, 2022/06/27) +
  46. + +
  47. + Removed: The deprecated classes ConstantFunction and ZeroFunction + have been removed. +
    + (Daniel Arndt, 2022/06/24) +
  48. + +
  49. + Removed: The deprecated member functions DoFHandler::initialize() and + DoFHandler::set_fe() have been removed. +
    + (Daniel Arndt, 2022/06/24) +
  50. + +
  51. + Removed: The deprecated member functions of QProjector not using a ReferenceCell + object have been removed. +
    + (Daniel Arndt, 2022/06/24) +
  52. + +
  53. + 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. +
    + (Daniel Arndt, 2022/06/22) +
  54. + +
  55. + Removed: The deprecated constructors for SparseVanka and SparseBlockVanka + have been removed. +
    + (Daniel Arndt, 2022/06/22) +
  56. + +
  57. + Removed: The deprecated LinearAlgebra::CUDAWrappers::atomicAdd_wrapper + has been removed. +
    + (Daniel Arndt, 2022/06/22) +
  58. + +
  59. + Rotated: The list of incompatible changes has been rotated. +
    + (Matthias Maier, 2022/06/16) +
  60. + +
  61. + Removed: The previously deprecated class hp::DoFHandler has been + removed, and with it all functions and classes that required the + template parameter DoFHandlerType. +
    + From now on, use the standard DoFHandler. All hp-functionality has been + integrated to this one. +
    + (Marc Fehling, Peter Munch, 2022/05/24) +
  62. + +
  63. + Changed: All GridIn functions now remove unused vertices and will attempt to fix + pyramids and wedges with negative volumes. +
    + (David Wells, 2022/05/25) +
  64. + +
  65. + 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. +
    + (Daniel Arndt, 2020/04/21) +
  66. + +
+ + + + + +

General

+
    + +
  1. + New: Added support for the VTK library (https://vtk.org/). +
    + (Pasquale Africa, 2023/05/24) +
  2. + +
  3. + 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. +
    + (Johannes Heinz, 2023/05/18) +
  4. + +
  5. + 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. +
    + (Wolfgang Bangerth, 2023/05/08) +
  6. + +
  7. + New: Add a two level transfer operator between non-nested multigrid levels for CG and DG. +
    + (Marco Feder, Johannes Heinz, Peter Munch, Martin Kronbichler, 2023/04/26) +
  8. + +
  9. + New: Add wrappers to the non-linear solver SNES (PETScWrappers::NonLinearSolver ) and + the ode integrator TS (PETScWrappers::TimeStepper) from the PETSc library. +
    + (Stefano Zampini, 2023/04/22) +
  10. + +
  11. + New: Kokkos is now a required dependency. +
    + (Daniel Arndt, 2022/10/26) +
  12. + +
  13. + New: Add a wrapper to the non-linear solver NOX from the + Trilinos library. +
    + (Peter Munch, Vladimir Ivannikov, 2022/10/02) +
  14. + +
+ + + + + +

Specific improvements

+
    + +
  1. + 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. +
    + (Wolfgang Bangerth, 2023/06/26) +
  2. + +
  3. + 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. +
    + (Tao Jin, 2023/06/20) +
  4. + +
  5. + 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. +
    + (Johannes Heinz, Peter Munch, 2023/06/11) +
  6. + +
  7. + Fixed: DoFCellAccessor::distribute_local_to_global() now works with std:: iterators. +
    + (Johannes Heinz, 2022/06/06) +
  8. + +
  9. + 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. +
    + (Marc Fehling, 2023/06/02) +
  10. + +
  11. + Improved: Make it possible to fill JxW in NonMatching::MappingInfo from quadratures which contain JxW as weights. +
    + (Johannes Heinz, 2023/06/01) +
  12. + +
  13. + Fixed: Patterns::pattern_factory now parses lists of lists correctly. +
    + (Daniel Arndt, 2023/05/16) +
  14. + +
  15. + 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. +
    + (Sebastian Proell, 2023/05/15) +
  16. + +
  17. + Fixed: step-77 contained a bug where the residual was not + zeroed out before assembly. +
    + (Sebastian Proell, 2023/05/14) +
  18. + +
  19. + 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. +
    + (Timo Heister, 2023/05/08) +
  20. + +
  21. + New: The new class ScopeExit is useful in ensuring that cleanup code + is always run, regardless of how a function is left. +
    + (Wolfgang Bangerth, 2023/05/05) +
  22. + +
  23. + New: Added new nonlinear solver class NonlinearSolverSelector. +
    + (Sean Ingimarson, 2023/05/01) +
  24. + +
  25. + 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. +
    + (Wolfgang Bangerth, 2023/04/25) +
  26. + +
  27. + 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. +
    + (Marc Fehling, 2023/04/21) +
  28. + +
  29. + Fixed: ParameterAcceptor::clear() had issues with 'use after free'. +
    + (Luca Heltai, 2023/04/20) +
  30. + +
  31. + 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. +
    + (Wolfgang Bangerth, 2023/04/20) +
  32. + +
  33. + 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. +
    + (Simon Sticko, Wolfgang Bangerth, 2023/04/13) +
  34. + +
  35. + 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. +
    + (Wolfgang Bangerth, 2023/04/07) +
  36. + +
  37. + New: Added Functions::SignedDistance::ZalesakDisk() + to compute the signed distance function of Zalesak's disk. +
    + (Magdalena Schreter, Simon Sticko, Peter Munch, 2023/04/06) +
  38. + +
  39. + 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. +
    + (Christoph Schmidt, 2023/04/05) +
  40. + +
  41. + New: Added Functions::SignedDistance::Rectangle() and BoundingBox::signed_distance() + to compute the signed distance function of a rectangle. +
    + (Magdalena Schreter, Peter Munch, 2023/03/31) +
  42. + +
  43. + Changed: The default `compression_level` for vtu output is changed from `best_compression` to `best_speed`. +
    + (Christoph Schmidt, 2023/03/28) +
  44. + +
  45. + New: Added an ArrayView::empty() function. +
    + (Maximilian Bergbauer, 2023/03/21) +
  46. + +
  47. + 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. +
    + (Bugrahan Temur, 2023/03/15) +
  48. + +
  49. + 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. +
    + (Nils Schween, 2023/03/14) +
  50. + +
  51. + 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(). +
    + (Martin Kronbichler, 2023/03/09) +
  52. + +
  53. + New: Provide overloads for `make_array_view` for `AlignedVector`. +
    + (Sebastian Proell, 2023/03/06) +
  54. + +
  55. + 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. +
    + (Wolfgang Bangerth, 2023/03/05) +
  56. + +
  57. + 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. +
    + (Martin Kronbichler, 2023/02/26) +
  58. + +
  59. + 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. +
    + (Martin Kronbichler, 2023/02/22) +
  60. + +
  61. + New: Implement `VectorTools::add_constant` that adds a constant + to a given component of a finite element solution. +
    + (Timo Heister, 2023/02/17) +
  62. + +
  63. + New: The function ReferenceCell::face_vertex_location() allows + translating between the vertices of faces of cells and the coordinate + system of the cell itself. +
    + (Wolfgang Bangerth, 2023/02/09) +
  64. + +
  65. + 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. +
    + (Peter Munch, Magdalena Schreter, 2023/02/07) +
  66. + +
  67. + Fixed: The DerivativeForm class had a constructor that took an array + of elements via the type + `Tensor>`. + This should have been + `Tensor<1, spacedim, Tensor>`, and it is now fixed. +
    + (Robin Goermer, Wolfgang Bangerth, 2023/02/01) +
  68. + +
  69. + New: The function IndexSet::get_index_vector() returns a vector + with all indices that are part of an index set. +
    + (Wolfgang Bangerth, 2023/01/26) +
  70. + +
  71. + Improved: Mapping can now return vertices on a face of a cell. +
    + (Johannes Heinz, 2023/01/25) +
  72. + +
  73. + 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. +
    + (Nils Margenberg, 2023/01/22) +
  74. + +
  75. + 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. +
    + (Johannes Heinz, 2022/07/07) +
  76. + +
  77. + New: The function ReferenceCell::contains_points() is now implemented + for all reference cell kinds (it had been missing for wedges and + pyramids before). +
    + (Wolfgang Bangerth, 2023/01/11) +
  78. + +
  79. + New: There are now overloads of the make_array_view() function for objects of + type std::array. +
    + (Wolfgang Bangerth, 2023/01/09) +
  80. + +
  81. + 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. +
    + (Wolfgang Bangerth, 2023/01/09) +
  82. + +
  83. + 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. +
    + (Wolfgang Bangerth, 2022/12/30) +
  84. + +
  85. + 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. +
    + (Jean-Paul Pelteret, 2022/12/28) +
  86. + +
  87. + New: ScratchData now has support for hp finite elements on interfaces. +
    + (Jean-Paul Pelteret, 2022/12/23) +
  88. + +
  89. + New: Allow the construction of a deal.II PETSc matrices from a PETSc Mat. +
    + (Stefano Zampini, 2022/12/21) +
  90. + +
  91. + New: Expose PETScWrappers::MPI::BlockVector as a PETSc VecNest vector, and make sure the mpi communicator is always + queried from the internal vec object. +
    + (Stefano Zampini, 2022/12/21) +
  92. + +
  93. + New: PETScWrappers:BlockSparseMatrix now is also a PETSc MATNEST type. +
    + (Stefano Zampini, 2022/12/20) +
  94. + +
  95. + Fixed: Small fixes to commnicator handling in PETSc classes. Move from + GetArray to GetArrayRead (threadsafe version). +
    + (Stefano Zampini, 2022/12/20) +
  96. + +
  97. + New: LinearAlgebra::distributed::BlockVector::reinit now accepts + a vector of Utilities::MPI::Partitioner objects. +
    + (Marc Fehling, 2022/12/20) +
  98. + +
  99. + Improved: FEInterfaceValues objects can now also be constructed using hp-collections. +
    + (Marco Feder, 2022/12/20) +
  100. + +
  101. + Fixed: Add default MPI getter for PETSc Mat objects, that queries the underlying PETSc type. +
    + (Stefano Zampini, 2022/12/13) +
  102. + +
  103. + 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. +
    + (Stefano Zampini, 2022/12/13) +
  104. + +
  105. + Improved: The function GridTools::rotate() + can now also handle Triangulation objects with + dim=1 and spacedim=2. +
    + (Peter Munch, 2022/12/08) +
  106. + +
  107. + 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. +
    + (Peter Munch, Martin Kronbichler, 2022/12/08) +
  108. + +
  109. + Fixed: The residual assembly in step-77 contained a bug that prevented + the correct residual from being computed. This is now fixed. +
    + (Stefano Zampini, 2022/12/06) +
  110. + +
  111. + Improved: The history of linear residuals norms inside classes SolverControl and + ReductionControl is now cleared at the first step of the solution. +
    + (Vladimir Ivannikov, 2022/12/05) +
  112. + +
  113. + 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. +
    + (Marc Fehling, 2022/12/05) +
  114. + +
  115. + 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 setup_tests_quick_tests target, and run via + invoking ctest from the build directory. The test target will + now ensure that the library is fully compiled and quick tests are + configured prior to running all quick tests. +
    + (Matthias Maier, 2022/11/29, 2022/12/10) +
  116. + +
  117. + 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. +
    + (Wolfgang Bangerth, 2022/11/29) +
  118. + +
  119. + 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. +
    + (David Wells, 2022/11/25) +
  120. + +
  121. + New: Add utility function Utilities::MPI::scatter. +
    + (Magdalena Schreter, Peter Munch, 2022/11/24) +
  122. + +
  123. + 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 compile_commands.json file used for various + tooling (such as completion backends like clangd). +
    + (Matthias Maier, 2022/11/24) +
  124. + +
  125. + Improved: Added capability in the particle handler to generate ghost particles + in ghost cells close to periodic boundary conditions. +
    + (Bruno Blais, Audrey Collard-Daigneault, 2022-11-18) +
  126. + +
  127. + 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. +
    + (Wolfgang Bangerth, 2022/11/16) +
  128. + +
  129. + New: PreconditionChebyshev now also supports + James Lottes + s fourth-kind Chebyshev. +
    + (Martin Kronbichler, Peter Munch, 2022/11/12) +
  130. + +
  131. + 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 ctest -jN) that build executables will fail when calling + back into cmake. As a workaround it is now possible to first build all + executables first via ninja compile_test_executables and then + run tests in parallel with ctest -jN. +
    + (Matthias Maier, 2022/11/11) +
  132. + +
  133. + Improved: FEImmersedSurfaceValues can now be constructed using a MappingFEField. +
    + (Marco Feder, 2022/10/31) +
  134. + +
  135. + New: A new overload for MatrixFree::loop allows + to specify a pre- and post-operation, similar + to MatrixFree::cell_loop. +
    + (Sebastian Proell, 2022/10/11) +
  136. + +
  137. + New: We now instruct doxygen to build the documentation with multiple + threads, substantially reducing the amount of time it takes to + complete this step. +
    + (Wolfgang Bangerth, 2022/10/04) +
  138. + +
  139. + New: The GridTools::MarchingCubeAlgorithm supports now also 1D. +
    + (Magdalena Schreter, Peter Munch, 2022/09/23) +
  140. + +
  141. + 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. +
    + (Timo Heister, Luca Heltai, Jiaqi Zhang, 2022/09/20) +
  142. + +
  143. + 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. +
    + (Marco Feder, Johannes Heinz, 2022/09/20) +
  144. + +
  145. + 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. +
    + (Peter Munch, Magdalena Schreter, 2022/09/12) +
  146. + +
  147. + 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. +
    + (Peter Munch, Magdalena Schreter, 2022/09/12) +
  148. + +
  149. + 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. +
    + (Martin Kronbichler, 2022/09/12) +
  150. + +
  151. + 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. +
    + (Marc Fehling, 2022/08/20) +
  152. + +
  153. + 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. +
    + (Jean-Paul Pelteret, 2022/07/15) +
  154. + +
  155. + Improved: Refinement and coarsening flags are now + communicated in parallel::shared::Triangulation. +
    + (Peter Munch, 2022/07/12) +
  156. + +
  157. + 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". +
    + (Peter Munch, Sebastian Proell, 2022/07/09) +
  158. + +
  159. + 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. +
    + (Timo Heister, 2022/07/07) +
  160. + +
  161. + Improved: The function GridGenerator::merge_triangulations() can now copy boundary ids to remaining boundary faces. +
    + (Johannes Heinz, 2022/07/07) +
  162. + +
  163. + 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. +
    + (Wolfgang Bangerth, 2022/07/07) +
  164. + +
  165. + Improved: The function VectorTools::point_values() can now handle + cell-data vectors. +
    + (Peter Munch, 2022/07/06) +
  166. + +
  167. + Added the missing explicit instantiations of DoFTools::distribute_cell_to_dof_vector + for problems with non-zero codim (dim != spacedim) +
    + (Ahmad Shahba, 2022/07/06) +
  168. + +
  169. + 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. +
    + (Rene Gassmoeller, 2022/07/04) +
  170. + +
  171. + Fixed: The function find_active_cell_around_point() now skips cells without any marked vertices. +
    + (Johannes Heinz, 2022/06/28) +
  172. + +
  173. + New: The PetscWrappers::PreconditionBDDC preconditioner has been implemented. It requires a special matrix type (IS), which is initialized with the new function PetscWrappers::reinit. +
    + (Nicolas Barnafi, 2022/05/10) +
  174. + +
+ +*/