Reference documentation for deal.II version Git f346ebc02b 2020-06-06 16:01:17 +0200
\(\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.


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

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

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

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

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

  6. Removed: The following preprocessor definitions have been removed from DEAL_II_NOEXCEPT, DEAL_II_USE_MT_POSIX, DEAL_II_USE_MT_POSIX_NO_BARRIERS
    (Matthias Maier, 2020/05/23)

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

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

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

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

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


  1. New: The multithreading framework in the library has been completely revamped: Intel TBB has been replaced by cpp-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)

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

Specific improvements

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

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

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

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

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

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

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

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

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

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

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

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

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

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