From 13213ed8820dc6c271a3e95f005b155a3f3fc98d Mon Sep 17 00:00:00 2001 From: Matthias Maier Date: Tue, 23 Jul 2024 17:35:44 -0500 Subject: [PATCH] update the changelog file for the release --- doc/news/9.5.2-vs-9.6.0.h | 1698 +++++++++++++++++++++++++++++++++++++ 1 file changed, 1698 insertions(+) create mode 100644 doc/news/9.5.2-vs-9.6.0.h diff --git a/doc/news/9.5.2-vs-9.6.0.h b/doc/news/9.5.2-vs-9.6.0.h new file mode 100644 index 0000000000..4decd8ff73 --- /dev/null +++ b/doc/news/9.5.2-vs-9.6.0.h @@ -0,0 +1,1698 @@ +// ------------------------------------------------------------------------ +// +// SPDX-License-Identifier: LGPL-2.1-or-later +// Copyright (C) 2016 - 2024 by the deal.II authors +// +// This file is part of the deal.II library. +// +// Part of the source code is dual licensed under Apache-2.0 WITH +// LLVM-exception OR LGPL-2.1-or-later. Detailed license information +// governing the source code and code contributions can be found in +// LICENSE.md and CONTRIBUTING.md at the top level directory of deal.II. +// +// ------------------------------------------------------------------------ + + +/** +@page changes_between_9_5_2_and_9_6_0 Changes between Version 9.5.2 and 9.6.0 + +

