Reference documentation for deal.II version Git 71165045b9 2021-01-23 20:21:06 -0500
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Changes since the last release

This is the list of changes made since the last release of deal.II. All entries are signed with the names of the authors.

Incompatibilities

Following are a few modifications to the library that unfortunately are incompatible with previous versions of the library, but which we deem necessary for the future maintainability of the library. Unfortunately, some of these changes will require modifications to application programs. We apologize for the inconvenience this causes.

  1. Changed: The 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, Simplex::FE_P).
    (Peter Munch, 2020/12/12)

  2. Deprecated: The function CellId::to_cell() has been replaced by Triangulation::create_cell_iterator().
    (Marc Fehling, 2020/12/12)

  3. 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.
    (Wolfgang Bangerth, 2020/11/29)

  4. Deprecated: The DoFHandlerType template argument for the DataOutStack class has been deprecated. Use DataOutStack<dim, spacedim> instead.
    (Marc Fehling, 2020/11/20)

  5. Deprecation announcement: The template arguments of the following classes will change in a future release:

    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:

    • X → Legacy::X

    To perform this substitution automatically, you may use a search and replace script like the following made for the bash shell:

    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

    (Marc Fehling, 2020/11/20)

  6. 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>()
    (Marc Fehling, 2020/11/15)

  7. Deprecated: The DoFHandlerType template argument for the MappingFEField class has been deprecated. Use MappingFEField<dim, spacedim, VectorType> instead.
    (Marc Fehling, 2020/11/15)

  8. 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.
    (Marc Fehling, 2020/11/13)

  9. Deprecated: All MatrixFree::reinit() functions without Mapping as argument have been deprecated. Use the functions that explicit provide the Mapping instead.
    (Peter Munch, 2020/11/11)

  10. 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].
    (Marc Fehling, 2020/11/11)

  11. 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.
    (Marc Fehling, 2020/10/30)

  12. 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.
    (Peter Munch, Martin Kronbichler, 2020/10/21)

  13. Changed: The return type of the method Mapping::get_vertices() has been changed from std::array to boost::container::small_vector.
    (Peter Munch, 2020/10/16)

  14. 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.
    (Wolfgang Bangerth, 2020/09/28)

  15. Replaced: Python wrapper for 'merge_triangulations' with a more generic equivalent.
    (Alexander Grayver, 2020/09/01)

  16. Removed: CUDA 9, 10.0, and 10.1 are not supported anymore.
    (Bruno Turcksin, 2020/08/05)

  17. Changed: The template arguments of the classes DoFAccessor and DoFCellAccessor have changed. The template argument DoFHandlerType has been replaced by dimension and space dimension.
    (Peter Munch, 2020/06/24)

  18. 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.
    (Peter Munch, 2020/06/03)

  19. Removed: The deprecated class MGCoarseGridLACIteration has been removed.
    (Daniel Arndt, 2020/06/12)

  20. Removed: The header file deal.II/grid/tria_object.h has been removed. It was only used for internal purposes.
    (Wolfgang Bangerth, 2020/06/05)

  21. 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().
    (Peter Munch, 2020/06/03)

  22. Removed: The deprecated bindings to the legacy NETCDF C++ library have been removed.
    (David Wells, 2020/05/27)

  23. Removed: The deprecated bindings to nanoflann have been removed.
    (David Wells, 2020/05/27)

  24. 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.
    (Matthias Maier, 2020/05/23)

  25. 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.
    (Wolfgang Bangerth, 2020/05/26)

  26. Deprecated: The class hp::DoFHandler has been deprecated, since the DoFHandler has been extended with its functionalities.
    (Peter Munch, 2020/05/23)

  27. 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
    (Matthias Maier, 2020/05/23)

  28. 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.
    (Matthias Maier, 2020/05/22)

  29. Removed: The DEAL_II_WITH_CXX14 and DEAL_II_WITH_CXX17 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 -DDEAL_II_CXX_FLAGS="-std=c++17", or by setting the environement variable CXXFLAGS="-std=c++17".
    (Matthias Maier, 2020/05/21)

  30. Updated: deal.II now requires a compiler with enabled C++14 support.
    (Matthias Maier, 2020/05/21)

  31. Changed: The polynomial space template argument has been removed from FE_Poly and FE_PolyTensor.
    (Graham Harper, Daniel Arndt, 2020/05/21)

  32. Removed: The deprecated class Threads::PosixThreadBarrier has been removed.
    (Wolfgang Bangerth, 2020/04/21)

