From: Matthias Maier Date: Fri, 4 May 2018 19:45:38 +0000 (-0500) Subject: Update the changelog file for the release. X-Git-Tag: v9.0.0-rc1~11^2~2 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bbf039dc5c77c17d444c37cf049527d360a9d8d6;p=dealii.git Update the changelog file for the release. --- diff --git a/doc/news/8.5.0-vs-9.0.0.h b/doc/news/8.5.0-vs-9.0.0.h new file mode 100644 index 0000000000..9a7a0beadc --- /dev/null +++ b/doc/news/8.5.0-vs-9.0.0.h @@ -0,0 +1,3135 @@ +// --------------------------------------------------------------------- +// +// Copyright (C) 2017 - 2018 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 at +// the top level of the deal.II distribution. +// +// --------------------------------------------------------------------- + +/** +@page changes_between_8_5_0_and_9_0_0 Changes between Version 8.5.0 and 9.0.0 + +

+This is the list of changes made between the release of deal.II version +8.5.0 and that of 9.0.0. All entries are signed with the names of the +author. +

+ + + + + + +

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. + New: Every function in the GridGenerator namespace now attaches a default manifold to the + curved parts of the boundary of the domain, and sets reasonable defaults for manifold indicators in the + domain, independently on the boundary indicators. +
    + (Luca Heltai, Daniel Arndt, Jean-Paul Pelteret, David Wells, 2018/04/17) +
  2. + +
  3. + New: The implementation of the divergence in FEValuesExtractors::Tensor + was changed so that the gradient operator is contracted from the right. + This is done in order to make it consistent with gradient of the + second order tensor, namely $Grad(T) : I = Div(T)$. +
    + (Denis Davydov, 2018/04/12) +
  4. + +
  5. + New: The Manifold class now requires the implementation of a Manifold::clone() method in + all derived classes. +
    + (Luca Heltai, 2018/04/08) +
  6. + +
  7. + New: The class FE_DGQHermite has been switched to the more stable polynomial + basis Polynomials::HermiteLikeInterpolation. This changes the representation + of the numbers by the FE_DGQHermite class. The change is yet highly beneficial + because it significantly improves the accuracy (in terms of roundoff) for this + basis and also reduces iteration counts for some iterative solvers with simple + preconditioner ingredients such as point-Jacobi or point-Jacobi smoothing. +
    + (Martin Kronbichler, 2018/02/09) +
  8. + +
  9. + Changed: FETools::get_fe_by_name returns a std::unique_ptr instead of a + owning raw pointer to prevent creating memory leaks. +
    + (Daniel Arndt, 2018/02/09) +
  10. + +
  11. + Changed: The function Mapping::clone (and all inheriting classes' implementations, such as MappingQ1Eulerian::clone) now return a unique_ptr>. +
    + (David Wells, 2018/02/08) +
  12. + +
  13. + Changed: The GridRefinement functions only allow Vector objects + to be passed in as criteria. +
    + (Daniel Arndt, 2018/02/04) +
  14. + +
  15. + Changed: TableIndices uses std::size_t for index access, + LAPACKFullMatrix::size_type is types::blas_int and + FullMatrix::size_type is std::size_t. +
    + (Daniel Arndt, 2018/02/02) +
  16. + +
  17. + Changed: The classes OpenCASCADE::NormalProjectionBoundary, + OpenCASCADE::DirectionalProjectionBoundary + and OpenCASCADE::NormalToMeshProjectionBoundary are rebased + from Boundary to FlatManifold. +
    + (Daniel Arndt, 2018/01/05) +
  18. + +
  19. + Changed: It is now necessary to explicitly enable MPI support when + configuring deal.II via -DDEAL_II_WITH_MPI=ON, or -DWITH_MPI=ON on the + command line. The old behavior of just specifying an MPI compiler wrapper + via environment, or CMAKE_(C|CXX)_COMPILER does not work any more. +
    + (Matthias Maier, 2018/01/01) +
  20. + +
  21. + Changed: The type LAPACKFullMatrix::size_type is now unsigned int, which matches FullMatrix::size_type. +
    + (David Wells, 2017/12/20) +
  22. + +
  23. + Changed: Change the logic of DoFTools::get_subdomain_association to have the + degrees of freedom along a refinement edge be now all given to the processor + with the smallest subdomain_id. +
    + (Alexander Grayver, 2017/12/11) +
  24. + +
  25. + Changed: The parameters contained in struct SolverQMRS::AdditionalData have + been changed in order to meet the rewritten algorithm. See the class documentation + for more details. +
    + (Ingo Kligge, 2017/12/06) +
  26. + +
  27. + Changed: The default partitioner for parallel::shared::Triangulation + is Zoltan. +
    + (Daniel Arndt, 2017/11/28) +
  28. + +
  29. + Changed: The minimal supported Trilinos version is 12.4. +
    + (Daniel Arndt, 2017/11/18) +
  30. + +
  31. + Removed: The default constructor for ArrayView was removed since + an object constructed in this way can't be used in any sensible way. +
    + (Daniel Arndt, 2017/11/17) +
  32. + +
  33. + Changed: The many KellyErrorEstimator::estimate() overloads all have + an argument that represents the Neumann boundary values (if the + solution of the PDE satisfies Neumann boundary conditions on parts of + the boundary). They used to just be of type Function, but this + has now been changed to Function (or, more precisely, + FunctionMap, which stores a map to Function + objects) where @p number is the underlying data type of the input + vector. In other words, if you are using a regular Vector (or + PETSc or Trilinos equivalents), then nothing has changed since @p + number is @p double, which is the default for the Function class. On + the other hand, if you are using a Vector>, for + example, then you need to pass a Function> -- + which of course makes sense because the Neumann boundary values of a + complex-valued solution should also be complex-valued. +
    + (Wolfgang Bangerth, 2017/11/17) +
  34. + +
  35. + Changed: The distribution of degrees of freedom along a refinement edge for a parallel::shared::Triangulation has been changed to mimic that of a parallel::distributed::Triangulation, that is, they are now all given to the processor with the smallest subdomain_id. +
    + (Conrad Clevenger, 2017/11/13) +
  36. + +
  37. + Changed: ParameterHandler::print_parameters() in LaTeX format now correctly + escapes special characters. As a consequence, the names of labels changed + because they are now mangled. See the documentation for more details. +
    + (Timo Heister, 2017/11/03) +
  38. + +
  39. + Removed: The BZIP2 dependency has been removed as it was not used + in the library anymore. +
    + (Daniel Arndt, 2017/10/25) +
  40. + +
  41. + Changed: The direction argument of the DoFRenumbering::downstream() + and related functions have been changed from a Point to a + Tensor<1,dim> type, since that is the correct data type for a + direction vector. +
    + (Wolfgang Bangerth, 2017/10/23) +
  42. + +
  43. + Changed: LAPACKSupport::Properties is renamed to LAPACKSupport::Property to be + consistent with LAPACKSupport::State. +
    + (Denis Davydov, 2017/08/24) +
  44. + +
  45. + Changed: The virtual function SolverRichardson::criterion() now + receives the residual and preconditioned residual vectors as + arguments, rather than accessing it through the member variables of + the class. It has also been made @p const. +
    + (Wolfgang Bangerth, 2017/09/12) +
  46. + +
  47. + Changed: The methods +
      +
    1. Manifold::get_new_point
    2. +
    3. Manifold::project_to_manifold
    4. +
    + have had their declarations changed in an incompatible manner: these three + methods now take ArrayView arguments instead of std::vectors. This + change was done for performance reasons: before this change about a third of the + time spent generating a curved grid (in this particular benchmark, a circle + described with polar coordinates and a transfinite interpolation) was used in + allocating and freeing memory used by the std::vector arguments to + Manifold::get_new_point() even though the sizes of the arrays are usually known + at compilation time. This change completely eliminates this allocation cost. + The method Manifold::add_new_points() has been removed in favor of + Manifold::get_new_points(), which also uses ArrayView arguments instead of + std::vectors. +
    + (David Wells, 2017/09/10) +
  48. + +
  49. + Changed: deal.II now requires BOOST version 1.59 or newer. +
    + (David Wells, 2017/09/04) +
  50. + +
  51. + Changed: LAPACKSupport::upper_triangle and LAPACKSupport::lower_triangle are + renamed to LAPACKSupport::upper_triangular and LAPACKSupport::lower_triangular, + respectively. +
    + (Denis Davydov, 2017/08/24) +
  52. + +
  53. + Changed: SolverGMRES used to notify via deallog when re-orthogonalization + of the Arnoldi vectors kicks in. Now, there is a slot one can connect to + retrieve this information. By default nothing is printed. +
    + (Daniel Arndt, 2017/09/02) +
  54. + +
  55. + Fixed: FiniteElement::get_generalized_support_points() now always returns a + list of unique points. This is in contrast to the old behavior where + get_generalized_support_points() returned a repeated list of (nodal) + support points for an FE_System consisting of Lagrangian elements. +
    + (Matthias Maier, 2017/08/31) +
  56. + +
  57. + Changed: Specialization of the ProductType class are now implemented through + specialization of the class internal::ProductTypeImpl . This was done in order + to ensure that product operations performed with qualified number types do not + result in the intended specializations being overlooked by the compiler. +
    + (Jean-Paul Pelteret, Wolfgang Bangerth, 2017/08/24) +
  58. + +
  59. + Changed: The VectorMemory::Pointer class used to have an automatic + conversion operator to the underlying pointer-to-vector object. As + part of a rewrite of this class, this conversion (rarely used in + practice) has been removed. +
    + (Wolfgang Bangerth, 2017/08/22) +
  60. + +
  61. + Changed: The constructors SymmetricTensor (const Tensor &) and + Tensor (const array_type &) have been marked as 'explicit'. +
    + (Daniel Arndt, 2017/08/20) +
  62. + +
  63. + Changed: The configuration file deal.II/base/config.h has been + thoroughly cleaned up. As a result, the following preprocessor symbols (which + were either never used or were workarounds for older, now unsupported compilers) + are no longer defined: +
      +
    • DEAL_II_EXPLICIT_CONSTRUCTOR_BUG +
    • DEAL_II_MEMBER_VAR_SPECIALIZATION_BUG +
    • DEAL_II_BOOST_BIND_COMPILER_BUG +
    • DEAL_II_HAVE_ISNAN +
    • DEAL_II_STD_ISNAN +
    • DEAL_II_HAVE_UNDERSCORE_ISNAN +
    • DEAL_II_HAVE_ISFINITE +
    • DEAL_II_HAVE_SYS_TIMES_H +
    • DEAL_II_HAVE_TIMES +
    • DEAL_II_HAVE_SYS_TYPES_H +
    • DEAL_II_HAVE_SYS_TIMES_H +
    +
    (Matthias Maier and David Wells, 2017/08/08 - 2017/08/24) +
  64. + +
  65. + Changed: The member function Boundary::project_to_surface is now ignored in the + function GridTools::fix_up_distorted_child_cells. Instead, + GridTools::fix_up_distorted_child_cells uses an internal function that + duplicates the algorithm used by StraightBoundary::project_to_surface, which was + the only place project_to_surface was implemented in the library. +
    + (Luca Heltai, David Wells, 2017/08/12) +
  66. + +
  67. + Changed: Triangulation::get_manifold() will now return a FlatManifold instead of + a StraightBoundary in the case that no manifold description has been attached to + a provided manifold ID. +
    (Luca Heltai, David Wells, 2017/08/12) +
  68. + +
  69. + Removed: Some old functionality has been removed from LogStream: +
      +
    • The reproducible test functionality has been removed. + This includes test_mode(), threshold_double(), + and threshold_float(). Use numdiff, or other tools that can + do output comparison with small numerical differences instead.
    • +
    • The log_cerr() function has been removed. +
    • The timing mechanism has been removed. This includes + timestamp(), log_execution_time() and + log_time_differences(). Use the Timer, TimerOutput and + TimerOutput::Scope classes instead.
    • +
    • LogStream now defaults to write to std::cout instead of + std::cerr
    • +
    +
    + (Matthias Maier, 2017/08/10) +
  70. + +
  71. + Changed: DataOutBase (and derived classes) no longer sets floating point + output precision of ostreams. +
    + (Matthias Maier, 2017/08/09) +
  72. + +
  73. + Changed: The types::boundary_id and types::material_id types have been changed + from unsigned char to unsigned int. +
    + (Jean-Paul Pelteret, 2017/08/07) +
  74. + +
  75. + Deprecated: A number of classes have been deprecated in favor of the + LinearOperator concept: +
      +
    • PointerMatrix, PointerMatrixAux +
    + Use the LinearOperator class instead, see the module on + @ref LAOperators "linear operators" for more details. +
    + (Matthias Maier, 2017/07/14) +
  76. + +
  77. + Changed: In 1D, MappingQGeneric now considers a cell to have multiple manifolds if the manifold attached to the cell does not match one of the manifolds attached to a face (i.e., vertex). +
    + (David Wells, 2017/07/10) +
  78. + +
  79. + Changed: The SynchronousIteartors::iterators member variable has been + made private, as mentioned in the changelog of the previous + release. It can be accessed via SynchronousIterators::operator*(), + however. +
    + (Wolfgang Bangerth, 2017/07/11) +
  80. + +
  81. + Changed: The TableIndices class had a single constructor that just + took as many indices as one wanted, and padded any unassigned indices + with numbers::invalid_unsigned_int. This invited mistakes and indeed + led to difficult to track down errors. +
    + This constructor is therefore now deprecated, and has been replaced by + a series of constructors with between one and five arguments that can + be used for objects of type TableIndices<1> to TableIndices<5>. +
    + (Wolfgang Bangerth, 2017/07/10) +
  82. + +
  83. + Changed: In 1D, the face values calculated by MappingManifold now use the manifold attached to the relevant vertex instead of the manifold on the current face. +
    + (David Wells, 2017/07/08) +
  84. + +
  85. + Changed: Timer::print_data doesn't restrict its output to the first MPI process + anymore but leaves such a choice to the stream given. +
    + (Daniel Arndt, 2017/06/27) +
  86. + +
  87. + Changed: The restart_parameter member variable of + TrilinosWrappers::SolverGMRES::AdditionalData has been removed. + This value is now stored as gmres_restart_parameter in the base class + TrilinosWrappers::SolverBase::AdditionalData. +
    + (Jean-Paul Pelteret, 2017/06/26) +
  88. + +
  89. + Changed: The deprecated data in SolverCG::AdditionalData + and SolverGMRES::AdditionalData::compute_eigenvalues have been removed. + Use the respective connect_* member functions instead. +
    + (Daniel Arndt, 2017/06/12) +
  90. + +
  91. + Changed: The deprecated member functions add(), normalize(), conjugate(), + abs(), sadd(), equ() and mult() in the vector classes have been removed. +
    + (Daniel Arndt, 2017/06/12) +
  92. + +
  93. + Deprecated: The ParameterHandler::print_parameters_section() function + has been deprecated. +
    + (Wolfgang Bangerth, 2017/06/07) +
  94. + +
  95. + Changed: Versions of PETSc prior to 3.3.0 are no longer supported. +
    + (David Wells, 2017/06/03) +
  96. + +
  97. + Changed: The FiniteElement::clone() function and all of its + implementations in derived classes now return a std::unique_ptr rather + than a plain pointer to a finite element object. User-implemented + finite element classes need to be adjusted accordingly. +
    + (Wolfgang Bangerth, 2017/06/01) +
  98. + +
  99. + Changed: The deprecated function SparsityTools::reorder_Cuthill_McKee() + acting on a SparsityPattern object has been removed. + Use the one acting on a DynamicSparsityPattern instead. +
    + (Daniel Arndt, 2017/05/15) +
  100. + +
  101. + Changed: The deprecated functions BlockSparseMatrixEZ::n_rows() + and BlockSparseMatrixEZ::n_cols() have been removed. + Use BlockSparseMatrixEZ::m() and BlockSparseMatrixEZ::n() instead. +
    + (Daniel Arndt, 2017/05/14) +
  102. + +
  103. + Changed: The deprecated function Utilities::System::job_supports_mpi() + has been removed. Use Utilities::MPI::job_supports_mpi() instead. +
    + (Daniel Arndt, 2017/05/14) +
  104. + +
  105. + Removed: The deprecated serial Trilinos vector classes have been removed. +
    + (Daniel Arndt, 2017/05/08) +
  106. + +
  107. + Removed: The deprecated serial PETSc vector classes have been removed. +
    + (David Wells, 2017/05/06) +
  108. + +
  109. + Changed: The deprecated member functions in the classes + TrilinosWrappers::BlockVector, TrilinosWrappers::MPI::BlockVector, + TrilinosWrappers::Vector and TrilinosWrappers::MPI::Vector + have been removed. +
    + (Daniel Arndt, 2017/05/05) +
  110. + +
  111. + Changed: The deprecated version of Manifold::get_new_point() that took + an argument of type Quadrature has been removed. Use the other variant + of that function instead. The same has been done to all + implementations of that interface in derived classes. +
    + (Wolfgang Bangerth, 2017/05/05) +
  112. + +
  113. + Changed: The deprecated typedef + FEFieldFunction::ExcPointNotAvailableHere has been removed. Use + VectorTools::ExcPointNotAvailableHere instead. +
    + (Wolfgang Bangerth, 2017/05/04) +
  114. + +
  115. + Changed: The deprecated variant of + GridTools::get_face_connectivity_of_cells() has been removed. Use the + other variant instead. +
    + (Wolfgang Bangerth, 2017/05/04) +
  116. + +
  117. + Changed: The deprecated constructors of MappingQEulerian + and MappingQ1Eulerian have been removed. Use the other constructor + of each class instead. +
    + (Wolfgang Bangerth, 2017/05/04) +
  118. + +
  119. + Changed: The deprecated function FEValuesBase::transform() + has been removed. It only forwarded the call to the Mapping object + used by the FEValuesBase object. Use the corresponding function of the + mapping instead. +
    + (Wolfgang Bangerth, 2017/05/04) +
  120. + +
  121. + Changed: The deprecated member variables @p supports_distributed_data + that was present in all vector classes has been removed. If you needed + this functionality, use the type trait is_serial_vector instead. +
    + (Wolfgang Bangerth, 2017/04/30) +
  122. + +
  123. + 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) +
  124. + +
  125. + 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) +
  126. + +
  127. + 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) +
  128. + +
  129. + Removed: DataPostprocessor had member functions + compute_derived_quantities_*() that had previously + already been deprecated. These have now been removed. +
    + (Wolfgang Bangerth, 2017/04/24) +
  130. + +
  131. + Removed: The ParameterHandler::read_input() function and friends have + been removed. They were already deprecated in the previous release. +
    + (Wolfgang Bangerth, 2017/04/21) +
  132. + +
  133. + 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) +
  134. + +
  135. + 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) +
  136. + +
  137. + 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) +
  138. + +
  139. + Removed: A number of deprecated classes have been removed in favor of the + new LinearOperator concept: +
      +
    • BlockDiagonalMatrix +
    • InverseMatrixRichardson +
    • IterativeInverse +
    • MeanValueFilter +
    • ProductMatrix +
    • ProductSparseMatrix +
    • ScaledMatrix +
    • SchurMatrix +
    • ShiftedMatrix +
    • ShiftedMatrixGeneralized +
    • TransposeMatrix +
    + Use the LinearOperator class instead, see the module on + @ref LAOperators "linear operators" for more details. +
    + (Matthias Maier, 2017/04/06 - 2018/05/03) +
  140. + +
  141. + 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) +
  142. + +
  143. + Removed: The deprecated MPI communicator and the constructor which used it were + removed from the MatrixFree::AdditionalData class. +
    + (Denis Davydov, 2017/03/26) +
  144. + +
  145. + Removed: The deprecated CMake flag DEAL_II_CXX11_FLAG has been + removed. +
    + (David Wells, 2017/03/23) +
  146. + +
  147. + 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) +
  148. + +