+This is the list of changes made between the release of deal.II version +9.5.2 and that of 9.6.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: ParameterHandler::read_in() now throws a ExcFileNotOpen exception + instead of PathSearch::ExcFileNotFound. +
    + (Matthias Maier, 2024/01/08) +
  2. + +
  3. + Changed: The GridIn::read() function variant taking a filename string no + longer uses PathSearch to try to find an appropriate file. Instead, the + function requires now that the filename string is a valid relative or + absolute path to mesh file in question. Additionally, GridIn::read() now + throws ExcFileNotOpen instead of PathSearch::FileNotFound. +
    + (Matthias Maier, 2024/01/08) +
  4. + +
  5. + Changed: GridTools::orthogonal_equality() now returns a + std::optional instead of a + std::optional>. As a consequence, + PeriodicFacePair now also stores an unsigned char instead of + a std::bitset<3> to represent the relative orientation of the first face to the + second face. +
    + (David Wells, 2024/05/25) +
  6. + +
  7. + Changed: The Quadrature class used to have a constructor that took an + integer argument. This was error-prone because it was easy to accidentally + write + @code + Quadrature quadrature(3); + @endcode + where + @code + QGauss quadrature(3); + @endcode + was meant. As a consequence, this constructor has been removed from the `public` + interface of the class. +
    + (Wolfgang Bangerth, 2024/05/13) +
  8. + +
  9. + Removed: The Tensor<0,dim> template had functions `begin_raw()` and + `end_raw()`, which had been deprecated for a couple of releases + already. They have been removed now. +
    + Furthermore, the corresponding functions for the general + Tensor template have been deprecated. They can still be used + for the time being, but only for the specific case `rank==1`. This is + because the underlying assumption of these functions is that tensors + store their elements in memory in a contiguous fashion, but that is + only true for the case `rank==1`. Similarly, the `make_array_view()` + function that takes tensors as input has been marked as deprecated, + and can only be used for rank-1 tensors from now on. +
    + (Wolfgang Bangerth, 2024/03/26) +
  10. + +
  11. + Changed: SolverGMRES::AdditionalData now controls the size of the Arnoldi + basis through the new member variable + SolverGMRES::AdditionalData::max_basis_size, rather than the number of + temporary vectors (which is the basis size plus 2). As a result, the default + value of the basis size is now 30, compared to 28 used before. The old + variable SolverGMRES::AdditionalData::max_n_tmp_vectors is still available, + but whenever SolverGMRES::AdditionalData::max_basis_size is set to a non-zero + value (including the value set by the default constructor), the latter takes + precedence. Furthermore, the default algorithm has been changed from + the modified Gram-Schmidt algorithm to the classical Gram-Schmidt algorithm. + The latter uses unconditional reorthogonalization delayed by one step, + following the algorithm described in @cite Bielich2022. +
    + (Martin Kronbichler, 2024/03/12) +
  12. + +
  13. + Changed:`ParameterHandler::parse_input_from_json()` reads now a json-file + without mangled parameter names. +
    + (Magdalena Schreter, Peter Munch, 2024/01/26) +
  14. + +
  15. + Removed: The rarely used long double variants `std_cxx17::legendrel` and + `std_cxx17::cyl_bessel_jl` have been removed due to a compatibility issue + with boost-1.83. If you happen to use these functions in your project + you can change to using `std::legendrel` and `std::cyl_bessel_jl` directly, + which are provided by the C++ standard template library. +
    + (Matthias Maier, 2024/01/08) +
  16. + +
  17. + Removed: The function FEPointEvaluation::real_point() has been + renamed to FEPointEvaluation::quadrature_point(). The old function + has been deprecated. +
    + (Peter Munch, 2024/01/01) +
  18. + +
  19. + Changed: We have always considered PETSc- and Trilinos-based vectors + that have ghost elements as immutable, i.e., it is possible to read + elements (including the ghost elements) but not to write into them. On + the other hand, the `compress()` function available in all vector + types is meant to communicate values written into non-locally-owned + vector elements to their proper owners, for example during assembly of + a right hand side vector. This `compress()` operation clearly only + makes sense if a vector does not have ghost elements, because only + then is it possible to write into the vector at all, but this + restriction was not enforced -- the `compress()` function simply did + not do anything at all in these cases. This has now changed: Because + it does not make sense to call `compress()` on vectors that have ghost + elements, it is now forbidden to call it and this case will be caught + by an assertion. +
    + (Wolfgang Bangerth, 2023/12/27) +
  20. + +
  21. + Changed: FiniteElement::adjust_quad_dof_index_for_face_orientation(), + FiniteElement::face_to_cell_index(), and + FiniteElement::adjust_line_dof_index_for_line_orientation() now use the + standardized combined_orientation orientation encoding as input + arguments rather than one or three booleans. +
    + (David Wells, 2023/12/21) +
  22. + +
  23. + Changed: Meshes in 2D now use the face_orientation boolean (instead of the + face_flip boolean) to represent their orientation. +
    + (David Wells, 2023/12/20) +
  24. + +
  25. + Removed: The file `include/deal.II/multigrid/mg_constrained_dofs.h` + used to include `deal.II/dofs/dof_tools.h` and + `deal.II/multigrid/mg_tools.h`. This is not the case any more. +
    + (Peter Munch, 2023/10/31) +
  26. + +
  27. + Removed: The functions evaluate() and integrate() of + CUDAWrappers::FEEvaluation that take Bools have been + deprecated and replaced by versions that take + EvaluationFlags. +
    + (Peter Munch, 2023/10/27) +
  28. + +
  29. + Changed: The class FEEvaluation now uses a different internal data layout for + the gradients, exposed via FEEvaluation::begin_gradients(). Now, the entries + of the partial derivatives in the space directions are placed adjacent in + memory. The entries of different components are still separated by the entries + on all points. This change has been made to simplify the access in the + FEEvaluation::get_gradient() and FEEvaluation::submit_gradient() functions, + which is especially useful for the case with many FE components. For the + regular use of FEEvaluation apart from the plain pointers mentioned above, + there is no change in behavior. +
    + (Martin Kronbichler, 2023/09/11) +
  30. + +
  31. + Changed: For Triangulations created with + MGTransferGlobalCoarseningTools::create_geometric_coarsening_sequence(), + the MeshSmoothing flag Triangulation::eliminate_unrefined_islands will + be removed. It caused unintentional refinement during coarsening which + led to problems in GlobalCoarseningFineDoFHandlerView. See also + #15541. +
    + (Marc Fehling, 2023/08/22) +
  32. + +
  33. + Changed: MGTransferMatrixFree::interpolate_to_mg() + returns now non-ghosted vectors. +
    + (Peter Munch, 2023/07/25) +
  34. + +
  35. + Removed: Support for PETSc without MPI has been removed. +
    + (Daniel Arndt, 2023/07/24) +
  36. + +
  37. + Removed: The methods copy_to_mg, copy_from_mg, + and interpolate_to_mg used of + MGTransferGlobalCoarsening and MGTransferMatrixFree + used to have spacedim as template argument. Since it + is not used and the underlying functionality did not work, + it has been removed. +
    + (Peter Munch, 2023/07/21) +
  38. + +
  39. + Removed: The deprecated header files + - deal.II/base/std_cxx14/algorithm.h + - deal.II/base/std_cxx14/memory.h + - deal.II/base/std_cxx14/utility.h + have been removed. +
    + (Daniel Arndt, 2023/07/13) +
  40. + +
  41. + Changed: The CMake configuration does no longer export git revision strings + and dates in `deal.IIConfig.cmake`. This avoids unnecessary + reconfigurations of client projects (such as the testsuite). Instead the + git revision strings and dates are now recorded in + `deal.IIConfigGit.cmake` whose path is recorded in `${DEAL_II_GIT_CONFIG}`. + This is similar to how we store the git revision in the header + `deal.II/base/revision.h` instead of `deal.II/base/config.h` to avoid + unnecessary recompilations of the library and user programs. User project + who need the information in CMake must do an + `include(${DEAL_II_GIT_CONFIG})`. +
    + (Matthias Maier, 2023/07/03) +
  42. + +
  43. + Removed: The LinearAlgebra::Vector class has been removed without deprecation. + Users should use the standard Vector class instead. +
    + (David Wells, 2023/07/03) +
  44. + +
  45. + Removed: The deprecated functions + Triangulation::create_triangulation_compatibility(), + GridTools::cell_measure(), + MappingQCache::initialize(), + TriaAccessor::number_of_children(), + the deprecated class LinearAlgebra::CommunicationPatternBase + and the PETScWrappers::PreconditionerBase alias + have been removed. +
    + (Daniel Arndt, 2023/07/03) +
  46. + +
  47. + Removed: The deprecated functions GridReordering::reorder_cells() + and GridReordering::invert_all_cells_of_negative_grid() + have been removed. +
    + (Daniel Arndt, 2023/07/03) +
  48. + +
  49. + Changed: The overloads of KellyErrorEstimator::estimate() which compute + multiple vector error estimates at once now require that vectors be passed + in ArrayView objects of pointers to ReadVector instead of std::vector objects + of pointers to VectorType objects. +
    + (David Wells, 2023/07/02) +
  50. + +
  51. + Removed: The deprecated MatrixFree::FEEvaluation + and MatrixFreeFaceEvaluation member function taking + bools instead of EvaluationFlags have been removed. +
    + (Daniel Arndt, 2023/07/02) +
  52. + +
  53. + Removed: The deprecated member variables + SUNDIALS::KINSOL::solve_jacobian_system, + and SUNDIALS::IDA::solve_jacobian_system + have been removed. +
    + (Daniel Arndt, 2023/07/02) +
  54. + +
  55. + Removed: The deprecated overloads for DoFTools::extract_boundary_dofs + returning void have been removed. +
    + (Daniel Arndt, 2023/07/02) +
  56. + +
  57. + Changed: Most of the member functions of FEValues now have different template + parameters. As a result, some function calls which relied on implicit + conversions to ArrayView now require explicit conversions instead. +
    + (David Wells, 2023/07/01) +
  58. + +
  59. + Updated: deal.II requires a compiler supporting C++17. +
    + (Daniel Arndt, 2023/07/01) +
  60. + +
  61. + Removed: The deprecated classes Threads::Thread, + and Threads::ThreadGroup and the function + Threads::new_thread() has been removed. +
    + (Daniel Arndt, 2023/07/01) +
  62. + +
  63. + Removed: The deprecated classes FEValuesViews::Scalar::OutputType, + FEValuesViews::Vector::OutputType, + FEValuesViews::SymmetricTensor::OutputType, + have been removed. +
    + (Daniel Arndt, 2023/06/30) +
  64. + +
  65. + Removed: Deprecated functions in the FEInterfaceValues nampespace have been removed. +
    + (Daniel Arndt, 2023/06/29) +
  66. + +
  67. + Removed: Deprecated constructors for ConsensusAlgorithms::Interface, + ConsensusAlgorithms::Process, ConsensusAlgorithms::NBX, ConsensusAlgorithms::PEX, + ConsensusAlgorithms::Serial, ConsensusAlgorithms::Selector have been removed + as well as ConsensusAlgorithms::AnonymousProcess. +
    + (Daniel Arndt, 2023/06/29) +
  68. + +
  69. + Removed: The deprecated GridTools::CellDataTransferBuffer class has been removed. +
    + (Daniel Arndt, 2023/06/29) +
  70. + +
  71. + Removed: The deprecated signal Triangulation::Signals::cell_weight + has been removed along with the deprecated class LegacySignal. Use + Triangulation::Signals::weight instead. +
    + (Marc Fehling, 2023/06/27) +
  72. + +
  73. + Removed: The deprecated Functions::LevelSet namespace + has been removed +
    + (Daniel Arndt, 2023/06/30) +
  74. + +
  75. + MatrixFree::reinit() would always set up the data structures for inner faces, + also in case only + MatrixFree::AdditionalData::mapping_updates_flags_boundary_faces was set. As + this can lead to considerably higher memory consumption, the inner faces are + now only set up when requested, increasing efficiency. When inner faces are + desired, make sure to set + MatrixFree::AdditionalData::mapping_updates_flags_inner_faces. +
    + (Martin Kronbichler, 2023/06/19) +
  76. + +
  77. + Changed: When calling Triangulation::get_manifold(manifold_id) for + a non-existing manifold_id, the function returned a flat manifold. + This behaviour has been changed and an assert is thrown in this case. + Furthermore, the functions Triangulation::reset_manifold() and + Triangulation::reset_all_manifolds() do not actually remove the manifolds + but make them flat. +
    + (Peter Munch, 2022/12/09) +
  78. + +