General

  1. Improved: Update SUNDIALS ARKODE interface to support versions > 4.0.0 and add preconditioner support
    (Sebastian Proell, 2020/12/11)

  2. New: Added capacity to update ghost particles without rebuilding them from scratch in the particle_handler
    (Bruno Blais, Peter Munch, 2020/11/10)

  3. New: Tutorial example (step-68) showcasing parallel simulation of the advection of particles including load balancing.
    (Bruno Blais, Toni El Geitani Nehme, Rene Gassm ller, Peter Munch, 2020/05/23)

  4. New: The step-19 tutorial program shows how to use particle methods.
    (Wolfgang Bangerth, Rene Gassmoeller, Peter Munch, 2020/09/15)

  5. New: The GridIn class can now read ExodusII files when deal.II is configured with Trilinos and SEACAS.
    (David Wells, 2020/09/09)

  6. 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.
    (Wolfgang Bangerth, Timo Heister, Matthias Maier, 2020/05/25)

  7. 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.
    (Peter Munch, 2020/05/23)

  8. List rotated: The list of major changes is now empty.
    (Matthias Maier, 2020/05/12)

Specific improvements

  1. Improved: provide abstract interface to p::d::Triangulation::load()/save().
    (Pasquale Claudio Africa, 2021/01/18)

  2. New: Added python wrappers to enable support for simplex and mixed meshes.
    (Alexander Grayver, 2021/01/18)

  3. New: Mapping::get_bounding_box() now returns the bounding box of the support points, when the mapping is of type MappingQ, MappingQGeneric, and MappingQEulerian.
    (Luca Heltai, 2021/01/16)

  4. 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.
    (Daniel Arndt, Ivan Fumagalli, Peter Munch, 2021/01/15)

  5. New: Implemented MappingFE::transform_real_to_unit_cell().
    (Luca Heltai, 2021/01/13)

  6. 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.
    (Nils Much, 2021/01/12)

  7. New: Created two new methods ParameterAcceptor::enter_subsection() and ParameterAcceptor::leave_subsection() that allow more intricated parameter paths within ParameterAcceptor classes.
    (Luca Heltai, 2021/01/12)

  8. Fixed: Reset time and timestep_number during pre refinement steps in step-26.
    (Praveen Chandrashekar, 2021/01/05)

  9. Changed: Tutorial step-27 has been simplified and now uses the recently introduced SmoothnessEstimator namespace.
    (Marc Fehling, 2020/12/24)

  10. 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.
    (Malhar Tidke, 2020/12/23)

  11. 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)

  12. 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.
    (Bruno Turcksin, 2020/12/06)

  13. 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.
    (Wolfgang Bangerth, 2020/12/03)

  14. 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.
    (Elias Dejene, Peter Munch, 2020/11/23)

  15. New: A new class LowStorageRungeKutta is added to the namespace TimeStepping to implement the explicit low-storage Runge-Kutta methods, see [60] and step-67.
    (Jiaqi Zhang, 2020/11/18)

  16. 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>.
    (Peter Munch, 2020/11/12)

  17. Fixed: WorkStream::mesh_loop() should now work on anisotropic grids.
    (Luca Heltai, 2020/11/03)

  18. 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.
    (Martin Kronbichler, 2020/11/01)

  19. 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.
    (Jean-Paul Pelteret, 2020/11/01)

  20. Improved: MatrixFree now also works for hp in MPI-parallelized programs.
    (Marc Fehling, Katharina Kormann, Martin Kronbichler, Peter Munch, 2020/10/20)

  21. 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.
    (Wolfgang Bangerth, 2020/10/10)

  22. 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.
    (Martin Kronbichler, 2020/10/07)

  23. 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.
    (Marc Fehling, 2020/10/06)

  24. 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 [43].
    (Jiaqi Zhang, 2020/10/05)

  25. New: Helper function DoFCellAccessor::dominated_future_fe_on_children() to clean up code for hp-coarsening.
    (Marc Fehling, 2020/10/05)

  26. New: GridTools::affine_cell_approximation() returns a matrix A and offset vector b that describe a least-squares fit of an affine approximation to a set of vertices of a cell.
    (Martin Kronbichler, 2020/10/04)

  27. New: Helper functions CellAccessor::child_iterators() and DoFCellAccessor::child_iterators() which return iterators to children of a cell via cell->child_iterators().
    (Marc Fehling, 2020/10/03)

  28. New: CellId has a new constructor to create it from a std::string.
    (Timo Heister, 2020/10/05)

  29. 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.
    (Martin Kronbichler, 2020/09/30)

  30. New: The function BlockSparsityPattern::print_svg() outputs a block sparsity pattern in SVG format.
    (Wolfgang Bangerth, 2020/09/25)

  31. Changed: step-29 no longer uses the deallog variable to generate output, but instead directly writes to std::cout.
    (Wolfgang Bangerth, 2020/09/23)

  32. 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.
    (Martin Kronbichler, Peter Munch, 2020/09/21)

  33. Fixed: Our cmake scripts forgot to install some of the files that are part of the code gallery. This is now fixed.
    (Wolfgang Bangerth, 2020/09/17)

  34. 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.
    (Martin Kronbichler, 2020/08/11)

  35. Added: method for returning list of all triangulation cells.
    (Alexander Grayver, 2020/09/03)

  36. Added: python wrapper for GridTools::replicate_triangulation, more general version of the GridTools::merge_triangulations is implemented
    (Alexander Grayver, 2020/09/01)

  37. New: The methods FEEvaluation::gather_evaluate(), FEEFaceEvaluation::gather_evaluate(), FEEvaluation::integrate_scatter() and FEfaceEvaluation::integrate_scatter() can now also accept block vectors.
    (Peter Munch, Magdalena Schreter, Martin Kronbichler, 2020/08/31)

  38. New: A particle collection can now be copied into a new ParticleHandler object using the new ParticleHandler::copy_from function.
    (Rene Gassmoeller, 2020/08/28)

  39. Added: DataOut now supports HDF5 file format with simplex meshes.
    (Pasquale Claudio Africa, 2020/08/27)

  40. Updated: GridTools::transform() now works with simplex meshes.
    (Pasquale Claudio Africa, 2020/08/26)

  41. 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.
    (Peter Munch, 2020/07/23)

  42. New: The test suite can now also be run with .json files.
    (Peter Munch, 2020/08/17)

  43. 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.
    (Daniel Garcia-Sanchez, 2020/08/14)

  44. New: MGTools::make_sparsity_pattern() can now take an optional AffineConstraints argument to add the effect of, e.g., periodic boundary conditions.
    (Martin Kronbichler, 2020/08/11)

  45. 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.
    (Wolfgang Bangerth, 2020/08/06)

  46. New: GridIn::read_vtk() now supports triangular and tetrahedral meshes.
    (Peter Munch, 2020/07/23)

  47. New: GridIn::read_msh() now supports triangular and tetrahedral meshes.
    (Daniel Paukner, 2020/07/20)

  48. New: The method hp::FEFaceValues::reinit() can now also accept face iterators.
    (Peter Munch, 2020/07/16)

  49. New: The class hp::MappingCollection has a new constructor. This constructor creates a MappingCollection from one or more mapping objects passed to the constructor.
    (Peter Munch, 2020/07/15)

  50. Fixed: MeshWorker::mesh_loop() did not work on 1d with refined grids. This is now fixed.
    (Luca Heltai, 2020/07/08)

  51. Added the functions CUDAWrappers::MatrixFree::get_vector_partitioner() and CUDAWrappers::MatrixFree::get_dof_handler()
    (Bruno Turcksin, 2020/07/06)

  52. New: The new class Simplex::ScalarPolynomial provides polynomials defined on simplices.
    (Peter Munch, 2020/07/02)

  53. 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.
    (Marc Fehling, 2020/07/03)

  54. New: A new quadrature rule for simplex geometric entities has been added.
    (Peter Munch, 2020/07/02)

  55. New: Geometric objects of a Triangulation are assigned a ReferenceCell::Type. The value can be queried via TriaAccessor::reference_cell_type().
    (Peter Munch, 2020/06/30)

  56. New: The class ArrayView can now also be constructed from std::array.
    (Peter Munch, 2020/06/29)

  57. 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.
    (Luca Heltai, 2020/06/29)

  58. New: The member function DiscreteTime::set_next_step_size() is added.
    (Reza Rastak, 2020/06/27)

  59. New: There is now a constructor for class Tensor that takes an initializer from an object of type ArrayView.
    (Wolfgang Bangerth, 2020/06/27)

  60. Fixed: The class parallel::distributed::SolutionTransfer can now also handle FE_Nothing.
    (Dominic Soldner, Peter Munch, 2020/06/24)

  61. Fixed: FEInterfaceValues now works also for codim one and two. Instantiated also DoFTools::make_flux_sparsity_pattern() for codim one and two.
    (Luca Heltai, 2020/06/24)

  62. 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.
    (Peter Munch, 2020/06/23)

  63. New: Added FEInterfaceValues to MeshWorker::ScratchData.
    (Luca Heltai, 2020/06/23)

  64. 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.
    (Andrew Davis, Wolfgang Bangerth, 2020/06/23)

  65. New: Particles::Particle and Particles::ParticleAccessor can now be used as indexable in boost::rtree objects.
    (Luca Heltai, 2020/06/15)

  66. 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.
    (Peter Munch, 2020/06/12)

  67. 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.
    (Luca Heltai, 2020/06/11)

  68. 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.
    (Wolfgang Bangerth, 2020/06/11)

  69. 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.
    (Bruno Turcksin, 2020/06/10)

  70. New: Applying user constraints before prolongation in MGTransferPrebuilt.
    (Julian Roth and Conrad Clevenger, 2020/06/05)

  71. 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.
    (Timo Heister, 2020/06/05)

  72. Changed: The vertices in CellData are now stored in form of a std::vector instead of C-style array.
    (Peter Munch, 2020/05/31)

  73. Improved: The efficiency of the assembly of step-62 has been improved and now it is 7 times faster.
    (Daniel Garcia-Sanchez, 2020/05/31)

  74. 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.
    (Bruno Turcksin, 2020/05/29)

  75. New: Add multigrid transfer operators for distributed polynomial and global coarsening.
    (Peter Munch, Laura Prieto Saavedra, 2020/05/29)

  76. Improved: step-28 now uses tasks instead of threads.
    (David Wells, 2020/05/28)

  77. 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.
    (Rene Gassmoeller, 2020/05/27)

  78. 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().
    (Wolfgang Bangerth, 2020/05/27)

  79. 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.
    (Luca Heltai, 2020/05/26)

  80. New: pack_rtree_of_indices() and IndexableGetterFromIndices allow to construct an RTree object that stores indices to existing containers of indexable objects.
    (Luca Heltai, 2020/05/24)

  81. 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().
    (Rene Gassmoeller, 2020/05/25)

  82. Bugfix: hp::Refinement::choose_p_over_h() now works in parallel.
    (Marc Fehling, 2020/05/22)

  83. New: There is now a second overload for Particles::ParticleAccessor::set_properties() that takes an ArrayView as argument.
    (Wolfgang Bangerth, 2020/05/22)

  84. Removed: All headers under base/std_cxx11/ have been removed.
    (David Wells, 2020/05/21)

  85. 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.
    (Wolfgang Bangerth, 2020/05/21)

  86. New: A new BoundingBoxDataOut class is available, to output a collection of objects that can be converted to BoundingBox objects in graphical format.
    (Luca Heltai, 2020/05/19)

  87. List rotated: The list of minor changes is now empty.
    (Matthias Maier, 2020/05/12)