]> https://gitweb.dealii.org/ - dealii-svn.git/blob - deal.II/doc/news/2000/3.0.0-vs-3.1.0.html
4c3905344ef857f1b4fe223594f7b2d4cceef528
[dealii-svn.git] / deal.II / doc / news / 2000 / 3.0.0-vs-3.1.0.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
2    "http://www.w3.org/TR/REC-html40/strict.dtd">
3 <html>
4   <head>
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>
10
11 <body>
12
13
14 <h2>Changes after Version 3.0</h2>
15
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>.
22
23
24
25 <a name="general"></a>
26 <h3>General</h3>
27
28 <ol>
29   <li> <p>
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.
38        <br>
39        (WB 2001/01/16)
40        </p>
41
42   <li> <p>
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>)
47        of many functions.
48        <br>
49        (WB 2000/09/20)
50        </p>
51
52   <li> <p>
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.
60        <br>
61        (WB 2000/09/18)
62        </p>
63
64   <li> <p>
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>. 
68        <br>
69        (WB 2000/07/18)
70        </p>
71
72   <li> <p>
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.
79        <br>
80        (WB 2000/06/28)
81        </p>
82
83   <li> <p>
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
88        mode.
89        <br>
90        (Ralf Hartmann 2000/06/26)
91        </p>
92
93   <li> <p>
94        Fixed: the 
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.
99        <br>
100        (WB 2000/06/15)
101        </p>
102
103   <li> <p>
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.
110        <br>
111        (WB 2000/06/14)
112        </p>
113
114   <li> <p>
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.)
121        <br>
122        (WB 2000/06/14)
123        </p>
124
125   <li> <p>
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
130        options Makefile 
131        <code class="program">common/Make.global_options</code>.
132        <br>
133        (WB 2000/06/02)
134        </p>
135
136   <li> <p>
137        Improved: Dependence on the files 
138        <code class="file">forward_declarations.h</code> has been widely
139        removed to improve compilation time
140        <br>
141        (GK 2000/05/24)
142        </p>
143
144
145   <li> <p>
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.
149        <br>
150        (GK 2000/04/05)
151        </p>
152 </ol>
153
154
155
156 <a name="base"></a>
157 <h3>base</h3>
158
159 <ol>
160
161   <li> <p>
162        Improved: exceptions <code class="class">ExcIO</code> and <code
163        class="class">ExcOutOfMemory</code> are defined globally now.
164        <br>
165        (GK 2000/12/07)
166        </p>
167
168   <li> <p>
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.
172        <br>
173        (GK 2000/12/07)
174        </p>
175
176   <li> <p>
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.
183        <br>
184        (WB 2000/11/27)
185        </p>
186
187   <li> <p>
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>.
191        <br>
192        (GK 2000/11/13)
193        </p>
194
195   <li> <p>
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).
202        <br>
203        (WB 2000/09/07)
204        </p>       
205
206   <li> <p>
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.
210        <br>
211        (Ralf Hartmann 2000/09/06)
212        </p>   
213
214   <li> <p> 
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).
221        <br>
222        (Ralf Hartmann 2000/08/25)
223        </p>   
224
225   <li> <p>
226        New: There are now a set of functions
227        <code class="member">outer_product</code> that for the outer
228        product of tensors.
229        <br>
230        (WB 2000/07/23)
231        </p>       
232
233   <li> <p>
234        New: The classes 
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.
242        <br>
243        (WB 2000/07/21)
244        </p>
245
246   <li> <p>
247        New: classes <code class="class">QMilne</code> and <code
248        class="class">QWeddle</code> for closed Newton-Cotes-formul&aelig; of
249        orders 7 and 9, respectively.
250        <br>
251        (GK 2000/07/07)
252        </p>
253
254   <li> <p>
255        New: There is now a function <code class="member">invert
256        (Tensor<2,dim>)</code> that returns the inverse of a tensor of
257        rank 2.
258        <br>
259        (WB 2000/04/14)
260        </p>
261
262   <li> <p>
263        New multithreading scheme is implemented.
264        <br>
265        (WB 2000/04/13)
266        </p>
267
268   <li> <p>
269        Improved: <code class="class">Subscriptor</code> prints the
270        real class name if a subscribed object is deleted.
271        <br>
272        (GK 2000/04/12)
273        </p>
274   <li> <p>
275        Changed: License is now <acronym>deal.II</acronym> Public
276        License, restricting commercial use more explicitely.
277        <br>
278        (WB/RH/GK)
279        </p>
280 </ol>
281
282
283
284 <a name="lac"></a>
285 <h3>lac</h3>
286
287 <ol>
288   <li> <p>
289        Fixed: <code class="class">SparseILU</code> had two bugs which
290        are now fixed.
291        <br>
292        (<a href="mailto:or@winfos.com">Oliver Rheinbach</a>, 2001/02/02)
293        </p>
294
295   <li> <p>
296        Improved: block classes have a variable number of blocks now,
297        not a template parameter.
298        <br>
299        (GK 2000/12/07)
300        </p>
301
302   <li> <p>
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.
306        <br>
307        (GK 2000/12/07)
308        </p>
309
310   <li> <p>
311
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>.
317        <br>
318        (GK 2000/12/07)
319        </p>
320
321   <li> <p>
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.
326        <br>
327        (WB 2000/12/02)
328        </p>
329
330   <li> <p>
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
334        class.
335        <br>
336        (WB 2000/11/27)
337        </p>
338
339   <li> <p> 
340        New: <code class="member">
341        SparseMatrix<number>::n_actually_nonzero_elements</code>
342        returns the number of entries that are actually nonzero.
343        <br>
344        (Ralf Hartmann 2000/11/22)
345        </p>       
346
347   <li> <p>
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
351        fixed now.
352        <br>
353        (GK 2000/08/28)
354        </p>       
355
356   <li> <p>
357        Improved: <code class="class">PreconditionBlockSOR</code><code
358        class="member">::Tvmult(...)</code> is implemented.
359        <br>
360        (GK 2000/07/07)
361        </p>
362
363   <li> <p>
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>.
367        <br>
368        (GK 2000/07/07)
369        </p>       
370
371   <li> <p>
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.
376        <br>
377        (GK 2000/07/07)
378        </p>
379
380   <li> <p>
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.
385        <br>
386        (GK 2000/06/30)
387        </p>
388
389   <li> <p> 
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>.
400        <br>
401        (Ralf Hartmann 2000/06/26)
402        </p>
403
404   <li> <p>
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.
411        <br>
412        (GK 2000/06/20)
413        </p>
414
415   <li> <p>
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.
425        <br>
426        (WB 2000/06/02)
427        </p>
428
429   <li> <p>
430        Fix: 
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.
434        <br>
435        (WB 2000/05/30)
436        </p>
437
438   <li> <p>
439        Fix: the 
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.
444        <br>
445        (WB 2000/05/26)
446        </p>
447
448   <li> <p>
449        New: Class <code class="class">PreconditionBlockJacobi</code>.
450        <br>
451        (GK 2000/05/24)
452        </p>
453
454   <li> <p>
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.
458        <br>
459        (GK 2000/05/24)
460        </p>
461
462   <li> <p>
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. 
466        <br>
467        (WB 2000/05/08)
468        </p>  
469
470   <li> <p>
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.
474        <br>
475        (WB 2000/05/08)
476        </p>  
477
478   <li> <p>
479        Fix: the 
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
485        broken. 
486        <br>
487        (WB 2000/05/08)
488        </p>
489
490   <li> <p>
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
495        in some cases.
496        <br>
497        (WB 2000/05/05)
498        </p>
499
500   <li> <p>
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.
505        <br>
506        (WB 2000/05/04)
507        </p>
508
509   <li> <p>
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
514        multi-threading.
515        <br>
516        (WB 2000/05/03)
517        </p>
518
519   <li> <p>
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.
526        <br>
527        (WB 2000/05/02)
528        </p>
529
530   <li> <p>
531        Fix: <code class="class">SolverCG</code> counts steps properly.
532        <br>
533        (GK 2000/04/25)
534        </p>
535
536   <li> <p>
537        Change: the solver classes in LAC lost their first template
538        argument. Their names are now 
539        <code class="class">SolverXX&lt;VECTOR&gt;</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.
544        <br>
545        (GK 2000/04/25)
546        </p>
547
548   <li> <p>
549        New: <code class="class">EigenInverse</code> implements inverse
550        iteration by Wieland.
551        <br>
552        (GK 2000/04/20)
553        </p>
554
555   <li> <p>
556        New: <code class="class">EigenPower</code> implements power
557        method by von Mises
558        <br>
559        (GK 2000/04/19)
560        </p>
561
562   <li> <p>
563        New: <code class="member">PreconditionBlockSOR::set_omega</code>
564        allows to change the relaxation parameter.
565        <br>
566        (GK 2000/04/12)
567        </p>
568
569   <li> <p>
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
573        vectors.
574        <br>
575        (GK 2000/04/05)
576        </p>
577 </ol>
578
579
580
581 <a name="deal.II"></a>
582 <h3>deal.II</h3>
583
584 <ol>
585   <li> <p>
586        Extend: <code class="member">DoFTools::extract_boundary_dofs</code>
587        now allows to also specify which boundary conditions shall be
588        considered. 
589        <br>
590        (WB 2000/12/04)
591        </p>
592
593   <li> <p>
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>,
597        and
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
602        slightly faster.
603        <br>
604        (WB 2000/12/04)
605        </p>
606
607   <li> <p>
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
611        class.
612        <br>
613        (WB 2000/11/27)
614        </p>
615
616   <li> <p>
617        New: The <code class="member">ConstraintMatrix::add_entries</code>
618        function add several constraints at once.
619        <br>
620        (WB 2000/10/26)
621        </p>
622
623   <li> <p>
624        New: The <code class="member">DoFRenumbering::random</code>
625        function renumbers degrees of freedom in a random way.
626        <br>
627        (WB 2000/10/22)
628        </p>
629
630   <li> <p>
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.
634        <br>
635        (Thomas Richter 2000/10/12)
636        </p>
637
638   <li> <p>
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.
647        <br>
648        (Ralf Hartmann 2000/10/12)
649        </p>
650
651   <li> <p>
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).
655        <br>
656        (<a href="mailto://ms@biomech.tu-graz.ac.at">Michael 
657         Stadler</a> 2000/10/11)
658        </p>       
659
660   <li> <p>
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).
664        <br>
665        (<a href="mailto://ms@biomech.tu-graz.ac.at">Michael
666         Stadler</a> 2000/10/11)
667        </p>       
668
669   <li> <p>
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.
673        <br>
674        (Thomas Richter 2000/10/10)
675        </p>       
676
677   <li> <p>
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.
687        <br>
688        (WB 2000/09/26)
689        </p>       
690
691   <li> <p>
692        New: The <code class="class">GridIn</code>
693        class can now read the basics of grids in DB Mesh format.
694        <br>
695        (WB 2000/09/26)
696        </p>       
697
698   <li> <p>
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.
703        <br>
704        (WB 2000/09/11)
705        </p>       
706
707   <li> <p>
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.
712        <br>
713        (WB 2000/09/07)
714        </p>       
715
716   <li> <p>
717        Removed: The 
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>.
723        <br>
724        (WB 2000/09/07)
725        </p>
726
727   <li> <p>
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.
734        <br>
735        (WB 2000/08/25)
736        </p>
737
738   <li> <p>
739        Changed: The 
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
744        needed there.
745        <br>
746        (WB 2000/08/25)
747        </p>
748
749   <li> <p>
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
755        symmetry.
756        <br>
757        (WB 2000/08/14)
758        </p>
759
760   <li> <p>
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.
765        <br>
766        (WB 2000/08/08)
767        </p>
768
769   <li> <p>
770        Changed: The functions
771        <code class="member">Triangulation::refine</code>,
772        <code class="member">Triangulation::coarsen</code>,
773        <code
774        class="member">Triangulation::refine_and_coarsen_fixed_fraction</code>,
775        and
776        <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.
783        <br>
784        (WB 2000/07/28)
785        </p>
786
787   <li> <p>
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.
793        <br>
794        (WB 2000/07/26)
795        </p>
796
797   <li> <p>
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
801        approximations.
802        <br>
803        (WB 2000/04/14 and 2000/07/23)
804        </p>
805
806   <li> <p>
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
818        elements. 
819        <br>
820        (Ralf Hartmann 2000/07/20)
821        </p>
822
823   <li> <p>
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
829        class.
830        <br>
831        (GK 2000 Jour de Bastille)
832        </p>
833
834   <li> <p>
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.
838        <br>
839        (GK 2000/07/12)
840        </p>
841        
842   <li> <p>
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
848        the last time.
849        <br>
850        (Ralf Hartmann 2000/06/26)
851        </p>
852
853   <li> <p>
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
859        still incomplete.
860        <br>
861        (GK 2000/06/20)
862        </p>
863
864   <li> <p>
865        Fix: slight bug in 
866        <code class="member">DataOut::build_patches</code>
867        in multithreaded mode fixed.
868        <br>
869        (Ralf Hartmann, 2000/05/29)
870        </p>
871
872   <li> <p>
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.
881        </p>
882
883        <p>
884        Removed: The obsolete 
885        <code class="member">MatrixCreator::create_interpolation_matrix</code>
886        function is now removed.
887        </p>
888
889        <p>
890        (Ralf Hartmann 2000/05/26)
891        </p>
892
893   <li> <p>
894        New: <code class="member">DoFTools::make_flux_sparsity_pattern</code>
895        can be optimized by providing two coefficient matrices.
896        <br>
897        (GK 2000/05/25)
898        </p>
899
900   <li> <p>
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.
904        <br>
905        (GK 2000/05/25)
906        </p>
907
908   <li> <p>
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.
912        <br>
913        (Ralf Hartmann 2000/05/22)
914        </p>
915
916   <li> <p>
917        Changed: enum 
918        <code class="class">MeshSmoothing</code> is moved into the 
919        <code class="class">Triangulation</code> class.
920        <br>
921        (Ralf Hartmann 2000/05/18)
922        </p>
923
924   <li> <p> 
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
928        least once.
929        </p>
930
931        <p>
932        Changed: As follows from the existence of this new smoothing,
933        <code class="member">maximum_smoothing</code> will include this
934        smoothing.
935        </p>
936
937        <p>
938        (Ralf Hartmann 2000/05/18)
939        </p>
940
941   <li> <p>
942        Changed: the 
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
949        non-symmetric. 
950        </p>
951
952        <p>
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
959        of freedom.
960        </p>
961
962        <p>
963        (John Burnell, WB 2000/05/17)
964        </p>
965
966   <li> <p>
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&lt;float&gt;</code>, but also
970        <code class="class">BlockVector&lt;...&gt;</code>. An
971        incomplete and growing list of functions that were treated in
972        this way is:
973        <ul>
974        <li>
975        <code class="member">DoFAccessor::get_dof_values</code>,
976        <li>
977        <code class="member">DoFAccessor::set_dof_values</code>,
978        <li>
979        <code class="member">DoFAccessor::get_interpolated_dof_values</code>,
980        <li>
981        <code class="member">DoFAccessor::set_dof_values_by_interpolation</code>,
982        <li>
983        <code class="member">FEValues::get_function_values</code>,
984        <li>
985        <code class="member">FEValues::get_function_grads</code>,
986        <li>
987        <code class="member">FEValues::get_function_2nd_derivatives</code>,
988        <li>
989        <code class="member">MatrixTools::apply_boundary_values</code>,
990        <li>
991        Several functions in <code class="class">ConstraintMatrix</code>.
992        </ul>
993        <br>
994        (WB 2000/05/16 and later)
995        </p>
996
997   <li> <p>
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
1001        3D. 
1002        <br>
1003        (John Burnell, WB 2000/05/16)
1004        </p>
1005
1006   <li> <p> 
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. 
1010        <br>
1011        (WB 2000/05/15)
1012        </p>
1013
1014   <li> <p> 
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.
1020        <br>
1021        (WB 2000/05/15)
1022        </p>
1023
1024   <li> <p> 
1025        New: <code class="member">DoFTools::extract_hanging_node_dofs ()</code>
1026        identifies nodes that will be constrained by hanging node constraints.
1027        <br>
1028        (WB 2000/05/12)
1029        </p>
1030
1031   <li> <p> 
1032        New: <code class="member">DoFRenumbering::sort_selected_dofs_back ()</code>
1033        sorts selected degrees of freedom to the end of the index
1034        range.
1035        <br>
1036        (WB 2000/05/12)
1037        </p>
1038
1039   <li> <p> 
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>.
1043        <br>
1044        (Ralf Hartmann 2000/05/11)
1045        </p>
1046
1047   <li> <p> 
1048        New: <code class="member">FEValuesBase::get_cell ()</code>
1049        returns present cell.
1050        <br>
1051        (Ralf Hartmann 2000/05/11)
1052        </p>
1053
1054   <li> <p> 
1055        Fix: <code class="member">FESystem::reinit()</code> generated
1056        an exception if <code class="member">update_support_points</code> 
1057        was set.
1058        <br>
1059        (WB 2000/05/10)
1060        </p>
1061
1062   <li> <p> 
1063        New: <code class="member">IntergridMap::get_{source,destination}_grid</code> 
1064        functions return the grids for which the map was created.
1065        <br>
1066        (WB 2000/04/19)
1067        </p>
1068
1069   <li> <p>
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.
1073        <br>
1074        (WB 2000/04/19)
1075        </p>
1076
1077   <li> <p>
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.
1081        <br>
1082        (WB 2000/04/17)
1083        </p>
1084
1085   <li> <p>
1086        New: <code class="member">DoFTools::compute_intergrid_constraints</code> 
1087        allows to use different discretization grids for different
1088        variables.
1089        <br>
1090        (WB 2000/04/15)
1091        </p>
1092
1093   <li> <p>
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>. 
1097        <br>
1098        (GK 2000/04/05)
1099        </p>
1100
1101   <li> <p>
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>.
1105        <br>
1106        (GK 2000/04/05)
1107        </p>
1108
1109 </ol>
1110
1111 <hr>
1112 Last update $Date$
1113
1114 </body>
1115 </html>

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

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.