+ + + + + +

General

+ +
    + +
  1. + New: The MatrixFree framework has been reworked to also support face integrals + in DG. The new function MatrixFree::loop() takes three function pointers for + workers on cells, interior faces and boundary faces. The loop can perform the + data exchange with MPI and is also parallelized with threads taking into + account the face dependencies. The new class FEFaceEvaluation implements the + respective evaluation and access routines for face terms. +
    + (Katharina Kormann, Martin Kronbichler, 2018/04/27) +
  2. + +
  3. + New: Triangulation now uses std::unique_ptr to store Manifolds, and duplicates the Manifolds when + Triangulation::set_manifold() is called. This allows the construction of the Manifold objects + to be independent of the Triangulation. In particular, it will be possible to associate + to the Triangulation reasonable default Manifold descriptors, that will be copied + around together with the Triangulation itself. +
    + (Luca Heltai, 2018/04/06) +
  4. + +
  5. + Changed: The bundled version of Intel Threading Building Blocks has been updated to 2018 U2. +
    (David Wells, 2018/03/02) +
  6. + +
  7. + Improved: The manifold smoothing algorithms applied in the Triangulation class + and MappingQGeneric have been changed from the old Laplace-style smoothing to + a transfinite interpolation that linearly blends between the descriptions on + the faces around a cell. The old transformation introduced boundary layers + inside cells that prevented convergence rates from exceeding 3.5 in the global + L2 errors on typical settings. This change also considerably improves mesh + quality on settings where curved descriptions are only applied to the boundary + rather than the whole volume. +
    + (Martin Kronbichler, 2017/12/04) +
  8. + +
  9. + New: Add ScaLAPACKMatrix and ProcessGrid wrappers for high-performance dense linear + algebra routines for parallel distributed memory machines. +
    + (Denis Davydov, Benjamin Brands, 2017/11/20) +
  10. + +
  11. + New: The new ParticleHandler class can store and organize a collection of particles, + and provide information about their properties. It is currently limited to parallel + distributed computations and specific applications, but will be extended over time. +
    + (Rene Gassmoeller, 2017/11/10) +
  12. + +
  13. + New: The majority of deal.II classes that deal with solution vectors + are now also instantiated for complex-valued vectors. In other words, + complex-valued vectors should now be supported at the same level as + real-valued vectors. +
    + (Wolfgang Bangerth, 2017/11/08) +
  14. + +
  15. + New: The new namespace Rol contains an adaptor class that provides + the implementation of the ROL::Vector interface. + The Trilinos package, Rapid Optimization Library (ROL), can solve unconstrained + and constrained optimization problems, and optimization problems under + uncertainty. +
    + (Vishal Boddu 2017/11/02) +
  16. + +
  17. + New: Using the Physics::Notation::Kelvin class, it is possible to store and + retrieve tensors and symmetric tensors in or from a compressed format. +
    + (Jean-Paul Pelteret, 2017/10/16) +
  18. + +
  19. + New: The function distribute_mg_dofs has been written for a parallel::shared::Triangulation. This allows for geometric multigrid computations on an adaptively refined mesh using a shared triangulation with the possibility of a user defined partitioning of the active and level cells. +
    + (Conrad Clevenger, 2017/10/10) +
  20. + +
  21. + New: Added support for the KINSOL solver of the SUNDIALS + library. KINSOL is a solver for nonlinear algebraic systems. + It includes a Newton-Krylov solver as well as Picard and + fixed point solvers, both of which can be accelerated with + Anderson acceleration. +
    + (Luca Heltai, 2017/09/28) +
  22. + +
  23. + New: Added support for the ARKode solver of the SUNDIALS + library. ARKode is a solver library that provides + adaptive-step time integration of the initial value problem + for systems of stiff, nonstiff, and multi-rate systems of + ordinary differential equations (ODEs) given in linearly + implicit form. +
    + (Luca Heltai, 2017/09/27) +
  24. + +
  25. + New: There is now support for the storage of Particles and their + properties in the new namespace Particles. +
    + (Rene Gassmoeller, 2017/09/22) +
  26. + +
  27. + New: A new ParameterAcceptor class has been added to the library. + The class is intended to be used as a base class for any class + that wants to handle parameters using the ParameterHandler class. + If you derive all your classes from ParameterAcceptor, and declare + your parameters either with parse/declare_parameters methods or + via the ParameterAcceptor::add_parameter() method, then the declaring + and parsing of your parameter files will be automatically managed + by the ParameterAcceptor::initialize() function. +
    + (Luca Heltai, 2017/09/20) +
  28. + +
  29. + New: Added support for the Open Asset Import Library (Assimp) + (http://assimp.sourceforge.net/). This library can be used + to read about 40 different 3D graphics formats, used in 3D + modelers (such as Blender, Maya, etc.). Some of these formats + contain mesh information, that in turn can be read + into deal.II Triangulation<2,3> objects. +
    + (Luca Heltai, 2017/09/16) +
  30. + +
  31. + New: A new GridTools::Cache class + allows caching of some expensive data of the + Triangulation class, computed generally using + functions in GridTools. +
    + (Luca Heltai, 2017/09/14) +
  32. + +
  33. + New: A new SUNDIALS::IDA class has been added that interfaces + the SUNDIALS IDA library (https://computation.llnl.gov/projects/sundials) + This class can be used to solve differential algebraic equations + using IDA (an implicit differential algebraic equation solver, that + supports variable step and variable order BDF schemes). +
    + (Luca Heltai, 2017/09/12) +
  34. + +
  35. + Improved: The support for non-Lagrangian elements with generalized support + points has been vastly improved. FESystem::get_generalized_support_point() + now returns a list of unique generalized support points for the finite + element system. In order to do interpolation a function + FiniteElement::convert_generalized_support_points_to_dof_values() can be + used. This interface is implement for a wide variety of base classes and + FESystem. TODO +
    (Matthias Maier, Luca Heltai, 2017/08/31) +
  36. + +
  37. + New: A new KDTreeDistance class has been added that interfaces + the nanoflann library (https://github.com/jlblancoc/nanoflann). + This class can be used to extract nearest neighbour information + on collection of points, query for the closest points to a target + point or all points contained within a given distance. +
    + (Luca Heltai, 2017/08/13) +
  38. + +
  39. + New: A new MeshWorker::mesh_loop() function has been added + that performs the same tasks of the MeshWorker::loop() function + without forcing the users to adhere to a specific interface. +
    + (Luca Heltai, 2017/08/12) +
  40. + +
  41. + New: The eigenvectors of a rank-2 symmetric tensor can now be computed using one + of three approaches through the eigenvectors() function. The three algorithms + that have been implemented are: + 1. The QL algorithm with implicit shifting. + 2. A hybrid algorithm that preferentially uses an analytical algorithm + and falls back to the QL algorithm if the calculations are deemed + inaccurate. + 3. The Jacobi algorithm. +
    + (Joachim Kopp, Jean-Paul Pelteret, Ester Comellas, 2017/07/27) +
  42. + +
  43. + New: The eigenvalues of a rank-2 symmetric tensor can now be computed using an + analytical approach via the eigenvalues() function. +
    + (Jean-Paul Pelteret, Ester Comellas, 2017/07/27) +
  44. + +
  45. + New: The new namespace Patterns::Tools contains + utilities that can be used to convert from complicated types + to strings and vice versa. These tools have been put to use + in the method ParameterHandler::add_parameter() that allows + users to perform in one single call the operations + ParameterHandler::declare_parameter(), + ParameterHandler::get() and to convert the string to a valid + value stored in the variable that is given as a parameter to + ParameterHandler::add_parameter(). +
    + (Luca Heltai, 2017/07/20) +
  46. + +
  47. + New: The cmake configuration now supports unity builds with the option -DDEAL_II_UNITY_BUILD=ON. This option speeds up the build by about 10 to 25%. +
    (David Wells, 2017/07/20) +
  48. + +
  49. + New: The hp::DoFHandler class can now work with shared triangulations + of type parallel::shared::Triangulation. +
    + (Wolfgang Bangerth, 2017/07/17) +
  50. + +
  51. + New: SolverFIRE implements FIRE (Fast Inertial Relaxation Engine) for solving + the problem of minimization of a given objective function. +
    + (Vishal Boddu, Denis Davydov 2017/07/11) +
  52. + +
  53. + New: A new manifold class TransfiniteInterpolationManifold implementing an + interpolation from a curved boundary description to the interior has been + added. This class enables high-order convergence rates of more than three in + the power of the mesh size for situations where a curved manifold can only be + prescribed to the boundary but not in a whole volume. +
    + (Martin Kronbichler, Luca Heltai, 2017/06/01) +
  54. + +
+ + + + + +

Specific improvements

+ +
    + +
  1. + New: Gmsh::create_triangulation_from_boundary_curve is a new method that constructs a grid from an + OpenCASCADE TopoDS_Edge object. It offers the reverse functionality of the method + OpenCASCADE::create_curves_from_triangulation_boundary(). +
    + (Luca Heltai, 2018/05/03) +
  2. + +
  3. + New: NonMatching::create_coupling_sparsity_pattern and NonMatching::create_coupling_mass_matrix now have an + overloaded version that takes an additional GridTools::Cache, instead of + building it inside the functions. In the process, NonMatching::create_coupling_sparsity_pattern + gained also an additional ConstraintMatrix argument to reflect the same argument list of + its companion function NonMatching::create_coupling_mass_matrix. +
    + (Luca Heltai, 2018/05/02) +
  4. + +
  5. + New: Utilities::MPI::create_group allows using the functionality provided by + MPI_Comm_create_group to be used also for a non-MPI-3.0-conforming MPI + dependency. +
    + (Daniel Arndt, 2018/04/28) +
  6. + +
  7. + New: There are new functions FEEvaluation::gather_evaluate() and + FEEvaluation::integrate_scatter() that combine the vector access through + FEEvaluation::read_dof_values() and FEEvaluation::evaluate() as well as + FEEvaluation::integrate() and + FEEvaluation::distribute_local_to_global(), respectively. This allows to + write somewhat more compact code and is also more efficient in the case + of FEFaceEvaluation where equivalent functions exists. +
    + (Katharina Kormann, Martin Kronbichler, 2018/04/27) +
  8. + +
  9. + New: The function MatrixFree::cell_loop takes an optional boolean + argument that enables the class to zero vectors within the loop for + better cache locality, clearing only that part of the vector that will + be accessed soon. +
    + (Katharina Kormann, Martin Kronbichler, 2018/04/27) +
  10. + +
  11. + New: The new field + MatrixFree::AdditionalData::cell_vectorization_categories allows to + control the way batches of cells are formed in MatrixFree by assigning + different numbers to different parts in the domain. +
    + (Katharina Kormann, Martin Kronbichler, 2018/04/27) +
  12. + +
  13. + New: The class FEEvaluation can now be constructed for only a subset of + the components inside an FESystem, picking e.g. the pressure part + outside of a Taylor-Hood element. +
    + (Katharina Kormann, Martin Kronbichler, 2018/04/27) +
  14. + +
  15. + New: FECollection gained an equality comparison operator. Both FiniteElement + and FECollcetion have a non-equality comparison operator now. +
    + (Daniel Arndt, 2018/04/25) +
  16. + +
  17. + New: Added missing implementation of MappingFEField::get_vertices. +
    + (Luca Heltai, 2018/04/24) +
  18. + +
  19. + Updated: deal.II is now compatible with PETSc version 3.9.0, SLEPC version + 3.9.0 +
    + (Matthias Maier, 2018/04/23) +
  20. + +
  21. + New: GridTools::minimal_cell_diameter and GridTools::maximal_cell_diameter now take an optional Mapping + argument, that allows one to compute minimal and maximal cell diameters of deformed grids. +
    + (Luca Heltai, 2018/04/23) +
  22. + +
  23. + Fixed: GridTools::distributed_compute_point_locations now returns the correct + maps values (third component of the output tuple). Added a test to check it. +
    + (Giovanni Alzetta, 2018/04/23) +
  24. + +
  25. + New: Add direct solvers (Cholesky and LU factorization) to solve problems on the + GPU +
    + (Bruno Turcksin, 2018/04/23) +
  26. + +
  27. + New: Utilities::System::get_current_vectorization_level() returns the currently used vectorization support in string format. +
    + (Timo Heister, 2018/04/21) +
  28. + +
  29. + Changed: In accordance with dealii::DoFHandler, hp::DoFHandler stores a copy + of the FECollection instead of a pointer. +
    + (Daniel Arndt, 2018/04/21) +
  30. + +
  31. + Add default constructor and member function `initialize` to hp::DoFHandler, + making the interface consistent with DoFHandler. +
    + (Ce Qin, 2018/04/20) +
  32. + +
  33. + New: Cell weighting can now be taken into account by the Metis partitioner. This can be done directly + using the new GridTools::partition_triangulation() function that accepts a vector of cell weights, + or by adding the appropriate signal to the triangulation itself (Triangulation::Signals::cell_weight). +
    + (Jean-Paul Pelteret, 2018/04/17) +
  34. + +
  35. + Changed: GridTools::distributed_compute_point_locations now takes as input the + global description of the manifold using bounding boxes. +
    + (Giovanni Alzetta, 2018/04/16) +
  36. + +
  37. + New: Introduced Triangulation::reset_manifold(), as a substitute for Triangulation::set_manifold() + with only one argument. The set_manifold() method with one argument only was used to reset the manifold + object. This method is now deprecated, in favor of the new, more explicative, method. + An additional Triangulation::reset_all_manifolds() method has been added to remove all manifold + objects from the triangulation. +
    + (Luca Heltai, 2018/04/14) +
  38. + +
  39. + New: GridTools::map_boundary_to_manifold_ids() allows you to set manifold ids on the + boundary according to a given map of boundary to manifold ids. +
    + (Luca Heltai, 2018/04/13) +
  40. + +
  41. + Fixed: Ensure that numbers::NumberTraits and its corresponding operations are + well defined for all supported auto-differentiable numbers. +
    + (Jean-Paul Pelteret, 2018/04/12) +
  42. + +
  43. + Fixed: The SymmetricTensor class was previously not instantiated for + auto-differentiable numbers. +
    + (Jean-Paul Pelteret, 2018/04/12) +
  44. + +
  45. + Fixed: When using diagonal SymmetricTensors with automatic-differentiable numbers, computations + using the eigenvalue() and eigenvector() functions would return correct values of the + eigenvalues/vectors. However, the derivatives of these values/vectors were incorrect as + the sensitivities of the eigenvalues/vectors with respect to one another was not encoded + in the returned result. Therefore, under these specific conditions the returned result is now + a more coarse approximation for the eigenvalues/vectors but with the trade-off that a + meaningful approximation of the derivative of the result can now be computed. +
    + (Jean-Paul Pelteret, 2018/04/12) +
  46. + +
  47. + Fixed: The Tensor class was previously not instantiated for + auto-differentiable numbers. +
    + (Jean-Paul Pelteret, 2018/04/12) +
  48. + +
  49. + Fixed: The Tensor::invert() function would previously not work with some Sacado + number types. This has now been fixed. +
    + (Jean-Paul Pelteret, 2018/04/12) +
  50. + +
  51. + Fixed: Some compile-times errors would previously appear for some arithmetic functions + when using Sacado::Fad::DFad types (e.g. Physics::Elasticity::Kinematics::F_iso() ). + By defining the ProductType Sacado expression templates, this issue is now avoided. +
    + (Jean-Paul Pelteret, 2018/04/12) +
  52. + +
  53. + New: FEValuesExtractors::Tensor now supports calculation of gradients. +
    + (Denis Davydov, 2018/04/12) +
  54. + +
  55. + New: The two new functions Polynomials::jacobi_polynomial_value() and + Polynomials::jacobi_polynomial_roots() provide a user-visible + implementation of Jacobi polynomials. This functionality has previously only + been available internally in the library. +
    + (Martin Kronbichler, 2018/04/06) +
  56. + +
  57. + New: Patterns::Tools::to_string() and Patterns::Tools::to_value() simplify the conversion to and from + strings of arbitrarily complex types. +
    + (Luca Heltai, 2018/04/06) +
  58. + +
  59. + New: Extend GridGenerator::extrude_triangulation to using exact slicing z-axis + values and reimplement the exsiting GridGenerator::extrude_triangulation using + the newly developed overload. +
    + (Weixiong Zheng, 2018/04/05) +
  60. + +
  61. + New: There is now a function Utilities::dynamic_unique_cast() that does for + `std::unique_ptr` objects what `dynamic_cast` does for regular pointers. +
    + (Wolfgang Bangerth, 2018/04/03) +
  62. + +
  63. + Improved: VectorTools::get_position_vector() now supports parallel triangulations. +
    + (Denis Davydov, 2018/04/01) +
  64. + +
  65. + New: Multigrid classes obtained the new signals + mg::Signals::transfer_to_mg, + mg::Signals::transfer_to_global, + mg::Signals::coarse_solve, + mg::Signals::restriction, + mg::Signals::prolongation, + mg::Signals::pre_smoother_step, + mg::Signals::post_smoother_step + that functions can be connected to. +
    + (Daniel Arndt, Timo Heister, 2018/03/31) +
  66. + +
  67. + Fixed: The VectorTools::integrate_difference() function allows users + to provide a weight function that can also serve as a component mask + to select individual components of the solution vector for error + computation. For components not selected, such a mask would then + simply be zero. +
    + In some cases, the solution vector contains NaN numbers, for example + when one uses the FE_FaceQ element for certain components of the + solution vector and uses a quadrature formula for error evaluation + that has quadrature points in the interior of the cell. For any + "regular" solution component for which the component mask has a zero + weight, the value of that component will be multiplied by zero and + consequently does not add anything to the error computation. However, + if the NaNs of a FE_FaceQ are multiplied with zero weights, the result + is still a NaN, and adding it to the values times weights of the other + components results in NaNs -- in effect rendering it impossible to get + any information out of the VectorTools::integrate_difference() + function if one of the finite elements involved is FE_FaceQ. +
    + This is now fixed by simply skipping vector components for which the + weight vector is zero. This has the same result as before for all + "normal" situations, but also properly skips the NaN case outlined + above. +
    + (Wolfgang Bangerth, 2018/03/29) +
  68. + +
  69. + Fixed: Threads::Thread and Threads::Task objects can now also be + used when @p T is a type that is only move-constructable or movable, + but not necessarily copy-constructible or copyable. Consequently, one + can now also call functions that return such objects on tasks and + threads. In particular, this is relevant for functions that return + std::unique_ptr objects that have this property. +
    + (Wolfgang Bangerth, 2018/03/28) +
  70. + +
  71. + Fixed: LinearAlgebra::distributed::Vector::compress(VectorOperation::insert) now flashes + ghost part of the vector in Release mode. +
    + (Denis Davydov, 2018/03/17) +
  72. + +
  73. + Fixed: GridTools::minimal_cell_diameter() and GridTools::maximal_cell_diameter() + return the maximal respectively minimal cell diameter over the whole mesh for + parallel::distributed::Triangulation object, too. +
    + (Daniel Arndt, 2018/03/25) +
  74. + +
  75. + New: Added a third test variant to the testsuite driver: For a test + consisting of a test.prm.in (and a test.output) file the test.prm.in file + will be configured/preprocessed to a test.prm file. This is done with the + CMake macro CONFIGURE_FILE that replaces all strings \@VARIABLE\@ with the + contents of the corresponding CMake variable. This is useful in particular + to conveniently substitute \@SOURCE_DIR\@ with the full source directory path + of the test. +
    + (Matthias Maier, 2018/03/21) +
  76. + +
  77. + Fixed: Previously, it was not possible to iterate over the local range + of rows of PETSc matrix objects because one would have to call + `matrix.end(row)` where `row` is the last locally owned row, and that + triggered an assertion because this end iterator is also the begin + iterator of the next row -- which is not locally owned any more. +
    + This is now fixed. +
    + (Feimi Yu, Wolfgang Bangerth, 2018/03/20) +
  78. + +
  79. + Fixed: The SparsityPattern::copy_from() variant that takes a + FullMatrix argument was previously of quadratic complexity in the + number of nonzero entries per row. This is now fixed, and the function + is now linear. +
    + (Ben Shields, Wolfgang Bangerth, 2018/03/20) +
  80. + +
  81. + Fixed: FETools::get_interpolation_difference_matrix() used to not + clear content of the matrix passed as argument, but instead just add + to it. This resulted in wrong output, but is now fixed. +
    + (Wolfgang Bangerth, 2018/03/18) +
  82. + +
  83. + New: Add LAPACKFullMatrix::set(const size_type, const size_type, const number) + to set an element of the matrix. +
    + (Denis Davydov, 2018/03/17) +
  84. + +
  85. + Fixed: FullMatrix::residual(), FullMatrix::add_col(), and FullMatrix::add_row() + now work correctly with rectangular matrices. +
    (David Wells, 2018/03/17) +
  86. + +
  87. + New: JSON files which are written out by the + parameter handler can be read in again with the + function ParameterHandler::parse_input_from_json(). +
    + (Menno Fraters, 2018/03/12) +
  88. + +
  89. + New: The testsuite can be run using valgrind via + 'ctest -S ../tests/run_memorycheck.cmake'. +
    + (Daniel Arndt, 2018/03/11) +
  90. + +
  91. + New: The Utilities::dealii_version_string() function returns a string + representation of the deal.II version being used. +
    + (Wolfgang Bangerth, 2018/03/09) +
  92. + +
  93. + Fixed: Copying a Trilinos::MPI::Vector to a local deal.II Vector using + operator=() resulted in only a partial copy of data to the local vector. In + addition, the copied elements were offset incorrectly on each process. + Similar held for copying a Trilinos::MPI::BlockVector to a local deal.II + BlockVector. This has been fixed and now works as expected. +
    + (Jean-Paul Pelteret, 2018/03/07) +
  94. + +
  95. + New: LAPACKFullMatrix::compute_inverse_svd_with_kernel allows to + set an expected kernel size for an inverse singular value decomposition. +
    + (Daniel Arndt, 2018/03/07) +
  96. + +
  97. + New: The ParameterAcceptorProxy class allows you to wrap a class that provides a static member + declare_parameters and a member parse_parameters into a ParameterAcceptor subclass. +
    + (Luca Heltai, 2018/03/06) +
  98. + +
  99. + New: NonMatching::create_coupling_sparsity_pattern and NonMatching::create_coupling_mass_matrix functions + to handle L2 projections between arbitrary non-aligned grids. +
    + (Luca Heltai, 2018/03/05) +
  100. + +
  101. + Fixed: GridTools::distort_random works with + parallel::shared::Triangulation objects. +
    + (Daniel Arndt, 2018/03/05) +
  102. + +
  103. + New: A template class LinearIndexIterator has been added with the intent of + using it to generalize iterators over contiguously stored data. +
    (David Wells, 2018/03/01) +
  104. + +
  105. + Changed: The GridRefinement::hyper_sphere() function used to have two + template arguments (`dim` and `spacedim`), but it really only existed + if dim == spacedim-1. Consequently, it now has lost its + `dim` template argument and has only retained `spacedim`. +
    + (Wolfgang Bangerth, 2018/01/25) +
  106. + +
  107. + New: TransposeTable (the base class of LAPACKFullMatrix and ScaLAPACKMatrix) now + has a random access iterator implementation similar to the one provided by + SparseMatrix. +
    (David Wells, 2018/02/25) +
  108. + +
  109. + New: A top level target 'expand_all_instantiations' generates all .inst files. +
    + (Timo Heister, Daniel Arndt, 2018/02/20) +
  110. + +
  111. + New: LAPACKFullMatrix: make operators *= and /= use Lapack function, + LAPACKFullMatrix::add() uses BLAS 1 routine instead of handwritten loops +
    + (Benjamin Brands, 2018/02/20) +
  112. + +
  113. + Changed: The GridOut::write_mesh_per_processor_as_vtu function now + only includes processor info in the .vtu filename and writes a .pvtu file + when using a parallel::Triangulation. +
    + (Conrad Clevenger, 2018/02/19) +
  114. + +
  115. + New: Add a new class CUDAWrappers::SparseMatrix, i.e., wrappers for cuSPARSE csr + sparse matrix. The matrix is copied from deal.II own's SparseMatrix and copied + to the device. +
    + (Bruno Turcksin, 2018/02/18) +
  116. + +
  117. + New: Add LAPACKFullMatrix::Tmmult(LAPACKFullMatrix &, const LAPACKFullMatrix &, const Vector &, const bool) const + to do a triple matrix product with a diagonal matrix in the middle. Add + LAPACKFullMatrix::scale_rows() to scale rows via a given vector. Make + LAPACKFullMatrix::Tmmult() and LAPACKFullMatrix::mTmult() use Xsyrk if A==B. +
    + (Denis Davydov, 2018/02/14) +
  118. + +
  119. + New: add parallel::distributed::BlockVector::mmult(BlockVector &, const FullMatrixType &, const NumberType, const NumberType) const + and parallel::distributed::BlockVector::multivector_inner_product_with_metric(const FullMatrixType &, const BlockVector &V, const bool) const + to operate on multivectors with a metric tensor. +
    + (Denis Davydov, 2018/02/10) +
  120. + +
  121. + New: The new polynomial class Polynomials::HermiteLikeInterpolation is a + modification of the Hermite polynomials with good conditioning of + interpolation for all degrees, as opposed to the + Polynomials::HermiteInterpolation class. +
    + (Anian Fuchs, Martin Kronbichler, 2018/02/09) +
  122. + +
  123. + Extend VectorTools::project() function with MatrixFree quadrature data to + optionally take the finite element component index. +
    + (Denis Davydov, 2018/02/07) +
  124. + +
  125. + New: Added routines to perform addition, multiplication and scaling for ScaLAPACKMatrix +
    + (Benjamin Brands, 2018/02/07) +
  126. + +
  127. + Fixed: MGTransferMatrixFree::restrict() and MGTransferMatrixFree::prolongate() + would produce a segmentation fault when used with multi-component systems for + polynomial degrees larger than 10. This is now fixed. +
    + (Martin Kronbichler, 2018/01/30) +
  128. + +
  129. + New: Add AssertCusparse macro to assert the error code of cuSPARSE function +
    + (Bruno Turcksin, 2018/01/29) +
  130. + +
  131. + New: There are new overloads of make_array_view for Tensor, SymmetricTensor, + LAPACKFullMatrix, C-style array and Vector. +
    + (Daniel Arndt, 2018/01/25) +
  132. + +
  133. + New: Tensor::begin_raw, Tensor::end_raw, SymmetricTensor::begin_raw + and SymmetricTensor::end_raw provide access to the underlying storage for Tensor + and SymmetricTensor. +
    + (Daniel Arndt, 2018/01/25) +
  134. + +
  135. + New: Add save/load functions for ScaLAPACKMatrix to save/load distributed matrix to/from disc using HDF5. If HDF is configured with MPI, parallel I/O is used to save/load the matrix. +
    + (Benjamin Brands, 2018/01/25) +
  136. + +
  137. + New: Added Utilities::MPI::gather wrapper and tests to gather objects from all to one MPI process. +
    + (Benjamin Brands, 2018/01/25) +
  138. + +
  139. + Improved: The implementation of the SolverQMRS iteration has been renewed to + perform much faster and to be adaptable to left and right side preconditioning + of the system matrix. +
    + (Ingo Kligge, 2018/01/23) +
  140. + +
  141. + New: New function GridTools::distributed_compute_point_locations ; similarly to GridTools::compute_point_locations , given + a vector of points, it returns vectors containing them, their reference position and the process owning them as it works + with shared and distributed meshes. +
    + (Giovanni Alzetta, 2018/01/19) +
  142. + +
  143. + Fixed: In some situations, + DoFTools::locally_owned_dofs_per_subdomain() returned a vector of the + wrong size. Specifically, this happened if the processor with the + highest subdomain id owned no degrees of freedom. This is now fixed. +
    + (Jean-Paul Pelteret, Wolfgang Bangerth, 2018/01/18) +
  144. + +
  145. + Fixed: In FE_Enriched element, avoid evaluating quadrature points if no dofs are + assigned. This happens when FE_Nothing is used together with other FE + (i.e. FE_Q) as enrichments in FE_Enriched constructor. +
    + (Nivesh Dommaraju, 2018/01/15) +
  146. + +
  147. + New: Enhanced Raviart-Thomas finite element FE_RT_Bubbles, + allows for local elimination of a vector variable in + multipoint flux mixed finite element methods and similar. +
    + (Eldar Khattatov, 2018/01/11) +
  148. + +
  149. + New: Enhanced Raviart-Thomas polynomial space PolynomialsRT_Bubbles + consisting of RT_k + curls bubbles. +
    + (Eldar Khattatov, 2018/01/09) +
  150. + +
  151. + Fixed: The DataOut::write_vtu output pretended to write double precision data, + while in reality the data was first converted to float and then written as + double. This was fixed by writing all data (including vertex positions) as + single precision float and adjusting the output types accordingly. +
    + (Rene Gassmoeller, 2018/01/04) +
  152. + +
  153. + New: Implementing CylindricalManifold::push_forward_gradient allows to compute + normal vectors for boundaries described by CylindricalManifold objects. +
    + (Daniel Arndt, 2018/01/04) +
  154. + +
  155. + Fixed: In parallel computations, the DoFRenumbering::hierarchical() + function created DoF indices that were dependent on the previous DoF + indices owned by each processor. This was not intended: the new DoF + indices were supposed to only depend on the order of cells, not any + previous numbering. This is now fixed. +
    + (Wolfgang Bangerth, 2017/12/31) +
  156. + +
  157. + New: There is now a function VectorizedArray::streaming_store() that + stores the content of a vectorized array into another array which bypasses the + CPU's caches on supported architectures using _mm_stream_pd() intrinsics. This + operation is useful because it can avoid the read-for-ownership memory access + on large arrays and directly write to the destination for streaming + stores. However, it can also be detrimental to performance in case the store + would fit into caches. This new function is not used within the library + because only the final user code knows the properties of hardware and whether + a particular store pattern is so large that it will not fit into caches and + thus benefit from this optimization. +
    + (Martin Kronbichler, 2017/12/27) +
  158. + +
  159. + Fixed: implement missing instantiation of TrilinosWrappers::SparsityPattern::copy_from(). +
    + (Timo Heister, 2017/12/22) +
  160. + +
  161. + Improved: SparseMatrix::mmult(..) is now using the + DynamicSparsityPattern::compute_mmult_pattern(..) function to create + the sparsity pattern of the final matrix C. +
    (Christoph Goering, 2017/12/22) +
  162. + +
  163. + New: Added QSimplex, QTrianglePolar, QDuffy, and QSplit classes to perform quadratures + on reference simplices, on their affine transformations, and on hyper cubes + split by a given point. +
    + (Luca Heltai, 2017/12/21) +
  164. + +
  165. + New: add LAPACK_WITH_64BIT_BLAS_INDICES configure option and introduce + types::blas_int to support 64bit BLAS indices. +
    + (Denis Davydov, 2017/12/21) +
  166. + +
  167. + New: add LinearAlgebra::distributed::BlockVector::norm_sqr() and + LinearAlgebra::distributed::Vector::norm_sqr() that return square of the l2 norm. +
    + (Denis Davydov, 2017/12/21) +
  168. + +
  169. + New: LAPACKFullMatrix::remove_row_and_column() to remove certain row and column + of the matrix. +
    + (Denis Davydov, 2017/12/20) +
  170. + +
  171. + Fixed: parallel::distributed::Triangulation::add_periodicity missed to + update the ghost_owners in the NumberCache member variable. +
    + (Daniel Arndt, Sambit Das, 2017/12/11) +
  172. + +
  173. + New: DynamicSparsityPattern::compute_mmult_pattern(left, right) with two arguents of either + a DynamicSparsityPattern or a SparsityPattern; or any combination of those. + The result is the pattern which is obtained by multiplying the two sparse matrices on + the given sparsity patterns. +
    + (Christoph Goering, 2017/12/19) +
  174. + +
  175. + New: LAPACKFullMatrix::rank1_update(const number, const Vector &) performs + a rank-1 update of a matrix. +
    + (Denis Davydov, 2017/12/17) +
  176. + +
  177. + New: Add move constructor for TrilinosWrappers::SparseMatrix and + TrilinosWrappers::SparsityPattern +
    + (Bruno Turcksin, 2017/12/10) +
  178. + +
  179. + New: Add Vector::grow_or_shrink() and LAPACKFullMatrix::grow_or_shrink() + to (partly) keep the previous values upon resizing. +
    + (Denis Davydov, 2017/12/16) +
  180. + +
  181. + Fixed: parallel::distributed::Triangulation::communicate_locally_moved_vertices + treats periodic faces correctly now. +
    + (Daniel Arndt, Sambit Das, 2017/12/11) +
  182. + +
  183. + New: Add Jupyter Notebook explaining how to use the python wrappers. +
    + (Bruno Turcksin, 2017/12/10) +
  184. + +
  185. + Improved: DoFTools::extract_hanging_node_dofs works for + parallel::shared::Triangualtion and parallel::distributed::Triangulation + and reports locally relevant DoFs. +
    + (Daniel Arndt, 2017/12/21) +
  186. + +
  187. + New: Now opencascade also works for spacedim == 2. +
    + (Luca Heltai, 2017/12/08) +
  188. + +
  189. + New: Improve support of triangular matrices in LAPACKFullMatrix wrappers. + Add LAPACKFullMatrix::solve() to solve a system of equations either when + the matrix is factorized (Cholesky/LU) or triangular. +
    + (Denis Davydov, 2017/12/07) +
  190. + +
  191. + New: Created a new method OpenCASCADE::Utilities::create_curves_from_triangulation_boundary + that smoothly interpolates the boundary of two dimensional triangulations into a vector of + OpenCASCADE TopoDS_Edge closed curves, representing the connected components of the boundary. +
    + (Dirk Peschka, Luca Heltai, 2017/12/05) +
  192. + +
  193. + Fixed: SparsityPattern::print_svg(...) has the right size for the + white rectangle so there is a small margin between the first and last + row/column of the printed matrix. +
    + (Christoph Goering, 2017/12/05) +
  194. + +
  195. + New: Add color_sparsity_pattern function to color a graph represented by SparsityPattern Object. + The function uses coloring function from ZOLTAN library. +
    + (Nivesh Dommaraju, 2017/12/04) +
  196. + +
  197. + New: GridGenerator::extract_boundary_mesh now correctly extracts also Manifold information. +
    + (Luca Heltai, Dirk Peschka, 2017/12/04) +
  198. + +
  199. + Fixed: Manifold::normal_vector() used to pick two directions that are almost + linearly dependent quite often, which resulted in very bad accuracy of the + normal vectors. This has been fixed. The downstream use of this function on + curved geometries in VectorTools::compute_no_normal_flux_constraints() has now + become much more accurate and robust. +
    + (Martin Kronbichler, 2017/12/02) +
  200. + +
  201. + Improved: SphericalManifold::get_new_points now computes a lot + of information outside of the loop over all points in get_new_point, + which saves a significant amount of time for spherical geometries. +
    + (Rene Gassmoeller, 2017/12/01) +
  202. + +
  203. + Fixed: MappingQGeneric::transform_real_to_unit_cell() with degree 1 would + previously fail for Cartesian meshes with certain combinations of roundoff + errors. This is now fixed. +
    + (Martin Kronbichler, 2017/12/01) +
  204. + +
  205. + New: Added CellId::serialize function and a test for it using pack/unpack +
    + (Giovanni Alzetta, 2017/11/28) +
  206. + +
  207. + New: Added BoundingBox::serialize function and a test for it using pack/unpack functions +
    + (Giovanni Alzetta, 2017/11/24) +
  208. + +
  209. + Extend: partition_triangulation with options for choosing between METIS or ZOLTAN partitioners. + METIS (the original partitioner) is the default. +
    + (Nivesh Dommaraju, 2017/11/23) +
  210. + +
  211. + New: Added random_value() and random_point() in tests.h, to simplify and unify our way to generate random numbers and points. +
    + (Luca Heltai, 2017/11/21) +
  212. + +
  213. + Fixed: Added a tolerance inside GridTools::find_active_cell_around_point to errors with boundary points and a test with such points. +
    + (Giovanni Alzetta, 2017/11/21) +
  214. + +
  215. + Fixed: Added convert_generalized_support_point_values_to_dof_values into + FE_FaceQ and FE_TraceQ. This is needed by VectorTools::interpolate +
    + (Praveen Chandrashekar, 2017/11/19) +
  216. + +
  217. + Fixed: ConvergenceTable::evaluate_convergence_rates now also supports values + and keys of type 'unsigned long long int' as used for types::global_dof_index + with 64 bit integers enabled. +
    + (Martin Kronbichler, 2017/11/19) +
  218. + +
  219. + New: Add Utilities::pack and Utilities::unpack, to serialize and unserialize arbitrary + objects that support boost::serialization/deserialization. +
    + (Luca Heltai, 2017/11/18) +
  220. + +
  221. + New: Utilities::MPI::all_gather and Utilities::MPI::some_to_some functions have been + added to perform general collective communications between processors. +
    + (Giovanni Alzetta, Luca Heltai, 2017/11/18) +
  222. + +
  223. + Fixed: The function GridRefinement::refine_and_coarsen_fixed_number + no longer produces an EXC_BAD_ACCESS exception when either of the + arguments top_fraction or bottom_fraction are set to 1.0. +
    + (Oliver Sutton, 2017/11/17) +
  224. + +
  225. + Changed: The specializations of the scalar_product function for Sacado::Fad::DFad + numbers were redundant and have been removed. +
    + (Jean-Paul Pelteret, 2017/11/17) +
  226. + +
  227. + New: ArrayView has a data() member function making it more similar to the + standard containers. +
    + (Daniel Arndt, 2017/11/17) +
  228. + +
  229. + New: Math operations for some automatically differentiable numbers have been + extended. We also import some math functions for these number types into the + standard namespace. This gives full compatibility with the Tensor and + SymmetricTensor classes, and facilitates the integration of these number types + into existing code. +
    + (Jean-Paul Pelteret, 2017/11/16) +
  230. + +
  231. + Changed: Core functions in the FEValues and FEValuesViews classes have been + updated to allow the use of certain automatically differentiable numbers to + represent degree-of-freedom values. +
    + (Jean-Paul Pelteret, 2017/11/16) +
  232. + +
  233. + New: In parallel, the starting indices of + DoFRenumbering::Cuthill_McKee() can now also be locally active + indices. They no longer need to be locally owned DoF indices. +
    + (Wolfgang Bangerth, 2017/11/16) +
  234. + +
  235. + Fixed and improved: The GridTools::compute_point_locations() now always return the correct number of cells. The new algorithm is also significantly faster. +
    + (Giovanni Alzetta, 2017/11/15) +
  236. + +
  237. + New: Given a vector of points, the GridTools::guess_point_owner() function uses bounding boxes describing the mesh to guess the processes that own these points. A test for the function has been added. +
    + (Giovanni Alzetta, 2017/11/13) +
  238. + +
  239. + Fixed: The VectorTools::interpolate_boundary_values() function that + takes a hp::MappingCollection argument was declared, but not + instantiated, and could consequently not be called. This is now fixed. +
    + (Wolfgang Bangerth, 2017/11/12) +
  240. + +
  241. + New: TrilinosWrappers::DirectSolver::solve() with two + LinearAlgebra::distributed::Vector arguments now re-uses the factorization of + a matrix set in the TrilinosWrappers::DirectSolver::initialize() call. +
    + (Martin Kronbichler, 2017/11/10) +
  242. + +
  243. + Modified: Function Functions::FEFieldFunction::compute_point_locations now calls GridTools::compute_point_locations + Modified: Function GridTools::compute_point_locations now accepts a cell hint (a test for this hint has been added) +
    + (Giovanni Alzetta, 2017/11/06) +
  244. + +
  245. + Fixed: The algorithm in Manifold::normal_vector could + cause division-by-zero errors for special cases. This + was fixed. +
    + (Rene Gassmoeller, 2017/11/03) +
  246. + +
  247. + New: A uniform interface to automatically differentiable numbers that will + be supported by the deal.II library has been implemented. A corresponding + set of type traits classes that help query information about these numbers + has also been implemented. +
    + (Jean-Paul Pelteret, 2017/11/03) +
  248. + +
  249. + Improved: Both Sundials-2.7.0 and Sundials-3.0.0 are supported. +
    + (Daniel Arndt, 2017/11/03) +
  250. + +
  251. + Fixed: ChartManifold now implements the method + Manifold::get_intermediate_point(). +
    + (Martin Kronbichler, 2017/11/02) +
  252. + +
  253. + Improved: SphericalManifold::get_new_point uses a Newton-type + optimization algorithm instead of a simple averaging. +
    + (Daniel Arndt, 2017/11/02) +
  254. + +
  255. + Fixed: The spherical manifold used to do a division + by zero inside of SphericalManifold::get_new_point() + if the new point was exactly at the center of the + manifold. This is fixed now. +
    + (Rene Gassmoeller, 2017/10/31) +
  256. + +
  257. + New: Added GridTools::exchange_local_bounding_boxes function and tests to exchange + vectors of bounding boxes and gather them in every process. +
    + (Giovanni Alzetta, 2017/10/30) +
  258. + +
  259. + Fixed: The treatment of inhomogeneous boundary conditions in VectorTools::project + has been fixed. +
    + (Daniel Arndt, 2017/10/30) +
  260. + +
  261. + Improved: The step-37 tutorial program now describes how to deal with + inhomogeneous Dirichlet boundary values with the matrix-free framework in the + results section of the tutorial. +
    + (Martin Kronbichler, 2017/10/29) +
  262. + +
  263. + Fixed: The member variable FEEvaluation::dofs_per_cell and the static variable + FEEvaluation::tensor_dofs_per_cell only returned the number of degrees of + freedom per scalar component also for vector-valued evaluators, rather than + returning the number accumulated over all components in the evaluator. This is + now fixed. +
    + (Martin Kronbichler, 2017/10/28) +
  264. + +
  265. + New: Created a new Patterns::Tuple class, that allows parsing arbitrary tuples + of objects in parameter files. +
    + (Luca Heltai, 2017/10/26) +
  266. + +
  267. + New: Removed a typo in QTelles and added a new singular integration test. +
    + (Nicola Giuliani, 25/10/2017 +
  268. + +
  269. + New: Add LAPACKFullMatrix::add (const number a, const LAPACKFullMatrix &A) +
    + (Denis Davydov, 2017/10/25) +
  270. + +
  271. + Fixed: The computation of the inverse jacobians in the + MappingCartesian class was broken. It would trigger an + assertion at runtime complaining that only an assignment + with zero is allowed. This is fixed now. +
    + (Rene Gassmoeller, 2017/10/24) +
  272. + +
  273. + New: The function + LinearAlgebra::distributed::Vector::copy_locally_owned_data_from() can copy + the locally owned range in a parallel vector without considering the ghost + entries which might be different between the two vectors. +
    + (Martin Kronbichler, 2017/10/24) +
  274. + +
  275. + Added: Function GridTools::compute_point_locations and a test for it. The function uses the recently added Cache to improve performance. +
    + (Giovanni Alzetta, 2017/10/24) +
  276. + +
  277. + Added: Test for Functions::FEFieldFunction::compute_point_locations +
    + (Giovanni Alzetta, 2017/10/23) +
  278. + +
  279. + New: DoFHandler::renumber_dofs() for multigrid levels is now implemented for + parallel::distributed::Triangulation for the special case that the numbering + does not change over processor boundaries. +
    + (Martin Kronbichler, 2017/10/20) +
  280. + +
  281. + New: Added BoundingBox::get_neighbor_type() which returns the neighboring relation between two bounding boxes. Added the function GridTools::compute_mesh_predicate_bounding_box() which returns a vector of BoundingBoxes covering the cells for which a given predicate is true. +
    + (Giovanni Alzetta, 2017/10/20) +
  282. + +
  283. + Changed: The enum VectorOperation is now declared in its own header instead of the header for Vector. +
    + (David Wells, 2017/10/20) +
  284. + +
  285. + New: MatrixFreeOperators::Base now also stores the diagonal of the operator that + shall be populated in derived class in compute_diagonal() method. The read access + is provided by MatrixFreeOperators::Base::get_matrix_diagonal(). +
    + (Denis Davydov, 2017/10/19) +
  286. + +
  287. + New: A new version of GridTools::find_active_cell_around_point() + has been added that exploits a GridTools::Cache object. +
    + (Luca Heltai, 2017/10/18) +
  288. + +
  289. + New: The class Utilities::MPI::Partitioner can now handle the MPI import and + export calls that were previously hidden in the vector class. This allows to + use MPI communication of integers besides the previously supported floating + point data. +
    + (Martin Kronbichler, 2017/10/17) +
  290. + +
  291. + New: The class Utilities::MPI::Partitioner now supports handling only a + selection of ghost indices within a larger ghost set. Use this feature by + adding a second, larger, IndexSet to Partitioner::set_ghost_indices(). +
    + (Martin Kronbichler, 2017/10/17) +
  292. + +
  293. + Fixed: The transformation operation for rank-2 and rank-4 (non-symmetric) tensors + in the Physics::Transformations was incorrectly implemented. + This has now been fixed. +
    + (Jean-Paul Pelteret, 2017/10/17) +
  294. + +
  295. + New: Add LAPACKFullMatrix::trace() to calculate trace of a matrix. +
    + (Denis Davydov, 2017/10/09) +
  296. + +
  297. + New: FiniteElement::get_sub_fe() allows you to return a contained FiniteElement based on a ComponentMask. +
    + (Timo Heister, 2017/10/07) +
  298. + +
  299. + Fixed: It was previously not possible to create objects of type Table + with elements that are not copyable or copy constructible. An example + of such a type is `std::unique_ptr`. This has now been fixed. +
    + (Wolfgang Bangerth, 2017/10/02) +
  300. + +
  301. + New: MGTransferBlockMatrixFree allows to use a separate DoFHandler + for each block. The required interface is supported by PreconditionMG. +
    + (Daniel Arndt, 2017/10/01) +
  302. + +
  303. + New: Add Utilities::MPI::sum() for LAPACKFullMatrix objects. +
    + (Denis Davydov, 2017/09/04) +
  304. + +
  305. + New: Add LinearAlgebra::distributed::BlockVector::multivector_inner_product() + to perform inner product between each block of the two block vectors. +
    + (Denis Davydov, 2017/09/30) +
  306. + +
  307. + Fixed: One of the functions GridTools::find_active_cell_around_point() + supports an additional `mapping` argument. This mapping was used + to actually transform points from the real to the reference space, + but somewhere in the algorithm we look for the `closest_vertex` to + the target point. Such search was done ignoring if the `mapping` + actually changes the location of the vertices. This is now fixed, + and the internal function that looks for the closest vertex now + takes into account the `mapping` transformation. +
    + (Luca Heltai, 2017/09/27) +
  308. + +
  309. + Changed: Split TensorProductMatrixSymmetricSum into base and derived class. + Added a template specialization for TensorProductMatrixSymmetricSum + in case of having a VectorizedArray as arithmetic type. + In addition, TensorProductMatrixSymmetricSum is now able to handle + distinct 1D matrices in each tensor dimension. +
    + (Julius Witte, 2017/09/27) +
  310. + +
  311. + New: Add MGTransferMatrixFree::interpolate_to_mg() to transfer fine-level + solution to a multi-grid vector +
    + (Denis Davydov, 2017/09/27) +
  312. + +
  313. + New: Extend MappingQEulerian to work with multi-grid vectors. +
    + (Denis Davydov, 2017/09/27) +
  314. + +
  315. + Fixed: The hp version of DoFTools::make_flux_sparsity_pattern() with masks for + DoF couplings now works with non-primitive FE spaces, similarly to its non-hp version. + The hp version of VectorTools::project_boundary_values() is modified to work properly with Hdiv + conforming finite elements. +
    + (Eldar Khattatov, 2017/09/26) +
  316. + +
  317. + New: Extend LAPACKFullMatrix to provide (i) Cholesky factorization (and use it for inversion); + (ii) an estimate of the reciprocal condition number; (iii) l1_norm(), + linfty_norm() and frobenius_norm(). +
    + (Denis Davydov, 2017/09/26) +
  318. + +
  319. + New: There are new signals in the Triangulation class + that signal the beginning and end of a parallel::distributed + refinement and serialization. This allows to connect functions + that should be called uniquely once before and after + refinement and serialization for parallel distributed + Triangulations (something not possible with the existing + signals). +
    + (Rene Gassmoeller, 2017/09/25) +
  320. + +
  321. + Changed: The new methods ArrayView::cbegin() and ArrayView::cend() return + const_iterators and are const themselves. ArrayView::begin() and + ArrayView::end() return (non-const) iterators and are const themselves. +
    + (Daniel Arndt, Julius Witte, 2017/09/24) +
  322. + +
  323. + New: Added two methods to the class BoundingBox. The first, merge_with(BoundingBox) merges the current BoundingBox with BBox. The second, volume(), returns the volume (dim-dimensional measure) of the current BoundingBox +
    + (Giovanni Alzetta, 2017/09/22) +
  324. + +
  325. + New: A GridTools::find_closest_vertex() has been added + that takes a map of index-vertex position and a target + point, and returns the index of the closest point in + the map. +
    + (Luca Heltai, 2017/09/19) +
  326. + +
  327. + New: A GridTools::extract_used_vertices() has been added + that returns a map of index-vertex position, using an + optional Mapping object to compute the + vertex locations. +
    + (Luca Heltai, 2017/09/18) +
  328. + +
  329. + New: A new GridIn::read_assimp() function allows to + read in a file in one of the (40) formats supported by Assimp. +
    + (Luca Heltai, 2017/09/16) +
  330. + +
  331. + New: Added the base class BoundingBox. The BoundingBox is constructed from a std::pair of points in real space, ordered following the convention bottom-left, top-right. + The class has the method BoundingBox::point_inside(Point p) which checks for the presence of a point inside it. +
    + (Giovanni Alzetta, 2017/09/15) +
  332. + +
  333. + Fixed: The destructor of TimerOutput::Scope will now always exit the subsection + it entered in its constructor, instead of just exiting the last subsection that + was created in the provided TimerOutput object. This fixes timing output + measurements for multithreaded applications and cases where subsections are + nested. +
    + (David Wells, 2017/09/14) +
  334. + +
  335. + New: FiniteElement and FESystem have move constructors. +
    + (Daniel Arndt, 2017/09/11) +
  336. + +
  337. + New: There is now a conversion constructor that converts std::vector + objects to ArrayView objects. +
    + (Wolfgang Bangerth, 2017/09/11) +
  338. + +
  339. + New: Add more Python wrappers to generate meshes and to flatten a Triangulation. +
    + (Bruno Turcksin, 2017/09/10) +
  340. + +
  341. + New: The newly implemented FiniteElement::operator^ allows in combination + with the new variadic template constructor or the new std::initializer_list + constructor for FESystem to construct + FESystem objects using syntax like + @code + FESystem fe_system1 ({FiniteElementType1^n1, + FiniteElementType2^n2}); + FESystem fe_system2 (FiniteElementType1^n3, + FiniteElementType2^n4); + @endcode +
    + (Daniel Arndt, 2017/09/05) +
  342. + +
  343. + New: Add Utilities::MPI::sum() for FullMatrix objects. +
    + (Denis Davydov, 2017/09/04) +
  344. + +
  345. + Changed: The various overloads for Threads::new_thread() and + Threads::new_task() taking from 0 to 9 parameters have been replaced + by two variadic template versions. +
    + (Daniel Arndt, 2017/09/01) +
  346. + +
  347. + New: The new DataPostprocessorTensor can help visualize tensor-valued + quantities. +
    + (Wolfgang Bangerth, 2017/08/30) +
  348. + +
  349. + New: The DataPostprocessorVector class now has an extensive example of + its use. +
    + (Wolfgang Bangerth, 2017/08/29) +
  350. + +
  351. + Changed: DoFHandler::get_finite_element(unsigned int) has been removed again in + favor of equipping DoFHandler::get_fe() with a (defaulted) unsigned int + parameter. hp::DoFHandler::get_finite_element(unsigned int) has been renamed to + hp::DoFHandler::get_fe(unsigned int). +
    + (Daniel Arndt, 2017/08/25) +
  352. + +
  353. + New: Extend Point::distance_square() to work with VectorizedArray numbers. +
    + (Denis Davydov, 2017/08/24) +
  354. + +
  355. + Fixed: On Vector::add(..), a pointer to the first element of a std::vector + is gotten by std::vector::data() instead of using the "&v[0]" idiom, which + results in an undefined behaviour. +
    + (Tulio Ligneul, 2017/08/23) +
  356. + +
  357. + Fixed: It turns out that it was not possible to copy an invalid + operator, i.e., the following code would yield an exception: + @code + typename DoFHandler::active_cell_iterator invalid_1; + typename DoFHandler::active_cell_iterator invalid_2; + invalid_1 = invalid_2; // resulted in an error + @endcode + This made no sense, and has now been fixed. +
    + (Wolfgang Bangerth, 2017/08/23) +
  358. + +
  359. + New: The struct is_base_of_all is a generalization of std::is_base_of + to template parameter packs and tests if all classes in the parameter pack + have a given class as base class or are this class. +
    + (Daniel Arndt, 2017/08/21) +
  360. + +
  361. + New: The constructors for hp::FECollection taking a fixed number of + FiniteElement objects as argument were replaced by a variadic + template constructor taking an arbitrary number of objects. +
    (Daniel Arndt, 2017/08/20) +
  362. + +
  363. + New: DoFHandler::get_fe() and hp::DoFHandler::get_fe() + have been deprecated in favor of DoFHandler::get_finite_element(), + DoFHandler::get_fe_collection(), hp::DoFHandler::get_finite_element() + and hp::DoFHandler::get_fe_collection() that share a common signature each. +
    + (Daniel Arndt, 2017/08/19) +
  364. + +
  365. + New: Add MGTransferBlockMatrixFree which allows using geometric multi-grids with + LinearAlgebra::distributed::BlockVector where each block uses the same + index space of degrees of freedom. +
    + (Denis Davydov, 2017/08/18) +
  366. + +
  367. + Fixed: The non-member invert() function operating on SymmetricTensors has + been generalized for all number types. +
    + (Wolfgang Bangerth, Jean-Paul Pelteret, 2017/08/17) +
  368. + +
  369. + New: An additional non-member operator*() function, performing a single + contraction between a symmetric and normal tensor of arbitrary rank, has been + added to the SymmetricTensor class. +
    + (Matthias Maier, Jean-Paul Pelteret, 2017/08/17) +
  370. + +
  371. + Fixed: The following non-member functions operating on SymmetricTensors have + been generalized for all number types: + - scalar_product() + - double_contract() + - invert() for rank-4 symmetric tensors + - operator*() performing a double contraction between two symmetric tensors. + - operator*() performing a single contraction of a symmetric tensor with a + rank-1 tensor. +
    + (Jean-Paul Pelteret, 2017/08/17) +
  372. + +
  373. + Fixed: The Tensor::l1_norm() and Tensor::linfty_norm() functions have now been + generalized for all number types. +
    + (Jean-Paul Pelteret, 2017/08/17) +
  374. + +
  375. + Improved: The CMake CUDA detection and configure has been completely + rewritten. CUDA support now requires CMake version 3.9 or newer. +
    + (Matthias Maier, 2017/08/08) +
  376. + +
  377. + Fixed: ConsecutiveControl now asserts that check() is being called for zeroth + iteration. +
    + (Denis Davydov, 2017/08/16) +
  378. + +
  379. + Fixed: Constructing an IndexSet from an Epetra_Map generated the wrong size. +
    + (Timo Heister, 2017/08/15) +
  380. + +
  381. + Deprecated: types_are_equal has been deprecated in favor of std::is_same. +
    (David Wells, 2017/08/14) +
  382. + +
  383. + Deprecated: constraint_and_return_value has been deprecated + in favor of std::enable_if. +
    (Daniel Arndt, 2017/08/14) +
  384. + +
  385. + New: A new version of GridTools::find_active_cell_around_point() + has been added that exploits local maps constructed + using standard GridTools utilities. +
    + (Rene Gassmoeller, Luca Heltai, 2017/08/13) +
  386. + +
  387. + New: GridTools::exchange_cell_data_to_ghosts() to exchange ghost data. +
    + (Timo Heister, 2017/08/12) +
  388. + +
  389. + New: All of the FEValuesViews classes now have a set of functions + named get_function_*_from_local_dof_values that return the function + values, gradients etc. from a local vector of degree-of-freedom + values. They also now contain a data structure called OutputType + that that provides the output type for the product of the value + and derivatives of basis functions of the view and any number type. +
    + (Jean-Paul Pelteret, Luca Heltai, 2017/08/10) +
  390. + +
  391. + Deprecated: internal::bool2type and int2type has been depreated + in favor of std::intergral_constant. +
    + (Daniel Arndt, 2017/08/10) +
  392. + +
  393. + Fixed: Creation of coverage information via + compiling with 'DEAL_II_SETUP_COVERAGE=ON' + and 'ctest -S ../tests/run_coverage.cmake' works again. +
    + (Matthias Maier, Daniel Arndt, 2017/08/09) +
  394. + +
  395. + Improved: ConstraintMatrix now has a member function + ConstraintMatrix::get_lines() that returns a range object that allows + iteration over all constraint entries. +
    + (Matthias Maier, 2017/08/08) +
  396. + +
  397. + Changed: ConstraintMatrix::ConstraintLine is now a public member class + definition. +
    + (Matthias Maier, 2017/08/08) +
  398. + +
  399. + New: MappingQGeneric uses tensorized evaluation for maybe_update_Jacobians, + maybe_compute_q_points and maybe_update_jacobian_grads in case + the Quadrature object represents a tensor product of identical + one-dimensional quadrature formulas. +
    + (Daniel Arndt, 2017/08/04) +
  400. + +
  401. + New: Quadrature has a (defaulted) move assignment operator. +
    + (Daniel Arndt, 2017/08/04) +
  402. + +
  403. + New: Add Utilities::LinearAlgebra::chebyshev_filter() to apply Chebyshev filter of a + given degree. +
    + (Denis Davydov, 2017/08/02) +
  404. + +
  405. + New: Add Utilities::LinearAlgebra::lanczos_largest_eigenvalue() to estimate the largest + eigenvalue of a symmetric linear operator using k-steps of Lanczos algorithm. +
    + (Denis Davydov, 2017/08/01) +
  406. + +
  407. + Fixed: DiagonalMatrix can now be used as a linear operator. +
    + (Denis Davydov, 2017/08/01) +
  408. + +
  409. + New: Extend pArpack solver to cover mode 1 (standard eigenvalue problem) and + mode 2 (generalized eigenvalue problem without spectral transformation). +
    + (Denis Davydov, 2017/08/01) +
  410. + +
  411. + New: Quadrature::is_tensor_product() returns if the corresponding quadrature + formula can be represented as a tensor product and the quadrature points are + sorted lexicographically. The corresponding 1D objects can be queried using + Quadrature::get_tensor_basis(). +
    + (Daniel Arndt, 2017/07/26) +
  412. + +
  413. + Fixed: DataOutBase::write_hdf5_parallel() can also be used in case deal.II + and HDF5 are not compiled with MPI support. +
    + (Daniel Arndt, 2017/07/26) +
  414. + +
  415. + Fixed: The FunctionParser class demonstrated an incompatibility with + (very) old versions of the Threading Building Blocks used in + deal.II. This is now worked around. +
    + (Alberto Sartori, Wolfgang Bangerth, 2017/07/26) +
  416. + +
  417. + Initialization of Chebyshev smoother: Make initial guess robust with + respect to number of processors by operating on the global index. +
    + (Niklas Fehn, 2017/07/25) +
  418. + +
  419. + Fixed: MappingQGeneric::transform_real_to_unit_cell had a bug where, for certain + parallelograms, a problem with subtracting nearly equal floating point numbers + ruined most of the digits of accuracy in the coordinate transformation. +
    (Giovanni Di Ilio, David Wells, Jean-Paul Pelteret, 2017/07/25) +
  420. + +
  421. + New: There is now a function ConstraintMatrix::copy_from() that allows + copying objects of type ConstraintMatrix. +
    + (Wolfgang Bangerth, 2017/07/27) +
  422. + +
  423. + Fixed: The ghost layer computation for the case when periodic boundary + conditions were set on all boundaries in 3D missed some cells leading to a + deadlock when used on 43 MPI ranks or more. This is now fixed. +
    + (Martin Kronbichler, 2017/07/20) +
  424. + +
  425. + New: DataOutBase now supports writing zero-dimensional + data in a higher spatial dimension (e.g. vertices, quadrature points, particles) + for a number of output formats (vtu,vtk,gnuplot,hdf5). A consequence of the + change is that HDF5 now in general supports output for dim + (Rene Gassmoeller, 2017/07/18) +
  426. + +
  427. + Improved: linear_operator gained an overload that directly takes a + LinearOperator as exemplar object to directly copy the + reinit_(domain|range)_vector functions from. +
    + (Matthias Maier, 2017/07/14) +
  428. + +
  429. + New: Adding the functions FE_FaceQ::hp_vertex_dof_identities(), + FE_FaceQ::hp_line_dof_identities() and FE_FaceQ::hp_quad_dof_identities() + allows FE_FaceQ to be used in combination with a hp::DoFHandler. +
    + (Samuel Imfeld, Daniel Arndt, 2017/07/11) +
  430. + +
  431. + New: A new class TensorProductMatrixSymmetricSum that represents a tensor + product of a mass and derivative matrix has been added. It implements both the + matrix-vector operation (TensorProductMatrixSymmetricSum::vmult()) as well as + the inverse operation (TensorProductMatrixSymmetricSum::apply_inverse()) + operation in tensorial form with optimal complexity of + sizedim+1 operations. The inverse operation uses the fast + diagonalization method. +
    + (Martin Kronbichler, 2017/07/11) +
  432. + +
  433. + Fixed: The DoFHandler::n_boundary_dofs() and + hp::DoFHandler::n_boundary_dofs() functions did not take into account + that a one-dimensional triangulation may consist of more than one + segment (and then may have more than two vertices on the + boundary). This is now fixed. +
    + (Wolfgang Bangerth, 2017/07/10) +
  434. + +
  435. + New: MGConstrainedDoFs object now stores information for periodicity + constraints which is used during the multigrid transfer by + MGTransferMatrixFree and MGTransferPrebuilt. +
    + (Conrad Clevenger, Martin Kronbichler, 2017/07/08) +
  436. + +
  437. + Changed: The DoFRenumbering::compute_component_wise() function used to + take two template arguments that denote iterator types, one for the + begin and one for the end iterator. This has been changed: It now only + takes an iterator type argument for the begin iterator, and the end + iterator is automatically casted to that same type. +
    + (Wolfgang Bangerth, 2017/07/08) +
  438. + +
  439. + New: The DoFRenumbering::component_wise() function was available for + all dimensions and space dimensions for regular DoFHandler objects, + but only for dimension == space_dimension for hp::DoFHandler. This is + now fixed. +
    + (Wolfgang Bangerth, 2017/07/07) +
  440. + +
  441. + Fixed: TrilinosWrappers::PreconditionBlock* classes now work correctly if one of the processors does not own any rows. +
    + (Timo Heister, 2017/07/04) +
  442. + +
  443. + Deprecated: The ParpackSolver::Shift class has been deprecated. +
    + (Matthias Maier, 2017/07/03) +
  444. + +
  445. + New: The determinant of a LAPACKMatrix can now be computed via a + call to LAPACKMatrix::determinant(). +
    + (Jean-Paul Pelteret, 2017/07/02) +
  446. + +
  447. + Fixed: FullMatrix::left_invert() and FullMatrix::right_invert() no longer + fail when the matrix is square. +
    + (Andreas Kergassner, Jean-Paul Pelteret, 2017/07/02) +
  448. + +
  449. + Fixed: FullMatrix::determinant() is now implemented for square matrices + of size greater than 3. In this case, it is computed through the + LU decomposition of the matrix using LAPACK. +
    + (Andreas Kergassner, Jean-Paul Pelteret, 2017/07/02) +
  450. + +
  451. + Changed: The complete_index_set() function now returns a compressed + version of the IndexSet that contains all indices. +
    + (Wolfgang Bangerth, 2017/06/24) +
  452. + +
  453. + New: The Timer class now has new functions Timer::get_total_data(), + Timer::print_total_data, Timer::last_wall_time, Timer::cpu_time and + Timer::last_cpu_time() to access information about the total run as + well as the last lap. +
    + (Daniel Arndt, 2017/06/23) +
  454. + +
  455. + Deprecated: The static member variables DoFHandler::invalid_dof_index + and hp::DoFHandler::invalid_dof_index are now deprecated. Use + numbers::invalid_dof_index instead. +
    + (Wolfgang Bangerth, 2017/06/20) +
  456. + +
  457. + New: Patterns::Map now accepts a new optional parameter, + that allows to specify also the separator between + key-value pairs. +
    + (Luca Heltai, 2017/06/14) +
  458. + +
  459. + New: Utilities::split_string_list() now has a + version that allows to pass a string instead of a + character. With this it is possible to split on + double chars, for example: "alpha ;; beta ;; gamma". +
    + (Luca Heltai, 2017/06/14) +
  460. + +
  461. + Fixed: The passing of additional settings to + TrilinosWrappers::SolverBase from derived solvers + was never completed. This has now been corrected. +
    + (Julian Andrej, Jean-Paul Pelteret, 2017/06/14) +
  462. + +
  463. + Fixed: Patterns derived from PatternBase now return + std::unique_ptr in their clone() and + create() functions. +
    + (Luca Heltai, 2017/06/12) +
  464. + +
  465. + Changed: ParameterHandler::print_parameters() was at times looking at + individual bits instead of just the declared values + of ParameterHandler::OutputStyle. This presumably allowed for calling that + function with a combination of the OutputStyle flags, for reasons that no + longer seem particularly relevant nor obvious. +
    + This possibility has now been removed from the current implementation of + the function, but is for the moment retained for the (deprecated) function + ParameterHandler::print_parameters_section(). +
    + (Wolfgang Bangerth, 2017/06/09) +
  466. + +
  467. + Fixed: The ParameterHandler::print_parameters() function + used the previously set fill character of the output stream, but it + should have filled with spaces instead. This is now fixed. +
    + (Wolfgang Bangerth, 2017/06/07) +
  468. + +
  469. + Fixed: FullMatrix::print_formatted() and LAPACKFullMatrix::print_formatted + would previously print NaN values as zero. This is now fixed. +
    + (Simon Sticko, Martin Kronbichler, 2017/06/08) +
  470. + +
  471. + Initialization of Chebyshev smoother: project vector onto space of vectors + with zero mean which is necessary in some cases where the matrix is singular. + Rename variable is_initialized -> eigenvalues_are_initialized + in order to improve code readability. +
    + (Niklas Fehn, 2017/06/07) +
  472. + +
  473. + Improved: The multigrid smoothers now provide an additional apply() method that + specializes the smoothing for the case the input vector is set to zero. This + method is used in the Multigrid class and saves one matrix-vector product, + which can speed up the multigrid algorithm by up to 10 percent, depending on + the cost of the smoother. +
    + (Martin Kronbichler, 2017/06/07) +
  474. + +
  475. + Changed: The ParameterHandler::print_parameters() function is now + @p const, as one would expect it to be. +
    + (Wolfgang Bangerth, 2017/06/07) +
  476. + +
  477. + New: Added a new polynomial class IntegratedLegendreSZ. This implements + the integrated Legendre polynomials described in the 2006 PhD thesis + of Sabine Zaglmayr. +
    + (Ross Kynch, 2017/06/06) +
  478. + +
  479. + New: A function TriaAccessor::real_to_unit_cell_affine_approximation that + computes an approximation to a point in unit coordinates has been added. +
    + (Martin Kronbichler, 2017/06/05) +
  480. + +
  481. + Improved: CylindricalManifold is now really using cylindrical coordinates + instead of taking an average in space coordinates. +
    + (Daniel Arndt, 2017/06/05) +
  482. + +
  483. + Deprecated: The ParameterHandler::print_parameters_section() function + has been deprecated. +
    + (Wolfgang Bangerth, 2017/06/02) +
  484. + +
  485. + New: The ConeBoundary class now has a member function ConeBoundary::normal_vector(). +
    (Anne Glerum, 2017/05/30) +
  486. + +
  487. + Fixed: DataOutInterface::set_flags() was broken when passed an object + of type DataOutBase::GnuplotFlags. This is now fixed. +
    + (Wolfgang Bangerth, 2017/05/30) +
  488. + +
  489. + New: deal.IIFeatureConfig.cmake will contain detailed information about + feature configuration and is installed along with other CMake files. + These variables can be loaded by calling INCLUDE(\${DEAL_II_FEATURE_CONFIG}). + This is useful when users want to link in additional parts of dependencies, not + required by deal.II (i.e. filesystem library from Boost package). +
    + (Denis Davydov and Matthias Maier, 2017/05/29) +
  490. + +
  491. + Removed: The build_tests category of tests has been removed. Build tests + now compile all configurable example steps as part of the regular build + stage. +
    + (Matthias Maier, 2017/04/06) +
  492. + +
  493. + New: There is a new header, lac/trilinos_index_access.h, that provides + index and size functions for some common Trilinos objects that work correctly for + both 32 and 64 bit code. +
    (David Wells, 2017/05/10) +
  494. + +
  495. + New: Add method to access timing data from TimerOutput from code. +
    + (Jonathan Robey, 2017/05/22) +
  496. + +
  497. + New: Added a GridTools::regularize_corner_cells function that + detects if the boundary cells of a mesh at corner positions + (with dim adjacent faces on the boundary) need to be split into + cells with smaller angles. +
    (Luca Heltai, Martin Kronbichler, 2017/05/18) +
  498. + +
  499. + New: Add a new class ConsecutiveControl which returns SolverControl::State::success + if and only if a certain positive number of consecutive iterations satisfy the + specified tolerance. +
    + (Denis Davydov, 2017/05/17) +
  500. + +
  501. + New: The vertex (and face) iterator for dimension 1 triangulations now implements + the get_manifold method. +
    (David Wells, 2017/05/10) +
  502. + +
  503. + New: Add support for matrix-free operator application on GPU using CUDA. + Constraints (Dirichlet boundary conditions, hanging nodes, etc.) cannot be + applied. +
    + (Bruno Turcksin and Karl Ljungkvist, 2017/05/10) +
  504. + +
  505. + New: TrilinosWrappers::MPI::BlockMatrix can now return its MPI_Comm via + get_mpi_communicator() and its range and domain indices via + locally_owned_range_indices() and locally_owned_domain_indices() + relying on the information of the TrilinosWrappers::MPI::Matrix + object it is based on. +
    + (Daniel Arndt, 2017/05/09) +
  506. + +
  507. + New: ConstraintMatrix::distribute_local_to_global can now also assemble to + rectangular matrices where rows and columns are described by different + ConstraintMatrix objects. +
    + (Martin Kronbichler, 2017/05/04) +
  508. + +
  509. + Changed: The PETScWrappers::MPI::Vector class always corresponds to a PETSc + vector with type mpi, even when empty. +
    (David Wells, 2017/03/29) +
  510. + +
  511. + 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) +
  512. + +
  513. + Fixed: Copying Patterns::List or Patterns::Map objects previously led + to memory corruption. This is now fixed. +
    + (Wolfgang Bangerth, 2017/04/25) +
  514. + +
  515. + New: Add Point::distance_square() which calculates the squared + Euclidean distance. +
    + (Denis Davydov, 2017/04/24) +
  516. + +
  517. + 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) +
  518. + +
  519. + 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) +
  520. + +
  521. + 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) +
  522. + +
  523. + Fixed: The MeshWorker framework can also be used in case dim != spacedim. +
    + (Daniel Arndt, 2017/04/16) +
  524. + +
  525. + 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) +
  526. + +
  527. + Fixed: FETools::extrapolate also works for BlockVector types. +
    + (Daniel Arndt, 2017/04/13) +
  528. + +
  529. + 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) +
  530. + +
  531. + 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) +
  532. + +
  533. + 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) +
  534. + +
  535. + 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) +
  536. + +
  537. + New: The class FESystem now implements + the + FiniteElement::convert_generalized_support_point_values_to_dof_values() + interface. +
    + (Wolfgang Bangerth, Matthias Maier, 2017/08/31) +
  538. + +
  539. + New: The classes FE_Q, FE_DGQ, and FE_DGQArbitraryNodes now implement + the + FiniteElement::convert_generalized_support_point_values_to_dof_values() + interface. +
    + (Wolfgang Bangerth, 2017/04/05) +
  540. + +
  541. + 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) +
  542. + +
  543. + 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) +
  544. + +
  545. + 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) +
  546. + +
  547. + New: GridTools::compute_bounding_box() computes a bounding box of a subdomain + whose active cells conform to a given predicate. + GridTools::compute_active_cell_layer_within_distance() computes a collection + of active cells that are within a given distance from + predicate subdomain. + GridTools::compute_ghost_cell_layer_within_distance() computes a collection + of active cells that are within a given distance from + locally owned active cells. +
    + (Vishal Boddu, Denis Davydov 2017/03/23) +
  548. + +
  549. + 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) +
  550. + +
+ +*/