]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Update the changelog file for the release.
authorMatthias Maier <tamiko@43-1.org>
Tue, 14 May 2019 13:46:05 +0000 (08:46 -0500)
committerMatthias Maier <tamiko@43-1.org>
Tue, 14 May 2019 13:46:05 +0000 (08:46 -0500)
doc/news/9.0.1-vs-9.1.0.h [new file with mode: 0644]

diff --git a/doc/news/9.0.1-vs-9.1.0.h b/doc/news/9.0.1-vs-9.1.0.h
new file mode 100644 (file)
index 0000000..9d4eb85
--- /dev/null
@@ -0,0 +1,1976 @@
+// ---------------------------------------------------------------------
+//
+// Copyright (C) 2017 - 2019 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_0_1_and_9_1_0 Changes between Version 9.0.1 and 9.1.0
+
+<p>
+This is the list of changes made between the release of deal.II version
+9.0.1 and that of 9.1.0. All entries are signed with the names of the
+author.
+</p>
+
+
+
+<!-- ----------- INCOMPATIBILITIES ----------------- -->
+
+<a name="incompatible"></a>
+<h3 style="color:red">Incompatibilities</h3>
+
+<p style="color:red">
+Following are a few modifications to the library that unfortunately
+are incompatible with previous versions of the library, but which we
+deem necessary for the future maintainability of the
+library. Unfortunately, some of these changes will require
+modifications to application programs. We apologize for the
+inconvenience this causes.
+</p>
+
+<ol>
+
+ <li>
+  Changed: Tasks of member function
+  hp::FECollection::find_face_dominating_fe_in_subset() are now divided
+  into two functions hp::FECollection::find_common_subspace()
+  and hp::FECollection::find_dominated_fe().
+  <br>
+  (Marc Fehling, 2019/04/08)
+ </li>
+
+ <li>
+  Removed: The IndexSet instantiations for FEValues::get_function_values()
+  and DataOut_DoFData::add_data_vector() have been removed.
+  <br>
+  (Daniel Arndt, 2019/03/20)
+ </li>
+
+ <li>
+  Changed: The "debug" and "release" targets that are created by the
+  DEAL_II_INVOKE_AUTOPILOT() macro no longer automatically rebuild the
+  project.
+  <br>
+  (Matthias Maier, 2019/02/05)
+ </li>
+
+ <li>
+  Changed: VectorSlice has been deprecated in favor of the more general ArrayView
+  class. All public interfaces now take ArrayView arguments instead of VectorSlice
+  arguments. Since VectorSlice now inherits from ArrayView this should be
+  compatible with the overwhelming majority of use cases.
+  <br>
+  (David Wells, 2019/01/21)
+ </li>
+
+ <li>
+  Changed: The class VectorView has been removed. The suggested replacements are
+  to either use an ArrayView, a BlockVector, or to copy the relevant subset into a
+  Vector.
+  <br>
+  (David Wells, 2019/01/11)
+ </li>
+
+ <li>
+  Changed: The particle MPI datatype macro <code>PARTICLE_INDEX_MPI_TYPE</code> is
+  now properly namespaced: its new name is
+  <code>DEAL_II_PARTICLE_INDEX_MPI_TYPE</code>.
+  <br>
+  (David Wells, 2018/11/30)
+ </li>
+
+ <li>
+  Changed: Subscriptor::subscribe cannot be called with rvalue references anymore.
+  In particular, temporary string literals cannot be used as argument. Storing
+  string literals with the same content at the same memory location is
+  implementation defined and cannot be relied upon. On the other hand, the
+  subscriber strings are not compared by their memory address anymore but by their
+  actual content.
+  <br>
+  (Daniel Arndt, 2018/11/12)
+ </li>
+
+ <li>
+  Changed: The constructor for Subscriptor requires providing a pointer to a boolean
+  that can be used to signal validity of the object pointed to by the subscribing
+  object.
+  <br>
+  (Daniel Arndt, 2018/11/02)
+ </li>
+
+ <li>
+  Deprecated: deal.II's NetCDF bindings have been deprecated. The present set of
+  bindings are incompatible with recent releases of NetCDF and, at the present
+  time, no one has volunteered to either maintain or upgrade our interface. The
+  bindings will be removed in a future version if no one steps forward to update
+  the bindings.
+  <br>
+  (David Wells, 2018/10/27)
+ </li>
+
+ <li>
+  Changed: Time is described by a real-valued scalar in Function, TensorFunction,
+  ConstantTensorFunction and ZeroTensorFunction, i.e. all of them derive from
+  FunctionTime with a real-valued scalar template parameter.
+  <br>
+  (Daniel Arndt, 2018/10/26)
+ </li>
+
+ <li>
+  Deprecated: FiniteElement::compare_for_face_domination() has been
+  deprecated and will be replaced by the more versatile function
+  FiniteElement::compare_for_domination().
+  <br>
+  (Marc Fehling, 2018/10/11)
+ </li>
+
+ <li>
+  Changed: Triangulation::create_triangulation() doesn't allow to set a boundary
+  id different from numbers::internal_face_boundary_id for internal faces anymore.
+  <br>
+  (Daniel Arndt, 2018/08/07)
+ </li>
+
+ <li>
+  Changes: The data transfer interface of the class
+  `parallel::distributed::Triangulation` now requires different kinds of
+  callback functions. `register_data_attach()` now takes
+  `std::function<std::vector<char>(cell_iterator &, CellStatus)>`,
+  which returns the buffer of the packed data. `notify_ready_to_unpack()`
+  requires `std::function<void(const cell_iterator &, const CellStatus,
+  const boost::iterator_range<std::vector<char>::const_iterator &>`, where
+  the last argument describes an iterator range, from which the callback
+  function is allowed to read.
+  <br>
+  Further, the `register_data_attach()` function now requires a boolean
+  argument `returns_variable_size_data`, which denotes if the registered 
+  pack_callback function interacts with the fixed size (`=false`) or
+  variable size (`=true`) buffer for data transfer.
+  <br>
+  (Marc Fehling, 2018/07/20)
+ </li>
+
+ <li>
+  Changed: MatrixCreator::create_mass_matrix and
+  MatrixCreator::create_boundary_mass_matrix that had mixed number type (real
+  valued for the matrix and complex valued for vectors) have been changed to
+  support complex number types uniformly. This implies that now all
+  underlying number types of matrix, vectors and AffineConstraint objects
+  have to match; mixed variants are no longer supported.
+  <br>
+  (Matthias Maier, 2018/05/25)
+ </li>
+
+ <li>
+  Changed: The AffineConstraints object (formerly ConstraintMatrix) gained a
+  template parameter for the underlying storage type. In order to facilitate
+  this change, the interface for AffineConstraints has become more strict: In
+  particular, the AffineConstraints::distribute_local_to_global(),
+  AffineConstraints::add_entries_local_to_global(), and other functions now
+  require that all matrix and vector arguments have the same matching number
+  type as the AffineConstraints object.
+  <br>
+  (Matthias Maier, 2018/05/25)
+ </li>
+
+ <li>
+  Changed: The OpenCASCADE Manifold classes with names ending in Boundary (i.e.,
+  NormalProjectionBoundary, DirectionalProjectionBoundary, and
+  NormalToMeshProjectionBoundary) have been deprecated in favor of renamed classes
+  ending in Manifold (i.e., NormalProjectionManifold,
+  DirectionalProjectionManifold, and NormalToMeshProjectionManifold).
+  <br>
+  (David Wells, 2018/05/16)
+ </li>
+
+ <li>
+  Changed: The PolynomialSpace::compute_index() and
+  PolynomialsP::directional_degree() functions used to return their
+  information through an array that they received as a reference
+  argument. Instead, they now return a `std::array<unsigned int,dim>`
+  by value.
+  <br>
+  (Wolfgang Bangerth, 2018/05/09)
+ </li>
+
+</ol>
+
+
+<!-- ----------- GENERAL IMPROVEMENTS ----------------- -->
+
+<a name="general"></a>
+<h3>General</h3>
+
+<ol>
+
+ <li>
+  Improved: All tutorial programs have been reviewed and updated with new features
+  in the library and C++11.
+  <br>
+  (Daniel Arndt, David Wells, Matthias Maier, Denis Davydov, Wolfgang Bangerth, Jean-Paul Pelteret, 2019/05/13)
+ </li>
+
+ <li>
+  Deprecated: deal.II's nanoflann bindings (i.e., the KDTree class) have been
+  deprecated in favor of using <code>boost::geometry::index::rtree</code>.
+  <br>
+  (David Wells, 2019/05/10)
+ </li>
+
+ <li>
+  New: Ths step-64 tutorial demonstrates how to use the CUDAWrappers::MatrixFree
+  framework (possibly with MPI) and discusses the peculiarities of using CUDA
+  inside deal.II in general.
+  <br>
+  (Daniel Arndt, Bruno Turcksin, 2019/05/10)
+ </li>
+
+ <li>
+  New: The new tutorial program step-61 shows how to use "weak Galerkin" finite element method to solve the Poisson equation.
+  <br>
+  (Zhuoran Wang, 2019/05/02)
+ </li>
+
+ <li>
+  New: The new tutorial program step-62 shows how to calculate the resonance
+  frequency and the bandgap of a phononic crystal. The program solves the elastic
+  wave equation with Perfectly Matches Layers in the frequency domain using
+  complex algebra and parallelization via MUMPS and MPI.
+  <br>
+  (Daniel Garcia-Sanchez, 2019/05/01)
+ </li>
+
+ <li>
+  New: The tutorial examples now all use a quadrature formula with a degree depending on the degree of the
+  finite element, so that one changing the finite element degree does not also require changing by hand the number
+  of quadrature points.
+  <br>
+  (Roland Richter, 2019/04/25)
+ </li>
+
+ <li>
+  New: The ParsedConvergenceTable class allows convenient construction of convergence tables, exploiting
+  parameter files. 
+  <br>
+  (Luca Heltai, 2019/04/10)
+ </li>
+
+ <li>
+  New: A new class Differentiation::SD::Expression has been added which allows
+  the creation and manipulation of scalar symbolic functions using the SymEngine
+  library. It will later be used as the basis of symbolic tensor calculus, amongst
+  other things. It incorporates numerous features, which currently include:
+  <ul>
+    <li>expression parsing,</li>
+    <li>comparison operations,</li>
+    <li>logical operations,</li>
+    <li>basic math operations,</li>
+    <li>conditional expression construction,</li>
+    <li>differentiation,</li>
+    <li>substitution (partial and complete), and</li>
+    <li>serialization.</li>
+  </ul>
+  <br>
+  (Jean-Paul Pelteret, 2019/03/29)
+ </li>
+
+ <li>
+  New: A new class Differentiation::AD::VectorFunction has been
+  added to help implement point-wise vector functions using automatic 
+  differentiation. In particular, this class is designed to compute the 
+  Jacobian of a vector function that is parameterized in
+  terms of scalar, vector, and tensor arguments. One example of its use
+  would be to compute the linearization of a multi-field constitutive
+  law that is expressed in terms of some kinetic variables.
+  <br>
+  (Jean-Paul Pelteret, 2019/03/21)
+ </li>
+
+ <li>
+  New: Triangulation::execute_coarsening_and_refinement() now also performs
+  p-coarsening and p-refinement on all attached hp::DoFHandler objects.
+  <br>
+  (Marc Fehling, 2019/03/18)
+ </li>
+
+ <li>
+  New: A new class Differentiation::AD::ScalarFunction has been
+  added to help implement point-wise scalar functions using automatic 
+  differentiation. In particular, this class is designed to compute the 
+  gradient and Hessian of a scalar function that is parameterized in
+  terms of scalar, vector, and tensor arguments. One example of its use
+  would be to compute the derivatives of a multi-field constitutive law
+  that is expressed in terms of an energy function.
+  <br>
+  (Jean-Paul Pelteret, 2019/02/20)
+ </li>
+
+ <li>
+  Improved: The preconditioner and solver setup in step-20 has been rewritten
+  to highlight the new LinearOperator and PackagedOperation classes.
+  <br>
+  (Matthias Maier, 2019/02/08)
+ </li>
+
+ <li>
+  New: Support for Ginkgo, a high-performance numerical linear algebra library
+  has been added. Ginkgo provides advanced highly optimized linear solvers,
+  matrix formats and an abstraction to easily create linear operators on both
+  the cpu and the gpu. The deal.II's Ginkgo interface can currently be used to
+  solve linear systems using Krylov solvers with the cuda and OpenMP paradigms.
+  <br>
+  (Ginkgo developers, 2019/01/30)
+ </li>
+
+ <li>
+  Changed: Class hp::DoFHandler now transfers the active_fe_index of each
+  cell automatically when refining/coarsening a Triangulation,
+  parallel::shared::Triangulation, or
+  parallel::distributed::Triangulation. However, serialization of a
+  parallel::distributed::Triangulation still requires a user to
+  explicitly call the functions
+  hp::DoFHandler::prepare_for_serialization_of_active_fe_indices() and
+  hp::DoFHandler::deserialize_active_fe_indices().
+  <br>
+  (Marc Fehling, 2019/01/27)
+ </li>
+
+ <li>
+  New: A new HDF5 interface has been added. The Hierarchical Data Format (HDF) is
+  a cross platform and a high I/O performance format designed to store large
+  amounts of data. It supports serial and MPI I/O access. The deal.II's HDF5
+  interface can be used to write and read data, such the results of a simulation,
+  in a HDF5 file.
+  <br>
+  (Daniel Garcia-Sanchez, 2019/01/09)
+ </li>
+
+ <li>
+  Changed: hp::DoFHandler now automatically sets active_fe_indices
+  on cells that will be refined and coarsened whenever a Triangulation or
+  parallel::shared::Triangulation is used. Upon refinement, the
+  active_fe_index will be passed on to the children. For coarsening, the
+  parent's active_fe_index will be determined from its former children
+  using the FiniteElementDomination logic.
+  <br>
+  (Marc Fehling, 2018/10/15)
+ </li>
+
+ <li>
+  New: Function FiniteElement::compare_for_domination() inspects two
+  FiniteElement objects upon FiniteElementDomination, and uses a codim
+  parameter that determines in which subspace we actually compare them.
+  <br>
+  (Marc Fehling, 2018/10/11)
+ </li>
+
+ <li>
+  New: A new class Differentiation::AD::ResidualLinearization has been
+  added to help compute the linearization of a residual vector defined on the 
+  level of a cell (a finite element residual), or for local nonlinear equations. 
+  <br>
+  (Jean-Paul Pelteret, 2018/09/30)
+ </li>
+
+ <li>
+  Changed: hp::DoFHandler::distribute_dofs() called on
+  parallel::distributed::Triangulation objects now assigns exactly
+  one index for each degree of freedom located on interfaces with
+  ghost cells. Previously, those degrees of freedom were assigned
+  indices by each adjacent subdomain.
+  <br>
+  (Marc Fehling, 2018/08/31)
+ </li>
+
+ <li>
+  New: A new class Differentiation::AD::EnergyFunctional has been
+  added to help implement (incremental) variational formulations using automatic 
+  differentiation. In particular, this class is designed to compute the finite 
+  element residuals and their linearizations.
+  <br>
+  (Jean-Paul Pelteret, 2018/08/27)
+ </li>
+
+ <li>
+  New: The parallel::distributed::SolutionTransfer class is now capable
+  of transferring data that has been associated with a hp::DoFHandler
+  object. See the class documentation of the former on how to use this
+  new functionality.
+  <br>
+  (Marc Fehling, 2018/08/15)
+ </li>
+
+ <li>
+  Improved: GridGenerator::extrude_triangulation can now optionally extrude manifold
+  ids.
+  <br>
+  (David Wells, 2018/08/11)
+ </li>
+
+ <li>
+  New: FE_BernardiRaugel is the implementation of an element developed by Christine Bernardi and
+  Genevieve Raugel in the 1985 Mathematics of Computation paper. The Bernardi-Raugel element is an
+  enrichment of the P1-P0 element for Stokes problems by the addition of edge-based quadratic
+  bubble functions. The original description is for simplicial meshes, but this implementation is
+  for quadrilateral and hexahedral meshes. The BR1-P0 pair is LBB stable for Stokes problems. Due
+  to the edge-based bubble functions, features such as hanging nodes are not supported.
+  <br>
+  (Graham Harper, 07/09/2018)
+ </li>
+
+ <li>
+  New: A new function GridGenerator::channel_with_cylinder has been added. This
+  function generates a grid corresponding to the classic flow past a cylinder test
+  problem, and uses manifolds to blend between the description of the cylinder and
+  the Cartesian bulk geometry.
+  <br>
+  (David Wells, 2018/07/04)
+ </li>
+
+ <li>
+  Changed: The ConstraintMatrix class has been renamed to AffineConstraints.
+  Further, AffineConstraints gained a template parameter for the underlying
+  storage type. This in particular enables the definition of complex-valued
+  constraints (for example, complex-valued Dirichlet boundary conditions, or
+  periodic boundary conditions with an additional phase shift).
+  <br>
+  (Matthias Maier, Daniel Arndt, David Wells, 2018/05/31)
+ </li>
+
+ <li>
+  New: The introduction to step-6 has been completely rewritten. It
+  previously mentioned only the bare minimum about what this important
+  tutorial program actually does. It now gives a much broader overview
+  of why we use adaptive meshes and how this is achieved in practice.
+  <br>
+  (Wolfgang Bangerth, 2018/05/25)
+ </li>
+
+ <li>
+  Changed: clang-format replaces astyle as source code formatting tool.
+  <br>
+  (Matthias Maier, Daniel Arndt, 2018/05/24)
+ </li>
+
+ <li>
+  New: FE_NedelecSZ is a new H(curl)-conforming element which overcomes the sign conflict problem
+  which can be encountered for Nedelec elements on hexahedral meshes. This is an implementation of
+  the method described in the PhD thesis of Sabine Zaglmayr and should be considered over the
+  FE_Nedelec element where meshes with non-standard orientation are used. Note that not all
+  functionality (e.g. Hessians), has been implemented for this element.
+  <br>
+  (Ross Kynch, 2018/04/28)
+ </li>
+
+ <li>
+  New: The new class ColorEnriched::Helper constructs an hp::FECollection, a 
+  collection of finite element objects used by hp::DoFHandler, in a domain 
+  with multiple, possibly overlapping, sub-domains with individual
+  enrichment functions. Note that the overlapping regions may have
+  multiple enrichment functions associated with them. This is implemented
+  using a general constructor of FE_Enriched which allows different
+  enrichment functions.
+  <br>
+  (Nivesh Dommaraju, Denis Davydov, 2018/04/20)
+ </li>
+
+</ol>
+
+
+<!-- ----------- SPECIFIC IMPROVEMENTS ----------------- -->
+
+<a name="specific"></a>
+<h3>Specific improvements</h3>
+
+<ol>
+
+ <li>
+  Improved: DoFHandler::renumber_dofs() on parallel::distributed::Triangulation
+  would scale linearly with the number of MPI ranks on more than 50k ranks,
+  reaching times of more than 10 seconds on 150k ranks. This is now fixed for
+  the case the renumbering does not lead to a change in the underlying IndexSet
+  field of locally owned unknowns, i.e., in case the numbers merely change
+  within each MPI rank but not across them.
+  <br>
+  (Martin Kronbichler, 2019/05/10)
+ </li>
+
+ <li>
+  New: Introduced indices for future finite elements that cells will be assigned
+  to after the triangulation changes. The future_fe_index of each cell can be
+  accessed and changed via member functions of the DoFCellAccessor class,
+  namely DoFCellAccessor::future_fe_index(), DoFCellAccessor::set_future_fe_index(),
+  DoFCellAccessor::future_fe_index_set(), and DoFCellAccessor::clear_future_fe_index().
+  <br>
+  (Marc Fehling, 2019/05/10)
+ </li>
+
+ <li>
+  New: Add Utilities::MPI::mean_and_standard_deviation() to calculate mean and standard deviation.
+  <br>
+  (Denis Davydov, 2019/05/09)
+ </li>
+
+ <li>
+  New: Add DynamicSparsityPattern::get_view() to create a subset of a sparsity pattern based on a selection of some rows.
+  <br>
+  (Denis Davydov, 2019/05/08)
+ </li>
+
+ <li>
+  New: Some utility functions that perform symbolic substitution on, and
+  evaluation of, symbolic scalar and tensor expressions have been added to the 
+  Differentiation::SD namespace.
+  <br>
+  (Jean-Paul Pelteret, 2019/05/07)
+ </li>
+
+ <li>
+  Improved: Extend Utilities::inverse_Hilbert_space_filling_curve to handle degenerate cases.
+  <br>
+  (Denis Davydov, 2019/05/07)
+ </li>
+
+ <li>
+  New: Some utility functions that resolve explicit (and cyclic) dependencies
+  between entries in symbolic substitution maps.
+  <br>
+  (Jean-Paul Pelteret, 2019/05/05)
+ </li>
+
+ <li>
+  New: Some utility functions that facilitate the creation of symbolic maps and 
+  symbolic substitution maps have been added to the Differentiation::SD namespace.
+  <br>
+  (Jean-Paul Pelteret, 2019/05/05)
+ </li>
+
+ <li>
+  New: Mapping::get_bounding_box() returns the correct bounding box for mappings that do not preserve vertex
+  locations.
+  <br>
+  (Luca Heltai, 2019/05/03)
+ </li>
+
+ <li>
+  Improved: The `Meshworker::mesh_loop()` function is now capable of working with an
+  IteratorRange, and also supports iterator ranges constructed from
+  FilteredIterators. 
+  <br>
+  (Jean-Paul Pelteret, 2019/05/02)
+ </li>
+
+ <li>
+  Improved: The Workstream::run() function is now capable of working with iterator
+  ranges, or any general iterable object that defines the `begin()` and `end()`
+  of a range of elements to iterate over.
+  <br>
+  (Jean-Paul Pelteret, 2019/05/02)
+ </li>
+
+ <li>
+  New: Some utility functions that perform symbolic differentiation of scalar
+  symbolic expressions, as well as tensorial expressions, have been added to the
+  Differentiation::SD namespace.
+  <br>
+  (Jean-Paul Pelteret, 2019/04/23)
+ </li>
+
+ <li>
+  Changed: The chunk_size used in CUDA kernels has been reduced from 8 to 1 to
+  improve performance on newer architectures.
+  <br>
+  (Bruno Turcksin, 2019/04/23)
+ </li>
+
+ <li>
+  New: Some utility functions that facilitate the creation of both scalar and 
+  tensor symbolic variables and symbolic functions have been added to the 
+  Differentiation::SD namespace.
+  <br>
+  (Jean-Paul Pelteret, 2019/04/22)
+ </li>
+
+ <li>
+  New: Functions::CutOffFunctionBase now supports rescaling the function to keep its integral equal to one. 
+  <br>
+  (Luca Heltai, 2019/04/18)
+ </li>
+
+ <li>
+  New: The new FunctionFromFunctionObjects class allows one to wrap a vector of
+  std::function objects into a Function object, to allow fast prototyping of user codes. 
+  <br>
+  (Luca Heltai, 2019/04/12)
+ </li>
+
+ <li>
+  Fixed: Make sure that GridTools::Cache::get_cell_bounding_boxes_rtree() honors mappings. 
+  <br>
+  (Luca Heltai, 2019/04/11)
+ </li>
+
+ <li>
+  New: Added BoundingBox::extend() that allows extending and shrinking of BoundingBox objects. 
+  <br>
+  (Luca Heltai, 2019/04/11)
+ </li>
+
+ <li>
+  New: The method Mapping::get_center() allows one to retrieve the cell center of a cell when the 
+  mapping object does not preserve vertex locations. 
+  <br>
+  (Luca Heltai, 2019/04/11)
+ </li>
+
+ <li>
+  New: Member function hp::FECollection::find_dominated_fe_extended()
+  returns the index of the least dominating finite element out of a given
+  set of indices. If none was found, the search will be extended on the
+  complete collection.
+  <br>
+  (Marc Fehling, 2019/04/08)
+ </li>
+
+ <li>
+  New: Member function hp::FECollection::find_dominating_fe_extended()
+  returns the index of the most dominating finite element out of a given
+  set of indices. If none was found, the search will be extended on the
+  complete collection.
+  <br>
+  (Marc Fehling, 2019/04/08)
+ </li>
+
+ <li>
+  New: Member function hp::FECollection::find_dominated_fe()
+  returns the index of the least dominating finite element out of a given
+  set of indices.
+  <br>
+  (Marc Fehling, 2019/04/08)
+ </li>
+
+ <li>
+  New: Member function hp::FECollection::find_dominating_fe()
+  returns the index of the most dominating finite element out of a given
+  set of indices.
+  <br>
+  (Marc Fehling, 2019/04/08)
+ </li>
+
+ <li>
+  New: Member function hp::FECollection::find_enclosing_fes()
+  returns a set of indices from the full FECollection whose associated
+  finite elements are dominated by all elements of a given set of indices.
+  <br>
+  (Marc Fehling, 2019/04/08)
+ </li>
+
+ <li>
+  New: Member function hp::FECollection::find_common_fes()
+  returns a set of indices from the full FECollection whose associated
+  finite elements dominate all elements of a given set of indices.
+  <br>
+  (Marc Fehling, 2019/04/08)
+ </li>
+
+ <li>
+  Changed: SmartPointer and Subscriptor use a std::string
+  instead of a const char * as identifier.
+  <br>
+  (Daniel Arndt, 2019/04/08)
+ </li>
+
+ <li>
+  New: The GeneralDataStorage class facilitates the storage of any general data.
+  It offers the ability to store any amount of data, of any type, which is then 
+  made accessible by an identifier string.
+  <br>
+  (Luca Heltai, Jean-Paul Pelteret, 2019/04/02)
+ </li>
+
+ <li>
+  New: Add ArraView::ArrayView() and ArrayView::reinit(value_type *, const std::size_t).
+  <br>
+  (Denis Davydov, 2019/04/02)
+ </li>
+
+ <li>
+  New: The Differentiation::SD::Expression class can now be used to perform
+  symbolic math calculations.
+  <br>
+  (Jean-Paul Pelteret, 2019/03/30)
+ </li>
+
+ <li>
+  New: The Vector class can now be initialized using an object of type
+  std::initializer_list. Such objects are, in particular, created when
+  the compiler sees a brace-enclosed list of numbers.
+  <br>
+  (Wolfgang Bangerth, 2019/03/28)
+ </li>
+
+ <li>
+  Changed: parallel::distributed::SolutionTransfer::prepare_serialization() has
+  been deprecated in favor of
+  parallel::distributed::SolutionTransfer::prepare_for_serialization().
+  <br>
+  (Daniel Arndt, 2019/03/26)
+ </li>
+
+ <li>
+  New: Added a variant of MeshWorker::mesh_loop() that takes a class and its member functions as workers 
+  and copiers. 
+  <br>
+  (Luca Heltai, 2019/03/23)
+ </li>
+
+ <li>
+  New: The type alias FEValuesViews::View now allows one to infer the correct FEValuesViews type 
+  that would be returned by FEValuesBase::operator[]() when called with a specified extractor type from the 
+  FEValuesExtractors namespace. 
+  <br>
+  (Luca Heltai, 2019/03/20)
+ </li>
+
+ <li>
+  New: Add DynamicSparsityPattern::nonempty_cols()/DynamicSparsityPattern::nonempty_rows() to return columns/rows
+  stored in the sparsity pattern.
+  <br>
+  (Denis Davydov, 2019/03/20)
+ </li>
+
+ <li>
+  New: The new method GridTools::assign_co_dimensional_manifold_indicators() propagate manifold ids from 
+  cells to faces and edges, according to a disambiguation function that takes the set of manifold ids of
+  the cells that share the given face or edge. 
+  <br>
+  (Luca Heltai, 2019/03/19)
+ </li>
+
+ <li>
+  New: FEValuesExtractor classes now have a new method get_name() that returns a unique string identifier
+  for each extractor. 
+  <br>
+  (Luca Heltai, 2019/03/19)
+ </li>
+
+ <li>
+  New: Add SparsityTools::gather_sparsity_pattern().
+  <br>
+  (Denis Davydov, 2019/03/19)
+ </li>
+
+ <li>
+  New: Add Utilities::MPI::create_ascending_partitioning() to create a one-to-one
+  ascending partitioning from locally owned sizes.
+  <br>
+  (Denis Davydov, 2019/03/19)
+ </li>
+
+ <li>
+  New: VectorTools::interpolate_to_different_mesh() now works with
+  hp::DoFHandler objects.
+  <br>
+  (Sebastian Stark, 2019/03/16)
+ </li>
+
+ <li>
+  Improved: DoFRenumbering::cell_wise() now support parallel::Triangulation .
+  <br>
+  (Denis Davydov, 2019/03/16)
+ </li>
+
+ <li>
+  Improved: The apply_all_indicators_to_manifold flag in GridIn::read_ucd()
+  lets the indicators be used for cells as manifold id as well.
+  <br>
+  (Daniel Arndt, 2019/03/16)
+ </li>
+
+ <li>
+  New: Added two new classes to the MeshWorker namespace: MeshWorker::ScratchData and 
+  MeshWorker::CopyData, that can be used as good default classes with the 
+  WorkStream::run() and MeshWorker::mesh_loop() functions.
+  <br>
+  (Luca Heltai, 2019/03/13)
+ </li>
+
+ <li>
+  New: If present, we will detect the LLD linker ld.lld at configuration time.
+  <br>
+  (Timo Heister, 2019/03/11)
+ </li>
+
+ <li>
+  Changed: The TrilinosWrappers::PreconditionAMG::AdditionalData data structure
+  is now able to return a parameter list, which can be adjusted and fine-tuned by 
+  the user and later used to initialize the AMG preconditioner. It can also
+  initialize the null space settings of an existing parameter list.
+  <br>
+  (Jean-Paul Pelteret, 2019/03/10)
+ </li>
+
+ <li>
+  Fixed: DoFHandler::renumber_dofs() called on levels would previously run into
+  an assertion on distributed triangulation when used with continuous
+  elements. This is now fixed.
+  <br>
+  (Martin Kronbichler, 2019/03/08)
+ </li>
+
+ <li>
+  New: Added a new function Utilities::type_to_string() to demangle type names.
+  <br>
+  (Luca Heltai, 2019/03/07)
+ </li>
+
+ <li>
+  Fixed: LinearAlgebra::CUDAWrappers::Vector::add_and_dot was giving a wrong result
+  if the size of vector was greater than 4096.
+  <br>
+  (Bruno Turcksin, 2018/03/06)
+ </li>
+
+ <li>
+  Fixed: EllipiticalManifold::push_forward_gradient did previously not take the
+  rotation into account. This is now fixed.
+  <br>
+  (Daniel Appel, Martin Kronbichler, 2019/03/05)
+ </li>
+
+ <li>
+  Fixed: CylindricalManifold::get_new_point would previously return wrong
+  results if the resulting point is on the axis, and the cylinder axis does not
+  pass through the origin.
+  <br>
+  (Daniel Appel, Martin Kronbichler, 2019/03/05)
+ </li>
+
+ <li>
+  Fixed: the DoFTools::make_sparsity_pattern variant that takes, as arguments, two
+  different DoFHandler objects now works correctly with
+  parallel::shared::Triangulation and parallel::distributed::Triangulation.
+  <br>
+  (David Wells, 2019/03/04)
+ </li>
+
+ <li>
+  New: Signals Triangulation::pre_distributed_repartition and
+  Triangulation::post_distributed_repartition which will be triggered in
+  parallel::distributed::Triangulation::repartition().
+  <br>
+  (Marc Fehling, 2019/03/03)
+ </li>
+
+ <li>
+  Fixed: CellAccessor::material_id interfered with the manifold object
+  for refining the mesh in case its dimension was less than the space dimension.
+  <br>
+  (Daniel Arndt, Sebastian Stark, 2019/03/02)
+ </li>
+
+ <li>
+  New: Hierarchy of finite elements in hp::FECollection objects. Get succeeding
+  and preceding indices via hp::FECollection::next_in_hierarchy() and
+  hp::FECollection::prev_in_hierarchy(). By default, a hierarchy corresponding
+  to indices is established. Hierarchy can be overridden via
+  hp::FECollection::set_hierarchy().
+  <br>
+  (Marc Fehling, 2019/02/28)
+ </li>
+
+ <li>
+  Fixed: Tensor-valued pvtu output.
+  <br>
+  (Daniel Jodlbauer, 2019/02/27)
+ </li>
+
+ <li>
+  New: Function GridTools::guess_point_owner(), which uses a covering rtree
+  to guess which processes own the points of the given vector of points.
+  <br>
+  (Giovanni Alzetta, 2019/02/25)
+ </li>
+
+ <li>
+  Fixed: FEFaceEvaluation::evaluate() and FEFaceEvaluation::integrate() would
+  provide wrong results for faces in non-standard orientation layout, namely
+  with `orientation=true, face_flip={false,true}, face_rotation=true`. This is
+  now fixed.
+  <br>
+  (Martin Kronbichler, 2019/02/21)
+ </li>
+
+ <li>
+  New: Function DoFRenumbering::random(dof_handler, level) which allows for a random renumbering 
+  of degrees of freedom on a level in a mutilevel hierarchy. 
+  <br>
+  (Conrad Clevenger, 2019/02/19)
+ </li>
+
+ <li>
+  Fixed: Handle the case properly that a local matrix with all diagonal elements equal to zero is distributed with AffineConstraints::distribute_local_to_global() to the global matrix while constraints apply.
+  <br>
+  (Sebastian Stark, 2019/02/13)
+ </li>
+
+ <li>
+  Fixed: inverse_operator() now handles a (composite) LinearOperator, the
+  temporary PreconditionIdentity(), or no argument as preconditioner argument
+  correctly.
+  <br>
+  (Matthias Maier, 2019/02/13)
+ </li>
+
+ <li>
+  New: Function MGConstrainedDoFs::make_no_normal_flux_constraints which adds 
+  functionality for no normal flux constraints during geometric mutigrid computations. 
+  Currently, this function is limited to meshes with no normal flux boundaries 
+  normal to the x-, y-, or z-axis.
+  <br>
+  (Conrad Clevenger, 2019/02/11)
+ </li>
+
+ <li>
+  New: Member functions DoFHandler::set_fe() and hp::DoFHandler::set_fe()
+  that will register a finite element object without enumerating all
+  degrees of freedom. In the hp case, the active_fe_indices will be
+  initialized and communicated amongst all processors, additionally.
+  <br>
+  (Marc Fehling, 2019/02/10)
+ </li>
+
+ <li>
+  New: make_const_array_view() creates a constant view from a non-const object.
+  <br>
+  (Daniel Arndt, 2019/02/09)
+ </li>
+
+ <li>
+  Fixed: PreconditionChebyshev would previously run one iteration more than
+  requested, i.e., perform `degree+1` matrix-vector products rather than
+  `degree` which is the convention in literature. This is now fixed. Note that
+  the quality of PreconditionChebyshev is obviously slightly reduced by this
+  change, and some solvers might need more outer iterations due to a ligher
+  Chebyshev iteration.
+  <br>
+  (Martin Kronbichler, 2019/02/08)
+ </li>
+
+ <li>
+  New: Add default constructor to SparsityPatternIterators::Accessor().
+  <br>
+  (Denis Davydov, 2019/02/08)
+ </li>
+
+ <li>
+  Improved: The iteration of PreconditionChebyshev has been overhauled to reduce
+  the number of vectors written per iteration to one, leading to slightly faster
+  execution of the vector updates.
+  <br>
+  (Martin Kronbichler, 2019/02/07)
+ </li>
+
+ <li>
+  Improved: The FEEvaluation::evaluate() and FEEvaluation::integrate() routines
+  would previously unconditionally use an evaluation routine with a
+  transformation to a collocation basis and subsequent collocation derivative
+  for `n_q_points_1d > fe_degree` because it is faster for the usual case of
+  `n_q_points_1d` close to the polynomial degree. Now, we switch back to the
+  standard evaluation if `n_q_points_1d > 3 * (fe_degree+1) / 2` where that
+  variant is faster.
+  <br>
+  (Martin Kronbichler, 2019/02/06)
+ </li>
+
+ <li>
+  Improved: Use binary search in BlockIndices::global_to_local() to improve performance
+  for large number of blocks.
+  <br>
+  (Denis Davydov, 2019/02/06)
+ </li>
+
+ <li>
+  Fixed: MGLevelGlobalTransfer::copy_to_mg would initialize the level vectors
+  without ghosts. When combined with Chebyshev smoother and a DiagonalMatrix as
+  well as specific matrix-free loops, this could lead to ghosted vectors in
+  places where they were not supposed to be ghosted, leading to exceptions. This
+  is now fixed.
+  <br>
+  (Martin Kronbichler, 2019/02/05)
+ </li>
+
+ <li>
+  Documented: The minimal supported MPI version is MPI-2.0.
+  <br>
+  (Daniel Arndt, 2019/02/02)
+ </li>
+
+ <li>
+  New: added constructor to the class Point, which converts
+  a boost::geometry::model::point to a dealii::Point
+  <br>
+  (Giovanni Alzetta, Daniel Arndt, Wolfgang Bangerth, 2019/01/31)
+ </li>
+
+ <li>
+  Changed: Function GridGenerator::general_cell() can now generate
+  a cell of dimension `dim` inside a space of dimension `spacedim`
+  with `dim <= spacedim`
+  <br>
+  (Giovanni Alzetta, 2019/01/30)
+ </li>
+
+ <li>
+  New: Add internal::MatrixFreeFunctions::DoFInfo::get_dof_indices_on_cell_batch() to
+  return locally owned DoFs used by matrix-free framework on a given cell.
+  <br>
+  (Denis Davydov, 2019/01/30)
+ </li>
+
+ <li>
+  Improved: A new dummy enumeration AD::NumberTypes::none has been added.
+  It exists to represent number types that are scalar arithmetic types, 
+  i.e those that hold no derivatives. They are implemented primarily to 
+  facilitate the use of template  meta-programming techniques to switch 
+  between different AD types. This covers the case when the user does not 
+  want an AD type at all, but rather a primitive type.
+  <br>
+  (Jean-Paul Pelteret, 2019/01/25)
+ </li>
+
+ <li>
+  New: Add default constructor to DynamicSparsityPatternIterators::Accessor() and
+  DynamicSparsityPatternIterators::Iterator() to be able to store such objects
+  in STL containers.
+  <br>
+  (Denis Davydov, 2019/01/18)
+ </li>
+
+ <li>
+  New: Indentation script <code>deal.II/contrib/utilities/indent.py</code> is added
+  to format code in external projects that use deal.II
+  <br>
+  (Vishal Boddu, 2019/01/13)
+ </li>
+
+ <li>
+  New: GridTools::Cache::get_covering_rtree() automatically stores and generates
+  a rtree of bounding boxes covering the whole triangulation. In a distributed setting
+  it can identify which processes have locally owned cells in any part of the mesh.
+  <br>
+  (Giovanni Alzetta, 2019/01/11)
+ </li>
+
+ <li>
+  Fixed: Tensor indices of set_k_vectors() in FESeries::Fourier.
+  Coefficients will now be distributed in every
+  coordinate direction correctly.
+  <br>
+  (Marc Fehling, 2019/01/08)
+ </li>
+
+ <li>
+  New: LinearAlgebra::distributed::Vector with CUDA memory space uses CUDA-aware
+  MPI in case deal.II is configured with DEAL_II_MPI_WITH_CUDA_SUPPORT=ON.
+  <br>
+  (Daniel Arndt, Bruno Turcksin, 2019/01/04)
+ </li>
+
+ <li>
+  New: Add LAPACKFullMatrix::apply_givens_rotation() and Vector::apply_givens_rotation() to
+  apply a Givens rotation matrix.
+  <br>
+  (Denis Davydov, 2018/12/30)
+ </li>
+
+ <li>
+  New: Add SolverBFGS to minimize a function using the limited memory BFGS approach.
+  <br>
+  (Denis Davydov, 2018/12/26)
+ </li>
+
+ <li>
+  Replaced: TrilinosWrappers::MPI::Vector::vector_partitioner() has been
+  deprecated in favor of TrilinosWrappers::MPI::Vector::trilinos_partitioner().
+  The latter one returns an Epetra_BlockMap instead of an Epetra_Map avoiding an
+  invalid downcast.
+  The IndexSet constructor taking an Epetra_Map object has been replaced to
+  accept a base class object of type Epetra_BlockMap instead.
+  <br>
+  (Daniel Arndt, 2018/12/22)
+ </li>
+
+ <li>
+  Fixed: Reinit blockvector only when necessary in MGTransferBlockMatrixFree::copy_to_mg.
+  <br>
+  (Daniel Jodlbauer, 2018/12/19)
+ </li>
+
+ <li>
+  New: Class parallel::distributed::CellDataTransfer has been introduced to transfer 
+  cell by cell data across distributed meshes in case of refinement/serialization.
+  <br>
+  (Marc Fehling, 2018/12/18)
+ </li>
+
+ <li>
+  New: Function GridTools::build_global_description_tree which exchanges a given
+  vector of bounding boxes on all processes and uses the result to build an Rtree
+  with packing algorithm.
+  <br>
+  (Giovanni Alzetta, 2018/12/17)
+ </li>
+
+ <li>
+  New: Add helpers functions to use varying coefficients when using
+  CUDAWrappers::MatrixFree.
+  <br>
+  (Bruno Turcksin, 2018/12/10)
+ </li>
+
+ <li>
+  New: GridTools::find_active_cell_around_point now allows you to specify an (optional) rtree, constructed
+  from the used vertices of the triangulation. Once you have built a tree, querying for a nearest
+  vertex is an O(log(N)) operation, where N is the number of used vertices. You can ask a GridTools::Cache
+  object to return a tree that is compatible with the new function signature. 
+  The previous version of this function had a cost that was O(N^2) when the point was not in the cell_hint
+  object. 
+  <br>
+  (Luca Heltai, 2018/12/05)
+ </li>
+
+ <li>
+  New: Add LAPACKFullMatrix::transpose() to perform out-of-place transposition.
+  <br>
+  (Denis Davydov, 2018/12/05)
+ </li>
+
+ <li>
+  New: Add DEAL_II_LAPACK_WITH_MKL macro which will be set if Intel MKL is being used.
+  <br>
+  (Denis Davydov, 2018/12/05)
+ </li>
+
+ <li>
+  Changed: FESeries::Fourier::calculate and FESeries::Legendre::calculate
+  accept both Vector<float> and Vector<double> as input parameters for
+  local dof values.
+  <br>
+  (Marc Fehling, 2018/12/04)
+ </li>
+
+ <li>
+  New: Added entries to GridTools::Cache to build a vertices RTree, and a bounding boxes RTree. 
+  <br>
+  (Luca Heltai, 2018/12/03)
+ </li>
+
+ <li>
+  New: Class EllipticalManifold<dim,spacedim> derived from ChartManifold, 
+  valid only for dim=2 and spacedim=2. It maps points from a system of 
+  cartesian coordinates to a system of elliptical coordinates and vice-versa.
+  <br>
+  (Stefano Dominici, 2018/11/30)
+ </li>
+
+ <li>
+  New: A new header <code>deal.II/base/undefine_macros.h</code> has been
+  added. This header, as the name suggests, undefines all deal.II macros that are
+  not prefixed with either <code>DEAL</code> or <code>deal</code>.
+  <br>
+  (David Wells, 2018/11/30)
+ </li>
+
+ <li>
+  Fixed: The MatrixFree::initialize() function would sometimes run into an
+  assertion when ghost faces occur on subdomain interfaces. This is now fixed.
+  <br>
+  (Martin Kronbichler, 2018/11/28)
+ </li>
+
+ <li>
+  New: Triangulation::n_faces, Triangulation::n_active_faces, and Triangulation::n_raw_faces now work also
+  in one dimension. 
+  <br>
+  (Luca Heltai, 2018/11/22)
+ </li>
+
+ <li>
+  New: Add support for MPI when using CUDAWrappers::MatrixFree. This only works
+  with LinearAlgebra::distributed::Vector<Number, MemorySpace::CUDA>
+  <br>
+  (Bruno Turcksin, 2018/11/21)
+ </li>
+
+ <li>
+  Fixed: The TriaAccessor<0,dim,spacedim> and TriaAccessor<0,1,spacedim>
+  classes were missing member functions `get_triangulation()` and
+  `operator<()`. This prevented these objects from being stored in
+  `std::map`s, among other issues.
+  <br>
+  (Wolfgang Bangerth, Luca Heltai, 2018/11/20)
+ </li>
+
+ <li>
+  Fix bug with FEFaceValues initialization when used with the FE_NedelecSZ
+  <br>
+  (Alexander Grayver, 2018/11/19)
+ </li>
+
+ <li>
+  New: A new function GridTools::get_coarse_mesh_description has been added. This
+  function extracts the vertices, CellData, and SubCellData objects from a
+  Triangulation (i.e., it is the inverse of Triangulation::create_triangulation).
+  <br>
+  (David Wells, 2018/11/11)
+ </li>
+
+ <li>
+  Fixed: The operation FEEvaluation::read_dof_values performed invalid array
+  accesses with AVX512 vectorization in rare circumstances of particular 1d
+  meshes. This is now fixed.
+  <br>
+  (Martin Kronbichler, 2018/11/10)
+ </li>
+
+ <li>
+  Deprecated: The binary Tecplot output using the DataOutBase::tecplot_binary
+  format has been deprecated.
+  <br>
+  (Daniel Arndt, 2018/11/10)
+ </li>
+
+ <li>
+  New: GridOut::write_vtk and GridIn::read_vtk are now compatible with each other, and can be used to save 
+  and restore a Triangulation with all manifold_ids and boundary_ids correctly saved.
+  This is now the only format that supports both boundary_id and manifold_id both in reading and writing. 
+  <br>
+  (Luca Heltai, 2018/11/07)
+ </li>
+
+ <li>
+  Improved: The class ArrayView checks the memory location of the data it presents
+  and gained a template parameter indicating whether the data is stored in CPU or
+  CUDA memory.
+  <br>
+  (Daniel Arndt, 2018/11/04)
+ </li>
+
+ <li>
+  Improved: GridIn::read_msh also support version 4 of MSH file format
+  extracting the same information as for the older versions.
+  <br>
+  (Daniel Arndt, 2018/11/04)
+ </li>
+
+ <li>
+  Fixed: The grid generated by GridGenerator::truncated_cone now uses more level 0
+  cells to improve conditioning of cells when they are refined.
+  <br>
+  (David Wells, 2018/11/03)
+ </li>
+
+ <li>
+  Changed: The class Subscriptor and SmartPointer check for dangling pointers and
+  use-after-move. The destructor of Subscriptor doesn't signal an error when there
+  is still an object subscribed to it. Instead, validity is checked when
+  dereferencing the SmartPointer object.
+  <br>
+  (Daniel Arndt, 2018/11/02)
+ </li>
+
+ <li>
+  Fixed: SparsityPattern::begin() and DynamicSparsityPattern::begin()
+  resulted in an invalid iterator if the sparsity pattern was actually
+  empty.
+  <br>
+  (Wolfgang Bangerth, Denis Davydov, 2018/11/01)
+ </li>
+
+ <li>
+  New: Add Functions::IncrementalFunction which returns the difference in values of
+  a given function at two time steps.
+  <br>
+  (Denis Davydov, Jean-Paul Pelteret, 2018/10/05)
+ </li>
+
+ <li>
+  New: Classes FESeries::Fourier and FESeries::Legendre now take two
+  template arguments dim and spacedim, which allow them to use corresponding
+  hp::FECollection objects.
+  <br>
+  (Marc Fehling, 2018/10/17)
+ </li>
+
+ <li>
+  Fixed: The project_boundary_values_div_conforming() function now works correctly 
+  with parallel::distributed::Triangulation.
+  <br>
+  (Jonathan Matthews, 2018/10/13)
+ </li>
+
+ <li>
+  New: Functions DoFAccessor::get_active_fe_indices() and
+  internal::DoFAccessorImplementation::get_active_vertex_fe_indices()
+  return all active finite element indices on the corresponding object.
+  <br>
+  (Marc Fehling, 2018/10/08)
+ </li>
+
+ <li>
+  New: Added RTree class and pack_rtree() function to create a boost::geometry::index::rtree from 
+  containers and/or iterators of BoundingBox, Point, or Segment objects. 
+  <br>
+  (Luca Heltai, 2018/10/06)
+ </li>
+
+ <li>
+  The computation of normal vectors on very small cells could fail. This is now fixed.
+  <br>
+  (Timo Heister, 2018/10/05)
+ </li>
+
+ <li>
+  The class VectorizedArray has gained support for the intrinsics of Altivec
+  of IBM Power processors.
+  <br>
+  (Martin Kronbichler, Bruno Turcksin, Sambit Das, 2018/10/05)
+ </li>
+
+ <li>
+  New: Add inverse_Hilbert_space_filling_curve() to map points in dim-dimensional
+  space to line index of the Hilbert space filling curve.
+  <br>
+  (Denis Davydov, 2018/10/05)
+ </li>
+
+ <li>
+  Deprecated: The Threads::n_existing_threads() and
+  Threads::this_thread_id() functions have been deprecated. There are
+  equivalent C++11 functions that provide the same kind of
+  functionality.
+  <br>
+  (Wolfgang Bangerth, 2018/10/05)
+ </li>
+
+ <li>
+  New: There is now a constructor of hp::QCollection that, like the
+  existing one of hp::FECollection, takes a variable number of
+  quadrature objects and creates a collection from it.
+  <br>
+  (Wolfgang Bangerth, 2018/10/04)
+ </li>
+
+ <li>
+  New: Class parallel::distributed::CellWeights allows to set the
+  weight of a cell depending on the number of degrees of freedom
+  associated with it. This guarantees an improved load balancing
+  in case a hp::DoFHandler is used on a p::d::Triangulation.
+  <br>
+  (Marc Fehling, 2018/10/01)
+ </li>
+
+ <li>
+  Removed: The Threads::DummyMutex, Threads::DummyConditionVariable, and
+  Threads::DummyThreadBarrier classes have been removed. These were only
+  used if deal.II was compiled without thread support, in which case
+  certain functionality from the TBB was not available. But the
+  implementations of the underlying functionality is now unconditionally
+  available via the C++11 standard library, and so we don't need the
+  dummy implementations any more.
+  <br>
+  (Wolfgang Bangerth, 2018/09/27)
+ </li>
+
+ <li>
+  Deprecated: The Threads::PosixThreadBarrier class and the
+  corresponding Threads::Barrier `using` declaration are deprecated. The
+  functionality implemented by these classes is easily replaced by C++11
+  functionality.
+  <br>
+  (Wolfgang Bangerth, 2018/09/27)
+ </li>
+
+ <li>
+  Deprecated: The Threads::ConditionVariable class is now
+  deprecated. Use `std::condition_variable` instead.
+  <br>
+  (Wolfgang Bangerth, 2018/09/27)
+ </li>
+
+ <li>
+  Deprecated: The Threads::Mutex class is now derived from
+  std::mutex. As a consequence, the Threads::Mutex::ScopedLock class is
+  now no longer necessary and is deprecated in favor of std::lock_guard
+  or any of the other similar classes provided by C++11 and
+  later. Similarly, the Threads::Mutex::acquire() and
+  Threads::Mutex::release() functions are deprecated in favor of the
+  corresponding functions in the std::mutex base class.
+  <br>
+  (Wolfgang Bangerth, 2018/09/27)
+ </li>
+
+ <li>
+  New: Support for complex values can be controlled using the CMake flag
+  DEAL_II_WITH_COMPLEX_VALUES.
+  <br>
+  (Daniel Arndt, 2019/09/26)
+ </li>
+
+ <li>
+  Fixed: The GridIn::read_abaqus() function now correctly reads in grids designed
+  for the co-dimension 1 case (specifically with dim == 2 and spacedim == 3).
+  <br>
+  (Yuxiang Wang, Jean-Paul Pelteret, 2018/09/20)
+ </li>
+
+ <li>
+  Fixed: MatrixFree::loop() would not zero a vector if all degrees of freedom
+  are constrained. This is now fixed.
+  <br>
+  (Martin Kronbichler, 2018/09/20)
+ </li>
+
+ <li>
+  New: Add optional flag to ParameterHandler to skip undefined
+  sections and parameters.
+  <br>
+  (Denis Davydov, 2018/09/20)
+ </li>
+
+ <li>
+  New: extend Patterns::Tools::Convert to work with ComponentMask
+  and std::unique_ptr<FunctionParser>.
+  <br>
+  (Denis Davydov, 2018/09/19)
+ </li>
+
+ <li>
+  New: SolverSelector gained a new constructor initializing the object completely.
+  <br>
+  (Daniel Arndt, 2018/09/17)
+ </li>
+
+ <li>
+  New: added the function TrilinosWrappers::MPI::Vector::import() to get data from a ReadWriteVector.
+  <br>
+  (Timo Heister, 2018/09/16)
+ </li>
+
+ <li>
+  New: Add line minimization functions.
+  <br>
+  (Denis Davydov, 2018/09/13)
+ </li>
+
+ <li>
+  Fixed: <code>make test</code> now runs in parallel automatically (i.e., it uses
+  a CMake command to determine the number of cores available). Since <code>make
+  test</code> just immediately invokes <code>ctest</code> as a subprocess, it is
+  currently not possible to link the number of globally available
+  <code>make</code> processes with the number of concurrently run tests; i.e.,
+  the number of cores <code>make test</code> uses is not changeable by users.
+  <br>
+  (David Wells, 2018/09/13)
+ </li>
+
+ <li>
+  Fixed: VectorTools::project_boundary_values_div_conforming works correctly
+  in case the DoFHandler object contains more than one FE_RaviartThomas element.
+  <br>
+  (Daniel Arndt, 2018/09/13)
+ </li>
+
+ <li>
+  New: The function DoFRenumbering::hierarchical() is now also available
+  for hp::DoFHandler objects, as well as for DoFHandlers build on
+  triangulations with `dim != spacedim`.
+  <br>
+  (Wolfgang Bangerth, 2018/09/06)
+ </li>
+
+ <li>
+  Added: New function 
+  Utilities::MPI::compute_n_point_to_point_communications()
+  is implemented to be used for computing number of processes
+  in an MPI universe to expect communication from.
+  <br>
+  (Eldar Khattatov, 2018/09/04)
+ </li>
+
+ <li>
+  New: Utilities::CUDA::allocate_device_data() and
+  Utilities::CUDA::delete_device_data() help to manage data on CUDA devices
+  using std::unique_ptr.
+  <br>
+  (Daniel Arndt, 2018/09/01)
+ </li>
+
+ <li>
+  Fixed: Member function AffineConstraints::add_entries() now skips already
+  existing entries.
+  <br>
+  (Dustin Kumor, 2018/08/24)
+ </li>
+
+ <li>
+  Fixed: TrilinosWrappers::SparseMatrix::mmult() sometimes gave the wrong result
+  in parallel.
+  <br>
+  (Damien Lebrun-Grandie and Bruno Turcksin, 2018/08/22)
+ </li>
+
+ <li>
+  Fixed: The function Particles::ParticleAccessor::serialize() was
+  declared but not implemented. This is now fixed.
+  <br>
+  (Wolfgang Bangerth, 2018/08/21)
+ </li>
+
+ <li>
+  New: Add a mask argument to filter out some vector lanes in FEEvaluationBase
+  This is required for local time stepping using the MatrixFree framework,
+  because some cells of batches must be excluded from read/write operations
+  when operating on different time steps compared to their neighbor cells.
+  <br>
+  (Svenja Schoeder, 2018/08/21)
+ </li>
+
+ <li>
+  New: Table and FullMatrix now have complete (both mutable and const)
+  random-access iterators.
+  <br>
+  (David Wells, 2018/08/20)
+ </li>
+
+ <li>
+  New: CUDAWrappers::PreconditionILU and CUDAWrappers::PreconditionIC can be used
+  for preconditioning CUDAWrappers::SparseMatrix objects.
+  <br>
+  (Daniel Arndt, 2018/08/20)
+ </li>
+
+ <li>
+  New: There are nothrow versions of AssertCUDA and AssertCusparse, namely
+  AssertNothrowCUDA and AssertNothrowCusparse.
+  <br>
+  (Daniel Arndt, 2018/08/20)
+ </li>
+
+ <li>
+  New: There are new methods CUDAWrappers::SparseMatrix::print() and
+  CUDAWrappers::SparseMatrix::print_formatted(). Additionally, 
+  CUDAWrappers::SparseMatrix gained a move assignment operator.
+  <br>
+  (Daniel Arndt, 2018/08/20)
+ </li>
+
+ <li>
+  Fixed: Throwing an exception in Assert doesn't slice objects derived from
+  ExceptionBase anymore.
+  <br>
+  (Daniel Arndt, 2018/08/17)
+ </li>
+
+ <li>
+  New: There is LinearAlgebra::CUDAWrappers::Vector::norm_sqr() for computing
+  the squared l2-norm and LinearAlgebra::CUDAWrappers::Vector::swap()
+  for swapping two vectors.
+  <br>
+  (Daniel Arndt, 2018/08/17)
+ </li>
+
+ <li>
+  Fixed: CUDAWrappers::Vector performs now a deep copy instead of a shallow copy
+  in its copy assignment operator.
+  <br>
+  (Daniel Arndt, 2018/08/16)
+ </li>
+
+ <li>
+  Fixed: MGConstrainedDofs::initialize(...) now handles refinement edges across periodic boundaries correctly.
+  <br>
+  (Alexander Knieps, 2018/08/13)
+ </li>
+
+ <li>
+  Fixed: Bug using ScaLAPACKMatrix::save() and load() for configurations with pHDF5 in combination with serial HDF5 matrices from user code.
+  <br>
+  (Benjamin Brands, 2018/08/10)
+ </li>
+
+ <li>
+  Improved: Triangulation::prepare_coarsening_and_refinement also takes care of
+  limiting the level difference across periodic boundary faces.
+  <br>
+  (Daniel Arndt, Stefan Kaessmair, 2018/08/09)
+ </li>
+
+ <li>
+  New: The new function
+  MatrixFreeOperators::CellwiseInverseMassMatrix::transform_from_q_points_to_basis()
+  enables to change the basis from a representation in quadrature points into
+  the original basis of FEEvaluation.
+  <br>
+  (Martin Kronbichler, 2018/08/06)
+ </li>
+
+ <li>
+  Improved: FEEvaluation and FEFaceEvaluation have gained support for
+  renumbering of degrees of freedom for fully discontinuous finite element
+  spaces which can improve performance by around 10 percent.
+  <br>
+  (Martin Kronbichler, 2018/08/06)
+ </li>
+
+ <li>
+  New: Add support for constraint when using matrix-free on GPU. Note you cannot
+  set constraints in 2D if the degree of the finite element is even.
+  <br>
+  (Bruno Turcksin, 2018/08/06)
+ </li>
+
+ <li>
+  New: A convenience function Triangulation::active_face_iterators() (which is like
+  Triangulation::active_cell_iterators(), but for faces) has been added.
+  <br>
+  (David Wells, 2018/08/05)
+ </li>
+
+ <li>
+  Fixed: Minor issues when using matrix-free cell categorization
+  with multi-grid operators.
+  <br>
+  (Denis Davydov, 2018/08/02)
+ </li>
+
+ <li>
+  Fixed: The import function for LinearAlgebra::distributed::Vector would fail if
+  the IndexSet of the ReadWriteVector has no locally owned element
+  <br>
+  (Bruno Turcksin, 2018/08/02)
+ </li>
+
+ <li>
+  New: GridGenerator::merge_triangulations can merge multiple 
+  Triangulation objects at once.
+  <br>
+  (Daniel Arndt, 2018/08/01)
+ </li>
+
+ <li>
+  New: LinearAlgebra::distributed::Vector has an extra template parameter
+  MemorySpace. This new template parameter can be used if the data should be
+  allocated on the host or on the device.
+  <br>
+  (Bruno Turcksin, 2018/08/01)
+ </li>
+
+ <li>
+  Added support for high-order VTU output by using newly 
+  introduced Lagrange VTK cells. 
+  <br>
+  (Alexander Grayver, 2018/08/01)
+ </li>
+
+ <li>
+  Added support for high-order VTK output by using newly 
+  introduced Lagrange VTK cells. 
+  <br>
+  (Alexander Grayver, 2018/07/27)
+ </li>
+
+ <li>
+  New: Add FiniteSizeHistory class to store a finite-size history of objects.
+  <br>
+  (Denis Davydov, 2018/07/26)
+ </li>
+
+ <li>
+  Deprecate project_boundary_values_curl_conforming in favor
+  of project_boundary_values_curl_conforming_l2. The former
+  has a number of known limitations and bugs.
+  <br>
+  (Alexander Grayver, 2018/07/26)
+ </li>
+
+ <li>
+  New: Add boost adaptor for dealii::BoundingBox. 
+  <br>
+  (Luca Heltai, 2018/07/24)
+ </li>
+
+ <li>
+  New: Added geometry adaptors for boost. 
+  <br>
+  (Luca Heltai, Bruno Turcksin, 2018/07/22)
+ </li>
+
+ <li>
+  New: Add new constructor type for FunctionParser class. 
+  <br>
+  (Luca Heltai, 2018/07/21)
+ </li>
+
+ <li>
+  Fixed: hp::DoFHandler::distribute_dofs() now works on
+  parallel::distributed::Triangulation<3> objects that
+  contain artificial cells.
+  <br>
+  (Marc Fehling, 2018/07/20)
+ </li>
+
+ <li>
+  Changed: The Subscriptor class has been made thread-safe, and its behavior in
+  debug and release modes are now identical. Although this makes subscription and 
+  un-subscription slightly more expensive in release mode, debugging should be
+  easier overall.
+  <br>
+  (Jean-Paul Pelteret, 2018/07/15)
+ </li>
+
+ <li>
+  New: A new function GridGenerator::concentric_hyper_shells has been added. This
+  function generates a grid comprised of shells of varying widths, where the
+  shells near the center are much thinner than those near the outer boundary.
+  <br>
+  (David Wells, 2018/07/15)
+ </li>
+
+ <li>
+  Fixed: Iterating over the entries of a TrilinosWrappers::SparsityPattern object
+  in parallel and after calling TrilinosWrappers::SparsityPattern::compress()
+  works now.
+  <br>
+  (Mathias Anselmann, Daniel Arndt, 2018/07/11)
+ </li>
+
+ <li>
+  Fixed: GridTools::delete_duplicated_vertices also treats the SubCellData
+  object correctly when renumbering the vertices.
+  <br>
+  (Daniel Arndt, 2018/07/08)
+ </li>
+
+ <li>
+  New: GridGenerator::merge_triangulations gained an option to copy manifold ids.
+  <br>
+  (Daniel Arndt, 2018/07/08)
+ </li>
+
+ <li>
+  New: Add GridGenerator::plate_with_a_hole() that generates a
+  rectangular plate with an (offset) cylindrical hole.
+  <br>
+  (Denis Davydov, 2018/06/21)
+ </li>
+
+ <li>
+  Fixed: The functions FEFaceEvaluation::evaluate and
+  FEFaceEvaluation::integrate would access invalid memory when only evaluating
+  function values and using multiple components in 1D. This is now fixed.
+  <br>
+  (Martin Kronbichler, 2018/07/04)
+ </li>
+
+ <li>
+  New: The class MatrixFreeFunctions::CellwiseInverseMassMatrix can now also be
+  used in 1D.
+  <br>
+  (Martin Kronbichler, 2018/07/04)
+ </li>
+
+ <li>
+  New: Add support for output of tensor-valued data in
+  DataOut::write_vtu().
+  <br>
+  (Denis Davydov, 2018/06/21)
+ </li>
+
+ <li>
+  New: Extend get_vector_data_ranges() to return extra element in
+  the tuple to represent DataComponentInterpretation. The functions
+  were renamed to get_nonscalar_data_ranges().
+  <br>
+  (Denis Davydov, 2018/06/21)
+ </li>
+
+ <li>
+  Fixed: FETools::back_interpolate can be used
+  for TrilinosWrappers::MPI::BlockVector.
+  <br>
+  (Daniel Arndt, 2018/06/20)
+ </li>
+
+ <li>
+  Changed: Calling GridGenerator::refine_and_coarsen_fixed_fraction()
+  and GridGenerator::refine_and_coarsen_fixed_fraction() with values for
+  the coarsen and refine fractions that added to 1.0 in exact
+  arithmetic, but something slightly larger in floating point
+  arithmetic, resulted in an error. These functions are now slightly
+  more relaxed in that they allow arguments that add to 1.0 up to a
+  small floating point round off error.
+  <br>
+  (Wolfgang Bangerth, 2018/06/18)
+ </li>
+
+ <li>
+  New: The LinearAlgebra::distributed::Vector::compress() function has
+  gained two new combine operations VectorOperation::min and
+  VectorOperation::max to define the entry at the owning processor as
+  the minimum/maximum of its own value and the one coming from a ghost.
+  <br>
+  (Svenja Schoeder, 2018/06/18)
+ </li>
+
+ <li>
+  Fixed: TrilinosWrappers::MPI::Vector::reinit check  now checks if
+  parallel_partitioner is_ascending_and_one_to_one before calling
+  make_trilinos_map because make_trilinos_map may be able to make
+  a linear map if is_ascending_and_one_to_one is true.
+  <br>
+  (Joshua Hanophy, 2018/06/16)
+ </li>
+
+ <li>
+  Fixed: The eigenvalue approximation in SolverGMRES failed if no iterations
+  were performed. Now, there is simply no output in this case.
+  <br>
+  (Daniel Arndt, 2018/06/15)
+ </li>
+
+ <li>
+  Bugfix: Fixed bugs for TrilinosWrapper::SparseMatrix::add(factor, other_matrix)
+  and TrilinosWrapper::SparseMatrix::copy_from(other_matrix) for the case of
+  non-contiguous rows.
+  <br>
+  (Uwe Koecher, 2018/06/14)
+ </li>
+
+ <li>
+  Fixed: Mismatched numbers of components between the exact solution and 
+  underlying FE in Step-51.
+  <br>
+  (Pi-Yueh Chuang, 2018/06/14)
+ </li>
+
+ <li>
+  Bugfix: Fixed a bug where VectorDataExchange::ghosts_were_set was
+  not set inside MatrixFree::cell_loop() for block vectors
+  with many blocks.
+  <br>
+  (Denis Davydov, 2018/06/12)
+ </li>
+
+ <li>
+  Fixed: CMake now supports again in-source builds (This functionality was
+  accidentally broken in the previous release).
+  <br>
+  (Matthias Maier, 2018/06/11)
+ </li>
+
+ <li>
+  Deprecated: FunctionMap is deprecated. It is recommended to
+  use the aliased type directly.
+  <br>
+  (Daniel Arndt, 2018/06/11)
+ </li>
+
+ <li>
+  Fixed: BlockLinearOperator::vmult(), BlockLinearOperator::vmult_add(),
+  BlockLinearOperator::Tvmult() and BlockLinearOperator::Tvmult_add()
+  can be used with identical source and destination vectors.
+  <br>
+  (Daniel Arndt, 2018/06/10)
+ </li>
+
+ <li>
+  Improved: Extend ScaLAPACKMatrix::invert() to use pXtrtri for inversion of triangular matrices.
+  <br>
+  (Sambit Das, 2018/06/06)
+ </li>
+
+ <li>
+  New: TimerOutput::cpu_and_wall_times_grouped will print CPU and
+  wallclock time in a single table.
+  <br>
+  (Denis Davydov, 2018/05/29)
+ </li>
+
+ <li>
+  Improved: TimerOutput now dynamically adjust to the the width of Section column.
+  <br>
+  (Denis Davydov, 2018/05/29)
+ </li>
+
+ <li>
+  New: The function GridTools::find_all_active_cells_around_point() returns a
+  list of all cells around a point, rather than only a single one for the old
+  GridTools::find_active_cell_around_point.
+  <br>
+  (Martin Kronbichler, Niklas Fehn, 2018/05/28)
+ </li>
+
+ <li>
+  Improved: MatrixFree::cell_loop() and MatrixFree::loop() directly use
+  LinearAlgebra::distributed::BlockVector::update_ghost_values() and
+  LinearAlgebra::distributed::BlockVector::compress() calls on block vectors
+  with many blocks, rather than splitting each method into two parts for
+  overlapping communication and computation. The latter is inefficient as soon
+  as too many MPI requests are in flight.
+  <br>
+  (Martin Kronbichler, Denis Davydov, 2018/05/24)
+ </li>
+
+ <li>
+  Fixed: Step-16 was broken caused by uninitialized variables, it is now fixed.
+  <br>
+  (Ce Qin, 2018/05/21)
+ </li>
+
+ <li>
+  Improved: MGTransferPrebuilt now supports
+  PETScWrappers::MPI::Vector and
+  PETScWrappers::MPI::SparseMatrix.
+  <br>
+  (Alexander Knieps, 2018/05/21)
+ </li>
+
+ <li>
+  Fixed: DoFTools::make_flux_sparsity_pattern was accessing invalid dof indices
+  in case neighboring cells were not using FiniteElement objects with the same
+  number of degrees of freedom. This is fixed now.
+  <br>
+  (Daniel Arndt, 2018/05/19)
+ </li>
+
+ <li>
+  Fixed: Two invalid off-by-one data accesses in the initialization of
+  MatrixFree with face data enabled, that appeared in some rare cases on certain
+  configurations of processors, have been fixed.
+  <br>
+  (Daniel Arndt, Martin Kronbichler, 2018/05/18)
+ </li>
+
+ <li>
+  New: Classes that act as an interface to the drivers of internally supported automatic
+  differentiation libraries (ADOL-C and Sacado) have been implemented. A brief summary
+  of what these classes are used for is given in the @ref auto_symb_diff module.
+  <br>
+  (Jean-Paul Pelteret, 2017/11/18)
+ </li>
+
+</ol>
+
+*/

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

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.