+ + + + + +

General

+
    + +
  1. + New: LinearAlgebra::TpetraWrappers preconditioner interfaces + for Trilinos Ifpack2, as listed below: +
      +
    • Preconditioners that were also available in the old interface. +
        +
      • PreconditionIdentity
      • +
      • PreconditionJacobi
      • +
      • PreconditionSOR
      • +
      • PreconditionSSOR
      • +
      • PreconditionChebyshev
      • +
      • PreconditionILU
      • +
      • PreconditionILUT
      • +
      • PreconditionBlockJacobi
      • +
      • PreconditionBlockSOR
      • +
      • PreconditionBlockSSOR
      • +
      +
    • +
    • Newly introduced preconditioners +
        +
      • PreconditionL1Jacobi
        + - A new variant to improve coupling in MPI-parallel applications
      • +
      • PreconditionL1GaussSeidel
        + - A new variant to improve coupling in MPI-parallel applications
      • +
      • PreconditionIfpack
        + - A generic Ifpack2 preconditioner for any + classes or parameters not interfaced (yet)
      • +
      +
    • +
    + (Jan Philipp Thiele, 2024/07/18) +
  2. + +
  3. + New: step-1 and step-3 now discuss how to use triangular meshes in their "Results" sections. +
    + (Wolfgang Bangerth, 2024/05/13) +
  4. + +
  5. + Updated: Tetrahedral meshes are now refined quasi-uniformly, preventing degradation + with higher refinement levels. The changes also include the relevant adjustments in the + geometric multigrid infrastructure. +
    + (Dominik Still, Niklas Fehn, Peter Munch, Martin Kronbichler, Wolfgang Bangerth, 2024/05/10) +
  6. + +
  7. + New: LinearAlgebra::TpetraWrappers direct solver interfaces + for Trilinos Amesos2, as listed below +
    +
    SolverDirect
    +
    - Same interface as TrilinosWrappers, but with the option to pass a parameter list
    +
    SolverDirectKLU2
    +
    - An interface to the KLU2 solver, providing solver-specific AdditionalData
    +
    + (Jan Philipp Thiele, 2024/02/12) +
  8. + +
  9. + Updated: The version of BOOST bundled with deal.II has been updated from 1.70 + to 1.84. +
    + (Wolfgang Bangerth, 2024/04/04) +
  10. + +
  11. + New: There is now a function-like macro `DEAL_II_NOT_IMPLEMENTED();` + that can be used to indicate places where something is not + implemented. If a code runs into a place where it appears, the program + is aborted (or, as documented, an exception is thrown). In contrast to + the old way of indicating such a thing (namely, writing + `Assert(false, ExcNotImplemented());`, the error is raised even in + release mode. +
    + Similarly, there is now also `DEAL_II_ASSERT_UNREACHABLE()` that is used + in places that control flow really should not reach, but where it is + best to abort a program if it does. +
    + (Wolfgang Bangerth, 2024/01/24) +
  12. + +
  13. + New: Support for hanging nodes in FE_NedelecSZ. +
    + (Sebastian Kinnewig, 2023/11/28) +
  14. + +
  15. + New: Introduce FERemoteEvaluation. This new class provides similar + interfaces as FEEvaluation, FEFaceEvaluation, and FEPointEvaluation. + It can be used to access values and/or gradients in quadrature points + at remote triangulations. In particular the class is designed such that + it can also be used for Nitsche-type mortaring or L2-Projection with + CGAL in the future. +
    + (Johannes Heinz, Peter Munch, 2023/11/27) +
  16. + +
  17. + New: The new tutorial step-89 presents the use of FERemoteEvaluation + during matrix-free operator evaluation for non-matching and Chimera + methods. The acoustic conservation equations are solved using + Nitsche-type mortaring and point-to-point interpolation to demonstrate + that a simple point-to-point interpolation approach is sometimes not + sufficient. +
    + (Johannes Heinz, Maximilian Bergbauer, Marco Feder, Peter Munch, 2023/11/27) +
  18. + +
  19. + New: LinearAlgebra::TpetraWrappers::SparseMatrix class + that implements a wrapper for Tpetra::CrsMatrix. +
    + (Sebastian Kinnewig, 2023/11/22) +
  20. + +
  21. + New: FE_SimplexP and FE_SimplexDGP now support cubic elements. +
    + (David Wells and Peter Munch, 2023/10/11) +
  22. + +
  23. + New: The new tutorial step-87 presents the advanced point evaluation + functionalities of deal.II, specifically useful for evaluating + finite element solutions at arbitrary points on distributed meshes. +
    + (Magdalena Schreter-Fleischhacker, Peter Munch, 2023/09/05) +
  24. + +
  25. + Removed: Some, but not all, of the vector classes were derived from a + base class VectorSpaceVector. This class had been intended to provide + an abstract interface (via `virtual` functions) to vector-vector + operations such as dot products or norms. But it turns out that that + is not practical in many cases: Functions still need to either have + access to individual elements of the vector, or they need to be able + to do matrix-vector products. As a consequence, it is rarely useful to + only have a reference to the base class VectorSpaceVector: One + actually needs a reference to the derived class. Because of this lack + of use, we have removed the VectorSpaceVector base class from the + library. +
    + (Wolfgang Bangerth, 2023/07/06) +
  26. + +
  27. + Deprecated: The entire LocalIntegrators namespace has been + deprecated. The namespace represents an effort at making integration + simpler by providing a library of terms that appear frequently in + equations. But this only made the simple case simple -- everything + that exceeded the simplest case still needed to be done by hand, and + using these pre-built integrators did not help teaching how to do + that. As a consequence, these pre-built integrators will be removed in + a future version of the library. +
    + (Wolfgang Bangerth, 2023/07/03) +
  28. + +
  29. + New: All vector classes in deal.II now inherit from ReadVector, which + provides some common read operations. +
    + (David Wells, 2023/07/01) +
  30. + +
  31. + New: Added classes for conforming Hermite interpolation polynomials, + allowing for higher levels of regularity between elements to be directly + enforced. +
    + (Ivy Weber, 2023/06/21) +
  32. + +
+ + + + + +

Specific improvements

+
    + +
  1. + Compatibility: deal.II's interface to CGAL has been updated to ensure + compatibility with the upcoming CGAL 6.0 release. +
    + (S + bastien Loriot, 2024/07/22) +
  2. + +
  3. + Fixed: The identification of periodic boundaries for + parallel::distributed::Triangulation did not work properly for some meshes + that had different face orientations on the two sides of a periodic + boundary. This is now fixed. +
    + (Martin Kronbichler, Paras Kumar, 2024/07/16) +
  4. + +
  5. + New: There is a new initialization function MGTwoLevelTransfer::reinit() that + takes two MatrixFree objects to describe a p-coarsening transfer operation, + besides the previous option of computing the information via two separate + DoFHandler objects. The new option is faster to set up and more memory + efficient in case the MatrixFree objects already are available, such as when + using those to define the level operators. +
    + (Martin Kronbichler, 2024/07/22) +
  6. + +
  7. + New: The functions VectorTools::compute_nonzero_normal_flux_constraints(), + VectorTools::compute_nonzero_normal_flux_constraints_on_level(), + VectorTools::compute_no_normal_flux_constraints(), + VectorTools::compute_no_normal_flux_constraints_on_level(), + VectorTools::compute_nonzero_tangential_flux_constraints(), and + VectorTools::compute_normal_flux_constraints() now also can use + the mapping to compute the normal vectors. +
    + (Peter Munch, 2024/07/19) +
  8. + +
  9. + New: The functions GridGenerator::hyper_shell() and + GridGenerator::hyper_cube_with_cylindrical_hole() now support + dim=2 and spacedim=3. +
    + (Peter Munch, 2024/07/16) +
  10. + +
  11. + New: Class DiscreteTime supports now serialization. +
    + (Pasquale Claudio Africa, 2024/07/11) +
  12. + +
  13. + Deprecated: The `interpolate` callback of the + PETScWrappers::TimeStepper class has been renamed to + PETScWrappers::TimeStepper::transfer_solution_vectors_to_new_mesh. The former + name is still available for backward compatibility, but is now + deprecated. +
    + (Wolfgang Bangerth, 2024/07/09) +
  14. + +
  15. + Fixed: ReadWriteVector's copy constructor now correctly sets up its IndexSet + when it has zero locally owned elements. +
    + (David Wells, Laryssa Abdala, 2023/07/08) +
  16. + +
  17. + New: All the basic Manifold objects describing a coordinate system now make + their essential geometric properties (e.g., the center) available through member + functions. +
    + (David Wells, 2024/07/06) +
  18. + +
  19. + New: Added a function FETools::compute_nodal_quadrature() + which computes the nodal Quadrature rule for an interpolatory + FiniteElement. +
    + (David Wells, 2023/07/05) +
  20. + +
  21. + Deprecated: The `decide_for_coarsening_and_refinement` callback of the + PETScWrappers::TimeStepper class has been renamed to + PETScWrappers::TimeStepper::decide_and_prepare_for_remeshing. The former + name is still available for backward compatibility, but is now + deprecated. +
    + (Wolfgang Bangerth, 2024/07/01) +
  22. + +
  23. + Deprecated: The `distribute` callback of the + PETScWrappers::TimeStepper class has been renamed to + PETScWrappers::TimeStepper::update_constrained_components. The former + name is still available for backward compatibility, but is now + deprecated. +
    + (Wolfgang Bangerth, 2024/06/30) +
  24. + +
  25. + New: MatrixFree::loop() and MatrixFree::cell_loop() as well as + FEEvaluation/FEFaceEvaluation can now also be used with ArrayView + arguments. This allows to wrap externally managed vectors into the matrix-free + facilities of deal.II. +
    + (Martin Kronbichler, 2024/06/24) +
  26. + +
  27. + Fixed: AffineConstraints::make_consistent_in_parallel() now iteratively + updates the constraints on user-specified DoFs until the set of constraints + globally converged on all subdomains. +
    + The function now also updates the locally stored constraints of the + underlying AffineConstraints object. After using this function, it might be + necessary to use the IndexSet retrieved by + AffineConstraints::get_local_lines() when initializing data structures, + for example: + + DynamicSparsityPattern dsp(constraints.get_local_lines()); + LinearAlgebra::distributed::Vector solution( + locally_owned_dofs, constraints.get_local_lines(), mpi_communicator); + + This used to be an issue in parallel hp-adaptive applications, when + finite elements of different types have constraints on faces between + locally relevant and artificial cells. +
    + (Wolfgang Bangerth, Marc Fehling, Martin Kronbichler, Peter Munch, 2024/06/20) +
  28. + +
  29. + Fixed: The GridTools::Cache class accessed its members in ways that + were not thread-safe. This should now be fixed. +
    + (Wolfgang Bangerth, 2024/06/19) +
  30. + +
  31. + Fixed: The ParticleHandler could cause a division by zero + for certain mappings when sorting particles that are + located almost exactly on mesh vertices. This is fixed now. +
    + (Rene Gassmoeller, 2024/06/18) +
  32. + +
  33. + Fixed: InitFinalize would initially Kokkos without taking into account the final + number of threads that are used in deal.II. +
    + (Daniel Arndt, 2024/06/04) +
  34. + +
  35. + Fixed: The SUNDIALS::ARKODE::solve_ode() function returned the number + of time steps at which the intermediate output function was called, + rather than the number of time steps performed as promised in the + documentation. This has now been fixed. +
    + The same bug also existed in the SUNDIALS::IDA::solve_dae() function, + where it has also been fixed. +
    + (Wolfgang Bangerth, 2024/06/02) +
  36. + +
  37. + New: There is a new class Threads::TaskResult that represents the + result of a background task. +
    + (Wolfgang Bangerth, 2024/05/21) +
  38. + +
  39. + Deprecated: Namespace FETools::Compositing had three functions + FETools::Compositing::multiply_dof_numbers(), + FETools::Compositing::compute_restriction_is_additive(), and + FETools::Compositing::compute_nonzero_components() that took pointers to five + finite elements and five multiplicities. These have now been + deprecated in favor of the versions of these functions that take a + vector of elements and a vector of multiplicities. +
    + (Wolfgang Bangerth, 2024/05/19) +
  40. + +
  41. + New: MatrixFreeTools::compute_diagonal() and MatrixFreeTools::compute_matrix() + can now handle face and boundary integrals needed for DG. +
    + (Peter Munch, Magdalena Schreter-Fleischhacker, 2024/05/16) +
  42. + +
  43. + New: Added overloads of missing trigonometric functions (acos, asin, atan) and + hyperbolic functions (cosh, sinh, tanh, acosh, asinh, atanh) for VectorizedArray. +
    + (Magdalena Schreter-Fleischhacker, Johannes Resch, Martin Kronbichler 2024/05/15) +
  44. + +
  45. + Deprecated: The member variables `input_vector_names` and + `output_names` of MeshWorker::LocalIntegrator are not used in the + library. They are now deprecated. If you use them, simply introduce + variables of the same name and type in your own derived class. +
    + (Wolfgang Bangerth, 2024/05/14) +
  46. + +
  47. + Fixed: FE_SimplexP::get_restriction_matrix() now returns the correct restriction matrix + for continuous elements, which differs compared to discontinuous elements. +
    + (Dominik Still, Martin Kronbichler, 2024/05/15) +
  48. + +
  49. + Changed: step-39 now implements the local integration routines itself, + rather than relying on deprecated concepts from namespace + LocalIntegrator. +
    + (Wolfgang Bangerth, 2024/05/13) +
  50. + +
  51. + Changed: Several tutorials (step-15, step-72, step-77) dealing with + nonlinear problems have been simplified by using AffineConstraints + for boundary conditions. +
    + (Timo Heister, 2024/05/11) +
  52. + +
  53. + New: There is a new function ThreadLocalStorage::get_for_thread() that + returns the thread-local object of another thread. +
    + (Wolfgang Bangerth, 2024/04/24) +
  54. + +
  55. + New: deal.II is now compatible with SUNDIALS v7.0.0. +
    + (Marc Fehling, 2024/04/17) +
  56. + +
  57. + Fixed: When accessing elements of Trilinos vectors that do not exist + on the current MPI process (for example because a function *expects* a + vector with ghost elements but got a completely distributed vector + instead), deal.II tries to produce a reasonable error message pointing + out the cause. But when using 64-bit indices, the logic that creates + the error message was faulty, resulting in errors that were very hard + to debug and not helpful at all. This is now fixed. +
    + (Wolfgang Bangerth, 2024/04/17) +
  58. + +
  59. + New: Added get_shape_value_component(), get_shape_grad_component() + and get_shape_grad_grad_component() to FE_NedelecSZ. +
    + (Sebastian Kinnewig, 2024/04/16) +
  60. + +
  61. + New: Added get_prolongation_matrix() to FE_NedelecSZ. +
    + (Sebastian Kinnewig, 2024/04/16) +
  62. + +
  63. + New: Add GridGenerator::cylinder, GridGenerator::subdivided_cylinder, + and GridGenerator::truncated_cone to the python wrappers +
    + (Bruno Turcksin, 2024/04/11) +
  64. + +
  65. + New: The new function DoFTools::extract_level_constant_modes() + allows to extract constant modes on multigrid levels. +
    + (Peter Munch, 2024/04/07) +
  66. + +
  67. + Improved: VectorTools::interpolate is now faster for the case of a DoFHandler + based on an FESystem with a single base element that has classical support + points (like FE_Q or FE_DGQ). +
    + (Martin Kronbichler, 2024/04/03) +
  68. + +
  69. + Improved: Several functions in MappingCartesian have been carefully rewritten + for better performance, e.g., by avoiding divisions and making use of recurring + operations. +
    + (Martin Kronbichler, 2024/04/01) +
  70. + +
  71. + New: Add GridGenerator::plate_with_a_hole, GridGenerator::channel_with_cylinder, + and GridGenerator::hyper_ball_balanced to the python wrappers +
    + (Bruno Turcksin, 2024/03/27) +
  72. + +
  73. + Fixed: Utilities::unpack() could result in a segmentation fault for + objects that have alignment greater than the default. This is now fixed. +
    + (Wolfgang Bangerth, 2024/03/24) +
  74. + +
  75. + Changed: The class FEEvaluationAccess, which was previously used to control + access to values, gradients and Hessians at quadrature points in specialized + form for scalar, vector-valued and general n-component system, has been merged + into the class FEEvaluationBase, using conditional types deduced from + std::conditional. This should not change any application code, but reduced the + amount of code by 1,500 lines, thus making the library simpler to maintain. +
    + (Martin Kronbichler, Magdalena Schreter-Fleischhacker, 2024/03/22) +
  76. + +
  77. + New: SolverGMRES and SolverFGMRES can now use an additional orthogonalization + strategy, controlled by + LinearAlgebra::OrthogonalizationStrategy::delayed_classical_gram_schmidt. This + implements the classical Gram-Schmidt method with delayed reorthogonalization, + a low-synchronization algorithm (performing one global reduction per GMRES + iteration for deal.II's own vectors) that has excellent stability properties. +
    + (Martin Kronbichler, 2024/03/19) +
  78. + +
  79. + Changed: hp::Refinement::choose_p_over_h() now communicates + refinement flags and future FE indices on ghost cells for + all types of parallel Triangulation objects to decide between + p- and h-refinement. +
    + (Marc Fehling, 2024/03/18) +
  80. + +
  81. + Improved: The implementations of SolverGMRES and SolverFGMRES have been + overhauled and made more similar. In particular, SolverFGMRES now uses the + same internal algorithm to solve the minimization problem in the Arnoldi + basis, employing Givens rotations in analogy to the setting used by + SolverGMRES. Since the Arnoldi process is sensitive to roundoff errors, this + change might slightly affect iteration counts (often giving slightly better + results). +
    + (Martin Kronbichler, 2024/03/12) +
  82. + +
  83. + Fixed: The memory of particles which are deleted during refinement was not + correctly freed in the memory pool. This could lead to a minor memory leak and + error messages about an inconsistent state during destruction of the property + pool. This is fixed now. +
    + (Rene Gassmoeller, 2024/03/07) +
  84. + +
  85. + Improved: The parse functions of ParameterHandler used to add subsections + if subsections/parameters have not been defined. This led to an output + of ParameterHandler::print_parameters() that also contained these subsections. + This is not the case anymore. +
    + (Peter Munch, Magdalena Schreter-Fleischhacker, 2024/02/12) +
  86. + +
  87. + Fixed: The function hp::Refinement::limit_p_level_difference() now + correctly sets future FE indices in case of p-coarsening. +
    + (Marc Fehling, 2024/02/29) +
  88. + +
  89. + Fixed: The colorize option for the cylinder shell could yield inadequate + boundary ID for some aspect ratios that were very different from the + default one. +
    + (Bruno Blais, 2024/02/27) +
  90. + +
  91. + Fixed: In a special case where a particle lies on a vertex, the ParticleHandler detected it as lost. + We introduce a tolerance for GeometryInfo::is_inside_cell() inside the ParticleHandler to fix this issue. +
    + (Magdalena Schreter-Fleischhacker, Julian Brotz, 2024/02/22) +
  92. + +
  93. + New: There is now functions VectorTools::interpolate_to_coarser_mesh() + and VectorTools::interpolate_to_finer_mesh() that, different from + VectorTools::interpolate_to_different_mesh() also work for parallel + triangulations. +
    + (Wolfgang Bangerth, 2024/02/20) +
  94. + +
  95. + Fixed: Fix make_flux_sparsity_pattern for a FECollection containing + FE_Nothing elements. +
    + (Magdalena Schreter-Fleischhacker, Andreas Ritthaler, 2024/02/19) +
  96. + +
  97. + Fixed: Added some instantiations to "sparse_matrix.inst.in" such that + copying real sparse matrices into complex sparse matrices and performing + matrix vector operations of a complex sparse matrix with a real vector + into a complex vector are possible now. +
    + (Malik Scheifinger, 2024/02/16) +
  98. + +
  99. + New: Add potentially more efficient vector operation to SUNDIALS wrappers. These operations are used automatically + for deal.II's distributed vectors. +
    + (Sebastian Proell, 2024/02/15) +
  100. + +
  101. + Fixed: The function GridTools::compute_active_cell_halo_layer() now + also supports perodic meshes. +
    + (Peter Munch, 2024/02/12) +
  102. + +
  103. + New: Add capacity to colorize boundary in GridGenerator::cylinder_shell +
    + (Bruno Blais, 2023/02/12) +
  104. + +
  105. + New: If the relaxation parameter is set to 0, PreconditionRelaxation now + determines it based on estimated eigenvalues, similarly as + PreconditionChebyshev does. +
    + (Peter Munch, Laura Prieto Saavedra, 2024/03/09) +
  106. + +
  107. + Deprecated: Matrix Free classes previously in the CUDAWrappers namespace have + been moved to the Portable namespace. +
    + (Bruno Turcksin, 2024/02/09) +
  108. + +
  109. + Fixed: Fix initialization of FEFaceEvaluation for hp in 3D. +
    + (Maximilian Bergbauer, Peter Munch, Andreas Ritthaler, Magdalena Schreter-Fleischhacker, 2024/02/09) +
  110. + +
  111. + Fixed: The function DoFCellAccessor::distribute_local_to_global(local_matrix, + local_vector, global_matrix, global_vector) mistook the argument type + when calling OutputMatrix::add(row, n_cols, col_indices, values), which + causes compile errors. This is now fixed. +
    + (Yimin Jin, 2024/01/23) +
  112. + +
  113. + Changed: + FE_DGQ::get_interpolation_matrix() now also takes as a source element FE_Nothing. +
    + (Magdalena Schreter, Peter Munch, 2024/01/18) +
  114. + +
  115. + Changed: + parallel::distributed::Triangulation::prepare_coarsening_and_refinement() + is now a collective call that exchanges coarsen/refinement flags on + ghost cells. This makes adaptive refinement independent of the number + of MPI ranks involved. +
    + (Timo Heister, Quang Hoang, Vladimir Yushutin, 2024/01/15) +
  116. + +
  117. + Fixed: In parallel computations, it was not possible to take the end + iterator of a Trilinos sparsity pattern for the last locally-owned + row. This is now fixed. +
    + (Simon Wiesheier, Peter Munch, 2024/01/07) +
  118. + +
  119. + New: Add utility functions that setup FERemoteEvaluationCommunicator for + point-to-point interpolation and Nitsche-type mortaring. +
    + (Johannes Heinz, 2023/12/31) +
  120. + +
  121. + Improved: convert_to_distributed_compute_point_locations_internal() takes + a pointer to a vector of quadratures as an additional argument. In case + this pointer is not a null pointer, the vector is populated by the mapped + quadratures that are internally used during the conversion. +
    + (Johannes Heinz, 2023/12/29) +
  122. + +
  123. + Fixed: Exceptions of type RecoverableUserCallbackError, raised in + callbacks `solve_with_jacobian` and + `solve_with_jacobian_and_track_n_linear_iterations` of the + TrilinosWrappers::NOXSolver class, are now treated as "recoverable", if + the NOX parameter "Newton/Rescue Bad Newton Solve" is set to `true`, + which is, in fact, its default value. Exceptions of all other types and + also all exceptions raised in other callbacks are still treated as + "irrecoverable". +
    + (Vladimir Ivannikov, 2023/12/26) +
  124. + +
  125. + New: There is now a function Utilities::MPI::partial_and_total_sum(). +
    + (Wolfgang Bangerth, 2023/12/19) +
  126. + +
  127. + Fixed: When creating triangulations in dim=1 and spacedim=3, the + Triangulation class would sometimes crash because of a code path that + should not have been taken. This is now fixed. +
    + (Vinayak Vijay, Wolfgang Bangerth, 2023/11/28) +
  128. + +
  129. + New: Add AdditionalData struct for configuring the RemotePointEvaluation + class. The latter is passed into a new constructor. Deprecated: The old + constructor of RemotePointEvaluation class taking the parameters + value-by-value is marked as deprecated. +
    + (Magdalena Schreter-Fleischhacker, Peter Munch, 2023/12/06) +
  130. + +
  131. + New: The FEValuesBase class now lazily computes the FEValuesViews + objects it returns when you do something like `fe_values[velocities]`, + whenever they are needed first, rather than *always* creating these + objects. +
    + (Wolfgang Bangerth, 2023/11/28) +
  132. + +
  133. + Fixed: Meshes created with GridGenerator::torus() would previously run + into an assertion in p4est when using + parallel::distributed::Triangulation. This is now fixed. +
    + (Martin Kronbichler, Mathias Anselmann, Peter Munch, 2023/11/22) +
  134. + +
  135. + New: Introduce a new function, + Utilities::Trilinos::teuchos_comm_to_mpi_comm(), to convert a + Teuchos::RCP> communicator into an MPI_Comm + communicator. +
    + (Sebastian Kinnewig, 2023/11/20) +
  136. + +
  137. + New: Introduce a new function, Utilities::Trilinos::internal::make_rcp(), + to create Teuchos::RCP objects, avoiding the usage of 'operator new'. +
    + (Sebastian Kinnewig, 2023/11/15) +
  138. + +
  139. + Fixed: MatrixFree::get_cell_active_fe_index did not + return the correct value when used with categorization + of cells. This affects also MFTools::compute_diagonal(). + This is now fixed. +
    + (David Schneider, 2023/11/13) +
  140. + +
  141. + Fixed: In step-41, the mass matrix B is missing in the expressions + of the residuals of the nonlinear system. See the equation under the + line "This suggest a semismooth Newton step of the form" in the tutorial. + This is fixed. +
    + (Tao Jin, 2023/11/12) +
  142. + +
  143. + Improved: Point now supports constexpr construction and evaluation, + just like Tensor. +
    + (Chengjiang Yin, 2023/11/09) +
  144. + +
  145. + Fixed: A mistake in marking a `private` member function of the + SphericalManifold class made it impossible to derive from this class + in any meaningful way. This is now fixed. +
    + (Wolfgang Bangerth, 2023/11/09) +
  146. + +
  147. + Fixed: It was not possible to compare non-const iterators into block + sparse matrices because a `friend` declaration referred to the wrong + class. This is now fixed. +
    + (Wolfgang Bangerth, Simon Wiesheier, 2023/10/31) +
  148. + +
  149. + New: There is a new overload of Threads::new_task() that takes lambda + functions taking arguments, followed by the arguments the lambda + function is to be called with on a new task. +
    + (Wolfgang Bangerth, 2023/10/30) +
  150. + +
  151. + New: The new function RefinementCase::all_refinement_cases() returns + an array of all possible refinement options of a cell. +
    + (Wolfgang Bangerth, 2023/10/26) +
  152. + +
  153. + New: A new wrapper class Lazy provides an efficient, thread-safe + mechanism for lazy initialization of objects. +
    + (Matthias Maier, 2023/10/25) +
  154. + +
  155. + Fixed: The periodic faces information was not being copied when using the + `Triangulation::copy_triangulation()` function. This is now fixed. +
    + (Laura Prieto Saavedra, Peter Munch, 2023/10/19) +
  156. + +
  157. + Fixed: There was an inconsistency between the way + DoFTools::make_periodicity_constraints() and MGConstrainedDoFs + set up the constraints for periodic constraints. This is fixed + now. +
    + (Peter Munch, Laura Prieto Saavedra, 2023/10/19) +
  158. + +
  159. + New: LinearAlgebra::TpetraWrappers::VectorReference for easier access + to LinearAlgebra::TpetraWrappers::Vector. Moreover, several + new member functions are introduced to LinearAlgebra::TpetraWrappers::Vector + to be used as the "VectorType" template argument in AffineConstraints. +
    + (Sebastian Kinnewig, 2023/10/18) +
  160. + +
  161. + New: New constructor for IndexSet that takes a + Teuchos::RCP as input. And the + function IndexSet::make_tpetra_map_rcp() + returning a Teuchos::RCP. +
    + (Sebastian Kinnewig, 2023/10/17) +
  162. + +
  163. + New: The print_formatted() functions of the following matrix classes + now offer the option to specify a string that separates row entries: +
    + SparseMatrixEZ, SparseMatrix, LAPACKFullMatrix, FullMatrix, + ChunkSparseMatrix, BlockSparseMatrix, CUDAWrappers::SparseMatrix +
    + (Marc Fehling, 2023/10/15) +
  164. + +
  165. + New: The ArrayView class now has a constructor that allows creation of + an ArrayView object from a `boost::container::small_vector`. +
    + (Wolfgang Bangerth, 2023/10/24) +
  166. + +
  167. + Fixed: The querying of line orientations in the case + of tetrahedra has been fixed. +
    + (Peter Munch, David Wells, 2023/10/10) +
  168. + +
  169. + New: The ArrayView class now has a constructor that allows creation of + an ArrayView object from a `std::initializer_list`. +
    + (Wolfgang Bangerth, 2023/10/10) +
  170. + +
  171. + New: The function AffineConstraints::get_view() can be used to obtain + the constraints that correspond to a specific subset of degrees of + freedom. +
    + (Wolfgang Bangerth, 2023/10/05) +
  172. + +
  173. + Added: An option to sum into the solution values vector was added + to FEPointEvaluation integrate() and test_and_sum(). +
    + (Maximilian Bergbauer, 2023/10/04) +
  174. + +
  175. + Added: An output operator was added to DerivativeForm. +
    + (Maximilian Bergbauer, 2023/10/04) +
  176. + +
  177. + Improved: MGTransferMF can now permute DoFs during + MGTransferMF::copy_to_mg(), MGTransferMF::copy_to_mg(), + and MGTransferMF::interpolate_to_mg() if the outer + solver and the multigrid preconditioner have been set up + with different DoFHandler objects. +
    + (Peter Munch, Laura Prieto Saavedra, 2023/10/03) +
  178. + +
  179. + New: The new function AffineConstraints::add_constraint() adds an + entire constraint all at once, rather than splitting the task across + AffineConstraint::add_line(), multiple calls to + AffineConstraint::add_entry(), and + AffineConstraint::set_inhomogeneity(). The new function + AffineConstraints::constrain_dof_to_zero() is a short-cut that adds a + constraint that requires a specific degree of freedom to be zero. +
    + (Wolfgang Bangerth, 2023/10/05) +
  180. + +
  181. + New: The function IndexSet::get_view() now has an overload that + computes the view with regard to an arbitrary mask. +
    + (Wolfgang Bangerth, 2023/10/02) +
  182. + +
  183. + Improved: SparsityTools::reorder_Cuthill_McKee now runs considerably faster, + especially for the case with many couplings between matrix rows. +
    + (Martin Kronbichler, 2023/09/20) +
  184. + +
  185. + New: Add alternative interfaces to RemotePointEvaluation::evaluate_and_process and + RemotePointEvaluation::process_and_evaluate. +
    + (Magdalena Schreter, Peter Munch, 2023/09/17) +
  186. + +
  187. + New: Added helper class RemotePointEvaluation::CellData to store + and access data of cell-specific points. +
    + (Magdalena Schreter, Peter Munch, 2023/09/17) +
  188. + +
  189. + Changed: The interface to QGaussRadauChebyshev + now matches that of the new quadrature QGaussRadau. +
    + (Jan Philipp Thiele, 2023/09/16) +
  190. + +
  191. + New: Added QGaussRadau quadrature up to and including 8 quadrature points. +
    + (Jan Philipp Thiele, 2023/09/15) +
  192. + +
  193. + Added: A new function shink_to_fit() was added to AlignedVector + in analogy to std::vector. +
    + (Maximilian Bergbauer, 2023/09/14) +
  194. + +
  195. + Improved: FEEvaluation::get_gradient() and FEEvaluation::submit_gradient() are + now considerably faster for Raviart-Thomas elements on non-Cartesian meshes. + The previous algorithm used non-optimal loop layouts for the local tensor + contractions in the derivative of the Piola transform, which have been + transformed to optimal-complexity variants. +
    + (Martin Kronbichler, 2023/09/12) +
  196. + +
  197. + Improved: The internal implementation of the tensor-product evaluators used + for FEEvaluation and FEFaceEvaluation has been cleaned up. This reduces the + compile times for both the deal.II library and code using FEEvaluation with + template parameters on the polynomial degrees. Also, the code is now simpler + to maintain, especially for the evaluators for Raviart-Thomas elements. +
    + (Martin Kronbichler, 2023/09/11) +
  198. + +
  199. + Fixed: FEValues requesting only mapping information but initialized with + elements derived from FE_PolyTensor would previously run into an assertion on + unstructured 2d meshes. This is now fixed. +
    + (Martin Kronbichler, 2023/09/07) +
  200. + +
  201. + Changed: IndexSet objects could only be compared for equality or + inequality against other IndexSet objects that had the same size. This + did not allow for comparison against default-constructed objects, for + example to test whether an object had been initialized. The + restriction is therefore relaxed: IndexSet objects can be compared for + equality and inequality against objects of the same size, or or size + zero. +
    + (Wolfgang Bangerth, 2023/09/07) +
  202. + +
  203. + Fixed: MGTwoLevelTransferBase now preserves the + ghost state of the source vector in all call scenarios. +
    + (Richard Schussnig, Martin Kronbichler, Peter Munch, 2023/09/04) +
  204. + +
  205. + Improved: VectorizedArray now also supports ARM Neon intrinsics. +
    + (Maximilian Bergbauer, Peter Munch, 2023/08/24) +
  206. + +
  207. + New: The function IndexSet::is_subset_of() does as its name suggests. +
    + (Wolfgang Bangerth, 2023/08/24) +
  208. + +
  209. + New: Add two tensor functions for the split of a 2nd-order symmetric tensor + into a positive part and a negative part based on the signs of the eigenvalues + obtained from the spectrum decomposition. The function positive_negative_split() + performs the positive-negative split of the 2nd-order symmetric tensor given as + the input. The function positive_negative_projectors() not only performs the split, + but also provides the derivatives (two fourth-order tensors) of the positive/negative + part of the tensor with respect to the input tensor. +
    + (Tao Jin, 2023/08/22) +
  210. + +
  211. + Changed: You can now set MeshSmoothing flags in non-empty triangulations + with Triangulation::set_mesh_smoothing(). +
    + (Marc Fehling, 2023/08/22) +
  212. + +
  213. + New: The Rayleigh--Kothe vortex has been extracted + from step-68 and is now available as the new class + Functions::RayleighKotheVortex. +
    + (Bruno Blais, Peter Munch, 2023/08/20) +
  214. + +
  215. + Improved: The classes MGSmootherRelaxation and mg::SmootherRelaxation can now + also handle matrices of types `MGLevelObject>` or + `MGLevelObject>` in their `initialize()` functions by the + use of Utilities::get_underlying_value(), rather than MGLevelObject of the + actual matrix type only. +
    + (Martin Kronbichler, 2023/08/16) +
  216. + +
  217. + Improved: deal.II now has a flag DEAL_II_USE_VECTORIZATION_GATHER to control + the use of gather/scatter instructions on the x86 architecture. On a wide + range of Intel hardware with microcode mitigation for the Intel Gather Data + Speculation (GDS, aka Downfall) side channel vulnerability, in particular, + server processors of the Broadwell, Skylake, Cascade Lake, and Ice Lake + families released between 2015 and 2021, these instructions can be much slower + than scalar loads. While the default behavior of deal.II is to aggressively + enable these instructions in the intrinsics-class VectorizedArray, the new + variable can be used to disable their use if deemed to give better + performance. +
    + (Martin Kronbichler, Matthias Maier, 2023/08/14) +
  218. + +
  219. + New: Added a function extract_children_of_level() that returns the + bounding boxes associated to the children of a given level of an Rtree + and stores them in a vector. +
    + (Marco Feder, 2023/08/10) +
  220. + +
  221. + New: MGTwoLevelTransferNonNested now also supports FE_SimplexP. +
    + (Peter Munch, Marco Feder, 2023/08/02) +
  222. + +
  223. + New: The new class FEValuesViews::RenumberedView allows one to filter an existing + FEValuesViews object via two renumbering vectors, one acting on the degrees of + freedom, and the other acting on the quadrature points. +
    (Luca Heltai, 2023/08/02) +
  224. + +
  225. + Improved: GridTools::find_active_cell_around_point() and + GridTools::find_all_active_cells_around_point() now also work + for simplices. +
    + (Peter Munch, David Wells, 2023/07/25) +
  226. + +
  227. + New: The new function Triangulation::as_dof_handler_level_iterator() + allows to create level iterators based on other cell iterators. +
    + (Peter Munch, 2023/08/01) +
  228. + +
  229. + New: The function Triangulation::contains_cell() + allows to check if Tringulation::create_cell_iterator() + can be called for a specific cell id. +
    + (Peter Munch, 2023/08/01) +
  230. + +
  231. + Improvement: Added gradient() implementation to VectorFunctionFromTensorFunction in + function.h file. +
    + (Abbas Ballout, 2023/07/30) +
  232. + +
  233. + New: Similar to the DataOut::add_data_vector() case, + DataOut::add_mg_data_vector() now also copies the vector + and performs the ghost-vector update internally. +
    + (Peter Munch, 2023/07/25) +
  234. + +
  235. + New: Created a new class FECouplingValues, that helps with assembling of coupled + finite element methods across different dimensions or different grids. +
    + (Luca Heltai, 2023/07/21) +
  236. + +
  237. + New: Added InitFinalize class. This class is similar to MPI_InitFinalize but it + allows users to decide which libraries should be initialized/finalized by the + class. +
    + (Bruno Turcksin, 2023/07/13) +
  238. + +
  239. + Fixed: FETools::get_fe_by_name() now works also for simplex finite elements. +
    + (Luca Heltai, 2023/07/08) +
  240. + +
  241. + Improvement: Step-68 now uses the FEPointEvaluation to calculate the particle velocity from the velocity solution instead of manually interpolating at the particle location. +
    + (Bruno Blais, 2023/07/0) +
  242. + +
  243. + Deprecated: The CellStatus enumeration has been deprecated in the Triangulation class and moved to the global deal.II namespace. As a consequence, all references to Triangulation, parallel::distributed::Triangulation::CellStatus, and similar should be updated to use CellStatus directly. Also, the enumeration values have been renamed: CELL_PERSIST -> cell_will_persist, CELL_REFINE -> cell_will_be_refined, CELL_COARSEN -> children_will_be_coarsened, CELL_INVALID -> cell_invalid). +
    + (Pasquale Claudio Africa, 2023/07/03) +
  244. + +
  245. + Fixed: The SolutionTransfer class writes into output vectors, but does + not call compress() on them. This is of no consequence for deal.II + vectors for which this class is mostly used (in contrast to the + parallel::distributed::SolutionTransfer class), but leads to awkward + downstream failures with, for example, PETSc vectors. This is now + fixed. +
    + (Wolfgang Bangerth, 2023/07/01) +
  246. + +
  247. + Changed: The constructor of the + PETScWrappers::PreconditionSSOR::AdditionalData class is now + `explicit`, thereby disallowing the implicit conversion of a number + (the relaxation factor) to an object of this type. +
    + (Wolfgang Bangerth, 2023/07/01) +
  248. + +
  249. + Improved: The `deal_ii_pickup_tests()` macro now prints a status line at + the end summarizing how many tests have been configured for the given test + category. Similarly, the top level target `setup_tests` concatenates these + status lines and prints a summary after invocation. +
    + (Matthias Maier, 2023/06/30) +
  250. + +
  251. + Fixed: IndexSet::add_index() would not recognize single indices already added, + leading to an unnecessary quadratic complexity in case the same entry is added + many times. This is now fixed. +
    + (Martin Kronbichler, 2023/06/30) +
  252. + +
  253. + Fixed: It was previously possible to access the return value of a + Threads::Task object if the underlying task had ended with an + exception. But that return value was not initialized. This is now + checked: You can no longer call Threads::Task::return_value() after an + exception. +
    + (Wolfgang Bangerth, 2023/06/30) +
  254. + +
  255. + Fixed: MGTwoLevelTransfer used within the global coarsening multigrid + framework did not work when deal.II was compiled without MPI or when MPI_Init + was not called. This is now fixed. +
    + (Martin Kronbichler, 2023/06/28) +
  256. + +
  257. + Fixed: The function IndexSet::add_indices() was not efficient when + adding sets of indices that are sorted but contain duplicates. This is + now fixed. +
    + (Wolfgang Bangerth, 2023/06/20) +
  258. + +
  259. + New: Added a function DoFTools::map_boundary_to_bulk_dof_iterators() that + generates a mapping of codimension-1 active DoFHandler cell iterators to + codimension-0 cells and face indices, to couple DoFHandler objects of different + co-dimensions, initialized on grids generated with + GridTools::extract_boundary_mesh() +
    + (Luca Heltai, 2023/04/12) +
  260. + +
+ +*/ -- 2.39.5