Reference documentation for deal.II version Git 9ccd10d 2017-04-29 21:50:25 -0400
Changes after Version 8.5.0

This is the list of changes made after the release of deal.II version 8.5.0. All entries are signed with the names of the authors.


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 deprecated functions DoFHandler::get_tria() and hp::DoFHandler::get_tria() have been removed. Use DoFHandler::get_triangulation() and hp::DoFHandler::get_triangulation() instead.
    (Wolfgang Bangerth, 2017/04/25)

  2. Changed: The deprecated functions DataOutInterface::write_pvd_record() and DataOutBase::write_visit_record() have been removed. Use the corresponding functions in namespace DataOutBase.
    (Wolfgang Bangerth, 2017/04/25)

  3. Changed: The deprecated function FEValuesBase::get_normal_vectors() that returned a vector of Point objects has been removed. Its replacement, FEValuesBase::get_all_normal_vectors() has now itself been deprecated, and we have created a new function FEValuesBase::get_normal_vectors() that returns a vector of Tensor<1,dim> objects. The net effect is that the function with the old name has simply gotten a new return type.
    (Wolfgang Bangerth, 2017/04/25)

  4. Removed: DataPostprocessor had member functions compute_derived_quantities_*() that had previously already been deprecated. These have now been removed.
    (Wolfgang Bangerth, 2017/04/24)

  5. Removed: The ParameterHandler::read_input() function and friends have been removed. They were already deprecated in the previous release.
    (Wolfgang Bangerth, 2017/04/21)

  6. Changed: It was previously allowed to copy one FESystem object to another via the copy constructor. There are probably few reasons to do so, but they complicated the design of data structures. Consequently, it is now no longer allowed to copy such objects.
    (Wolfgang Bangerth, 2017/04/17)

  7. Removed: The FETools::compute_node_matrix() variant that takes two arguments has been removed. It was previously already deprecated. Use the variant with just one argument instead.
    (Wolfgang Bangerth, 2017/04/16)

  8. Changed: The AssertGlobalIndexRange macro has been removed: the expansion of this macro involved an undeclared template and always generates compiler errors if used.
    (David Wells, 2017/04/13)

  9. Removed: A number of deprecated classes have been removed in favor of the new LinearOperator concept: TODO Use the LinearOperator class instead, see the module on linear operators for more details.
    (Matthias Maier, 2017/04/06)

  10. Removed: The FiniteElement::interpolate() function and all of its implementations in derived classes has been removed. It was previously already deprecated. Use FiniteElement::convert_generalized_support_point_values_to_nodal_values() instead.
    (Wolfgang Bangerth, 2017/04/05)

  11. The deprecated MPI communicator and the constructor which used it were removed from the MatrixFree::AdditionalData class.
    (Denis Davydov, 2017/03/26)

  12. Removed: The deprecated CMake flag DEAL_II_CXX11_FLAG has been removed.
    (David Wells, 2017/03/23)

  13. Changed: deal.II now requires a compiler supporting (very nearly) the entire C++11 standard. The minimal version of GCC supported is now 4.8.
    (David Wells, 2017/03/23)


Specific improvements

  1. Changed: The PETScWrappers::MPI::Vector class always corresponds to a PETSc vector with type mpi, even when empty.
    (David Wells, 2017/03/29)

  2. New: TriaAccessor::enclosing_ball() computes and return a pair of Point and double corresponding to the center and the radius of a reasonably small enclosing ball of the TriaAccessor object.
    (Vishal Boddu, Denis Davydov 2017/04/26)

  3. Fixed: Copying Patterns::List or Patterns::Map objects previously led to memory corruption. This is now fixed.
    (Wolfgang Bangerth, 2017/04/25)

  4. New: add Point<dim,Number>::distance_square() which calculates the squared Euclidean distance.
    (Denis Davydov, 2017/04/24)

  5. New: The ParameterHandler::parse_input() function and friends now make a guarantee that if a parameter value does not match its pattern, or an associated action throws an exception, that the enclosing ParameterHandler object will be reset to the same subsection level it was in before ParameterHandler::parse_input() was called.
    (Wolfgang Bangerth, 2017/04/21)

  6. Changed: We no longer support Visual Studio 2013 because it lacks important c++11 features like constexpr. It is now possible to use MSVC 2017 in addition to MSVC 2015.
    (Timo Heister, 2017/04/20)

  7. New: The new function ParameterHandler::add_action() allows to register actions that should be performed when a parameter is read from somewhere. This allows, in particular, initializing member variables that store parameter values without having to explicitly call ParameterHandler::get(), ParameterHandler::get_integer(), or similar functions.
    (Wolfgang Bangerth, 2017/04/16)

  8. Fixed: The MeshWorker framework can also be used in case dim != spacedim.
    (Daniel Arndt, 2017/04/16)

  9. Changed: The PointValueHistory class still used the old, deprecated interface for DataPostprocessor objects in that variant of the PointValueHistory::evaluate_field() function that takes such an object. This is now fixed: it uses DataPostprocessor::evaluate_scalar_field() and DataPostprocessor::evaluate_vector_field(), like all other users of the DataPostprocessor class.
    (Wolfgang Bangerth, 2017/04/16)

  10. Fixed: FETools::extrapolate also works for BlockVector types.
    (Daniel Arndt, 2017/04/13)

  11. Fixed: When initializing a LinearAlgebra::distributed::Vector and omitting zeroing the entries, ghost entries were left undefined, leading to use of invalid memory when calling compress() without a previous zero_out_ghosts() also when the local range was completely valid. This is now fixed.
    (Martin Kronbichler, 2017/04/12)

  12. New: Augment python interface of Point: add operators to modify point, a function to compute the distance between points, and functions to compute norms.
    (Bruno Turcksin, 2017/04/11)

  13. New: There is now a function TableHandler::declare_entry() that creates a column of a table without actually putting a value into it.
    (Wolfgang Bangerth, 2017/04/11)

  14. New: There is now a function TableHandler::start_new_row() that fills all entries of the current row (if any) that hadn't been filled, and thus starts a new row of the table. interface.
    (Wolfgang Bangerth, 2017/04/09)

  15. New: The class FESystem now implements the FiniteElement::convert_generalized_support_point_values_to_nodal_values() interface.
    (Wolfgang Bangerth, 2017/04/05)

  16. New: The classes FE_Q, FE_DGQ, and FE_DGQArbitraryNodes now implement the FiniteElement::convert_generalized_support_point_values_to_nodal_values() interface.
    (Wolfgang Bangerth, 2017/04/05)

  17. New: The FEEvaluation::read_dof_values and FEEvaluation::distribute_local_to_global now use dedicate gather (AVX2, AVX-512) and scatter (AVX-512) instructions for faster vector access if those are available.
    (Martin Kronbichler, 2017/03/24)

  18. New: The tensor product kernels used by FEEvaluation have gained a faster variant for evaluating gradients derived from spectral identities. This improves performance of the Laplace operator evaluation by 10-20% in the computation-bound case.
    (Martin Kronbichler, 2017/03/24)

  19. New: DoFTools::extract_dofs_with_support_contained_within() returns a set of degrees of freedom whose support is entirely contained within the cells for which the predicate returns true.
    (Denis Davydov, 2017/03/24)

  20. Extend: The two overloaded functions GridTools::find_active_cell_around_point() now take an optional custom mask for vertices to narrow down the search for surrounding cells.
    (Vishal Boddu, 2017/03/22)