--- /dev/null
+// ---------------------------------------------------------------------
+//
+// Copyright (C) 2017 - 2021 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_2_0_and_9_3_0 Changes between Version 9.2.0 and 9.3.0
+
+<p>
+This is the list of changes made between the release of deal.II version
+9.2.0 and that of 9.3.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>
+ Removed: An additional overload of GridTools::cell_measure(), which only
+ existed to aid generic programming and only threw an exception, has been
+ removed. If you use this function then the best fix is to ensure that
+ you are not explicitly providing a template parameter to the function itself.
+ <br>
+ (David Wells, 2021/05/16)
+ </li>
+
+ <li>
+ Renamed: The function ParticleHandler::locally_relevant_ids() has been deprecated.
+ Please use the new function ParticleHandler::locally_owned_particle_ids() instead.
+ <br>
+ (Peter Munch, 2021/05/01)
+ </li>
+
+ <li>
+ Deprecated: The GridReordering class as well as
+ Triangulation::create_triangulation_compatibility have been deprecated.
+ These functions use the old-style (before 5.2) numbering and have been
+ unofficially deprecated since 2005.
+ <br>
+ (David Wells, 2021/04/22)
+ </li>
+
+ <li>
+ Removed: The class parallel::distributed::ErrorPredictor has been
+ removed. Use the function hp::Refinement::predict_error() in combination
+ with parallel::distributed::CellDataTransfer instead. Please consult the
+ documentation of hp::Refinement::predict_error() for instructions.
+ <br>
+ (Marc Fehling, 2021/04/21)
+ </li>
+
+ <li>
+ Changed: The order in which vertices are read from GridIn::read_unv() has
+ changed. As a result the vertex numbers on each cell are now slightly different.
+ <br>
+ (David Wells, 2021/04/13)
+ </li>
+
+ <li>
+ Changed: The order of parameters has been switched in MappingQCache::initialize(),
+ with the Mapping now being the first argument.
+ <br>
+ (Peter Munch, 2020/05/23)
+ </li>
+
+ <li>
+ Changed: The various parse_arguments(), to_string(), and to_value() functions
+ related to the Pattern namespace take their last argument by `const&` instead of
+ `const std::unique_ptr<>&`.
+ <br>
+ (Daniel Arndt, 2021/02/22)
+ </li>
+
+ <li>
+ Fixed: GridOut::write_vtk output the vertices of hexahedra in the wrong order,
+ which resulted in visualization programs computing all cell volumes as negative.
+ Fixing this required that we significantly update the way VTK input is read in
+ to deal.II as well (so that GridOut composed with GridIn remains idempotent). As
+ a result, the order of cells, faces, and edges is now different for meshes read
+ from VTK files.
+ <br>
+ (David Wells, 2021/02/20)
+ </li>
+
+ <li>
+ Changed: The FE_Q_Base class took a description of the polynomial
+ space as a template argument. But that is not necessary: It is
+ entirely sufficient to pass this information to the constructor in the
+ form of a regular constructor argument. This has been changed, and the
+ class has therefore lost its first template argument.
+ <br>
+ (Wolfgang Bangerth, 2021/02/03)
+ </li>
+
+ <li>
+ Deprecated: ARKode does no longer need a `reinit_vector` function.
+ <br>
+ (Sebastian Proell, 2021/02/01)
+ </li>
+
+ <li>
+ Added a simple mesh for debugging purposes that consists
+ of two cubes where one of them can be chosen to have one face
+ either flipped or rotated.
+ <br>
+ (Konrad Simon, 2021/01/28)
+ </li>
+
+ <li>
+ Updated: deal.II dropped support for Sundials older than version 3.0.0.
+ <br>
+ (Matthias Maier, Luca Heltai, 2021/01/25)
+ </li>
+
+ <li>
+ Updated: deal.II now requires CMake version 3.1.0 or newer to configure
+ <br>
+ (Matthias Maier, 2021/01/25)
+ </li>
+
+ <li>
+ Deprecated: All `LinearAlgebra::distributed::Vector::zero_out_ghosts()` has been deprecated.
+ Use `LinearAlgebra::distributed::Vector::zero_out_ghost_values()` instead.
+ <br>
+ (Peter Munch, 2021/01/04)
+ </li>
+
+ <li>
+ Patch to fix issue#7970 for 'RaviartThomas<3>(degree)' elements on meshes
+ that contain cells with faces that are flipped and/or not in standard
+ orientation. The patch provides a possible way to fix other FE classes inheriting
+ from 'FE_PolyTensor' but does not implement it yet. It does not change the interface
+ to FE classes.
+ <br>
+ (Konrad Simon, 2020/12/22)
+ </li>
+
+ <li>
+ Changed: The interface of FE::fill_fe_face_values() now accepts instead
+ of a Quadrature instance a hp::QCollection instance, enabling the evaluation of
+ shape functions for different quadrature formulas on different faces for
+ FiniteElement classes with supports for this feature (e.g. FE_Q, FE_SimplexP).
+ <br>
+ (Peter Munch, 2020/12/12)
+ </li>
+
+ <li>
+ Deprecated: The function CellId::to_cell() has been replaced by
+ Triangulation::create_cell_iterator().
+ <br>
+ (Marc Fehling, 2020/12/12)
+ </li>
+
+ <li>
+ Changed: GridTools::find_active_cell_around_point() no longer throws an exception, but returns an invalid iterator.
+ User codes should now check that the returned cell is valid instead of relying on exceptions, instead of trying
+ to catch exceptions that this function may have thrown.
+ <br>
+ (Luca Heltai, 2020/11/30)
+ </li>
+
+ <li>
+ Removed: The file `affine_constraints.h` had a class called
+ `IsBlockMatrix` that, however, also allowed to check whether its
+ template argument is in fact a block sparsity pattern. The class was
+ likely never intended to be in the public interface, and has been
+ moved to internal::AffineConstraints::IsBlockMatrix and now also
+ internal::AffineConstraints::IsBlockSparsityPattern.
+ <br>
+ (Wolfgang Bangerth, 2020/11/29)
+ </li>
+
+ <li>
+ Deprecated: The DoFHandlerType template argument for the DataOutStack
+ class has been deprecated. Use DataOutStack<dim, spacedim> instead.
+ <br>
+ (Marc Fehling, 2020/11/20)
+ </li>
+
+ <li>
+ Deprecation announcement: The template arguments of the following
+ classes will change in a future release:
+ <ul>
+ <li>SolutionTransfer
+ <li>parallel::distributed::SolutionTransfer
+ <li>Functions::FEFieldFunction
+ <li>DataOut
+ <li>DataOut_DoFData
+ <li>DataOutFaces
+ <li>DataOutRotation
+ </ul>
+ If for some reason, you need a code that is compatible with deal.II
+ 9.3 and the subsequent release, a Legacy namespace has been introduced
+ with aliases of these classes with their original interface. You can
+ make the following substitutions to your code for each of the affected
+ classes:
+ <ul>
+ <li>X → Legacy::X
+ </ul>
+ To perform this substitution automatically, you may use a *search and
+ replace* script like the following made for the *bash* shell:
+ @code{.sh}
+ classes=(SolutionTransfer parallel::distributed::SolutionTransfer Functions::FEFieldFunction DataOut DataOut_DoFData DataOutFaces DataOutRotation)
+ for c in \${classes[@]}; do
+ find /path/to/your/code -type f -exec sed -i -E "/(\w\${c}|\${c}[^<]|Particles::\${c}|distributed::\${c}|^\s*(\/\/|\*))/! s/\${c}/Legacy::\${c}/g" {} \;
+ done
+ @endcode
+ (Marc Fehling, 2020/11/20)
+ </li>
+
+ <li>
+ Deprecated: The DoFHandlerType template argument for the functions
+ DataPostprocessorInputs::CommonInputs::set_cell() and
+ DataPostprocessorInputs::CommonInputs::get_cell() has been deprecated.
+ These functions now only work with the basic `DoFHandler` class. As a
+ consequence, the get_cell() function requires an additional dim
+ template. For example, write: cell=common_inputs.template get_cell<dim>()
+ <br>
+ (Marc Fehling, 2020/11/15)
+ </li>
+
+ <li>
+ Deprecated: The DoFHandlerType template argument for the MappingFEField
+ class has been deprecated. Use MappingFEField<dim, spacedim, VectorType>
+ instead.
+ <br>
+ (Marc Fehling, 2020/11/15)
+ </li>
+
+ <li>
+ Deprecated: The variant of the function MatrixFree::get_dof_handler
+ expecting a DoFHandlerType template has been deprecated. Use the
+ template-less variant returning a DoFHandler instead.
+ <br>
+ (Marc Fehling, 2020/11/13)
+ </li>
+
+ <li>
+ Deprecated: All `MatrixFree::reinit()` functions without `Mapping` as argument
+ have been deprecated. Use the functions that explicit provide the Mapping instead.
+ <br>
+ (Peter Munch, 2020/11/11)
+ </li>
+
+ <li>
+ Deprecated: The operator FiniteElement::operator[] has been deprecated.
+ Use DoFHandler::get_fe() with a specified index instead of code like
+ dof_handler->get_fe()[index].
+ <br>
+ (Marc Fehling, 2020/11/11)
+ </li>
+
+ <li>
+ Deprecated: The initialization interface for the DoFHandler class has
+ changed. DoFHandler::initialize() and DoFHandler::set_fe() have been
+ deprecated. Instead, use the constructor DoFHandler::DoFHandler(tria) or
+ DoFHandler::DoFHandler() followed by DoFHandler::reinit(tria) to attach
+ a Triangulation tria, and DoFHandler::distribute_dofs() to enumerate
+ degrees of freedom.
+ <br>
+ (Marc Fehling, 2020/10/30)
+ </li>
+
+ <li>
+ Changed: MatrixFree::loop() only accepts LinearAlgebra::distributed::Vector arguments
+ that have been initialized via MatrixFree::initialize_dof_vector()
+ and are as a consequence globally compatible with the
+ Utilities::MPI::Partitioner within internal::MatrixFreeFunctions::DoFInfo.
+ <br>
+ (Peter Munch, Martin Kronbichler, 2020/10/21)
+ </li>
+
+ <li>
+ Changed: The return type of the method Mapping::get_vertices() has been changed
+ from std::array to boost::container::small_vector.
+ <br>
+ (Peter Munch, 2020/10/16)
+ </li>
+
+ <li>
+ Deprecated: The QTrapez class, poorly named because the proper English
+ term is "trapezoidal quadrature rule", has been renamed to QTrapezoid,
+ and the class with the old name has been deprecated.
+ <br>
+ (Wolfgang Bangerth, 2020/09/28)
+ </li>
+
+ <li>
+ Replaced: Python wrapper for 'merge_triangulations' with a more generic equivalent.
+ <br>
+ (Alexander Grayver, 2020/09/01)
+ </li>
+
+ <li>
+ Removed: CUDA 9, 10.0, and 10.1 are not supported anymore.
+ <br>
+ (Bruno Turcksin, 2020/08/05)
+ </li>
+
+ <li>
+ Changed: The template arguments of the classes DoFAccessor and DoFCellAccessor have changed.
+ The template argument DoFHandlerType has been replaced by dimension and
+ space dimension.
+ <br>
+ (Peter Munch, 2020/06/24)
+ </li>
+
+ <li>
+ Deprecated: The functions MatrixFree::reinit(), which take
+ a vector of hp::DoFHandlers, have been deprecated. Users are asked
+ to provide vectors of DoFhandlers, which may contain hp::DoFHandlers. This is
+ possible now since hp::DoFHandler is deriving from DoFHandler.
+ <br>
+ (Peter Munch, 2020/06/03)
+ </li>
+
+ <li>
+ Removed: The deprecated class MGCoarseGridLACIteration has been removed.
+ <br>
+ (Daniel Arndt, 2020/06/12)
+ </li>
+
+ <li>
+ Removed: The header file `deal.II/grid/tria_object.h` has been
+ removed. It was only used for internal purposes.
+ <br>
+ (Wolfgang Bangerth, 2020/06/05)
+ </li>
+
+ <li>
+ Changed: The binary representation of the Triangulation and DoFHandler classes
+ created by the function `save()` with release 9.2 cannot be read anymore with
+ `load()` due to major internal changes
+ of these classes. This change also affects, i.a., the functions
+ `GridIn::read_vtu()` and `GridOut::write_vtu()`.
+ <br>
+ (Peter Munch, 2020/06/03)
+ </li>
+
+ <li>
+ Removed: The deprecated bindings to the legacy NETCDF C++ library have been
+ removed.
+ <br>
+ (David Wells, 2020/05/27)
+ </li>
+
+ <li>
+ Removed: The deprecated bindings to nanoflann have been removed.
+ <br>
+ (David Wells, 2020/05/27)
+ </li>
+
+ <li>
+ Changed: The ThreadLocalStorage class has been reimplemented with C++14 STL
+ primitives and does not depend on the TBB library any more. With that the
+ obscure ThreadLocalStorage::get_implementation() function that exposed the
+ underlying TBB container has been removed.
+ <br>
+ (Matthias Maier, 2020/05/23)
+ </li>
+
+ <li>
+ Removed: The Threads::Task class had an `operator==` that allowed
+ comparing objects of this type for equality. This operator has been
+ removed. If you want to store objects of this kind in a collection
+ that requires this kind of operator (say, `std::set`), then you
+ probably can't do so any more in a reasonable way. However, this is
+ exactly what the Threads::TaskGroup class is there for.
+ <br>
+ (Wolfgang Bangerth, 2020/05/26)
+ </li>
+
+ <li>
+ Deprecated: The class hp::DoFHandler has been deprecated, since the DoFHandler
+ has been extended with its functionalities.
+ <br>
+ (Peter Munch, 2020/05/23)
+ </li>
+
+ <li>
+ Removed: The following preprocessor definitions have been removed from
+ config.h.in: DEAL_II_NOEXCEPT, DEAL_II_USE_MT_POSIX,
+ DEAL_II_USE_MT_POSIX_NO_BARRIERS
+ <br>
+ (Matthias Maier, 2020/05/23)
+ </li>
+
+ <li>
+ Removed: The deprecated classes Threads::Mutex::ScopedLock,
+ Threads::ConditionVariable, and deprecated functions
+ Threads::Mutex::acquire(), Threads::Mutex::release(),
+ Threads::n_existing_threads(), Threads::this_thread_id() have been removed.
+ <br>
+ (Matthias Maier, 2020/05/22)
+ </li>
+
+ <li>
+ Removed: The <code>DEAL_II_WITH_CXX14</code> and
+ <code>DEAL_II_WITH_CXX17</code> configuration options have been removed.
+ The library will now be compiled with the default C++ standard enabled by
+ the compiler. This is (as of May 2020) C++14 for all compilers. If you want
+ to override that behavior, please set the C++ standard directly for example
+ by configuring with <code>-DDEAL_II_CXX_FLAGS="-std=c++17"</code>, or by
+ setting the environement variable <code>CXXFLAGS="-std=c++17"</code>.
+ <br>
+ (Matthias Maier, 2020/05/21)
+ </li>
+
+ <li>
+ Updated: deal.II now requires a compiler with enabled C++14 support.
+ <br>
+ (Matthias Maier, 2020/05/21)
+ </li>
+
+ <li>
+ Changed: The polynomial space template argument has been removed from
+ FE_Poly and FE_PolyTensor.
+ <br>
+ (Graham Harper, Daniel Arndt, 2020/05/21)
+ </li>
+
+ <li>
+ Removed: The deprecated class Threads::PosixThreadBarrier has been
+ removed.
+ <br>
+ (Wolfgang Bangerth, 2020/04/21)
+ </li>
+
+</ol>
+
+
+<!-- ----------- GENERAL IMPROVEMENTS ----------------- -->
+
+<a name="general"></a>
+<h3>General</h3>
+<ol>
+
+ <li>
+ New: The step-66 tutorial program shows how to solve a nonlinear PDE in parallel
+ with MatrixFree methods.
+ <br>
+ (Fabian Castelli, 2021/05/19)
+ </li>
+
+ <li>
+ New: The class FEPointEvaluation provides an interface to the evaluation of
+ interpolated solution values and gradients on cells on arbitrary reference
+ point positions. These points can change from cell to cell, both with
+ respect to their quantity as well to the location. The two typical use
+ cases are evaluations on non-matching grids and particle simulations.
+ <br>
+ (Martin Kronbichler, 2021/05/18)
+ </li>
+
+ <li>
+ New: The step-72 tutorial revisits step-15 (that solves a nonlinear elliptic
+ problem using Newton's method). In this variant, automatic differentiation
+ is used either to linearize the residual, or to compute the full linear system
+ from an energy functional.
+ <br>
+ (Jean-Paul Pelteret, 2021/05/06)
+ </li>
+
+ <li>
+ New: The step-71 tutorial demonstrates how automatic and symbolic differentiation
+ can be leveraged to compute the derivatives of a coupled constitutive law.
+ <br>
+ (Jean-Paul Pelteret, 2021/05/06)
+ </li>
+
+ <li>
+ New: The step-77 tutorial explores one of the mentioned extensions to step-15,
+ namely implementing a proper step length control algorithm. It uses the KINSOL
+ nonlinear solver package from the SUNDIALS library to incorporate a line
+ search method into the incremental update for Newton's method.
+ <br>
+ (Wolfgang Bangerth, 2021/05/04)
+ </li>
+
+ <li>
+ New: The step-75 tutorial program shows how to solve a simple Laplace
+ equation in parallel with hp-adaptive and MatrixFree methods.
+ <br>
+ (Marc Fehling, Peter Munch, Wolfgang Bangerth, 2021/04/15)
+ </li>
+
+ <li>
+ New: Experimental support for simplex meshes (i.e., meshes consisting
+ of triangle or tetrahedron cells) and mixed meshes (i.e., meshes consisting
+ of lines, triangles, quadrilateral, tetrahedron, pyramid, wedge, and/or
+ hexahedron cells) has been added. The new features are presented
+ in the test folder `tests/simplex` and in the
+ new "Simplex" module page.
+ <br>
+ (various, 2021/03/04)
+ </li>
+
+ <li>
+ New: The class Utilities::MPI::RemotePointEvaluation and the function
+ VectorTools::evaluate_at_points() allow to work on arbitrary distributed
+ points.
+ <br>
+ (Peter Munch, Martin Kronbichler, Magdalena Schreter, Niklas Fehn, 2021/02/28)
+ </li>
+
+ <li>
+ New: The communicator of an arbitrary (not just parallel) Triangulation class can now be
+ queried via Triangulation::get_communicator() or DoFHandler::get_communicator(). In
+ the case of serial Triangulations and DoFHandler set up with serial Triangulations,
+ MPI_COMM_SELF is returned.
+ <br>
+ (Peter Munch, 2021/02/28)
+ </li>
+
+ <li>
+ New: The behavior of the local_size() member function is not consistent across
+ all vector classes that support ghost elements. As a remedy theis member
+ function is deprecated and replaced by locally_owned_size() that returns the
+ number of locally owned elements (in particular without ghost elements).
+ <br>
+ (Daniel Arndt, David Wells, 2021/02/11)
+ </li>
+
+ <li>
+ New: Added a new quadrature rule QWitherdenVincent for simplices.
+ <br>
+ (David Wells, 2021/02/08)
+ </li>
+
+ <li>
+ New: Added a new class BarycentricPolynomial that makes defining
+ polynomials on simplices much easier.
+ <br>
+ (David Wells, 2021/01/26)
+ </li>
+
+ <li>
+ New: Added a new finite element FE_SimplexP_Bubbles suitable for using mass
+ lumping on simplex meshes.
+ <br>
+ (David Wells, 2021/01/26)
+ </li>
+
+ <li>
+ Improved: Update SUNDIALS ARKODE interface to support versions > 4.0.0 and add preconditioner support
+ <br>
+ (Sebastian Proell, 2020/12/11)
+ </li>
+
+ <li>
+ New: Added capacity to update ghost particles without rebuilding them from scratch in the particle_handler
+ <br>
+ (Bruno Blais, Peter Munch, 2020/11/10)
+ </li>
+
+ <li>
+ New: Tutorial example (step-68) showcasing parallel simulation of the advection
+ of particles including load balancing.
+ <br>
+ (Bruno Blais, Toni El Geitani Nehme, Rene Gassm
+ ller, Peter Munch, 2020/05/23)
+ </li>
+
+ <li>
+ New: The step-19 tutorial program shows how to use particle methods.
+ <br>
+ (Wolfgang Bangerth, Rene Gassmoeller, Peter Munch, 2020/09/15)
+ </li>
+
+ <li>
+ New: The GridIn class can now read ExodusII files when deal.II is configured
+ with Trilinos and SEACAS.
+ <br>
+ (David Wells, 2020/09/09)
+ </li>
+
+ <li>
+ New: The multithreading framework in the library has been completely revamped:
+ Intel TBB has been replaced by taskflow, which is bundled within the
+ library. Multithreading support is now unconditionally enabled and we removed
+ the CMake option DEAL_II_WITH_THREADS. The tasking framework can be controlled
+ using MultithreadInfo and the DEAL_II_NUM_THREADS environment variable.
+ <br>
+ (Wolfgang Bangerth, Timo Heister, Matthias Maier, 2020/05/25)
+ </li>
+
+ <li>
+ Changed: The internal data structures of DoFHandler have been modified to use
+ compressed row storage, enabling it to also handle hp::DoFHandler functionalities.
+ Currently, the user can choose between the normal mode and the hp mode during
+ calling the constructur. Please note that the multigrid functionalities are only
+ available during normal mode.
+ <br>
+ (Peter Munch, 2020/05/23)
+ </li>
+
+</ol>
+
+
+<!-- ----------- SPECIFIC IMPROVEMENTS ----------------- -->
+
+<a name="specific"></a>
+<h3>Specific improvements</h3>
+<ol>
+
+ <li>
+ Fixed: Make SUNDIALS::IDA function names consistent with SUNDIALS::KINSOL function names.
+ <br>
+ (Luca Heltai, 2021/05/21)
+ </li>
+
+ <li>
+ Fixed: KINSOL interface is now fully working
+ <br>
+ (Luca Heltai, Nicola Giuliani, 2021/05/19)
+ </li>
+
+ <li>
+ Improved: The images in tutorial 35 have been updated to cold and hot color scheme with higher resolution and more consistent sizing.
+ <br>
+ (Bryn Barker, 2021/05/18)
+ </li>
+
+ <li>
+ New: SUNDIALS::IDA is now compatible with SUNDIALS > 4.0.0
+ <br>
+ (Nicola Giuliani, Luca Heltai, 2021/05/13)
+ </li>
+
+ <li>
+ Improved: ParticleHandler::sort_particles_into_subdomains_and_cells()
+ now uses a faster method to identify particles in cells farther away
+ from their previous cell.
+ <br>
+ (Martin Kronbichler, 2021/05/12)
+ </li>
+
+ <li>
+ Fixed: DataOutBase::write_ucd() has been fixed to output vertices in the correct
+ order. Previously, cells were tangled when read with Paraview's AVS-UCD reader.
+ <br>
+ (David Wells, 2021/05/06)
+ </li>
+
+ <li>
+ Fixed: The function Particles::Generators::probabilistic_locations could crash
+ if some MPI ranks had no active cells. This is fixed now.
+ <br>
+ (Rene Gassmoeller, 2021/05/05)
+ </li>
+
+ <li>
+ Improved: There is now a cache for TriaAccessor::vertex_index() for the cells
+ of a mesh, which considerably speeds up operations with intensive use of
+ `cell->vertex()` or `cell->vertex_index()`.
+ <br>
+ (Martin Kronbichler, 2021/05/04)
+ </li>
+
+ <li>
+ New: Add a function taylor_estimate_function_bounds, which estimates the range
+ of the value and gradient components of a Function<dim> over a
+ BoundingBox<dim>, by approximating the function by a 2nd order Taylor
+ polynomial.
+ <br>
+ (Simon Sticko, 2021/04/25)
+ </li>
+
+ <li>
+ Deprecated: The FEValuesViews::Scalar, FEValuesViews::Vector,
+ FEValuesViews::Tensor, and FEValuesViews::SymmetricTensor classes all
+ have `OutputType` structures that defined the types of evaluating
+ the values and derivatives of finite element fields at quadrature
+ points. These structures have been deprecated, and the corresponding
+ types are now defined via local `using` declarations in the classes
+ mentioned above.
+ <br>
+ (Wolfgang Bangerth, 2021/04/25)
+ </li>
+
+ <li>
+ Bugfix: FE_Nedelec<2>::convert_generalized_support_point_values_to_dof_values()
+ now works correctly for every degree.
+ <br>
+ (Jake Harmon, 2021/04/22)
+ </li>
+
+ <li>
+ Fixed: The function hp::Refinement::predict_error() produced incorrect
+ results for p-coarsening.
+ <br>
+ (Marc Fehling, 2021/04/21)
+ </li>
+
+ <li>
+ Deprecated: The TriaAccessor::number_of_children() function has been
+ deprecated in favor of the new TriaAccessor::n_active_descendants()
+ function.
+ <br>
+ (Wolfgang Bangerth, 2021/04/20)
+ </li>
+
+ <li>
+ Added: The MPI_InitFinalize RAII class has gained an
+ MPI_InitFinalize::signals::at_mpi_init and an
+ MPI_InitFinalize::signals::at_mpi_finalize signal that are triggered
+ immediately after initializing the MPI context with <code>MPI_Init</code>
+ and immediately before deinitializing the MPI context with
+ <code>MPI_Finalize</code>.
+ <br>
+ (Matthias Maier, 2021/04/19)
+ </li>
+
+ <li>
+ New: There are now versions of the constructors of the
+ Functions::InterpolatedTensorProductGridData and
+ Functions::InterpolatedUniformGridData classes
+ that *move* the data in the arguments given,
+ instead of copying it.
+ <br>
+ (Wolfgang Bangerth, 2021/04/19)
+ </li>
+
+ <li>
+ Fixed: Work around a memory leak issue in OpenMPI 4.1.0 triggered by our
+ Utilities::MPI::min_max_avg() function by repeatedly allocating and freeing
+ MPI_Datatype handles.
+ <br>
+ (Matthias Maier, 2021/04/18)
+ </li>
+
+ <li>
+ New: FEInterfaceValues now can use FEValuesExtractors to extract scalar or
+ vector components like FEValues does.
+ <br>
+ (Jiaqi Zhang, 2021/04/15)
+ </li>
+
+ <li>
+ New: The functions AlignedVector::replicate_across_communicator()
+ and Table::replicate_across_communicator()
+ allow copying information across MPI processes.
+ <br>
+ (Wolfgang Bangerth, 2021/04/28)
+ </li>
+
+ <li>
+ New: Now the HDF5 interface can set bool attributes.
+ <br>
+ (Daniel Garcia-Sanchez, 2021/04/03)
+ </li>
+
+ <li>
+ Add a new grid generator (subdivided_cylinder) which generates a
+ cylinder with a number of x subdivisions which is specified by the user.
+ Alter cylinder so that it also uses this new generator to prevent code
+ duplication.
+ <br>
+ (Bruno Blais, 2021/04/01)
+ </li>
+
+ <li>
+ Add: Adds new settings to PETScWrappers::PreconditionBoomerAMG::initialize()
+ in the struct PETScWrappers::PreconditionBoomerAMG::AdditionalData.
+ <br>
+ (Maximilian Bergbauer, 2021/03/31)
+ </li>
+
+ <li>
+ Deprecated: The version of DoFTools::extract_boundary_dofs() that
+ returns its information via an `IndexSet` reference argument has been
+ deprecated. Use the version of the function that returns information
+ via an IndexSet return type instead.
+ <br>
+ (Wolfgang Bangerth, 2021/03/30)
+ </li>
+
+ <li>
+ Deprecated: The version of DoFTools::extract_boundary_dofs() that
+ returns its information via a `std::vector<bool>` has been
+ deprecated. Use the version of the function that returns information
+ via an IndexSet instead.
+ <br>
+ (Wolfgang Bangerth, 2021/03/30)
+ </li>
+
+ <li>
+ New: Class parallel::distributed::TemporarilyMatchRefineFlags that
+ temporarily modifies the refine and coarsen flags of all active cells
+ on a parallel::distributed::Triangulation to match its p4est oracle.
+ <br>
+ (Marc Fehling, 2021/03/29)
+ </li>
+
+ <li>
+ New: The getter function for the divergence in
+ FEEvaluationAccess<1, 1, Number, is_face, VectorizedArrayType>::get_divergence()
+ is now also implemented for dim==1 and n_components==1. The function
+ FEEvaluationAccess<1, 1, Number, is_face, VectorizedArrayType>::submit_gradient()
+ now also takes a rank 2 tensor as input argument.
+ <br>
+ (Magdalena Schreter, Peter Munch, Martin Kronbichler, 2021/03/22)
+ </li>
+
+ <li>
+ New: Add nearest neighbor predicate support to ArborXWrappers::BVH(). This
+ allows to find the `n` closest bounding boxes or points to any given bounding
+ box or point.
+ <br>
+ (Bruno Turcksin, 2021/03/19)
+ </li>
+
+ <li>
+ Improved: The function parallel::distributed::Triangulation::copy_triangulation()
+ now also works with locally refined meshes of type
+ parallel::distributed::Triangulation.
+ <br>
+ (Marc Fehling, 2021/03/19)
+ </li>
+
+ <li>
+ Improved: The class LinearAlgebra::ReadWriteVector now also can import
+ from Vector and LinearAlgebra::Vector.
+ <br>
+ (Peter Munch, 2021/03/18)
+ </li>
+
+ <li>
+ New: Adds the new generalized MPI_Bcast function Utilities::MPI::broadcast() for arbitrary data types T.
+ <br>
+ (Maximilian Bergbauer, 2021/03/18)
+ </li>
+
+ <li>
+ Fixed: MatrixFree::get_boundary_id() would previously only support boundary ids
+ between 0 and 255 via an `unsigned char` type. This has now been changed to
+ the correct types::boundary_id type, supporting also larger boundary ids.
+ <br>
+ (Martin Kronbichler, 2021/03/16)
+ </li>
+
+ <li>
+ New: Added Functions::IdentityFunction.
+ <br>
+ (David Wells, 2021/03/16)
+ </li>
+
+ <li>
+ New: The new method Differentiation::SD::BatchOptimizer::extract() allows one to
+ extract results from previous evaluation of the symbolic expressions.
+ This means that one can safely use a single instance of a batch optimizer to
+ pre-compute a set of results, cache them, and then later extract some results
+ from the cached data without re-evaluating any symbolic expressions.
+ <br>
+ (Jean-Paul Pelteret, 2021/03/13)
+ </li>
+
+ <li>
+ Improved: The result type deduction for the product of symbolic types
+ (specifically, Differentiation::SD::Expression) with tensors and symmetric
+ tensors has been improved.
+ <br>
+ (Jean-Paul Pelteret, 2021/03/13)
+ </li>
+
+ <li>
+ New: The MeshWorker::ScratchData class is now able to compute the Laplacians
+ of the scalar-valued and vector-valued components of the solution vector.
+ <br>
+ (Jean-Paul Pelteret, 2021/03/13)
+ </li>
+
+ <li>
+ Improved: The MeshWorker::ScratchData::get_general_data_storage() method now has
+ a `const` variant.
+ <br>
+ (Jean-Paul Pelteret, 2021/03/13)
+ </li>
+
+ <li>
+ Improved: The function VectorTools::get_position_vector() can now also take
+ a Mapping object as input parameter.
+ <br>
+ (Peter Munch, 2021/03/10)
+ </li>
+
+ <li>
+ New: MappingQCache has new initialize functions. One set of functions takes
+ either a std::function or a dealii::Function for transforming
+ individual points. Another set of functions take global vectors (and
+ MGLevelObjects of global vectors) and use these to initialize the position of
+ the support points much like MappingFEField does.
+ <br>
+ (Niklas Fehn, Martin Kronbichler, Peter Munch, 2021/03/10)
+ </li>
+
+ <li>
+ New: Utilities::MPI::logical_or() for collective <i>logical or</i> operations.
+ <br>
+ (Marc Fehling, 2021/03/04)
+ </li>
+
+ <li>
+ New: Add a component parameter to FESeries::Fourier/Legendre to
+ make them working with non-primitive elements.
+ <br>
+ (Ce Qin, 2021/03/01)
+ </li>
+
+ <li>
+ New: A new class GridTools::MarchingCubeAlgorithm has been added. It
+ helps to create a surface mesh on the iso line/contour of a scalar field.
+ <br>
+ (Peter Munch, Magdalena Schreter, Martin Kronbichler, 2021/02/28)
+ </li>
+
+ <li>
+ New: Function hp::Refinement::limit_p_level_difference()
+ restricts the maximal level difference of neighboring cells with respect
+ to the finite element hierarchy of the registered hp::FECollection.
+ <br>
+ (Marc Fehling, 2021/02/23)
+ </li>
+
+ <li>
+ New: The new MGTransferBase::prolongate_and_add() performs a prolongation
+ without zeroing out the destination vector.
+ <br>
+ (Martin Kronbichler, 2021/02/22)
+ </li>
+
+ <li>
+ New: Member function hp::FECollection::get_hierarchy_sequence() returning
+ the sequence of finite element indices that correspond to the registered
+ hierarchy.
+ <br>
+ (Marc Fehling, 2021/02/22)
+ </li>
+
+ <li>
+ Fixed: deal.II should now be able to use versions of LAPACK compiled with
+ Fortran compilers that do not adhere to the usual Fortran mangling
+ convention.
+ <br>
+ (David Wells, 2021/02/20)
+ </li>
+
+ <li>
+ Added a template version of CUDAWrappers::MatrixFree::reinit() that takes an
+ IteratorFilters object. This allows to perform the operator evaluation on part
+ of the domain.
+ <br>
+ (Bruno Turcksin, 2021/02/19)
+ </li>
+
+ <li>
+ Added: A multidimensional array dealii::ndarray that allows one to
+ conveniently create "stacked" std::array objects that model a
+ multidimensional array. `dealii::ndarray<double, 1, 2, 3, 4>` for example
+ is a short-hand for `std::array<std::array<std::array<std::array<double, 4>, 3>, 2>, 1>`.
+ <br>
+ (Matthias Maier, 2021/02/19)
+ </li>
+
+ <li>
+ Moved: The CommunicationPatternBase class has been moved from the LinearAlgebra
+ namespace into the more general Utilities::MPI namespace.
+ <br>
+ (David Wells, 2021/02/15)
+ </li>
+
+ <li>
+ Fixed: CutOffFunctionTensorProduct::gradient() was computing the wrong gradient. This is now fixed.
+ <br>
+ (Luca Heltai, 2021/02/13)
+ </li>
+
+ <li>
+ New: ArrayView objects can now also be constructed from C-style arrays.
+ <br>
+ (Wolfgang Bangerth, 2021/02/09)
+ </li>
+
+ <li>
+ New: The method parallel::distributed::Triangulation::load()
+ can now also accept a p4est/p8est forest, which can be queried
+ from an existing triangulation via parallel::distributed::Triangulation::get_p4est().
+ <br>
+ (Marc Fehling, Peter Munch, 2021/02/09)
+ </li>
+
+ <li>
+ New: There are now functions Utilities::get_bit() and
+ Utilities::set_bit() that do as their names suggest.
+ <br>
+ (Peter Munch, Wolfgang Bangerth, 2021/02/05)
+ </li>
+
+ <li>
+ Improved: AffineConstraints::copy_from() now also works for differing
+ number template types.
+ <br>
+ (Peter Munch, Maximilian Bergbauer, 2021/02/05)
+ </li>
+
+ <li>
+ Update: class PETScWrappers::PreconditionerBase renamed to
+ PETScWrappers::PreconditionBase for consistency.
+ <br>
+ (Pasquale Claudio Africa, 2021/02/03)
+ </li>
+
+ <li>
+ Fixed: Triangulation::get_manifold_ids() was not returning all ids correctly.
+ <br>
+ (Luca Heltai, 2021/02/03)
+ </li>
+
+ <li>
+ New: SUNDIALS N_Vector module now directly operates on different deal.II vectors without internally
+ creating copies.
+ In particular, ARKode can now also be used with LinearAlgebra::distributed::(Block)Vector.
+ <br>
+ (Sebastian Proell, 2021/01/31)
+ </li>
+
+ <li>
+ Improved: Exception texts are now formatted and broken to fixed-length
+ lines, rather than flowing to arbitrary lengths.
+ <br>
+ (Wolfgang Bangerth, 2021/01/25)
+ </li>
+
+ <li>
+ New: Added support for gmsh library API. This allows using GridIn::read_msh()
+ and GridOut::write_msh() to save and read also manifold id information.
+ <br>
+ (Luca Heltai, 2021/01/20)
+ </li>
+
+ <li>
+ New: implemented p::f::Triangulation::load()/save() for use with p::d::SolutionTransfer.
+ <br>
+ (Pasquale Claudio Africa, Peter Munch, 2021/01/18)
+ </li>
+
+ <li>
+ Improved: provide abstract interface to p::d::Triangulation::load()/save().
+ <br>
+ (Pasquale Claudio Africa, 2021/01/18)
+ </li>
+
+ <li>
+ New: Added python wrappers to enable support for simplex and mixed meshes.
+ <br>
+ (Alexander Grayver, 2021/01/18)
+ </li>
+
+ <li>
+ New: Mapping::get_bounding_box() now returns the bounding box of the support points, when the mapping
+ is of type MappingQ, MappingQGeneric, and MappingQEulerian.
+ <br>
+ (Luca Heltai, 2021/01/16)
+ </li>
+
+ <li>
+ New: The method parallel::distributed::Triagnulation::communicate_locally_moved_vertices()
+ has been refactored and moved to parallel::DistributedTriangulationBase so that it can now also be
+ used for parallel::fullydistributed::Triangulation.
+ <br>
+ (Daniel Arndt, Ivan Fumagalli, Peter Munch, 2021/01/15)
+ </li>
+
+ <li>
+ New: Implemented MappingFE::transform_real_to_unit_cell().
+ <br>
+ (Luca Heltai, 2021/01/13)
+ </li>
+
+ <li>
+ New: The old tensor basis transformation functions internal::Physics::transformation_contraction()
+ have been moved out of the internal namespace and renamed to
+ Physics::Transformations::basis_transformation() and have documentation now.
+ <br>
+ (Nils Much, 2021/01/12)
+ </li>
+
+ <li>
+ New: Created two new methods ParameterAcceptor::enter_subsection() and
+ ParameterAcceptor::leave_subsection() that allow more intricated parameter
+ paths within ParameterAcceptor classes.
+ <br>
+ (Luca Heltai, 2021/01/12)
+ </li>
+
+ <li>
+ New: Add new BVH (Bounding Volume Hierarchy) class based on ArborX. This class
+ performs multiple kinds of geometric search: intersection of bounding boxes and
+ intersection of bounding boxes with points.
+ <br>
+ (Bruno Turcksin, 2021/01/08)
+ </li>
+
+ <li>
+ New: Function GridTools::get_subdomain_association() determines
+ the owning process of any valid cell on a Triangulation that is
+ represented by a globally unique CellId.
+ <br>
+ (Marc Fehling, 2021/01/07)
+ </li>
+
+ <li>
+ New: The policy under which things in deal.II are deprecated has changed.
+ Deprecated features are now first marked with DEAL_II_DEPRECATED_EARLY until the
+ next release of the library, at which point they will be remarked with
+ DEAL_II_DEPRECATED. By default, things marked with DEAL_II_DEPRECATED_EARLY do
+ not print deprecation warnings - this is controlled with the
+ DEAL_II_EARLY_DEPRECATIONS CMake configuration option. This change was made so
+ that users can use multiple recent checkouts of the development branch without
+ needing to address the problem that some will print deprecation warnings and
+ others do not, and also so that new deprecation warnings do not appear outside
+ of the release period.
+ <br>
+ (Daniel Arndt, 2021/01/05)
+ </li>
+
+ <li>
+ Fixed: Reset time and timestep_number during pre refinement steps in step-26.
+ <br>
+ (Praveen Chandrashekar, 2021/01/05)
+ </li>
+
+ <li>
+ Changed: Tutorial step-27 has been simplified and now uses the recently
+ introduced SmoothnessEstimator namespace.
+ <br>
+ (Marc Fehling, 2020/12/24)
+ </li>
+
+ <li>
+ Fixed: DoFTools::make_periodicity_constraints() was not instantiated for condition 'dim < spacedim'. The instantiation was corrected and a test was added to verify that the function works for such condition.
+ <br>
+ (Malhar Tidke, 2020/12/23)
+ </li>
+
+ <li>
+ Improved: If there is an uncaught exception the destructor of the HDF5
+ interface does not call H5Dclose, H5Gclose or H5Fclose. In addition,
+ to avoid MPI synchronization and a possible deadlock, the destructor
+ calls MPI_Abort().
+ (Daniel Garcia-Sanchez, 2020/12/23)
+ </li>
+
+ <li>
+ New: Add functions CUDAWrappers::local_q_point_id_host(),
+ CUDAWrappers::get_quadrature_point_host(), CUDAWrappers::copy_mf_data_to_host(), and
+ CUDAWrappers::MatrixFree::get_colored_graph(). These functions can be used to
+ evaluate material properties in the same order on the host and on the device.
+ <br>
+ (Bruno Turcksin, 2020/12/06)
+ </li>
+
+ <li>
+ Fixed: A previous patch accidentally broke step-46 and led to
+ exceptions about accessing neighboring cells that don't actually exist
+ because a cell is at the boundary. This has been fixed.
+ <br>
+ (Wolfgang Bangerth, 2020/12/03)
+ </li>
+
+ <li>
+ New: The function GridGenerator::convert_hypercube_to_simplex_mesh allows to
+ convert a given triangulation based on quadrilaterals (2D) or hexahedra (3D)
+ to a triangulation based on simplices or tetraedra, respectively. Thereby,
+ material_IDs and boundary_IDs are inherited from the given triangulation.
+ <br>
+ (Elias Dejene, Peter Munch, 2020/11/23)
+ </li>
+
+ <li>
+ New: A new class LowStorageRungeKutta is added to the namespace TimeStepping to
+ implement the explicit low-storage Runge-Kutta methods, see @cite KennedyCarpenterLewis2000 and step-67.
+ <br>
+ (Jiaqi Zhang, 2020/11/18)
+ </li>
+
+ <li>
+ Improved: QCollection<dim> now also accepts Quadrature<1> and converts this
+ input quadrature rule to a dim-dimensional quadrature rule internally via
+ tensor product. Furthermore, a copy constructor has been added
+ accepting QCollection<1>.
+ <br>
+ (Peter Munch, 2020/11/12)
+ </li>
+
+ <li>
+ Fixed: WorkStream::mesh_loop() should now work on anisotropic grids.
+ <br>
+ (Luca Heltai, 2020/11/03)
+ </li>
+
+ <li>
+ Improved: An inverse quadratic approximation has been added for the pull-back
+ operation in the TransfiniteInterpolationManifold::new_points() function. The
+ better initial guesses for the Newton/Broyden iteration make the computation
+ faster and more robust in some difficult scenarios.
+ <br>
+ (Martin Kronbichler, 2020/11/01)
+ </li>
+
+ <li>
+ Fixed: There was a bug in
+ Differentiation::AD::ScalarFunction::extract_hessian_component()
+ that was triggered when using a symmetric tensor extractor with a non-zero
+ first component index. Having previously lead to either incorrect results being
+ returned or valid user programs crashing, it has now been corrected.
+ <br>
+ (Jean-Paul Pelteret, 2020/11/01)
+ </li>
+
+ <li>
+ Improved: MatrixFree now also works for hp in MPI-parallelized
+ programs.
+ <br>
+ (Marc Fehling, Katharina Kormann, Martin Kronbichler, Peter Munch, 2020/10/20)
+ </li>
+
+ <li>
+ New: step-9 uses the "streamline-upwind Petrov-Galerkin" method, but
+ does not make any attempt at explaining what this method is or why it
+ might be named like this. This has been rectified: The introduction
+ now has a long section that explains the origin of the method and its name.
+ <br>
+ (Wolfgang Bangerth, 2020/10/10)
+ </li>
+
+ <li>
+ New: Mapping::transform_points_real_to_unit_cell() can compute the operation
+ of Mapping::transform_real_to_unit_cell() on many points simultaneously, which
+ can be much faster for MappingQGeneric and derived classes that involve
+ expensive operations to compute the support points of the mapping.
+ <br>
+ (Martin Kronbichler, 2020/10/07)
+ </li>
+
+ <li>
+ New: GridRefinement::refine_and_coarsen_fixed_fraction() and
+ parallel::distributed::GridRefinement::refine_and_coarsen_fixed_fraction()
+ now allow to specify a VectorTools::NormType, which determines how
+ combined errors on subsets of cells will be calculated.
+ <br>
+ (Marc Fehling, 2020/10/06)
+ </li>
+
+ <li>
+ New: SSP_THIRD_ORDER is added to the namespace TimeStepping to
+ implement the explicit third order Strong Stability Preserving (SSP) Runge-Kutta method,
+ which is also called the third order Total Variation Diminishing (TVD) Runge-Kutta method, see @cite gottlieb2001strong.
+ <br>
+ (Jiaqi Zhang, 2020/10/05)
+ </li>
+
+ <li>
+ New: GridTools::affine_cell_approximation() returns a matrix <i>A</i> and
+ offset vector <i>b</i> that describe a least-squares fit of an affine
+ approximation to a set of vertices of a cell.
+ <br>
+ (Martin Kronbichler, 2020/10/04)
+ </li>
+
+ <li>
+ New: Helper functions CellAccessor::child_iterators() and
+ DoFCellAccessor::child_iterators() which return iterators to children of
+ a cell via `cell->child_iterators()`.
+ <br>
+ (Marc Fehling, 2020/10/03)
+ </li>
+
+ <li>
+ New: CellId has a new constructor to create it from a std::string.
+ <br>
+ (Timo Heister, 2020/10/05)
+ </li>
+
+ <li>
+ Improved: MappingQGeneric::transform_real_to_unit_cell() has been made much
+ faster by directly working with the tensor product form of the mapping shape
+ functions and avoiding many unnecessary memory allocations. The main cost is
+ now MappingQGeneric::compute_mapping_support_points(), which can be made fast
+ with MappingQCache, for example.
+ <br>
+ (Martin Kronbichler, 2020/09/30)
+ </li>
+
+ <li>
+ New: The function BlockSparsityPattern::print_svg() outputs a block
+ sparsity pattern in SVG format.
+ <br>
+ (Wolfgang Bangerth, 2020/09/25)
+ </li>
+
+ <li>
+ Changed: step-29 no longer uses the `deallog` variable to generate
+ output, but instead directly writes to `std::cout`.
+ <br>
+ (Wolfgang Bangerth, 2020/09/23)
+ </li>
+
+ <li>
+ New: The classes FEEvaluation and FEFaceEvaluation with template parameter -1
+ for the polynomial degree is now based on pre-compiled templated code for
+ polynomial degrees between 1 and 6. This allows for fast execution of
+ matrix-free evaluation for run-time polynomial degrees. The generated
+ instantiations are controlled by
+ `include/deal.II/matrix_free/evaluation_template_factory.templates.h` and can
+ be pre-compiled for additional degrees in user code.
+ <br>
+ (Martin Kronbichler, Peter Munch, 2020/09/21)
+ </li>
+
+ <li>
+ Fixed: Our cmake scripts forgot to install some of the files that are
+ part of the code gallery. This is now fixed.
+ <br>
+ (Wolfgang Bangerth, 2020/09/17)
+ </li>
+
+ <li>
+ Fixed: DoFTools::extract_dofs() return an IndexSet as result used to have a
+ quadratic complexity in the number of extracted indices. This is now fixed.
+ <br>
+ (Martin Kronbichler, 2020/08/11)
+ </li>
+
+ <li>
+ Added: method for returning list of all triangulation cells.
+ <br>
+ (Alexander Grayver, 2020/09/03)
+ </li>
+
+ <li>
+ Added: python wrapper for GridTools::replicate_triangulation,
+ more general version of the GridTools::merge_triangulations is
+ implemented
+ <br>
+ (Alexander Grayver, 2020/09/01)
+ </li>
+
+ <li>
+ New: The methods FEEvaluation::gather_evaluate(),
+ FEEFaceEvaluation::gather_evaluate(), FEEvaluation::integrate_scatter() and
+ FEfaceEvaluation::integrate_scatter() can now also accept block vectors.
+ <br>
+ (Peter Munch, Magdalena Schreter, Martin Kronbichler, 2020/08/31)
+ </li>
+
+ <li>
+ New: A particle collection can now be copied into a new ParticleHandler object using
+ the new ParticleHandler::copy_from function.
+ <br>
+ (Rene Gassmoeller, 2020/08/28)
+ </li>
+
+ <li>
+ Added: DataOut now supports HDF5 file format with simplex meshes.
+ <br>
+ (Pasquale Claudio Africa, 2020/08/27)
+ </li>
+
+ <li>
+ Updated: GridTools::transform() now works with simplex meshes.
+ <br>
+ (Pasquale Claudio Africa, 2020/08/26)
+ </li>
+
+ <li>
+ Improved: The macro DEAL_II_PICKUP_TESTS can now also be run with on optional
+ input parameter that can be used to manipulate the folder name of tests during
+ ctest.
+ <br>
+ (Peter Munch, 2020/07/23)
+ </li>
+
+ <li>
+ New: The test suite can now also be run with .json files.
+ <br>
+ (Peter Munch, 2020/08/17)
+ </li>
+
+ <li>
+ Improved: The definitions of the templated functions of the HDF5 interface are
+ now in hdf5.h, therefore it is possible to use additional template combinations.
+ The instantiations are no longer necessary, therefore they have been removed.
+ <br>
+ (Daniel Garcia-Sanchez, 2020/08/14)
+ </li>
+
+ <li>
+ New: MGTools::make_sparsity_pattern() can now take an optional
+ AffineConstraints argument to add the effect of, e.g., periodic boundary
+ conditions.
+ <br>
+ (Martin Kronbichler, 2020/08/11)
+ </li>
+
+ <li>
+ Fixed: The DataPostprocessorTensor class erroneously announced that
+ the components of its output are a bunch of scalars when, of course,
+ the whole point of the class was to output things as one tensor
+ field. This is now fixed.
+ <br>
+ (Wolfgang Bangerth, 2020/08/06)
+ </li>
+
+ <li>
+ New: GridIn::read_vtk() now supports triangular and tetrahedral meshes.
+ <br>
+ (Peter Munch, 2020/07/23)
+ </li>
+
+ <li>
+ New: GridIn::read_msh() now supports triangular and tetrahedral meshes.
+ <br>
+ (Daniel Paukner, 2020/07/20)
+ </li>
+
+ <li>
+ New: The method hp::FEFaceValues::reinit() can now also accept face iterators.
+ <br>
+ (Peter Munch, 2020/07/16)
+ </li>
+
+ <li>
+ New: The class hp::MappingCollection has a new constructor. This constructor creates
+ a MappingCollection from one or more mapping objects passed to the constructor.
+ <br>
+ (Peter Munch, 2020/07/15)
+ </li>
+
+ <li>
+ Fixed: MeshWorker::mesh_loop() did not work on 1d with refined grids. This is now fixed.
+ <br>
+ (Luca Heltai, 2020/07/08)
+ </li>
+
+ <li>
+ Added the functions CUDAWrappers::MatrixFree::get_vector_partitioner() and
+ CUDAWrappers::MatrixFree::get_dof_handler()
+ <br>
+ (Bruno Turcksin, 2020/07/06)
+ </li>
+
+ <li>
+ Fixed: In parallel hp-adaptive applications,
+ DoFHandler::distribute_dofs() no longer fails to enumerate degrees of
+ freedom on ghost interfaces if continuous finite elements do not
+ dominate each other.
+ <br>
+ (Marc Fehling, 2020/07/03)
+ </li>
+
+ <li>
+ New: A new quadrature rule for simplex geometric entities has been added.
+ <br>
+ (Peter Munch, 2020/07/02)
+ </li>
+
+ <li>
+ New: Geometric objects of a Triangulation are assigned a ReferenceCell::Type. The value
+ can be queried via TriaAccessor::reference_cell_type().
+ <br>
+ (Peter Munch, 2020/06/30)
+ </li>
+
+ <li>
+ New: The class ArrayView can now also be constructed from std::array.
+ <br>
+ (Peter Munch, 2020/06/29)
+ </li>
+
+ <li>
+ New: BoundingBox::real_to_unit() and BoundingBox::unit_to_real() allow one to
+ apply both the direct and the inverse transformation that are needed to map the
+ unit bounding box to the current box, and viceversa.
+ <br>
+ (Luca Heltai, 2020/06/29)
+ </li>
+
+ <li>
+ New: The member function DiscreteTime::set_next_step_size() is added.
+ <br>
+ (Reza Rastak, 2020/06/27)
+ </li>
+
+ <li>
+ New: There is now a constructor for class Tensor that takes
+ an initializer from an object of type ArrayView.
+ <br>
+ (Wolfgang Bangerth, 2020/06/27)
+ </li>
+
+ <li>
+ Fixed: The class parallel::distributed::SolutionTransfer can now
+ also handle FE_Nothing.
+ <br>
+ (Dominic Soldner, Peter Munch, 2020/06/24)
+ </li>
+
+ <li>
+ Fixed: FEInterfaceValues now works also for codim one and two. Instantiated
+ also DoFTools::make_flux_sparsity_pattern() for codim one and two.
+ <br>
+ (Luca Heltai, 2020/06/24)
+ </li>
+
+ <li>
+ New: The class TriaAccessor provides now the capability to query
+ the number of vertices, lines, and faces (with n_vertices(),
+ n_lines(), n_faces(), vertex_indices(),
+ line_indices(), face_indices()). The new methods can be used as an
+ alternative to the methods in GeometryInfo.
+ <br>
+ (Peter Munch, 2020/06/23)
+ </li>
+
+ <li>
+ New: Added FEInterfaceValues to MeshWorker::ScratchData.
+ <br>
+ (Luca Heltai, 2020/06/23)
+ </li>
+
+ <li>
+ Fixed: The ParticleHandler::insert_particles() function forgot to
+ associate particles with the common property pool. Consequently,
+ setting properties on particles added to a ParticleHandler this way
+ led to an error.
+ <br>
+ (Andrew Davis, Wolfgang Bangerth, 2020/06/23)
+ </li>
+
+ <li>
+ New: Particles::Particle and Particles::ParticleAccessor can now be used as
+ indexable in boost::rtree objects.
+ <br> (Luca Heltai, 2020/06/15)
+ </li>
+
+ <li>
+ New: Each cell is assigned a globally unique active cell index and (if requested)
+ a level cell index. These indices are integers enumerated contiguously within
+ each subdomain of the mesh.
+ Users can query locally-owned and ghost cells for their indices via CellAccessor::global_active_cell_index()
+ or CellAccessor::global_level_cell_index().
+ The value is managed automatically by the Triangulation classes.
+ Furthermore, triangulations deriving from parallel::TriangulationBase provide partitioners
+ for these indices, which can be used to set up ghosted vectors with one entry per
+ cell.
+ <br>
+ (Peter Munch, 2020/06/12)
+ </li>
+
+ <li>
+ New: The function Particles::ParticleHandler::add_global_particles() now takes
+ another optional argument, that allows one to set ids arbitrarily. Moreover,
+ now the numbering of the ids is correct also if we call the method more than
+ one time. Newly added particles, if ids are not specified, now correctly get
+ the first available ids.
+ Added a new version of Particles::ParticleHandler::add_global_particles() that
+ takes a vector of Particles::Particle objects instead of just their positions.
+ This can be used in conjunction with the signal
+ Particles::ParticleHandler::Signals::particle_lost() to reinsert
+ Particles::Particle objects that went out of the locally owned and ghost cells.
+ <br> (Luca Heltai, 2020/06/11)
+ </li>
+
+ <li>
+ Fixed: The AffineConstraints class had a bug where, if deal.II was
+ compiled without threading, the class used a global variable. If a
+ user program used threads nonetheless, this global variable led to
+ race conditions. This is now fixed.
+ <br>
+ (Wolfgang Bangerth, 2020/06/11)
+ </li>
+
+ <li>
+ Fixed: Fix a bug where CUDAWrappers::MatrixFree::cell_loop() would set the
+ destination vector to zero if the partitioner of the MatrixFree object was
+ different from the partitioner of the source or destination vector.
+ <br>
+ (Bruno Turcksin, 2020/06/10)
+ </li>
+
+ <li>
+ New: Applying user constraints
+ before prolongation in MGTransferPrebuilt.
+ <br>
+ (Julian Roth and Conrad Clevenger, 2020/06/05)
+ </li>
+
+ <li>
+ New: FEEvaluation::evaluate(), FEEvaluation::integrate(),
+ FEFaceEvaluation::evaluate() and FEFaceEvaluation::integrate() now take an
+ argument of type EvaluationFlags::EvaluationFlags to determine which of the
+ values, gradients or hessians should be evaluated to quadrature points or
+ integrated, allowing much more expressive programs than the previous list of
+ bools. The evaluation flags can be combined with `operator|`, similarly to
+ UpdateFlags for FEValues.
+ <br>
+ (Timo Heister, 2020/06/05)
+ </li>
+
+ <li>
+ Changed: The vertices in CellData are now stored in form of a std::vector
+ instead of C-style array.
+ <br>
+ (Peter Munch, 2020/05/31)
+ </li>
+
+ <li>
+ Improved: The efficiency of the assembly of step-62 has been improved and now
+ it is 7 times faster.
+ <br>
+ (Daniel Garcia-Sanchez, 2020/05/31)
+ </li>
+
+ <li>
+ Fixed: Fix a bug where only one CUDAWrappers::MatrixFree object was valid at a
+ given time. There is now a variable CUDAWrappers::mf_n_concurrent_objects in
+ base/cuda_size.h that controls the maximum number of concurrent objects. The
+ default value is five.
+ <br>
+ (Bruno Turcksin, 2020/05/29)
+ </li>
+
+ <li>
+ New: Add multigrid transfer operators for distributed polynomial and
+ global coarsening.
+ <br>
+ (Peter Munch, Laura Prieto Saavedra, 2020/05/29)
+ </li>
+
+ <li>
+ Improved: step-28 now uses tasks instead of threads.
+ <br>
+ (David Wells, 2020/05/28)
+ </li>
+
+ <li>
+ New: The class Particles::DataOut can now output particle properties as
+ scalars, vectors, or tensors, depending on the arguments handed over to the
+ Particles::DataOut::build_patches() function.
+ <br>
+ (Rene Gassmoeller, 2020/05/27)
+ </li>
+
+ <li>
+ New: When executing a task on a separate thread, if that task ends
+ with throwing an exception instead of returing a value, then this
+ exception will be obtained when you wait for the task using
+ Threads::Task::join() or Threads::Task::return_value().
+ <br>
+ (Wolfgang Bangerth, 2020/05/27)
+ </li>
+
+ <li>
+ New: GridTools::Cache::get_locally_owned_cell_bounding_boxes_rtree() extracts
+ a tree of bounding boxes covering the locally owned cells of a triangulation.
+ This can be used in conjunction with GridTools::Cache::get_covering_rtree() to
+ make approximate geometrical queries on who owns what spatial region.
+ <br>
+ (Luca Heltai, 2020/05/26)
+ </li>
+
+ <li>
+ New: pack_rtree_of_indices() and IndexableGetterFromIndices allow to construct an
+ RTree object that stores indices to existing containers of indexable objects.
+ <br>
+ (Luca Heltai, 2020/05/24)
+ </li>
+
+ <li>
+ New: The class ParticleHandler now provides a signal 'signals.particle_lost'
+ that is triggered whenever a particles can not be associated with a cell while
+ calling its function sort_particles_into_subdomains_and_cells().
+ <br>
+ (Rene Gassmoeller, 2020/05/25)
+ </li>
+
+ <li>
+ Bugfix: hp::Refinement::choose_p_over_h() now works in parallel.
+ <br>
+ (Marc Fehling, 2020/05/22)
+ </li>
+
+ <li>
+ New: There is now a second overload for
+ Particles::ParticleAccessor::set_properties() that takes an ArrayView
+ as argument.
+ <br>
+ (Wolfgang Bangerth, 2020/05/22)
+ </li>
+
+ <li>
+ Removed: All headers under <code>base/std_cxx11/</code> have been removed.
+ <br>
+ (David Wells, 2020/05/21)
+ </li>
+
+ <li>
+ Changed: In many other classes that are templated on `dim` and
+ `spacedim`, the second template argument `spacedim` had a default
+ value equal to `dim`. Particles::DataOut did not, but now does.
+ <br>
+ (Wolfgang Bangerth, 2020/05/21)
+ </li>
+
+ <li>
+ New: A new BoundingBoxDataOut class is available, to output a collection
+ of objects that can be converted to BoundingBox objects in graphical format.
+ <br>
+ (Luca Heltai, 2020/05/19)
+ </li>
+
+</ol>
+
+*/