1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
2 "http://www.w3.org/TR/REC-html40/strict.dtd">
5 <link href="../../screen.css" rel="StyleSheet" title="deal.II Homepage" media="screen">
6 <link href="../../print.css" rel="StyleSheet" title="deal.II Homepage" media="print">
7 <title>The deal.II news page</title>
8 <meta name="author" content="Wolfgang Bangerth, Guido Kanschat, and others">
9 <meta name="keywords" content="deal.II"></head>
14 <h2>Changes after Version 3.0</h2>
16 This is a quite extensive list of changes made after the release of
17 <acronym>deal.II</acronym> version 3.0. It is subdivided into changes
18 made to the three sub-libraries <a href="#base">base</a>,
19 <a href="#lac">lac</a>, and <a href="#deal.II">deal.II</a>, as well as
20 changes to the <a href="#general">general infrastructure,
21 documentation, etc</a>.
25 <a name="general"></a>
30 New: All identifiers that the C++ standard (see
31 <a href="http://www.cygnus.com/misc/wp/dec96pub/"
32 target="_top"> this page</a> for the public draft -- the
33 standard itself is not available online for copyright reasons)
34 mandates to be in namespace <code>std::</code> are correctly
35 prefixed by the namespace name. While previous gcc compilers
36 accepted these names also without the prefix, gcc 3.0 will
37 require them, as do some commercial compilers.
43 New: In multithreading mode, the compile flags now also have
44 <code class="program">_REENTRANT</code> defined. If this flag
45 is defined, then the standard Unix headers also declare
46 reentrant versions (with suffix <code class="program">_r</code>)
53 New: Major and minor version numbers of the
54 <acronym>deal.II</acronym> library are now passed to the
55 compiler as preprocessor variables
56 <code class="program">DEAL_2_MAJOR</code> and
57 <code class="program">DEAL_2_MINOR</code>. Their present values
58 are 3 and 1, respectively. Variables of the same name are also
59 available in Makefiles.
65 New: the <code class="program">step-9</code> example program is
66 now ready, showing several advanced programming techniques in
67 <acronym>deal.II</acronym>.
73 Changed: <acronym>deal.II</acronym> now uses the
74 <code class="program">kdoc2</code> program to generate the API
75 documentation. This makes up for much nices documentation and
76 also works better than the previous <code class="program">kdoc1</code>.
77 A copy of <code class="program">kdoc2</code> is provided within
78 the <acronym>deal.II</acronym> source tree.
84 Changed: when compiling files, the output generated by the
85 <code class="program">make</code> program now indicates also
86 whether we are compiling for multithread mode, besides the
87 information whether the file is compiled for debug or optimized
90 (Ralf Hartmann 2000/06/26)
95 <code class="program">common/scripts/make_dependencies.pl</code>
96 script that sets up the dependencies for the make files had a
97 problem when the path to the library included special characters
98 such as `+'. This is now fixed.
104 New: the <code class="program">configure</code> script now
105 checks whether the <code>getrusage</code> function is properly
106 declared (this function is used in the timer class). The
107 problem is that on SunOS 4.x, this function exists, but is not
108 declared in the right file (although it is listed in the man
109 pages). We then have to declare it ourselves.
115 New: the <code class="program">configure</code> script now
116 enforces the compiler flags <code>-ansi -pedantic</code> when
117 compiling in debug mode. This should force us to write more
118 standard compliant code. (Since the ACE library is not
119 standards conforming, the <code>-ansi</code> flag is not used
120 when multithreading is requested.)
126 Improved: the <code class="program">configure</code> script is
127 now used to select the compiler options. Previously, selection
128 of compiler options was done both in
129 <code class="program">configure</code> as well as in the global
131 <code class="program">common/Make.global_options</code>.
137 Improved: Dependence on the files
138 <code class="file">forward_declarations.h</code> has been widely
139 removed to improve compilation time
146 Fix: <code class="program">configure</code> now uses
147 <code class="program">config.guess</code> to determine the
148 operating system and hardware platform.
162 Improved: exceptions <code class="class">ExcIO</code> and <code
163 class="class">ExcOutOfMemory</code> are defined globally now.
169 Improved: <code class="class">ParameterHandler</code> now has a
170 function <code class="member">log_parameters</code> which
171 allows output of all parameters to a log file.
177 New: almost all classes that store data now have a function
178 <code class="member">memory_consumption</code> that returns an
179 estimate of the amount of memory (in bytes) used up by this
180 class. Supporting functions to compute the size of STL vectors
181 and other objects can be found the
182 <code class="class">MemoryConsumption</code> namespace.
188 New: Class <code class="class">FunctionDerivative</code>
189 computes finite difference approximations of a directional
190 derivative of a <code class="class">Function</code>.
196 New: The <code class="class">DataOutBase</code> and
197 <code class="class">DataOutBase::Patch</code> classes have been
198 changed so as to allow output of objects that have an other
199 dimension than the surrounding space, for example writing faces
200 instead of cells (this might be useful to write only external
201 faces in 3d computations).
207 New: There is a new <code class="member">distance</code> function
208 in the <code class="class">Point</code> class that calculates the
209 distance between two points.
211 (Ralf Hartmann 2000/09/06)
215 New: <code class="class">Timer</code> now uses the system
216 function <code class="member">getrusage (RUSAGE_CHILDREN,
217 .)</code> that is need in multithreading. But still the <code
218 class="class">Timer</code> class does not yet work in
219 multithreading, as getrusage with flag RUSAGE_CHILDREN gives always
220 0 (at least on Solaris7).
222 (Ralf Hartmann 2000/08/25)
226 New: There are now a set of functions
227 <code class="member">outer_product</code> that for the outer
235 <code class="class">Patterns::Integer</code>
236 and <code class="class">Patterns::Double</code> now allow that
237 a range may be specified in which the parameter shall
238 be. Furthermore, instead of a class,
239 <code class="class">Patterns</code> is now a namespace, so it
240 can be reopened in case you want to write another pattern class
241 and want to put it into the same namespace.
247 New: classes <code class="class">QMilne</code> and <code
248 class="class">QWeddle</code> for closed Newton-Cotes-formulæ of
249 orders 7 and 9, respectively.
255 New: There is now a function <code class="member">invert
256 (Tensor<2,dim>)</code> that returns the inverse of a tensor of
263 New multithreading scheme is implemented.
269 Improved: <code class="class">Subscriptor</code> prints the
270 real class name if a subscribed object is deleted.
275 Changed: License is now <acronym>deal.II</acronym> Public
276 License, restricting commercial use more explicitely.
289 Fixed: <code class="class">SparseILU</code> had two bugs which
292 (<a href="mailto:or@winfos.com">Oliver Rheinbach</a>, 2001/02/02)
296 Improved: block classes have a variable number of blocks now,
297 not a template parameter.
303 New: <code class="class">BlockDiagonalMatrix</code> is a
304 template that generates a matrix with multiple copies of the
305 same block on the diagonal.
312 Improved: Krylov-space solvers do not use the function residual
313 anymore. This allows easier implementation of new matrix
314 classes. <code class="class">SolverGMRES</code> now also counts
315 the first iteration step. Finally, all solvers inherit a <code
316 class="class">Subscriptor</code>.
322 New: There are now functions
323 <code class="member">SparsityPattern::symmetrize</code> and
324 <code class="member">SparseMatrix::symmetrize</code> that
325 generate a symmetric matrix from a non-symmetric one.
331 New: almost all classes that store data now have a function
332 <code class="member">memory_consumption</code> that returns an
333 estimate of the amount of memory (in bytes) used up by this
340 New: <code class="member">
341 SparseMatrix<number>::n_actually_nonzero_elements</code>
342 returns the number of entries that are actually nonzero.
344 (Ralf Hartmann 2000/11/22)
348 Fixed: unlike announced in the docs, the
349 <code class="member">FullMatrix::norm2</code> function did not
350 return the Frobenius norm of a matrix, but its square. This is
357 Improved: <code class="class">PreconditionBlockSOR</code><code
358 class="member">::Tvmult(...)</code> is implemented.
364 Improved: The breakdown criterion of <code
365 class="class">SolverBicgstab</code> can be changed by the use
366 of <code class="class">SolverBicgstab::AdditionalData</code>.
372 New: <code class="class">SolverRichardson</code> has a
373 transposed solver <code class="member">Tsolve(...)</code>. It
374 uses the functions <code class="member">Tvmult(...)</code> of
375 the provided matrix and preconditioner.
381 Improved: <code class="class">FullMatrix</code><code
382 class="member">::invert(...)</code> now inverts matrices of all
383 sizes. If there is no hardcoded inversion, <code
384 class="member">gauss_jordan()</code> is used implicitly.
390 New: For recognizing a diverging solver before the maximum
391 number of steps is reached,
392 <code class="class">SolverControl</code> returns
393 <code class="member">failure</code> also if the residual
394 increases over the start residual by a specific factor. This
395 factor is given to the <code class="class">SolverControl</code>
396 object by the <code class="member">set_failure_criterion</code>
397 function. After calling the latter function, checking of this
398 additional failure criterion may again be disabled by calling
399 <code class="member">clear_failure_criterion</code>.
401 (Ralf Hartmann 2000/06/26)
405 Improved: The interface of preconditioner classes has changed.
406 Preconditioners are now considered linear operators like
407 matrices: they have members <code class="member">vmult</code>
408 and <code class="member">Tvmult</code> instead of the old <code
409 class="member">operator()</code>. This will allow the
410 implementation of further non-symmetric solvers.
416 New: there is now a function
417 <code class="member">SparseMatrix::el</code> that does mostly
418 the same as <code class="member">SparseMatrix::operator()</code>,
419 but returns a zero if elements of the matrix are accessed that
420 are not in the sparsity pattern. Thus, the new function allows
421 to actually traverse rows or columns of the matrix without
422 taking care of the sparsity pattern, while
423 <code class="member">SparseMatrix::operator()</code> should be
424 used to write algorithms more efficiently.
431 <code class="member">SparsityPattern::print_gnuplot</code>
432 wrote rows and columns exchanged. Since most matrices have
433 symmetric sparsity patterns, this has gone unnoticed by now.
440 <code class="member">FullMatrix::Tvmult</code> function
441 suffered from the same problems as the
442 <code class="member">FullMatrix::Tmmult</code> function. This
443 is now fixed as well.
449 New: Class <code class="class">PreconditionBlockJacobi</code>.
455 New: <code class="class">SolverControl</code> has an interface
456 to <code class="class">ParameterHandler</code>, definining and
457 reading parameters from a file automatically.
463 New: <code class="class">BlockIndices</code>: Class that
464 manages the conversion of global indices into a block
465 vector/matrix/... to the indices local to each of the blocks.
471 New: <code class="class">BlockSparsityPattern</code> and
472 <code class="class">BlockSparseMatrix</code>: Classes that
473 represent matrices that are composed of sparse matrices.
480 <code class="member">FullMatrix::mmult</code> and
481 <code class="member">FullMatrix::Tmmult</code> code don't
482 resize their output argument any more, as this is not common
483 style in the library. Furthermore,
484 <code class="member">FullMatrix::Tmmult</code> was utterly
491 Change: the <code class="member">matrix_norm</code> functions
492 of sparse and full matrices are renamed to
493 <code class="member">matrix_norm_square</code>, since they in
494 fact return the square of the norm. This should avoid confusion
501 Fix: the ``copy-like'' constructor of
502 <code class="class">SparsityPattern</code> that copies another
503 object and adds some off-diagonals had a bug that caused an
504 exception in some cases. This is now fixed.
510 New: <code class="class">SwappableVector</code>: Class that
511 allows to swap out the data of a vector to disk and reload it
512 later on. It also has a function to preload the data before its
513 use in a separate thread if the library is configured for
520 New: there are now functions <code class="member">Vector::swap</code>
521 and <code class="member">BlockVector::swap</code>, as well as
522 global functions <code class="member">swap(u,v)</code> that
523 exchange the data of two vectors without needing a temporary
524 vector and without copying around data. Their run-time is
525 therefore independent of the length of the vectors.
531 Fix: <code class="class">SolverCG</code> counts steps properly.
537 Change: the solver classes in LAC lost their first template
538 argument. Their names are now
539 <code class="class">SolverXX<VECTOR></code>, where
540 <code class="class">XX</code> denotes the name of the solver
541 (e.g. CG, GMRES, etc). Furthermore, the
542 inheritance from <code class="class">Solver</code> was made private
543 to reflect the logical structure.
549 New: <code class="class">EigenInverse</code> implements inverse
550 iteration by Wieland.
556 New: <code class="class">EigenPower</code> implements power
563 New: <code class="member">PreconditionBlockSOR::set_omega</code>
564 allows to change the relaxation parameter.
570 New: <code class="class">SolverXX</code>: There is a virtual function
571 <code>print_vectors</code> called in every step. It is void in the
572 solver itself but can be used to print intermediate iteration
581 <a name="deal.II"></a>
586 Extend: <code class="member">DoFTools::extract_boundary_dofs</code>
587 now allows to also specify which boundary conditions shall be
594 New: some arguments of the functions
595 <code class="member">DoFHandler::n_boundary_dofs</code>,
596 <code class="member">DoFTools::extract_boundary_dofs</code>,
598 <code class="member">DoFTools::map_dof_to_boundary_indices</code>
599 are changed from <code class="class">list</code> to
600 <code class="class">set</code>, since that resembles more
601 closely the purpose of the parameter, and makes computations
608 New: almost all classes that store data now have a function
609 <code class="member">memory_consumption</code> that returns an
610 estimate of the amount of memory (in bytes) used up by this
617 New: The <code class="member">ConstraintMatrix::add_entries</code>
618 function add several constraints at once.
624 New: The <code class="member">DoFRenumbering::random</code>
625 function renumbers degrees of freedom in a random way.
631 New: The <code class="class">TriaAccessor</code> now has a
632 function <code class="member">point_inside</code> that checks
633 whether a certain point is inside a given cell.
635 (Thomas Richter 2000/10/12)
639 New: The <code class="class">FiniteElement</code> has got two
640 new functions <code class="member">transform_unit_to_real_cell
641 </code> and <code class="member">transform_real_to_unit_cell
642 </code>. They allow to transform points from reference (unit)
643 cell to real cell and visa versa. <code
644 class="member">transform_real_to_unit_cell</code> involves a
645 Newton iteration and works for all dimensions and all mappings
646 used to transform from unit to real cell.
648 (Ralf Hartmann 2000/10/12)
652 Extended: The <code class="class">Triangulation</code>
653 class can handle boundary information in 3d as well
654 (i.e. lines and quads in 3d with special material IDs).
656 (<a href="mailto://ms@biomech.tu-graz.ac.at">Michael
657 Stadler</a> 2000/10/11)
661 Extended: The <code class="class">GridIn</code>
662 class can now read 3D UCD data, including boundary information
663 (i.e. lines and quads in 3d with special material IDs).
665 (<a href="mailto://ms@biomech.tu-graz.ac.at">Michael
666 Stadler</a> 2000/10/11)
670 New: The <code class="member">GridRefinement::refine_and_coarsen_optimize</code>
671 function implements an alternative way to flag cells for
672 refinement and coarsening.
674 (Thomas Richter 2000/10/10)
678 Extended: The <code class="member">GridIn::delete_unused_vertices</code>
679 function now eliminates vertices from the input that are not
680 referenced by any of the cells in the input file. This makes is
681 simpler to delete some cells from the input file by hand,
682 without the need to update the vertex lists, which can be
683 tiring as several cells usually use each vertex. All functions
684 in the <code class="class">GridIn</code> reading grids in
685 several input files call this function before passing the data
686 to the triangulation object.
692 New: The <code class="class">GridIn</code>
693 class can now read the basics of grids in DB Mesh format.
699 Extended: The <code class="class">KellyErrorEstimator</code>
700 class is now able to estimate errors for several solution
701 vectors at the same time, provided they live on the same
702 <code class="class">DoFHandler</code> object.
708 New: The <code class="class">DataOut_Faces</code> class allows to
709 output faces instead of cells. This might be handy for 3d
710 computations if one is only interested in surface plots, or
711 cuts through the domain.
718 <code class="class">DataOut_Old</code> class has finally gone for
719 good. It was already deprecated in version 3.0, and has been
720 superceded for a long time by the framwork of classes around
721 <code class="class">DataOutBase</code> and
722 <code class="class">DataOut</code>.
728 New: There is now a function
729 <code class="member">DoFHandler::n_boundary_dofs</code>
730 that takes the list of selected boundary indicators as a
731 <code class="class">list</code> of values, rather than the
732 usual <code class="class">map</code> of pairs of boundary
733 indicators and function object pointers.
740 <code class="member">map_dof_to_boundary_index</code>
741 functions have been moved from the <code class="class">DoFHandler</code>
742 to the <code class="class">DoFTools</code> class, in order to
743 further remove code from the big classes which is necessarily
750 New: there is now a class <code class="class">DataOutRotation</code>
751 that can be used to output data which has been computed
752 exploiting rotational symmetry, on the original domain. Thus,
753 the output is of one dimension higher than the computation was,
754 where the computed solution is rotated around the axis of
761 New: class <code class="class">HalfHyperShellBoundary</code>
762 and <code class="member">GridGenerator::half_hyper_shell</code>
763 generate a half shell, useful for computations with a shell
764 domain and rotational symmetry.
770 Changed: The functions
771 <code class="member">Triangulation::refine</code>,
772 <code class="member">Triangulation::coarsen</code>,
774 class="member">Triangulation::refine_and_coarsen_fixed_fraction</code>,
777 class="member">Triangulation::refine_and_coarsen_fixed_number</code>
778 have been moved from the triangulation class to a separate
779 class <code class="class">GridRefinement</code> as they are not
780 intricately bound to the triangulation but rather form a
781 distinct class of functions that flag cells for refinement or
782 coarsening based on error indicators.
788 New: <code class="member">DataOut::clear_input_data_references</code>
789 clears all reference to input data vectors and to the <code
790 class="class">DoFHandler</code>. This function may be useful
791 after the patches have been built, to release memory as early
792 as possible, in this case before the output is actually written.
798 New: <code class="class">class DerivativeApproximation</code>
799 approximates the norm of the gradient or second derivative of a
800 finite element field on each cell from finite difference
803 (WB 2000/04/14 and 2000/07/23)
807 Fix: Add a missing assertions in <code
808 class="member">FEValuesBase::get_function_*</code>. If an <code
809 class="class">ExcAccessToUninitializedField</code> is now thrown
810 then probably an <code class="member">update_values</code> or
811 <code class="member">update_gradients</code> is missing in the
812 <code class="class">UpdateFlags</code> of a used <code
813 class="class">FEValues</code>. Adding this assertion uncovered
814 several other errors which are now also fixed; these errors
815 were dormant, since the values of finite elements are always
816 computed for the presently available Lagrange elements, but
817 would have been activated once there are other classes of
820 (Ralf Hartmann 2000/07/20)
824 New: Class <code class="class">DoFRenumbering</code> now has
825 functions for cell-wise downstream renumbering for
826 discontinuous elements. The parameters of the function <code
827 class="member">sort_selected_dofs_back</code> have been
828 switched to match the interfaces of all other functions in this
831 (GK 2000 Jour de Bastille)
835 New: Function <code class="class">VectorTools</code><code
836 class="member">::compute_mean_value</code> integrates the mean
837 value of one component of a finite element function.
843 New: The new function <code class="member">get_face</code>
844 of <code class="class">FEFaceValues</code> and <code
845 class="class">FESubfaceValues</code> returns an iterator of the
846 present face. This is the face, for that the <code
847 class="class">FE(Sub)FaceValues</code> object was reinited
850 (Ralf Hartmann 2000/06/26)
854 New: classes <code class="class">FEDG_Px</code> implement
855 complete polynomial spaces of degree <em>x</em> on
856 quadrilaterals. Since they have less degrees of freedom than
857 <code class="class">FEDG_Qx</code>, there is no continuous
858 version for these elements. Implementation for P4 and 3D is
866 <code class="member">DataOut::build_patches</code>
867 in multithreaded mode fixed.
869 (Ralf Hartmann, 2000/05/29)
873 New: class <code class="class">FETools</code> performs
874 interpolations and extrapolations of discrete functions from one
875 <code class="class">FiniteElement</code> to another <code
876 class="class">FiniteElement</code>. It also provides the local
877 interpolation matrices that interpolate on each
878 cell. Furthermore it provides the interpolation difference
879 matrix id-I<sub>h</sub> that is needed for evaluating
880 (id-I<sub>h</sub>)z for e.g. the dual solution z.
884 Removed: The obsolete
885 <code class="member">MatrixCreator::create_interpolation_matrix</code>
886 function is now removed.
890 (Ralf Hartmann 2000/05/26)
894 New: <code class="member">DoFTools::make_flux_sparsity_pattern</code>
895 can be optimized by providing two coefficient matrices.
901 Improved: <code class="member">VectorTools::integrate_difference</code>
902 allows for vector-valued weight functions. L<sup>1</sup> and
903 L<sup>infinity</sup> norms are calculated correctly.
909 Changed: <code class="member">FE_DGx::restriction</code> is
910 not an interpolation any more but a local projection which is
911 more reasonable for DG elements.
913 (Ralf Hartmann 2000/05/22)
918 <code class="class">MeshSmoothing</code> is moved into the
919 <code class="class">Triangulation</code> class.
921 (Ralf Hartmann 2000/05/18)
925 New: <code class="member">Triangulation<dim>::patch_level_1</code>
926 is a new mesh smoothing. A mesh of patch level 1 consists of
927 patches, i.e. they consists of cells that are all refined at
932 Changed: As follows from the existence of this new smoothing,
933 <code class="member">maximum_smoothing</code> will include this
938 (Ralf Hartmann 2000/05/18)
943 <code class="member">MatrixTools::apply_boundary_values</code>
944 now uses a much faster algorithm when working on matrices with
945 symmetric sparsity patterns. On the other hand, it does no more
946 eliminate whole rows when a matrix has a non-symmetric sparsity
947 pattern, or if the user (through a new flag) tells the function
948 that this is not necessary, for example if the matrix itself is
953 For symmetric sparsity patterns, the algorithm now eliminates
954 each boundary value in O(m*log(m)) steps instead of
955 O(N*log(m)), where N=number of rows of the matrix, and m=number
956 of entries per row. Note that m is roughly constant,
957 irrespective of N, so the old algorithm became slower with
958 finer grids, while the new one is O(1) for each boundary degree
963 (John Burnell, WB 2000/05/17)
967 New: many functions are now templatized on the data type of the
968 vector they take or return. They thus now support
969 <code class="class">Vector<float></code>, but also
970 <code class="class">BlockVector<...></code>. An
971 incomplete and growing list of functions that were treated in
975 <code class="member">DoFAccessor::get_dof_values</code>,
977 <code class="member">DoFAccessor::set_dof_values</code>,
979 <code class="member">DoFAccessor::get_interpolated_dof_values</code>,
981 <code class="member">DoFAccessor::set_dof_values_by_interpolation</code>,
983 <code class="member">FEValues::get_function_values</code>,
985 <code class="member">FEValues::get_function_grads</code>,
987 <code class="member">FEValues::get_function_2nd_derivatives</code>,
989 <code class="member">MatrixTools::apply_boundary_values</code>,
991 Several functions in <code class="class">ConstraintMatrix</code>.
994 (WB 2000/05/16 and later)
998 Changed: The computation of the Jacobian matrices in the
999 <code class="class">FEValues</code> class is now done more
1000 efficiently. The speedup is in the range of a factor of 40 for
1003 (John Burnell, WB 2000/05/16)
1007 Change: <code class="member">DoFTools::make_hanging_node_constraints ()</code>
1008 does not use the user flags any more, and can thus run in
1009 parallel more than once.
1015 Extended: <code class="member">DoFTools::make_sparsity_pattern ()</code>
1016 now accepts a template parameter as sparsity pattern. This
1017 allows to use this function for the usual
1018 <code class="class">SparsityPattern</code>, or for
1019 <code class="class">BlockSparsityPattern</code> arguments.
1025 New: <code class="member">DoFTools::extract_hanging_node_dofs ()</code>
1026 identifies nodes that will be constrained by hanging node constraints.
1032 New: <code class="member">DoFRenumbering::sort_selected_dofs_back ()</code>
1033 sorts selected degrees of freedom to the end of the index
1040 Change: the return value of
1041 <code class="member">DoFHandler::max_couplings_between_dofs ()</code>
1042 is bounded by <code class="member">DoFHandler::n_dofs()</code>.
1044 (Ralf Hartmann 2000/05/11)
1048 New: <code class="member">FEValuesBase::get_cell ()</code>
1049 returns present cell.
1051 (Ralf Hartmann 2000/05/11)
1055 Fix: <code class="member">FESystem::reinit()</code> generated
1056 an exception if <code class="member">update_support_points</code>
1063 New: <code class="member">IntergridMap::get_{source,destination}_grid</code>
1064 functions return the grids for which the map was created.
1070 Fix: in three space dimensions, the triangulation class
1071 over-estimated the necessary amount of memory needed upon
1072 refinement and allocated too much.
1078 New: <code class="member">DoFTools::extract_boundary_dofs</code>
1079 finds all degrees of freedom which are at the boundary and belong to
1080 specified components.
1086 New: <code class="member">DoFTools::compute_intergrid_constraints</code>
1087 allows to use different discretization grids for different
1094 New: <code class="member">DataOut::clear_data_vectors</code>
1095 allows to re-use an object without deleting the <code
1096 class="class">DoFHandler</code>.
1102 New: <code class="class">class DoFPrintSolverStep</code> prints
1103 intermediate vectors of a solver as finite element functions using
1104 <code class="class">DataOut</code>.