From 59b1c555cf73cca74e468fd79d04a867184bcbce Mon Sep 17 00:00:00 2001 From: guido Date: Mon, 15 Nov 2004 14:04:35 +0000 Subject: [PATCH] remove html formatted article assemble git-svn-id: https://svn.dealii.org/trunk@9758 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/doc/Makefile.in | 5 +- deal.II/doc/news/2002/c-3-4.html | 1392 ---------------------- deal.II/doc/news/3.4.0-vs-4.0.0.html | 2 +- deal.II/doc/reports/assemble/img1.gif | Bin 236 -> 0 bytes deal.II/doc/reports/assemble/img10.gif | Bin 152 -> 0 bytes deal.II/doc/reports/assemble/img11.gif | Bin 274 -> 0 bytes deal.II/doc/reports/assemble/img12.gif | Bin 552 -> 0 bytes deal.II/doc/reports/assemble/img13.gif | Bin 1195 -> 0 bytes deal.II/doc/reports/assemble/img14.gif | Bin 786 -> 0 bytes deal.II/doc/reports/assemble/img15.gif | Bin 173 -> 0 bytes deal.II/doc/reports/assemble/img16.gif | Bin 284 -> 0 bytes deal.II/doc/reports/assemble/img17.gif | Bin 142 -> 0 bytes deal.II/doc/reports/assemble/img18.gif | Bin 151 -> 0 bytes deal.II/doc/reports/assemble/img19.gif | Bin 1320 -> 0 bytes deal.II/doc/reports/assemble/img2.gif | Bin 690 -> 0 bytes deal.II/doc/reports/assemble/img20.gif | Bin 152 -> 0 bytes deal.II/doc/reports/assemble/img21.gif | Bin 129 -> 0 bytes deal.II/doc/reports/assemble/img22.gif | Bin 1254 -> 0 bytes deal.II/doc/reports/assemble/img23.gif | Bin 277 -> 0 bytes deal.II/doc/reports/assemble/img24.gif | Bin 183 -> 0 bytes deal.II/doc/reports/assemble/img25.gif | Bin 172 -> 0 bytes deal.II/doc/reports/assemble/img26.gif | Bin 209 -> 0 bytes deal.II/doc/reports/assemble/img27.gif | Bin 174 -> 0 bytes deal.II/doc/reports/assemble/img28.gif | Bin 192 -> 0 bytes deal.II/doc/reports/assemble/img29.gif | Bin 343 -> 0 bytes deal.II/doc/reports/assemble/img3.gif | Bin 235 -> 0 bytes deal.II/doc/reports/assemble/img30.gif | Bin 196 -> 0 bytes deal.II/doc/reports/assemble/img31.gif | Bin 1806 -> 0 bytes deal.II/doc/reports/assemble/img32.gif | Bin 341 -> 0 bytes deal.II/doc/reports/assemble/img33.gif | Bin 116 -> 0 bytes deal.II/doc/reports/assemble/img34.gif | Bin 1107 -> 0 bytes deal.II/doc/reports/assemble/img35.gif | Bin 322 -> 0 bytes deal.II/doc/reports/assemble/img36.gif | Bin 392 -> 0 bytes deal.II/doc/reports/assemble/img37.gif | Bin 562 -> 0 bytes deal.II/doc/reports/assemble/img38.gif | Bin 192 -> 0 bytes deal.II/doc/reports/assemble/img39.gif | Bin 157 -> 0 bytes deal.II/doc/reports/assemble/img4.gif | Bin 139 -> 0 bytes deal.II/doc/reports/assemble/img40.gif | Bin 172 -> 0 bytes deal.II/doc/reports/assemble/img41.gif | Bin 1684 -> 0 bytes deal.II/doc/reports/assemble/img42.gif | Bin 307 -> 0 bytes deal.II/doc/reports/assemble/img43.gif | Bin 280 -> 0 bytes deal.II/doc/reports/assemble/img44.gif | Bin 167 -> 0 bytes deal.II/doc/reports/assemble/img45.gif | Bin 299 -> 0 bytes deal.II/doc/reports/assemble/img46.gif | Bin 355 -> 0 bytes deal.II/doc/reports/assemble/img47.gif | Bin 73 -> 0 bytes deal.II/doc/reports/assemble/img48.gif | Bin 371 -> 0 bytes deal.II/doc/reports/assemble/img49.gif | Bin 417 -> 0 bytes deal.II/doc/reports/assemble/img5.gif | Bin 132 -> 0 bytes deal.II/doc/reports/assemble/img50.gif | Bin 368 -> 0 bytes deal.II/doc/reports/assemble/img51.gif | Bin 341 -> 0 bytes deal.II/doc/reports/assemble/img52.gif | Bin 600 -> 0 bytes deal.II/doc/reports/assemble/img53.gif | Bin 799 -> 0 bytes deal.II/doc/reports/assemble/img54.gif | Bin 92 -> 0 bytes deal.II/doc/reports/assemble/img55.gif | Bin 92 -> 0 bytes deal.II/doc/reports/assemble/img56.gif | Bin 1354 -> 0 bytes deal.II/doc/reports/assemble/img57.gif | Bin 1631 -> 0 bytes deal.II/doc/reports/assemble/img58.gif | Bin 526 -> 0 bytes deal.II/doc/reports/assemble/img59.gif | Bin 257 -> 0 bytes deal.II/doc/reports/assemble/img6.gif | Bin 182 -> 0 bytes deal.II/doc/reports/assemble/img60.gif | Bin 398 -> 0 bytes deal.II/doc/reports/assemble/img61.gif | Bin 175 -> 0 bytes deal.II/doc/reports/assemble/img62.gif | Bin 701 -> 0 bytes deal.II/doc/reports/assemble/img63.gif | Bin 713 -> 0 bytes deal.II/doc/reports/assemble/img64.gif | Bin 3965 -> 0 bytes deal.II/doc/reports/assemble/img65.gif | Bin 2331 -> 0 bytes deal.II/doc/reports/assemble/img66.gif | Bin 540 -> 0 bytes deal.II/doc/reports/assemble/img67.gif | Bin 318 -> 0 bytes deal.II/doc/reports/assemble/img68.gif | Bin 173 -> 0 bytes deal.II/doc/reports/assemble/img69.gif | Bin 100 -> 0 bytes deal.II/doc/reports/assemble/img7.gif | Bin 241 -> 0 bytes deal.II/doc/reports/assemble/img70.gif | Bin 168 -> 0 bytes deal.II/doc/reports/assemble/img71.gif | Bin 347 -> 0 bytes deal.II/doc/reports/assemble/img72.gif | Bin 1435 -> 0 bytes deal.II/doc/reports/assemble/img73.gif | Bin 108 -> 0 bytes deal.II/doc/reports/assemble/img74.gif | Bin 1978 -> 0 bytes deal.II/doc/reports/assemble/img75.gif | Bin 659 -> 0 bytes deal.II/doc/reports/assemble/img76.gif | Bin 172 -> 0 bytes deal.II/doc/reports/assemble/img77.gif | Bin 859 -> 0 bytes deal.II/doc/reports/assemble/img78.gif | Bin 169 -> 0 bytes deal.II/doc/reports/assemble/img79.gif | Bin 221 -> 0 bytes deal.II/doc/reports/assemble/img8.gif | Bin 293 -> 0 bytes deal.II/doc/reports/assemble/img80.gif | Bin 699 -> 0 bytes deal.II/doc/reports/assemble/img81.gif | Bin 195 -> 0 bytes deal.II/doc/reports/assemble/img82.gif | Bin 1460 -> 0 bytes deal.II/doc/reports/assemble/img83.gif | Bin 129 -> 0 bytes deal.II/doc/reports/assemble/img84.gif | Bin 368 -> 0 bytes deal.II/doc/reports/assemble/img85.gif | Bin 371 -> 0 bytes deal.II/doc/reports/assemble/img86.gif | Bin 455 -> 0 bytes deal.II/doc/reports/assemble/img87.gif | Bin 334 -> 0 bytes deal.II/doc/reports/assemble/img88.gif | Bin 131 -> 0 bytes deal.II/doc/reports/assemble/img89.gif | Bin 211 -> 0 bytes deal.II/doc/reports/assemble/img9.gif | Bin 798 -> 0 bytes deal.II/doc/reports/assemble/img90.gif | Bin 297 -> 0 bytes deal.II/doc/reports/assemble/img91.gif | Bin 305 -> 0 bytes deal.II/doc/reports/assemble/img92.gif | Bin 142 -> 0 bytes deal.II/doc/reports/assemble/img93.gif | Bin 298 -> 0 bytes deal.II/doc/reports/assemble/img94.gif | Bin 230 -> 0 bytes deal.II/doc/reports/assemble/img95.gif | Bin 454 -> 0 bytes deal.II/doc/reports/assemble/img96.gif | Bin 202 -> 0 bytes deal.II/doc/reports/assemble/index.html | 151 --- deal.II/doc/reports/assemble/node10.html | 156 --- deal.II/doc/reports/assemble/node11.html | 153 --- deal.II/doc/reports/assemble/node12.html | 94 -- deal.II/doc/reports/assemble/node13.html | 149 --- deal.II/doc/reports/assemble/node14.html | 105 -- deal.II/doc/reports/assemble/node15.html | 74 -- deal.II/doc/reports/assemble/node16.html | 73 -- deal.II/doc/reports/assemble/node2.html | 775 ------------ deal.II/doc/reports/assemble/node3.html | 143 --- deal.II/doc/reports/assemble/node4.html | 81 -- deal.II/doc/reports/assemble/node5.html | 355 ------ deal.II/doc/reports/assemble/node6.html | 183 --- deal.II/doc/reports/assemble/node7.html | 321 ----- deal.II/doc/reports/assemble/node8.html | 116 -- deal.II/doc/reports/assemble/node9.html | 108 -- 115 files changed, 5 insertions(+), 4431 deletions(-) delete mode 100644 deal.II/doc/news/2002/c-3-4.html delete mode 100644 deal.II/doc/reports/assemble/img1.gif delete mode 100644 deal.II/doc/reports/assemble/img10.gif delete mode 100644 deal.II/doc/reports/assemble/img11.gif delete mode 100644 deal.II/doc/reports/assemble/img12.gif delete mode 100644 deal.II/doc/reports/assemble/img13.gif delete mode 100644 deal.II/doc/reports/assemble/img14.gif delete mode 100644 deal.II/doc/reports/assemble/img15.gif delete mode 100644 deal.II/doc/reports/assemble/img16.gif delete mode 100644 deal.II/doc/reports/assemble/img17.gif delete mode 100644 deal.II/doc/reports/assemble/img18.gif delete mode 100644 deal.II/doc/reports/assemble/img19.gif delete mode 100644 deal.II/doc/reports/assemble/img2.gif delete mode 100644 deal.II/doc/reports/assemble/img20.gif delete mode 100644 deal.II/doc/reports/assemble/img21.gif delete mode 100644 deal.II/doc/reports/assemble/img22.gif delete mode 100644 deal.II/doc/reports/assemble/img23.gif delete mode 100644 deal.II/doc/reports/assemble/img24.gif delete mode 100644 deal.II/doc/reports/assemble/img25.gif delete mode 100644 deal.II/doc/reports/assemble/img26.gif delete mode 100644 deal.II/doc/reports/assemble/img27.gif delete mode 100644 deal.II/doc/reports/assemble/img28.gif delete mode 100644 deal.II/doc/reports/assemble/img29.gif delete mode 100644 deal.II/doc/reports/assemble/img3.gif delete mode 100644 deal.II/doc/reports/assemble/img30.gif delete mode 100644 deal.II/doc/reports/assemble/img31.gif delete mode 100644 deal.II/doc/reports/assemble/img32.gif delete mode 100644 deal.II/doc/reports/assemble/img33.gif delete mode 100644 deal.II/doc/reports/assemble/img34.gif delete mode 100644 deal.II/doc/reports/assemble/img35.gif delete mode 100644 deal.II/doc/reports/assemble/img36.gif delete mode 100644 deal.II/doc/reports/assemble/img37.gif delete mode 100644 deal.II/doc/reports/assemble/img38.gif delete mode 100644 deal.II/doc/reports/assemble/img39.gif delete mode 100644 deal.II/doc/reports/assemble/img4.gif delete mode 100644 deal.II/doc/reports/assemble/img40.gif delete mode 100644 deal.II/doc/reports/assemble/img41.gif delete mode 100644 deal.II/doc/reports/assemble/img42.gif delete mode 100644 deal.II/doc/reports/assemble/img43.gif delete mode 100644 deal.II/doc/reports/assemble/img44.gif delete mode 100644 deal.II/doc/reports/assemble/img45.gif delete mode 100644 deal.II/doc/reports/assemble/img46.gif delete mode 100644 deal.II/doc/reports/assemble/img47.gif delete mode 100644 deal.II/doc/reports/assemble/img48.gif delete mode 100644 deal.II/doc/reports/assemble/img49.gif delete mode 100644 deal.II/doc/reports/assemble/img5.gif delete mode 100644 deal.II/doc/reports/assemble/img50.gif delete mode 100644 deal.II/doc/reports/assemble/img51.gif delete mode 100644 deal.II/doc/reports/assemble/img52.gif delete mode 100644 deal.II/doc/reports/assemble/img53.gif delete mode 100644 deal.II/doc/reports/assemble/img54.gif delete mode 100644 deal.II/doc/reports/assemble/img55.gif delete mode 100644 deal.II/doc/reports/assemble/img56.gif delete mode 100644 deal.II/doc/reports/assemble/img57.gif delete mode 100644 deal.II/doc/reports/assemble/img58.gif delete mode 100644 deal.II/doc/reports/assemble/img59.gif delete mode 100644 deal.II/doc/reports/assemble/img6.gif delete mode 100644 deal.II/doc/reports/assemble/img60.gif delete mode 100644 deal.II/doc/reports/assemble/img61.gif delete mode 100644 deal.II/doc/reports/assemble/img62.gif delete mode 100644 deal.II/doc/reports/assemble/img63.gif delete mode 100644 deal.II/doc/reports/assemble/img64.gif delete mode 100644 deal.II/doc/reports/assemble/img65.gif delete mode 100644 deal.II/doc/reports/assemble/img66.gif delete mode 100644 deal.II/doc/reports/assemble/img67.gif delete mode 100644 deal.II/doc/reports/assemble/img68.gif delete mode 100644 deal.II/doc/reports/assemble/img69.gif delete mode 100644 deal.II/doc/reports/assemble/img7.gif delete mode 100644 deal.II/doc/reports/assemble/img70.gif delete mode 100644 deal.II/doc/reports/assemble/img71.gif delete mode 100644 deal.II/doc/reports/assemble/img72.gif delete mode 100644 deal.II/doc/reports/assemble/img73.gif delete mode 100644 deal.II/doc/reports/assemble/img74.gif delete mode 100644 deal.II/doc/reports/assemble/img75.gif delete mode 100644 deal.II/doc/reports/assemble/img76.gif delete mode 100644 deal.II/doc/reports/assemble/img77.gif delete mode 100644 deal.II/doc/reports/assemble/img78.gif delete mode 100644 deal.II/doc/reports/assemble/img79.gif delete mode 100644 deal.II/doc/reports/assemble/img8.gif delete mode 100644 deal.II/doc/reports/assemble/img80.gif delete mode 100644 deal.II/doc/reports/assemble/img81.gif delete mode 100644 deal.II/doc/reports/assemble/img82.gif delete mode 100644 deal.II/doc/reports/assemble/img83.gif delete mode 100644 deal.II/doc/reports/assemble/img84.gif delete mode 100644 deal.II/doc/reports/assemble/img85.gif delete mode 100644 deal.II/doc/reports/assemble/img86.gif delete mode 100644 deal.II/doc/reports/assemble/img87.gif delete mode 100644 deal.II/doc/reports/assemble/img88.gif delete mode 100644 deal.II/doc/reports/assemble/img89.gif delete mode 100644 deal.II/doc/reports/assemble/img9.gif delete mode 100644 deal.II/doc/reports/assemble/img90.gif delete mode 100644 deal.II/doc/reports/assemble/img91.gif delete mode 100644 deal.II/doc/reports/assemble/img92.gif delete mode 100644 deal.II/doc/reports/assemble/img93.gif delete mode 100644 deal.II/doc/reports/assemble/img94.gif delete mode 100644 deal.II/doc/reports/assemble/img95.gif delete mode 100644 deal.II/doc/reports/assemble/img96.gif delete mode 100644 deal.II/doc/reports/assemble/index.html delete mode 100644 deal.II/doc/reports/assemble/node10.html delete mode 100644 deal.II/doc/reports/assemble/node11.html delete mode 100644 deal.II/doc/reports/assemble/node12.html delete mode 100644 deal.II/doc/reports/assemble/node13.html delete mode 100644 deal.II/doc/reports/assemble/node14.html delete mode 100644 deal.II/doc/reports/assemble/node15.html delete mode 100644 deal.II/doc/reports/assemble/node16.html delete mode 100644 deal.II/doc/reports/assemble/node2.html delete mode 100644 deal.II/doc/reports/assemble/node3.html delete mode 100644 deal.II/doc/reports/assemble/node4.html delete mode 100644 deal.II/doc/reports/assemble/node5.html delete mode 100644 deal.II/doc/reports/assemble/node6.html delete mode 100644 deal.II/doc/reports/assemble/node7.html delete mode 100644 deal.II/doc/reports/assemble/node8.html delete mode 100644 deal.II/doc/reports/assemble/node9.html diff --git a/deal.II/doc/Makefile.in b/deal.II/doc/Makefile.in index fafc8a5806..1b77c24f36 100644 --- a/deal.II/doc/Makefile.in +++ b/deal.II/doc/Makefile.in @@ -31,7 +31,10 @@ glossary: validate-xrefs: @echo "Validating cross-references in HTML files." - $(PERL) $D/common/scripts/validate-xrefs.pl *html doxygen/*/*.html + $(PERL) $D/common/scripts/validate-xrefs.pl *html + $(PERL) $D/common/scripts/validate-xrefs.pl doxygen/base/*.html + $(PERL) $D/common/scripts/validate-xrefs.pl doxygen/lac/*.html + $(PERL) $D/common/scripts/validate-xrefs.pl doxygen/deal.II/*.html cd tutorial ; $(MAKE) validate-xrefs cd development ; $(MAKE) validate-xrefs cd publications ; $(MAKE) validate-xrefs diff --git a/deal.II/doc/news/2002/c-3-4.html b/deal.II/doc/news/2002/c-3-4.html deleted file mode 100644 index e57bbdd244..0000000000 --- a/deal.II/doc/news/2002/c-3-4.html +++ /dev/null @@ -1,1392 +0,0 @@ - - - - - - The deal.II news page - - - - - - -

Changes after Version 3.4

- -

-This is the list of changes made after the release of -deal.II version 3.4. It is subdivided into changes -made to the three sub-libraries base, -lac, and deal.II, as well as -changes to the general infrastructure, -documentation, etc. -

- -

-All entries are signed with the names of the author. Regular -contributor's names are abbreviated by WB (Wolfgang Bangerth), GK -(Guido Kanschat), RH (Ralf Hartmann). -

- - - -

General

- -
    -
  1. - New: deal.II now uses a new threading - scheme. The new scheme is simpler to use, and in particular - more flexible in some cases where only one thread is started, - or where a thread is completely detached, since we got rid of - the ThreadManager class and now only store handles - to individual threads (which can be discarded, or added to a - ThreadGroup variable that is able to wait for a - whole set of threads at once. -
    - The new scheme also implements a much needed feature: calling - functions on a new thread that return values. Previously, such - functions needed to be written in a way that they return their - return value through an additional reference parameter. This - was inflexible if one wanted to call functions that already - exist. This restriction is now lifted: such functions can be - called, and the return value can be accessed once the thread - has finished. -
    - Some documentation for the new scheme can be found - on this - page. -
    - (WB 2003/02/06) -

    - -
  2. - New: deal.II now makes use of some parts of - the boost library, which is - supposed to be a testground for the next generation C++ standard - library. The parts which we use are now in - contrib/boost/include/boost_local/ and can be - referenced from within your programs. The directory contains - the string _local since you may still want to use - another version or installation of boost in your own programs. -

    - -

    - Also note that boost is large -- much larger than the subset we - have imported --, so we only took what we needed. -
    - (WB 2003/02/06) -

    - -
  3. - Fixed: A longstanding bug in the documentation system has been fixed: if - a namespace was ended with } instead of }; - (note the semicolon), then the documentation tool assumed that the - following entities were still part of the namespace just left. This was - since the closing brace alone was not accepted as ending a namespace - (after all, structures, classes, and enums -- the other entities that - can enclose other declarations -- need the semicolon). This led to some - classes not showing up in the class index of the sublibraries. This is - now fixed. -
    - (WB 2003/02/02) -

    - -
  4. - Changed: Classes and structures that are declared inside namespaces named - internal are now no longer shown in the class - index view of the documentation of each of the sublibraries. Since they - are supposed to be used internally only, this is no drawback for the - general public. However, they are documented as members of these - namespaces. -
    - (WB 2003/02/02) -

    - -
  5. - Fixed: Some of the formulas in the step-14 tutorial were obviously - scrambled a little. This is now fixed. -
    - (Roy Stogner, WB 2003/01/30) -

    - -
  6. - Changed: The main Makefile has been changed to sequentialize building - the base, lac, and deal.II sublibraries. We changed this, since on some - systems (notably AIX), the latter libraries need to be linked against - the former ones, when creating shared libraries. -
    - (WB 2003/01/24) -

    - -
  7. - New: Changes have been made to support compiling and using - deal.II on AIX 5 systems. -
    - (WB 2003/01/24) -

    - -
  8. - Removed: Thread support now relies solely on the use of POSIX - functions. The use of the - ACE - (Adaptive Communications Environment) library for this is now no - longer supported. However, application programs can of course still use - ACE, but they will need to generate paths to this library in their - makefiles themselves. -
    - (WB 2003/01/11) -

    - -
  9. - New: Some changes have been made to support Mac OS X 10.2. Shared - libraries are not supported on this architecture, but everything else - should work. -
    - (WB 2002/12/18) -

    - -
  10. - New: deal.II can be compiled with version 7.0 of - Intel's icc compiler, which was recently released. Since this compiler - finally supports the very restrictive flags -Xc -ansi that - check for close conformance with the C++ standard, we use them (previous - versions of icc would crash when these two flags are given). This - requires that we distinguish between these compiler versions, and the - corresponding Makefile variable GXX-VERSION now no longer - holds the non-versioned string intel_icc when icc is - detected, but rather either intel_icc5, - intel_icc6, or intel_icc7, depending on what - version of the compiler was detected. -
    - (WB 2002/12/05) -

    - -
  11. - Changed: Previously, we just set the preprocessor variable - DEAL_II_USE_MT, when --with-multithreading was - given as argument to ./configure. Tests in the code - therefore looked like #ifdef DEAL_II_USE_MT. This has been - changed so that the variable is always defined, but its value is now - equal to 1 - when multithreading was requested, and zero otherwise. The reason for - this is that you can now write if (DEAL_II_USE_MT && ...) - conditions, and need not interleave if-else clauses from regular code - and the preprocessor, if conditions involve both the state of this - preprocessor variable and the run-time state of your program. However, - this change requires that all appearances of #ifdef - DEAL_II_USE_MT be changed to #if DEAL_II_USE_MT == - 1, since the variable is now defined unconditionally. -
    - (WB 2002/11/14) -

    - -
  12. - New: Object files are now named according to the local defaults - on the system we are running on. On Unix systems, this is - usually a .o suffix, while on Windows it is - .obj. Likewise for executables, which have no - suffix on Unix, but .exe on Windows. -
    - (WB 2002/11/11) -

    - -
  13. - New: deal.II can now also be compiled with Red Hat's - version of the gcc compiler, gcc 2.96. However, some problems remain; - for more information, refer - to the Frequently Asked - Questions section. -
    - (WB 2002/10/14) -

    - -
  14. - Fixed: On CygWin, one header files has a #define quad - quad_t. This is annoying, since we have local variables and - member functions with the name quad, and in fact it breaks - compilation on those versions of CygWin that has this. Fortunately, the - define is only active if a preprocessor variable - _POSIX_SOURCE is not set. Thus, we now check for the define - when configuring the library, and if necessary set the preprocessor - variable. However, while this allows to compile the library on these - systems, it may otherwise affect your code, if you use functions or - other features of the system that are not available when the flag is - set. -
    - (Stephen Kolaroff, WB - 2002/09/28) -

    - -
  15. - New: Since math.h only defines the values of PI or E (as - M_PI and M_E) when certain defines are set (on - Linux, these are __USE_BSD or __USE_XOPEN), - portable programs usually defined these constants themselves. In - deal.II, this happened at 6 different places. To - avoid this in the future, base/config.h now exports a - namespace deal_II_numbers that defines these two, and a - number of other numerical constants. -
    - (WB 2002/09/12) -

    - -
  16. - New: base/config.h now exports the - deal.II base directory through the - DEAL_II_PATH preprocessor variable. -
    - (WB 2002/09/09) -

    - -
  17. - Removed: The forward declarations files have gone. We have never - propagated their use in the example programs, but these files have been - there in the base, lac, and grid include directories, and forward - declared all classes that were present in the respective parts of the - library. This, the idea was, enables you to use just this include file - in your own header files, rather than including the full declarations of - these classes. However, maintaining these forward declaration files has - been a constant thorn in our side, be it that the timing of their - generation was difficult when using parallel builds, or that they were - difficult to generate at first. The latter is now the reason for their - abolition: we had a script for their generation, but it did not take - into account namespaces, so we got clashes when we found that we had - used the same class name in two different namespaces, since the script - put the forward declaration incorrectly into the global namespace where - they conflicted. Since we do not plan to extend the script by a - parser that can properly handle opening and closing braces of - namespaces, we simply drop these files. -
    - What you should do if you have used these forward declaration files: you - have two possibilities - either include the respective header file in - which the class is fully declared, or write the forward declaration into - your headers yourself. -
    - (WB 2002/09/05) -

    - -
  18. - New: There is now - a new report - on assembling matrices available from the - documentation - page. The main focus is assembling of matrices for - vector-valued problems, where shape functions are - vector-valued, and may have only one or more non-zero vector - components. -
    - (WB 2002/06/17) -

    - -
  19. - Removed: The functions FEValuesBase::get_shape_values, FEValuesBase::get_shape_grads, and FEValuesBase::get_shape_2nd_derivatives are - now removed as they expose too much of the internal data - structure of their class, and interfere with plans for the - extension of this and related classes. These functions, which - had been deprecated in the previous version, are thus not - part of the release after version 3.4 any more. Use the FEValuesBase::shape_value and alike - functions as a replacement. -
    - For more information, read - this mail. -
    - (WB 2002/06/10) -

    - -
  20. - New: deal.II now also supports vector-valued - finite elements with shape functions for which more than just - one vector component is non-zero. Such elements are, for - example, the Nedelec and Raviart-Thomas families. Previously, - vector-valued elements were only supported insofar as they - could be composed of scalar ones; in that case, each - (vector-valued) shape function had only one non-zero vector - component. -
    - (WB 2002/06/10) -

    - -
  21. - New: The top-level makefile now how a target distclean. - clean leaves the libraries now, removing - everything that is not needed to use - deal.II. distclean removes even the - libraries, leaving the directory more or less in the state like - after configure. -
    - (GK 2002/06/07) -

- - - - -

base

- -
    -
  1. - Fixed: A bug in the Patterns::MultipleSelection class if more - than two elements in a comma-separated list were given. -
    - (Brian Carnes 2003/05/14) -

    - -
  2. - Changed: The Polynomials::Legendre - class lost its template argument and is now just a regular - class. There was no real good reason for the template argument, - it had just crept in. -
    - (WB 2003/05/12) -

    - -
  3. - New: There is now a class AnisotropicPolynomials that constructs a higher - dimensional polynomial space from a set of 1-d polynomials in each of - the coordinate directions. -
    - (WB 2003/04/20) -

    - -
  4. - Changed: The Table accessor classes - have been moved to a namespace internal. Since these classes are not (or should - not be) used directly in applications, this should not change - compatibility. However, they will now no longer show up in the class - overview of the documentation, which they were cluttering up. -
    - (WB 2003/02/13) -

    - -
  5. - New: The Function class now has an assignment - operator. This way, you can put function objects into - containers. However, the assignment operator makes sure that only - objects can be assigned that have the same number of vector components. -
    - (WB 2003/02/06) -

    - -
  6. - New: The ThreadMutex classes now have a - member class ScopedLock that implements the - scoped thread-safe locking pattern of Doug Schmidt. It is also used in - various places of the code now. -
    - (WB 2003/01/28) -

    - -
  7. - Fixed: The PosixThreadManager called - its wait function in the - destructor. If this had been called before already, then the - same threads would have been waited for twice, which invokes - undefined behavior. This is fixed by making sure that wait removes the id's of the threads it - has already waited for, and so calling it more than once will - not wait for threads which have already been waited for. -
    - (Michael Anderson, WB 2003/01/16) -

    - -
  8. - Fixed: The Subscriptor uses a counter to - count how many SmartPointer objects subscribe - to the pointed-to object. This counter needs to be a volatile variable - in multithreaded mode, to avoid false compiler optimizations based on - the assumption that the variable cannot change between two subsequent - reads. -
    - (WB 2003/01/11) -

    - -
  9. - Fixed: In multithreaded mode, when a new thread is started, the - arguments to the function being called need to be copied from the stack - of the starting thread to that of the new thread. In order to - synchronise this, mutexes were used that were acquired from one thread - and released from another thread. On Linux this does not lead to - problems, but POSIX functions do not guarantee that this actually works, - and it also leads to problems when running programs under valgrind. This - is now fixed with the help of condition variables. -
    - (Michael Anderson, WB 2003/01/11) -

    - -
  10. - New: There are now classes ThreadCondition - that implement thread condition variable operations through POSIX - functions (in multithreaded mode) or doing nothing (in singlethreaded - mode). -
    - (WB 2003/01/11) -

    - -
  11. - New: Newer versions of gcc have a very nice feature: you can set - a verbose terminate handler, that not only aborts a program - when an exception is thrown and not caught somewhere, but - before aborting it prints that an exception has been thrown, - and possibly what the std::exception::what() function has to - say. Since many people run into the trap of not having a - catch clause in main(), they wonder where that abort may be - coming from. The terminate handler then at least says what is - missing in their program. -
    - (WB 2002/12/19) -

    - -
  12. - New: There is now a Patterns::List pattern - that matches a list of elements each of which has to satisfy a pattern - that was given to the constructor. -
    - (WB 2002/11/29) -

    - -
  13. - Changed: In POSIX mode, when the ThreadManager class created a new thread through - pthread_create, it only checked for the - error code and aborted if it was non-zero. Now, it checks whether the - error code is EAGAIN and simply retries the - call if this is the case. This may, in rare cases, lead to a deadlock or - an infinite loop, but will usually just wait until the respective - resources for thread creation are available from the operating system - and will then succeed. -
    - (WB 2002/11/13) -

    - -
  14. - Fixed: The write_text and write_tex functions of the TableHandler class now check whether their - ofstream arguments are in a proper state before - using them for output. -
    - (RH 2002/11/11) -

    - -
  15. - New: Added Hierarchical Polynomial (similar to Legendre class). Will - eventually be used in a hierarchical FiniteElement class similar to - FE_Q class. Included in Polynomials namespace. -
    - (Brian Carnes 2002/10/15) -

    - -
  16. Changed: Because they became too many, the classes describing 1d - polynomials are now in a namespace - Polynomials. -
    - (WB 2002/10/14) -

    - -
  17. Changed: When an exception is thrown but not caught in a sub-thread, - this exception is not passed to the main thread by the operating - system. Rather, if the exception is not caught from the function that - was invoked by the spawning system function, the entire program is - terminated without an additional message. The wrapper functions which - are used to spawn new threads in the Threads - namespace therefore now catch these exceptions and at least print the - message they carry, before aborting the program. This way, at least the - message gets displayed. -
    - (WB 2002/10/13) -

    - -
  18. Changed: The class Table<2>::fill function, which is also - inherited from the FullMatrix class, used to - work also when the size of the matrix was zero, by simply not copying - something. This led to difficult to detect errors. It is therefore no - more allowed to call this function when the matrix is empty. For all - other cases, the status of copying without checking the size of the - array copied from remains unchanged. -
    - (WB 2002/09/28) -

    - -
  19. New: The classes TableIndices<N> and Table<N,T> are now implemented also - for N=4,5 and 6. The Table<N,T> class represents an - N-dimensional array and might replace the - N-times-nested-use of the std::vector class. -
    - (RH 2002/09/24) -

    - -
  20. - New: The Threads::n_existing_threads - function returns the present number of existing threads, allowing an - assessment whether it is useful to spawn new threads or rather perform - the operation in question sequentially. -
    - (WB 2002/09/08) -

    - -
  21. New: Global exception class ExcIteratorPastEnd, which should be used if an - iterator is incremented or decremented beyond its end value. -
    - (GK 2002/09/08) -

    - -
  22. - Extended: Previously, the Threads::PosixThreadBarrier - class could not be used at all (they threw exceptions), if your system - did not have the respective POSIX functions. This restriction is lifted - for the special case that you give one as the number of parties that - will be waiting for the barrier: in this case, a barrier is a - no-operation, so we do not need assistence from the operating - system. This change makes it slightly simpler to write programs in a way - such that they run in both single- and multithreaded environments. -
    - (WB 2002/09/05) -

    - -
  23. - New: The old class vector2d, implementing a - two-dimensional array of objects is now gone. Instead, there is the new - Table class that implements tables of - arbitrary dimension. Transition is painless: where there was - vector2d<type> before, use - Table<2,type> now (and don't forget to update the - name of the header file, of course). If you have a three-dimensional - array, you can use Table<3,type> now. -
    - (WB 2002/09/03) -

    - -
  24. - New: There are now functions returning the transpose of Tensor objects of rank 2. -
    - (WB 2002/08/31) -

    - -
  25. - New: Row accessors for the vector2d - class now have a member function size that returns the size of the row, - i.e. the number of columns of the table. -
    - (WB 2002/07/24) -

    - -
  26. - Fixed: In EPS output, colors were set to invalid values if the - values of the field that is used for coloring are all - equal. This happens, for example, in the very first time step - of time dependent problems, if initial values are zero. The - color value now used is arbitrary, but valid. -
    - (WB 2002/07/24) -

    - -
  27. - Changed: To save disk space, color values in EPS output are - written as grey scale with only one value instead of three RGB - values if the color so represented is actually a grey scale. -
    - (WB 2002/07/24) -

    - -
  28. - New: There are now operators to allow multiplication and - division of Tensor objects by scalar - factors. -
    - (WB 2002/06/07) -

    -
- - - - -

lac

- -
    -
  1. New: Function - BlockSparseMatrix::print_formatted - added, similar to the - BlockVector::print_formatted function. -
    - (Brian Carnes 2003/06/02) -

    - -
  2. New: Functions SparseMatrix::operator *= - and SparseMatrix::operator /= as well as - BlockSparseMatrix::operator *= - and BlockSparseMatrix::operator /= - are added. -
    - (Brian Carnes 2003/06/02) -

    - -
  3. Deprecated: The functions Vector::scale - and BlockVector::scale are now deprecated - and will be removed in a future version. Use operator*= and - operator/= instead. -
    - (WB 2003/05/31) -

    - -
  4. New: Vector, BlockVector and - FullMatrix now have operator/= - for scaling by a scalar. -
    - (WB 2003/05/31) -

    - -
  5. New: PointerMatrix now - has empty() function, which returns true if the pointer is - null; otherwise we call the pointer's empty() function. - This requires the class MATRIX to have an empty() - function. -
    - (Brian Carnes 2003/05/22) -

    - -
  6. New: SparseLUDecomposition now - has empty() function, which calls the inherited SparseMatrix empty() function. -
    - (Brian Carnes 2003/05/22) -

    - -
  7. New: PreconditionPSOR implements - interface to permuted SOR preconditioner function in SparseMatrix. -
    - (GK 2003/05/12) -

    - -
  8. Improved: FullMatrix::fill now copies the largest possible block, - whether the destination or source matrix is bigger. Additionally, an - offset inside the source matrix may be specified. -
    - (GK 2003/03/31) -

    - -
  9. - New/Changed: The SparseILU, SparseMIC and SparseLUDecomposition now use the same - interface (initialize, vmult, clear) - as all PreconditionBlock classes. In - virtue of an unified preconditioner interface it is now - recommended to use the new methods. The old methods (reinit, decompose, apply_decomposition) are now deprecated, - and will be removed in a later version. -
    - (RH 2003/02/19) -

    - -
  10. - Changed: The BlockVector accessor classes - have been moved to a namespace internal. Since these classes are not (or should - not be) used directly in applications, this should not change - compatibility. However, they will now no longer show up in the class - overview of the documentation, which they were cluttering up. -
    - (WB 2003/02/13) -

    - -
  11. - New: The SolverGMRES now accepts an - AdditionalData parameter - use_default_residual whose default is - true. By setting this flag to false, - the stopping criterion of the left-preconditioned GMRes solver - is not the default preconditioned residual but the normal - (unpreconditioned) residual and visa versa for the - right-preconditioned GMRes solver. Due to a performance loss of - the solver this flag should be set to false only - for debugging/testing purposes. -
    - (RH 2003/01/31) -

    - -
  12. - New: FullMatrix has a function copy_from, copying from sparse matrices. - It uses iterators of the sparse matrix classes. -
    - (GK 2003/01/08) -

    - - -
  13. - Changed: In an attempt to unify the use of preconditioners a - little, the function initialize of - classes PreconditionRelaxation and - PreconditionBlock take an argument - of type AdditionalData, defined in - the same class. Standard behavior of PreconditionBlock has been changed on this - occasion to invert diagonal blocks during initialization. -
    - (GK 2003/01/06) -

    - -
  14. - New: The interface for sparse decompositions has been abstracted, and - there is now an Modified Incomplete Cholesky (MIC) decomposition in - addition to the Imcomplete LU (ILU) decomposition. -
    - (Stephen Kolaroff 2002/11/27) -

    - -
  15. - Changed: In multithread mode, the SparseMatrix would spawn - multithread_info.n_default_threads threads to - perform matrix-vector multiplications and similar - operations. It would even do so if - multithread_info.n_default_threads was equal to - one. In that case, we now do the operation on the thread we are - presently on, eliminating the overhead of spawning a single - thread, and later waiting and terminating it. -
    - (WB 2002/11/13) -

    - -
  16. - Fixed: In the SparseDirectMA27 class, wrapping - the MA27 solver written in Fortran77 into some structure amenable to C++, - we wrote beyond the end of an array on rare inputs. This is now fixed. The - same probably holds for the respective code for MA47. -
    - (WB 2002/09/30) -

    - -
  17. - New: Since the MA27 sparse direct solver uses Fortran common blocks, it - was previously impossible to run several instances of this solver in - parallel, in a multihreaded environment. To solve this problem, the - SparseDirectMA27 class now has a detached - mode, in which it forks off a separate program that will do the - computations using this solver. The actual operations are therefore - distributed to distint programs that have separate address spaces. This - allows to have as many concurrent instances of this solver in parallel - as you want. For more information, read the documentation of the - SparseDirectMA27 class. -
    - (WB 2002/09/25) -

    - -
  18. Changed: The classes PreconditionBlock, PreconditionBlockJacobi, PreconditionBlockSOR, and PreconditionBlockSSOR have changed their - template signature. The first template argument is now the matrix - type, not just a number type. -
    - (GK 2002/09/18) -

    - -
  19. New: Class BlockVector has a - function collect_sizes(), very much as - BlockSparsityPattern. This allows - updating internal structures after blocks have been resized. -
    - (GK 2002/09/17) -

    - -
  20. New: Class SparseMatrix has an - STL-conforming const_iterator and - functions begin() and end() for looping through all existing - entries. Furthermore, begin(row) and - end(row) allow looping through all - entries of a single line. -
    - (GK 2002/09/11) -

    - -
  21. - New: Classes SparsityPattern and SparseMatrix now have functions block_write/block_read, allowing to dump the data - of these objects into a file in binary format, and later to re-read it - without much need for parsing. -
    - (WB 2002/09/09) -

    - -
  22. - New: Vector has a function lp_norm, computing the lp-norm - of a vector for arbitrary p. -
    - (GK 2002/08/13) -

    - -
  23. - New: a way of using abstract base classes for matrices has - been implemented with PointerMatrixBase - and PointerMatrix. Storing a matrix in - PointerMatrix allows to use the base - class in functions only templated for the vector class. -
    - (GK 2002/07/18) -

    -
- - - - -

deal.II

- -
    -
  1. - Fixed: The restriction matrices for the Q1 element in 1d had a - trivial bug in that one element was not set. Due to the fact - that contributions from all child cells are taken into account, - this did no harm, though, since all computations were done - correctly anyway. -
    - (WB 2003/05/06) -

    - -
  2. - New: The GeometryInfo classes now - have new static member functions child_cell_from_point that, given a point - in the unit cell, returns which child cell it is on; cell_to_child_coordinates that transforms - coordinates between the unit coordinate systems from the mother - to the child cell; child_to_cell_coordinates that does - exactly the opposite; and is_inside_unit_cell that tells whether a - given point is inside the unit cell. -
    - (WB 2003/05/01) -

    - -
  3. - New: There are now functions recursively_set/clear_user_pointer that - do much the same as recursively_set/clear_user_flag on a - line/quad/hex and all of its descendants, but on user pointers - rather than flags. -
    - (WB 2003/04/11) -

    - -
  4. - New: The functions in the DerivativeApproximation class can now also - work on BlockVector. -
    - (WB 2003/04/11) -

    - -
  5. - Changed: The cell argument to Mapping::transform_unit_to_real_cell (and its - reverse function) is now passed by reference, rather than by value, for - efficiency reasons. -
    - (WB 2003/04/06) -

    - -
  6. - New: The GridGenerator::subdivided_hyper_cube generated a - hypercube as coarse grid that is subdivided a given number of times. -
    - (WB 2003/04/05) -

    - -
  7. - New: The DataOut_DoFData::merge_patches - function allows to merge the patches of two objects, so as to create one - output file from several DoF handlers. This is useful if one uses a - domain decomposition algorithm where each block of the domain is - represented by one DoF handler. -
    - (WB 2003/04/05) -

    - -
  8. - Fixed: The DataOutStack class had a problem - when there were as many degrees of freedom as there were cells (i.e. if - we were using DG0 elements). This should now be fixed. -
    - (WB 2003/03/02) -

    - -
  9. - Fixed: The DataOutFaces class was - broken for cell data. It should now be correct, although the - algorithm used is not optimal, being approximately quadratic in - runtime. -
    - (WB 2003/02/25) -

    - -
  10. - New: The ConstraintMatrix::shift - function shifts and translates the elements of the constraint - matrix by a certain number of indices. -
    - (Roy Stogner 2003/02/24) -

    - -
  11. - New: The GridReordering class now uses a - vastly better algorithm in 2d than previously. The new algorithm is - linear in time, where it could be exponential before. -
    - (Michael Anderson 2003/02/21) -

    - -
  12. - New: There is now a function GridIn::read_xda that allows reading - grids from a file in XDA format. -
    - (WB 2003/02/21) -

    - -
  13. - Changed: Some implementation details of the GridReordering class have been moved to a - namespace internal. -
    - (WB 2003/02/19) -

    - -
  14. - New: There are now functions FiniteElement::prolongation_is_implemented and - FiniteElement::constraints_are_implemented - that inform the caller about whether the finite element in question in - fact implements its prolongation matrices and hanging node constraints. -
    - (WB 2003/02/15) -

    - -
  15. - Fixed: The ConstraintMatrix::is_identity_constrained function - would previously generate a segmentation fault if called on a constraint - matrix object that did not contain any constraints at all. This is now - fixed. -
    - (WB 2003/02/15) -

    - -
  16. - Fixed: Objects of type FESystem - could not be constructed if one of the elements it is to be composed of - did not implement interface constraints for hanging nodes. This is now - fixed: you can construct such a composed element, but it does not - implement hanging node constraints either. -
    - (WB 2003/02/15) -

    - -
  17. - New: For each of the renumbering functions in the DoFRenumbering class there is now an - additional compute_* - function. These new functions compute and return the - corresponding renumbering vectors but do not perform the actual - renumbering on the DoFHandler - object. The behaviour of the old functions is not changed. -
    - (RH 2003/02/03) -

    - -
  18. - Fixed: The GridReordering tried to be - thread-safe in the initialization of some data, but was not due to a - typo. This is now fixed. -
    - (WB 2003/01/28) -

    - -
  19. - Changed: The FEValues::get_cell and - FEValues::get_face functions have - been removed, since they limited our ability to use this - class for other types of DoFHandlers, for example future - extensions for hp elements. -
    - (WB 2003/01/17) -

    - -
  20. - New: The DoF accessor classes now have a function get_fe() that returns a reference to the finite - element being used on this cell. The result is of course identical to - what a call to iterator->get_dof_handler().get_fe() would have - yielded. -
    - (WB 2003/01/10) -

    - -
  21. - New: Checked in new GridGenerator - member function half_hyper_ball, - derived from member hyper_ball. - The intial mesh contains four elements. This mesh will work with - the boundary class HalfHyperBallBoundary. -
    - (Brian Carnes 2002/12/16) -

    - -
  22. - New: Checked in new class FE_Q_Hierarchical - derived from class FiniteElement. - This element is analogous to FE_Q, but - makes use of hierachical shape functions, based on the - Polynomials::Hierarchical class. - For degree>1, the non-nodal basis functions are "bubble" - functions, which are not Lagrange polynomials. Therefore, the usual - interpolation based on using unit support points will not work for - degree>1. It is planned to implement a different - interpolation-projection operator, based on an hp-type interpolant. -
    - The files for this element are - deal.II/include/fe/fe_q_hierarchical.h and - deal.II/source/fe/fe_q_hierarchical.cc. -
    - (Brian Carnes 2002/12/13) -

    - -
  23. - New: For finite element classes, the functions - unit_support_point and - unit_face_support_point return the position - of an individual support point. This is necessary when you want to get - information about the support points of certain components in a composed - finite element, where not all components provide support points, and the - composed element thus does not fill the array the - get_unit_support_points function returns. -
    - (WB 2002/11/23) -

    - -
  24. - Fixed: Vectors could not be given as input and output vectors to the - SolutionTransfer class at the same time, but - this was not checked. An assertion has now been added to ensure this - requirement. -
    - (WB 2002/10/28) -

    - -
  25. - Fixed: The DoFRenumbering::component_wise function accepts a - parameter indicating the order in which the degrees of freedom - corresponding to one vector component are to be sorted. However, it did - not honor this order, but always sorted them in the order in which the - components appear. This is now fixed. -
    - (WB 2002/10/17) -

    - -
  26. - New: The FiniteElement::system_to_base_index function now - exports the values of the FiniteElement::system_to_base_table member - variable. Likewise for the indices on faces. -
    - (WB 2002/10/17) -

    - -
  27. - New: The FiniteElement::element_multiplicity function was - previously only available in the FESystem - class, where it actually returned a non-trivial value. However, in some - cases one would need to access this field also for general finite - elements, even if the returned value will be equal to one in all cases - other than a composed element. -
    - (WB 2002/10/17) -

    - -
  28. - Fixed: The algorithm to generate neighbor information for patches from - cells in DataOut::build_patches was rather - inefficient, tripling the time for patch generation when support for - neighbor information was added. Furthermore, the algorithm was at least - O(N log N), where the rest was all O(N), making this particularly - problematic when the data set was already large. This should now be back - to the previous level, by using a more efficient algorithm. -
    - (WB 2002/10/10) -

    - -
  29. - Changed (internals): Previously, the finite element base class - initialized the restriction, prolongation, and face constraints matrices - to their correct size. Derived classes had to fill these classes, and - should have set their size back to zero in case they chose not to - implement them. However, we found a class that forgot to resize it to - zero, so it is now the other way round: they remain at size zero, and a - class that chooses to implement these matrices has to set them to the - correct size, to avoid programs that run on data that as just been - forgotten to add. (This information only concerns programs that - implement some finite element class on their own.) -
    - (WB 2002/09/28) -

    - -
  30. Improved: The different transfer functions in FETools operate on template vector arguments. -
    - (GK 2002/09/24) -

    - -
  31. New: the class FE_DGPNonparametric implements finite elements - where shape functions are polynomials of order k on the - actual grid cell. This is achieved by evaluating the polynomials at - the mapped quadrature points. No grid transfer matrices are - available for this class. -
    - (GK 2002/09/19) -

    - -
  32. - Fixed: Some of the various instances of the VectorTools::interpolate_boundary_values functions - were not explicitly instantiated, leading to linker errors. This is now - fixed. -
    - (WB 2002/09/19) -

    - -
  33. - Removed: The FiniteElement::component_to_system_index function - and its counterpart for faces is gone. This data did not make much sense - in the case of elements that are non-zero in more than one vector - component, such as the Nedelec element. The respective information can - also be obtained from other sources provided by the finite element - classes, if so necessary. -
    - (WB 2002/09/16) -

    - -
  34. - Changed: The FiniteElement::restriction_is_additive function - used to take an argument that denoted the vector component of a finite - element. This has become difficult with elements that are non-zero in - more than one vector component, such as the Nedelec element. Thus, the - semantics of the function have been changed so that the argument now - denotes the index of a shape function, rather than a vector - component. Since the function is probably not used in application code, - this will most probably not lead to more serious problems. -
    - (WB 2002/09/16) -

    - -
  35. - New: The mapping classes now also know how to transform tensors of rank - 2, not only vectors (tensors of rank 1) in a co- and contravariant way. -
    - (WB 2002/09/03) -

    - -
  36. - Fixed: the GridIn class had problems - when reading in UCD grids with comment lines that contained - only the comment sign, but nothing else. This is now fixed. -
    - (WB 2002/08/30) -

    - -
  37. - Improved: VectorTools::integrate_difference can compute Lp - and W1,p norms for arbitrary p. The function - receives an additional optional argument p for this. All previous - fuctionality remains unchanged, although the code has been cleaned up a bit. -
    - (GK 2002/08/01) -

    - -
  38. New: The GridTools class now - offers functions to apply general transformations to all - vertices of a triangulation, and also more specialized - functions that shift, scale, and rotate triangulations. -
    - (RH 2002/07/25) -

    - -
  39. New: The existing FETools::extrapolate functions does not - take into account hanging node constraints. Therefore, it works - for continuous elements on globally refined grids and on - discontinuous elements, only. Now, there is a new FETools::extrapolate function with an - additional ConstraintMatrix argument - for the hanging node constraints. This new function works for - continuous as well as for discontinuous elements. But, the old - function is still supported. -
    - (RH 2002/06/17) -

    - -
  40. New: There are now Triangulation::save/load_user_pointers(vector<void - *> &) functions similar to the respective Triangulation::save/load_user_flags(vector<bool> - &) functions. -
    - (RH 2002/06/14) -

    - -
  41. Fixed: Bug in Triangulation<3>::load_user_flags(vector<bool> - &) is now fixed. -
    - (RH 2002/06/14) -

    - -
  42. Fixed: Triangulation::load_user_flags(vector<bool> - &) erroneously threw an assertion for - dim==1. This is now fixed. -
    - (RH 2002/06/14) -

    - -
  43. Changed: Triangulation<1>::n_quads now returns 0, - instead of throwing an assertion, as before. The same holds for - similar functions like Triangulation<dim>::n_hexs that now - returns 0 for dim<3. -
    - (RH 2002/06/14) -

    - -
  44. Improved: Several functions like the DoFHandler::distribute_dofs and DoFTools::make_flux_sparsity_pattern - functions altered the user_flags. This was stated in the - documentation of these functions. Nevertheless, it might have - led to unexpected behaviour of the user_flags for users who weren't aware of - this side-effect. Now, these functions do not alter - the user_flags, any - more. Consequently, the users do not need to worry any more - about the reliability of the user_flags when calling any function of - the library. -
    - (RH 2002/06/14) -

    - -
  45. Fixed: FE_Q::has_support_on_face always returned - true in 1d, partly because faces are not really an issue in - 1d. It now does so only when the support point of the - respective shape function is actually the requested vertex. The - same applied to FE_DGQ::has_support_on_face -
    - (WB 2002/06/13) -

    - -
  46. New: The existing FETools::interpolate, FETools::back_interpolate and FETools::interpolate_difference functions - do not take into account hanging node constraints. Therefore, - they work for continuous elements on globally refined grids and - on discontinuous elements, only. Now, there are new functions - with the same names but additional ConstraintMatrix arguments for the hanging - node constraints. These new functions work for continuous as - well as for discontinuous elements. But, the old functions are - still supported. -
    - (RH 2002/06/13) -

    - -
  47. Changed: The constructor of DoFHandler now takes a reference to a - const Triangulation. -
    - (RH 2002/06/12) -

    - -
  48. Changed: The constructors of all DoFAccessor, TriaAccessor and TriaIterator classes now take pointers to - const Triangulations. -
    - (RH 2002/06/12) -

    - -
  49. Fixed: In debug mode the MappingQ1::transform_real_to_unit_cell - function erroneously threw an assertion when used in 1 or 3 - dimensions. This is now fixed. -
    - (RH 2002/06/10) -

    - -
  50. - Fixed: The get_dof_indices - functions of DoF accessor classes used to work also for - non-active cells. However, the results were bogus except for - the special case that we had a finite element that has all its - degrees of freedom located in vertices. This is now fixed: the - function throws an exception in all other cases, since there is - no useful meaning for it then. It continues to work in the - special case. -
    - (WB 2002/06/08) -

    - -
  51. - New: For encapsulated postscript output of 2d grids, it is now - possible to tell the GridOut class to - write the cell numbers into each cell, as well as the numbers - of the vertices. -
    - (WB 2002/06/04) -

    -
- -
-Last update $Date$ - - - diff --git a/deal.II/doc/news/3.4.0-vs-4.0.0.html b/deal.II/doc/news/3.4.0-vs-4.0.0.html index 3f0e0ecc9b..b303664c54 100644 --- a/deal.II/doc/news/3.4.0-vs-4.0.0.html +++ b/deal.II/doc/news/3.4.0-vs-4.0.0.html @@ -267,7 +267,7 @@ contributor's names are abbreviated by WB (Wolfgang Bangerth), GK
  • New: There is now - a new report + a new report on assembling matrices available from the documentation page. The main focus is assembling of matrices for diff --git a/deal.II/doc/reports/assemble/img1.gif b/deal.II/doc/reports/assemble/img1.gif deleted file mode 100644 index d6b9f87468c687b8a872ef4e22e9909f232af55f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 236 zcmZ?wbhEHb)Mb!m_{_t=$jB%mA)%t8Vq#+A;o%Vy5|WXTQBhIR($X?>=FAluoWlg3rl`y+WH=F$!=@~- xXJaCXTgaUEvHgjk{0z|cvzW+*dQ0|4osEvx_l diff --git a/deal.II/doc/reports/assemble/img11.gif b/deal.II/doc/reports/assemble/img11.gif deleted file mode 100644 index e73eb272d60248ff169fa78f0a4a71988c68ce05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 274 zcmZ?wbhEHb^ka}^_{_t=$jB%mA)%t8VrFLM;o%Vy5|WaVQc+RS($X@0`t%hmR&3t9 z`Tzg_3^1VhlZBCyfrmi{Bmgplfo1=Mlb);hTD(5H`+tH)UrOe@j0lE<6aAVQB!mz0 zsSBmB9n@hu;(bXtfQK_!(SRX^$quy=?UF-)DNQ|{l_rNpUcz|`6)$(+s} zBE;e*vPx{NyJ&diVhK*hsVwzEOxBb4?(5TLa56}mzQXzBsnci9o;!cx;-$-1u3o!- U<{9 diff --git a/deal.II/doc/reports/assemble/img12.gif b/deal.II/doc/reports/assemble/img12.gif deleted file mode 100644 index 48ac2d85d76823fcdf600df8130f295842ac138a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 552 zcmV+@0@wXVNk%w1VSNB60P_q00s;aU7#JiZBsMlSNJvOjR8(bUWq5dagoK2Yl$5Bb zsI#-P|Ns900000000000A^8LW0RRjDEC2ui0DS-_000F3kjY7_y*TU5yZ>M)j$~<` zXsWJk>%K5-0KxFkDU@D0MAuUNDsj^x*hzgj7@LGZH1*ae&5;%~Pgn^d?B4HJ4!He9yg(HHn$R|Kw z5jQK+iBsySg=?KoAe3X4!RAd8CnBl$dfBy&b+zv=g^}|pH98H_3PNPYu~;h0suR)nbNTU diff --git a/deal.II/doc/reports/assemble/img13.gif b/deal.II/doc/reports/assemble/img13.gif deleted file mode 100644 index c89091bd461e1ea7f114ba47c61715765c5291ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1195 zcmV;c1XTM+Nk%w1VM75y0P_q00s;aU7#JiZBsDcPNJvOjR8(bUWq5dagoK2Yl$5Bb zsI#-P|Ns900000000000A^8LW0RRjDEC2ui07C&m000F3kjY7_y*TU5yZ>M)j$~<` zXsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~k4TgOAeaCEg^nUgty-@ZLjWO395{m|c1$k+ z42FT^Fzo=$@VNYCU~Cyt&wI}A`#T5;3~7TOdw+BP^o;JuS1u=@hZHOreT2w=gOq@u?w8~{BidGylMV;szb00FqU*0D*j z)O-XZQ-g$)Xg`h>cHRq<<|(kr0Ax!8wEl65C3*!Y!Fv)6kQ9BgAr+f}g{+q#V+@{< z$3I*wWdeIFoKgUFv4K!w2Fw9~)dp!HmBAgTAj2U8Y;0x78f_#1S#>B3Hq!=s#K?e+ z8jM&10$;r3gnS}qm%=H`DTjeQ#e_GP3DY4NR1p?Hag56Se93a3ZY-o5IGD}6_X{X@)gg}TKw8Gd{(+Rn zgqMmx JeFqT$06WIC1jhgX diff --git a/deal.II/doc/reports/assemble/img14.gif b/deal.II/doc/reports/assemble/img14.gif deleted file mode 100644 index 918bd25602733c456606dd9a3b1ec7073b7eced2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 786 zcmV+t1MU1rNk%w1VGIEu0P_q01Ox;a7#JiZBsDcPNJvOjR8(bUWq5dagoK2Wl9H&X zsI#-P|Ns900000000000A^8LW0RRjDEC2ui01N>i000F3kjY7_y*TU5yZ>M)j$~<` zXsWJk>%MR-&vb3yc&_h!?@NVWA(1ouj;CQPNKycZyuv}JU?Nq50AR}sxTKZ^0Wd&S zNd^Fdmk{s_>#M5Zogm7r_N5TSpAK;#329S1d_8`0Cj$f(R&$RN0)Z)s9zg(+Hvxr) zor)y^MhsAtDV!GoEnpvT3J%NR6|`g<9*>ZOVU z2Lx0wz^Vl;|F#6AFfc#@C`qp}STIQfS+f}G6e2f8tcA5yJtT{XtE|Pe;smB5teC+l za&hiP0-V7BVFXZ>?aH+=)UtX^03Ql+KtQ!B8w&vVGx2`YQ$n8 z0X{mu4jCz}>%f8noe@|O)=%h`31YVdX-Z)L;}OmkOudRpN91<^;U`e9 z2<5wN4AuYyNO{4!iUFn$baoFG{B`>Wk-_&|2m~C^i9@UOL%?+tAh^FK~ca?g(4)-*$E~Ja1Ub!XfhRw zF;dWD61BA;4=GLxDO+z&O>i6qKhdaGC9$RB~Wg3J_^o!I&JF znL(IRZh$5W5PhIreRz%3=AC%vspp=2_UY%JfCeh)poA7`=%I)vs_3GOHtOi3kVY!$ Qq?A@_>7|%vib4bcJDF8HcmMzZ diff --git a/deal.II/doc/reports/assemble/img15.gif b/deal.II/doc/reports/assemble/img15.gif deleted file mode 100644 index f3eacb2aa507a42161587f9479345bbf689ece85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 173 zcmZ?wbhEHb6k(8M_{_t=#Ka^aA)%t8Vs38k;o%Vy5|WmdR#8#W($X@0`t%hmR&3t9 z`Tzg_3^1VhlZBCyfrmi{BmgplfhB6fNzc`LEnc5}E5M-O!6Lvji!p?4lb}Xu!9ksT z&If*7b5~Avek3~khXix;(lE;;hQlWl+hrRzO>$V;HbueIRCDpiH= T)qd-5zyGnP?)-jt1_o;Y=*K&& diff --git a/deal.II/doc/reports/assemble/img16.gif b/deal.II/doc/reports/assemble/img16.gif deleted file mode 100644 index abca97a9bab49e8baa6396fb328e642dc4551ed4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 284 zcmZ?wbhEHbbYzfa_{_t=$jB%mA)%t8Vs38k;o%Vy5|WaVQc+RS($X?z%9Ir=R&3t9 z`Tzg_3^1VhlZBCyfrmi{Bmgplf#u|clb);hTD(5H`+tH)UxMSj7fdRb6&M;61V1!* zIWxR>_#n!_a+G0(Op7_^gr*IpLPwZeAIzCC$=K=XDMQ8`Jq$Ap-58hfgzYL$;n~rt zkQ%6VRFvnJd!cMdr(2e&O^cy~gLP?pR-JH2bcBT;dy_OLE5}S0BcY@T6X)?{$R>CT zX^Z5Fx7y4REu1RLHkHHGn6+a1Voz2(an^Oh946a%W*ew+A7S$FWH(^U7h~Et@!Itp fH*ej(bNAl;2M-@Te)9C$^A|5)y?!Gt$Y2csPeNy& diff --git a/deal.II/doc/reports/assemble/img17.gif b/deal.II/doc/reports/assemble/img17.gif deleted file mode 100644 index 742ed0363e0f76c7d5697110bede0b48b6272bbc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 142 zcmZ?wbhEHb6kyfzxL5)zW0o?cN=(bCc~Y0{(>D^_gYy!rqC z{|rb#@h1x-BLg>s4oD1S1_O(A!AZ~6dw)!d5q7xa!r;C`fh}Q%^oBxL%{>vHxR~4< jxaTRhG*6gt_=1?SPougegHAi+15HVmW$u@im>8@9j|D3b diff --git a/deal.II/doc/reports/assemble/img18.gif b/deal.II/doc/reports/assemble/img18.gif deleted file mode 100644 index d28fe1b8f1cc67d8de3f83aabd949b22a53edb53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151 zcmZ?wbhEHb6kyEYoK5)zV@mR3s4oD1S1_O&r!AZ~6do3QjFflMSDK<{j@luaE6exO#^+foFpv|TN sQw3u<4rCfhByg~LIV3tN1Wk6jM)j$~<` zXsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~kI1BQ$!t2Gu0fyxty-_xRAB%BWWV6BIFQ(i z&*(Jr5Kz0{@LhoruiNh{0Ts{h`!fmv2!DiydIm0*qQe1qnF@E(Ho#dpmlN zCxMha1qV6`n_89$U8}5JmM5yMt*;-ZJAtPbv9hbQD!aS@z9q4tCk28$3T-^0a@;oqDg~RW!wd-fB>EQmk+7Eo znK29iD}N5K#b`2ne3wNkLUchzxvA0D2UJLw>%bN&r{&Led-n zlxnyNRVxFaLjM7H%FrxYnN4$&2?;=eJFyyUF&KciL$EH=C@2t+3Fw5BXP+IwVpd^r`e0#znvhx7<} zLF2pu7BJAwAVDU+t2<1Rz;^~d33Cop7+{Uo=nT}MOUH1XwXU>K_g3Ft3;eJF!q1Yo zfcPVTDK8Mgt&lK$cJ(_uTyAQ9y0uN+LH@VLa}ro1z)7z?h5!Nth!vAZCTxAR%)ZMJ1wa9zAJ6P{HiSKuTnUVxa`D42B>F%yfBR239gaB`-o= zd4WC&G?|E)Uv}VBo9uB};FuT$M$QDuDQOu8Tv#QHS^44TB`kx6XlGPQYJg<|2OZE? z1_m4?+5`hgqd-m(W`aN)dtCM$6>QM5X+9zqH)3~(qIYNMht1TZ9NL#PVcBy_6;?4tqF^5+jST?Cx5I#Y#3l{`|g5i$eu zj*udA1+!4Vc|BuVaAqb?u(Nik(3(Nf(+ZtIY)l^sC7=8TZ2~y+VKC`5R`1odI7`QQ z^bQ>}l;#R!pDh7pi`99}0Sqnp%hrx&KpDy;kO=n#a>JMa0-5*}n$JwFpthMVq*=BP z=gKp-3kEP0O$JAo5zwUBjTe}*atKqtb>*AKbwTC~KrC1ngNRnR3W1`Xt<*PRzSa;w z)397|HsQU21g}6q4~O({+$;n2o@B3m^Wkjo z{r5v40{-~q_n;GWK~Y=&`s}0dEp+(a*#7+VvsPg_eb%r4{tsvA{nX!o(4xq!V;SBgeXj*3RlR& e7P|0-FpQxLXGp^u+VF-r%%Ki<$ioao002A6Nij(P diff --git a/deal.II/doc/reports/assemble/img2.gif b/deal.II/doc/reports/assemble/img2.gif deleted file mode 100644 index 7c2f274b89a14a03a9c1c0bf049fd576e4f726af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 690 zcmV;j0!{r#Nk%w1VaNa<0P_q00|NsX7#JiZBsDcPNJvOjR8(eWW_WmbgoK2cn3$-j zsI#-P|Ns900000000000A^8LW0RRjDEC2ui0LTCz000F3kjY7_y*TU5yZ>M)j$~<` zXsWJk>%MR-&vb3ybCIY7C~OGq96bUAmngDxIkHeEMTI@4tAe}pk+X$ z#Fs*E3@T3W8eAs_`lpbr1N#&LW+Qh(33?0!3LpprS^!`b1#A<59|1-_nI@PQ zTO>tqRTP#R1^@;N8wH;d1*#g200pBA0E2JNug z1p&(!2m!Dg2d#%23IeLr6Rijb37>o!2ngq{6bj4~kMjVO@)rlg73=MA@A1Ljxx-1Q;}66G#D>ifI74u>!~uM;Y|wK$JnvaUGv_p-~PF$EG=L(GzN6mI91j z$0Yy*62Kw^W3rB0qyU!$d%(74f!ooOT6t{UGGG(0E{!Ud%sSO8VZc)kEL&0ta5h+y zz9<#2T+o9RL$e78WMhCpaR5zF+6oq zKqsYcS&r@gPeJVGiprB+z%kfO*dMiD9tc1OmX5(*fqKBS9AqA&|v&^R0kj8v#zh ziw7|Az!NGKsK$X55k`1n2yvh=9w-o&7vhR6w&>!EFvck3j5OA0b%7 diff --git a/deal.II/doc/reports/assemble/img20.gif b/deal.II/doc/reports/assemble/img20.gif deleted file mode 100644 index 2c840cb5247f808ab9042a5d48e8b82cf7ce7b28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 152 zcmZ?wbhEHb6lUOO_{_t=#>OTgA)%t8Vq;_D;o%Vy5|WylT2WEa($X?{^5hjOR&3t9 z`Tzg_3^1VhlZBCyfrmi{BmgplfyH&gNzc`LEwX)B7@DWBENBvCSSpfcCLmmt!xP}) w=A`bhiN`8Rae@I$o{1B~L5GW39`h0pa~oMnr}G%>ma$X0`$D)XO^Lx80IeM>;Q#;t diff --git a/deal.II/doc/reports/assemble/img21.gif b/deal.II/doc/reports/assemble/img21.gif deleted file mode 100644 index 4ee5086e3515001992a970215eda398ccb9e5518..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 129 zcmZ?wbhEHbM)j$~<` zXsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~kI1BQ$!t2G(5Q4uty-_xtai)odcWYXcuX#v z&*-#z%^m{Y@VGo~Xxs1jR{;=6Y!n9s00JcjZvhf}17?PNi2#dvl4%2j9ti>nB?Sc% z3I={>oSp@tlcz|XD++I_915-*u@VCZ3<-5&vkbMjwn3#ixu{JFeJlrWzZ|9-tj!Dn zu)AH)71E=?%Qvt!djZ=|0|EfUf&q~w2!tYgnk;(&&?biO5(ohX2Z&pQ0EoZ^AY2M^1y7LNmTkZ=FDogu ze8~f%j*c&m-NI=h0mh0id=gNg;h?+;8AXT;(Fs7(5(!$RXc|i*zA#iNSQXd)&c@fKwX>)CX0ap0!USq?QoFS(?ZHl)E%HIDx^mN8fMwsH^5&8-_n9eP^kdi z4@W%;Ghmpev&nBPPe8y^EQPuE_!5-`;ITt;84+L{y&-`nLqrpV9Rb>zssWt}&v}zl zLp;TQZg&>bjo0uByW#X^K#(Y93X~loJ{$`Ay8{IjB;dNCE(7e^xl=GEqb%qGIyWFd zz)Dv53k1@07*@_BaL6Fo;)Y?&5()jsf&Kv?3I*h{Q3ct+(o9(cj7FbK8Z@ZU1Y@~$ zO?jVPz*%du7s!`ECK^1%RtCecf*l6r>?R(CAH=f91o6 zQOrj(MmE{gz`MLm&NA!$(B&L2TR`(aGP{*r(la~!0zOb;8I;sh5CH20P~YI)P8b;Q z(nCEpJs#FbkWC>ZRX3rw4%=CK3)+&%`%BM2u=O^#PIa)i)x@lUrkYX)E=#$FCtd|X zh%a2$l9Y2a>a7Y}j z*KRus2@=d09DdaI1}3)$FZ>5Tj?F8C(TF7X@XWW4%`7y^o^kWkrw&l86qvnj_1q8N z(l&D}IDPlzgD$`?*h_#g2HThKKI%E+8wzJ8`BmEc_zS=L8)@e6|Nj6Cpa2I*zyccZ QfCx;W0vE_YG(-RZJ8kJ7)Bpeg diff --git a/deal.II/doc/reports/assemble/img23.gif b/deal.II/doc/reports/assemble/img23.gif deleted file mode 100644 index a7cd819a92cea4ce69442805ca0602d71e95cdc8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 277 zcmZ?wbhEHbG-Z%y_{_t=!ongUA)%t8Vq#+A;o%Vy5|WmdR#8#W($X?z%9Ir=R&3t9 z`Tzg_3^1VhlZBCyfrmi{Bmgplf#uMIlb);hTD(5H`+tH)UrMK_XT*%C!j99YqPiTU zPQ-|Q@^~@jK=+eFDr^mh&NH8wDA0V`X+wetlQ1(w!&asop$5;3cTY|cnWr*sR)^*T zpDCZ#vCLs%PW|A;^HQ`>qKT)pA(1P$)zG$GwMB@Li-#k^Xet|fYJp^Ul_W=RBm*-W zlao*u&r&gFKe6z(4PCM|LQ^-?i_hL5&lz3J8ok9`l5LR)$9jjb)4~fSxlTA}Xq~x! Ye;o%Vy5|W;tUQtoe($X?<;=~mzR&3t9 z`Tzg_3^1VhlZBCyfrmi{BmgplfhA?aNzc`LEnc79{eLDSL!$~`Y@(>vVhPXXEQY2s zK1nsK4IvDyuNN~vQ0r)T81QKYgYL-*hBpd%_B&3g@+oSW#HeL1^_{`gXQ3Kfs8BXb clR=rcrtNOcvknYzij{?#nUuq-Is_T40TjGCCIA2c diff --git a/deal.II/doc/reports/assemble/img25.gif b/deal.II/doc/reports/assemble/img25.gif deleted file mode 100644 index eb8edea8719fe91489cffc05bd2d60dbf07e99af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 172 zcmZ?wbhEHblwgoy_{_t=!NDORA)%t8VrFLM;o%Vy5|WXTQBhIR($X?*+O!obR&3t9 z`Tzg_3^1VhlZBCyfrmi{BmgplfhBUnNzc`LEnc7fEyr%I5|^3A>X6aNAR^YJ(io;w zaz?~p+5{V(hAo^5dhLvlX9O}B9CJA#U=T4$;(8W)MOc%ZzUzS}GF8GY2PQih?^-;$ S#&7-Y_doX3?eAw`um%8x?K*M* diff --git a/deal.II/doc/reports/assemble/img26.gif b/deal.II/doc/reports/assemble/img26.gif deleted file mode 100644 index 2ef4c1d0732018926f5e1ce2e61c25a3e81bd3a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209 zcmZ?wbhEHblx2`*_{_t=!ongUA)%t8Vr*>e;o%Vy5|WylT2WEa($X?@>eLl0R&3t9 z`Tzg_3^1VhlZBCyfrmi{Bmgplfu(N3Nzc`LEnc79{r{2z!!Z|zgA9Ib3pbs#66Fx^ zZarhfWca#=r74j?L!xVvp1Pu7ej9^VP)+QV9w!BFO@qniJjNUrJ(A7N0^Nc^E;);* z7pGn66LL9Fa3f75iosbpEYgQL$11b3&We+PL7#O(qQkW5GiJ`3J!kH``3n|G3o=*( E0Atxh=>Px# diff --git a/deal.II/doc/reports/assemble/img27.gif b/deal.II/doc/reports/assemble/img27.gif deleted file mode 100644 index a9c26a33cb73fc79513f8abe948dea91ead3d538..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 174 zcmZ?wbhEHb6laiS_{`0~!ongUA)%t8Vq#(v5)zV{np#m&(bCc~apJ@kD^_gYy!rqC z{|rb#@h1x-BLg>s4oD1S1_MiU!AZ~6do5m{{VmJLz!4Y9u+)?%lU3wx3xkJ_;ER-w zgIpWromv%QR5(n}tTr;x5jb~7$C6Q|ThggNi9=-9Oj!kk1wyLK5vw#UbF4Sd?@wEO R`~8nSb?4vz_7-HY1^_DII3@r9 diff --git a/deal.II/doc/reports/assemble/img28.gif b/deal.II/doc/reports/assemble/img28.gif deleted file mode 100644 index 002b77a932e06ac3dc4e3ce1431ae2d8c2cdf41b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 192 zcmZ?wbhEHblwlBN_{_t=#Ka^aA)%t8Vr*>e;o%Vy5|W;tUQtoe($X?%(xeqDR&3t9 z`Tzg_3^1VhlZBCyfrmi{BmgplfhBjsNzc`LEnc7ft<$nyl(Wc(je#Y|D#uIdWW1v0 zlJxMyGbNN<8_XDWxU6Lv935GB*rz>bx45dpoN%1Y!>CFq{rCZyH$tn#7cWqX>xW})kAtC!gGEc2g-I)}X#$TRgEaug2t5%1 diff --git a/deal.II/doc/reports/assemble/img29.gif b/deal.II/doc/reports/assemble/img29.gif deleted file mode 100644 index 779370448102899b6cc19f948da000ac262b7831..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 343 zcmZ?wbhEHb^kR@@_{_t=!ongUA)%t8Vq|3G;o%Vy5|WylT2WEa($X?{^5hjOR&3t9 z`Tzg_3^1VhlZBCyfrmi{Bmgplf#u(Xlb);hTD(5H`+tH)UrOe@6($@FhJp?TOK#lS z_t8eGMNg75s_l8QNYfG~rUnzP_S0zxp9l%4UB0kDb0?oFs+ab}QoQ-$5 zZuW%9d*vMC`oVpqj=@zV&yl52w31P;rncU#Q8Lnv(JvyB%Uvq3O}dhG$|NDy={*va zoDA#>naepVCG(h5r6#RdCAx-ZopiCV_WF#)GA%8Vd$pL>SIt-`an?Iih@*>r%B=h> zruIdmfg+dLuS#*wXV|PIa)^id)Q%V~Cb1_B&qSJDy;0xEbJ<_|_g@c{4~v=EgzG>3 nIZ|CBu<&rZfU?&dkBy6tc1sv%-8r#w@$r6E1?R3F1_o;Yx+Q#P diff --git a/deal.II/doc/reports/assemble/img3.gif b/deal.II/doc/reports/assemble/img3.gif deleted file mode 100644 index 8a05126914ee03545554fe0ad93ad9e24bf076e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 235 zcmZ?wbhEHb)MSun_{_t=!ongUA)%t8VrFLM;o%Vy5|WylT2WEa($X?*+O!obR&3t9 z`Tzg_3^1VhlZBCyfrmi{Bmgplfn~;olb);hTD(5H`+tH)lBhFe;o%Vy5|W;tUQtoe($X?<;=~mzR&3t9 z`Tzg_3^1VhlZBCyfrmi{Bmgplfu(T5Nzc`LEnc6s)|Fe%;JHGQAt{NoYK=HYgF)&F z=2&AcTOKn81qDY&!&afk;hGn!PI)hCSRvLo`Jnd4OD`l?9at~?j^hbrbFy({;bB)| qa}-Epb!tAMDfyz@J2uan)5$$irJ<|4r?;M)j$~<` zXsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~kI1BQ$!t2G(5Q4ut@;oHt9E3t7PjE9NtmQ}B9xZG(gZUmOMm3km`VgfamW0cRKkY=~VL1^_!| z9S4~gn~$Vn27Vcnaj2y&oFiCzdXAN>J_iJ{0F)O4imkv?1hgEl62`%221$qnT=oaVQ6U@&NwsE^9>WAvgtO)|#7YG32Ett0; zLA`PakC4kSE@24;#ug$#0I^pnZ5h%~IG`sIGywj#3dBQ@3E~%b5=6?mK;WV@b{-{c z0^o6zAcr_Nh!+yT#;ZZPOJAXo}fr*4330rMiRRS&*xIy7=HuuTD%X#D5U0fMgC>V}FS z!6ga^6cr$bK_l>H%+OFmP_6N848hY87Zr5@0_4@9t;tQQE@2n6C-BolKp^+8dAQ|a zH2?tW2?hk*6xDG6F|Y#)f2D~p{d5YSS^jX!d;-?T3w|%1lihhypyXL=Cxpjf4g~Zg zi)Cp6)0T9}d#&*K=6G|@boluzwn-GVf3p>Kd!*B|@hoN*YBv51ui7etF2MG|++K3x? zLZ+D-6yOznTcRhK;EJyM}cK{I+O77B*OX#hY6sz7H-L>*!f zkm|$<0zZ9b>QG+)EM;j5%pJPH7XlphA*`u+5QW&;IUfnT~*`9`oE{_C*00*>YpusK0%=^=}*FYA^z7_$`DyuxF& zl}P|#&&7FS20CNdD+LwO3_^I~0{7?%oROg7v8=tS4h(PD+>3328Vc0`zD;}Aa~?!} zfjf-WYZQUOtuv5?U7Ra{jQ+4-9|`9W$4rYQM|S7WETBuV9OUIILVKnr1~Cd==0Tjo z#pwcv0C`ge(K81$W$SGIB=`n0fQPtxo;yoh9c_j?MV=Dz;C>V5IQt$&{~ila40w~Fba0=cwl){Lq^~;UDF#1Sm58|PqQ0Ak32>rf&*bPo1y;6UJ(&WEGQiDVM76k6gyKzB6vkiV+lWyG!`NQjnjDBeDWg?@xc)) zaoABc7#GDjG)Dmn@JK{xfu%*jAsm7Hf*kIom+&nj5(T(~j6PyCHCi%)O=J@4*hZ)l zoNkQ8xeNP5@JU8ifQ%zZL)>hXICOLbAA1mqDgi*8VMss#2Wr{%aH$vp>`IlF45nnT zm;qDPCSz1iE95ZeU?9l`c!@C+?c9jvwAcz`iu0c+BW4_Rvl6YCOiiK@j~&R7&}$jg zBM61y9l?4SjPe2Wq7z_*0GPVy{e^ zuc$Brqd5Hr88oz~iNWgcJKvKw#3J0SGiH;u;s(MZ;05~93p&KD# zPPbZxG6^9%W6L57z?u?i$d9XNwd4wK^_!Ho0DmK7Yg*@O$+H$jt8^2bMd`}dzWVjA wfC{W&2TRz(8uqY=O{`)U%h<*`_OXzStYjxk*~(h>vY5@RW;e@O4nzO|J0R){lmGw# diff --git a/deal.II/doc/reports/assemble/img32.gif b/deal.II/doc/reports/assemble/img32.gif deleted file mode 100644 index e17f19d9e06949d9aa626c86e34bc8d29c5ac7ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 341 zcmZ?wbhEHbG-r@!_{_t=%*-qyA)%t8VrpvY;o%Vy5|WylT2WEa($X?@>eLl0R&3t9 z`Tzg_3^1VhlZBCyfrmi{Bmgplf#u(Xlb);hTD(5H`+tH)UrJ`2YmuZB!<@<9qHmUp z+%!Be$xgM2>!E?6f&r_HzGY%onfSqp>T_8-W-(1$RN*Va;^1(UVRu$1;{t~tRjLd| ziy1P41p>PK7fEPHIHWSWbL4U{*0V7RR~HC#aKwtXi}@9M@#s$zGMQ60T_oRqcAsdd z5MwZ>{z}ocJS?U>%a@~+@5(9%Z02rcl2LJ#7 diff --git a/deal.II/doc/reports/assemble/img33.gif b/deal.II/doc/reports/assemble/img33.gif deleted file mode 100644 index 8ebedd07200cf559e9db49a699c4479ead2031c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 116 zcmZ?wbhEHb|Nox>11SDv zVPs_BWY7W0fXrZEQ8YN|xq7dKdf=AzECvy6g$yZ10ulu=trPZyCX`K8sPklDum%8# C;2m)Q diff --git a/deal.II/doc/reports/assemble/img34.gif b/deal.II/doc/reports/assemble/img34.gif deleted file mode 100644 index d6de723df3d2d8e97d622428c18d5b832494e00b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1107 zcmV-Z1g!fM)j$~<` zXsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~kH`X{Vh8{Nk^*3WtXi+wqN0#M94du^WShvE z&**eZkx(q$6u~#~Rom}iygq6HY{h$lX9@vjf@y??5(ohX2T*!a0d;8u0ssaR1W!~i z3J3xtQj~`=ohniY6k!qrnRfc)GPCV2>?@3Pi<=AEf81% zK^Su}407opM!*t2GYE26w_rd$dn_c9plA`}KnngE5m-cqLCQl62`*h+go|W`1ZAMP zQSeHJ#td6pg^Q7H0ze%LEBwqrke|_`077BNS#hTzff5OLmXVc)?boX){1dNdcDx0WL9|4xReK>e`xHAw!C^ zCJ5103*deV@@1IVAd$zZb%D*ni4(3Ks3&K^vkaGbKfwTc!aFGyet|0q*=MH$(xUi& z`F66<^Xa{pFRGp2@ZA2geZRByDllAw9sUrCXK!?ej%QtDBfxroxTlr}V^JoMG7c?Z z0A^2Q;ubw)Y=WM8uPI{57~@$$;X@aC$Ill8sMH}nnHcbj0E#HUOfDr}(47VmPQZ>w z9W5YW2f?fq00MLv(})EJlqQse_$|^7WsS_W0zoYnv`IWI@*~D^4%Us{+;BJ38>O?gEnv#u`B^dN;{AntTbZ~u!OLYQZ1}5 zuuC1Y^uetv;MB5gw+npxQMgT#OVVujff~cD#$uEmZ>aKB4=C8x7cd9=^kWP^1m*zE zC9j<~#VaP+g-HN=R%k9Im((#`6rDUAj{p)c=ntj-C}Sqc66_LMF(2=M9wi4q`#~_d zPSLQZ;B1QCRVqWr-}ub)2TDK9)-pk{&{JrX9H3?Z0J@OQjaUnT zwA5rzW0_Co$#8aPX-^Aj*>J}#_uO>XZTH=H=dJhNeE045-+%`$_~3*WZusGdC$9M7 Zj5qH1UrR06Q6i)6oC` diff --git a/deal.II/doc/reports/assemble/img35.gif b/deal.II/doc/reports/assemble/img35.gif deleted file mode 100644 index bbc5bc69125867688090dbbea4956e1c2638b45e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 322 zcmZ?wbhEHbj9`#u_{_t=#Ka^aA)%t8Vq#+A;o%Vy5|WylT2WEa($X?@>eLl0R&3t9 z`Tzg_3^1VhlZBCyfrmi{Bmgplf#v;#lb);hTD(5H`+tH)UrOe@j8##r0y5gh91Vto z3aq`ng$SG&+R3G<$eB8QA-UnG85*iJ4d~ zZ<3tG(=5cbT8Yz5*w`SMi*>%%YUY0SHXasF^TS6(ckx6`ImyVzzE*oRC!-~c&w>j= zOgC>`*kQR@=m5{oM@v+7mme*cW8TJb=glXvIaaZjr$7Jt{pat${|wArG9DWi9Bk$g R)`~f?Vd3F+AteR|YXA`PZyo>u diff --git a/deal.II/doc/reports/assemble/img36.gif b/deal.II/doc/reports/assemble/img36.gif deleted file mode 100644 index 1214cb8369dc7bebd934328c9a5ce8609b6f083d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 392 zcmV;30eAjKNk%w1VLt#L0P_q00|NsX7#JiZBsMlSNJvOjR8(bUWq5dagoK2amX@ff zsI#-P|Ns900000000000A^8LW0RRjDEC2ui06zd9000F3kjY7_y*TU5yZ>M)j$~<` zXpvlo2mqP^4Bbl^2c{I^L2Cpa$2Um`DubNFfB+SQnLv~CoK!VGk6?;Pz&hJWK$$6! zDLX*G%uswK3W9pYI0yy+0X=~)5a4eN0CWrm08kPLSrh^}3S)Iy3IhrZMiK-+2mx&Z zl?9xU6mJL!UKNiP1zCfIP*;KyQWB>HEer;KuA>u8uoHo@w+W$PvQwwAOPsR|1GmN! z!L1d+f|a;`Zf(*N2fCq;EpGt{3EPB$M1&GY6=C8Gn>(^Alh^>21mKmMxbsll9ZPTq z0U}xf4&}3ya8E)?6J)H3IKvKr1H`B~M)j$~<` zXsWJk>%M4_Tm|d_fHmMCpBaEb$0souFp8RL5WoqBncU|f)DV;#>Ll@`5Dt?AVpWhr zDFZOW+$mr&ficHDp=+wC0iMII^fv->7zuwEffE6083l?b0dE_H5|T*)k6;UI3IqTF zGYkd-I|82xI|T$13Tyy^1p%oP2zw<60H0?JWwC39M+yN)TB-yy2weqL#|#Ss3ZMZJ z!;=#T2!s_2(G^WN-rijnuM`GN+hurC)(P9a;^{MXx<}LuaT3^es1ow-3}gN3oghHV z&H@91+yTT=C>XwNha}u%fX!bydvXTQizsjst_k3hLI9vQAYjSxT@aZy&V1MQL`x~8TOI{>d{-2F5aK(Prx9sv$=KtQ6sB?ax^RV1N^ z12_T2997CpbXuCiD*ysizd(pY zcW2s~e|wN|;j{3|e|CgC&b+zv=g^}|pH98H_3PNPYv0bjyZ7(l!;2qJzCr{5J7qrG Awg3PC diff --git a/deal.II/doc/reports/assemble/img38.gif b/deal.II/doc/reports/assemble/img38.gif deleted file mode 100644 index 5e639468da43e9c650fdc4b2726abb11a59842d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 192 zcmZ?wbhEHblwgo$_{_t=!ongUA)%t8VrFLM;o%Vy5|WylT2WEa($X?x#*7s!R&3t9 z`Tzg_3^1VhlZBCyfrmi{BmgplfhBjsNzc`LEnc7fEytAL!@|Hb&vC)zg%v)H3@1Vk zoY4?4n{$QjfVbhNJ1UD}n8JEklXfU8Gg^39+H<{72%N$Z?iF0bpp(3nY5O9L8Ck+& m%nFio3X9twbxz;GZBuKOT*0i~)X~}1-P7CGKS5HE!5RRGQ$O+m diff --git a/deal.II/doc/reports/assemble/img39.gif b/deal.II/doc/reports/assemble/img39.gif deleted file mode 100644 index 255d05e0de1eea43b5acc33085f509bb30b6128f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 157 zcmZ?wbhEHb6k(8I_{_t=!ongUA)%t8Vq#+A;o%Vy5|WdXQ&CaT($X?>=FAlGhZ!a}B& zGln6jJVd75W?13j!L_C7pb>`*6T^Zh+l;F6^a2#U4rn?z3+MUh%|8EP%Pb*A25SJl C$}@%l diff --git a/deal.II/doc/reports/assemble/img4.gif b/deal.II/doc/reports/assemble/img4.gif deleted file mode 100644 index e2aff43f8a899871db895cf17151d95f857d5b2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 139 zcmZ?wbhEHb6lCCM_{_z?$jE45VBq255fT!Tl9EzUQPI-UGH1@56)RS3-n{w$|NjiA zK=CIFBO?PBgAPa-WCjC^MZihV)q5?n4;*xfDTr_k5M?o&ab*J6JrjjUL2dVik`0PG drCj|TC0H3ZhXe>pFidZJ7-T5mvs{qD8UV*lCzk*K diff --git a/deal.II/doc/reports/assemble/img40.gif b/deal.II/doc/reports/assemble/img40.gif deleted file mode 100644 index aac5a4b07bd54d724bcc17e677aba9e003641a2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 172 zcmZ?wbhEHb6laiO_{_t=!ongUA)%t8Vq#+A;o%Vy5|WXTQBhIR($X?*+O!obR&3t9 z`Tzg_3^1VhlZBCyfrmi{BmgplfhBUnNzc`LEnc79{XgM^D1)MGn@9o2q%~(IXfd4@ zQ4>~4Y%t)EaDK=rz`at@-%&%<;Mk4+!U-aE9z2{091LtWYz|Cfy`oM6oa(buZZ{uT S;Jg0z`yYGi_V+U|SOWk?RW|Sd diff --git a/deal.II/doc/reports/assemble/img41.gif b/deal.II/doc/reports/assemble/img41.gif deleted file mode 100644 index 6930a1e5ebb95105b1d2607e7e6bdca508ed584d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1684 zcmV;F25b38Nk%w1VS52Z0P_q00s;aU7#JiZBs4TMNJvOjR8(hYXLxvcgoK2Zm6fQd zsI#-P|Ns900000000000A^8LW0RRjDEC2ui0DA#N000F3kjY7_y*TU5yZ>M)j$~<` zXsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~kI1BQ$!t2G(1{@+m;e9;ks`|NdcUDU03k^n zLW2ST%x=562E#yN*oxNgynY`vFvbj7BY1p;hKDZ*WO59CgNTrkk|Bb&{aw zS_=cM_<2wRAi)L&2M7SDqOggAUJfS|5Tw9B#uxqtC{_f~Oyq_H0_crQGK|51GYIy% z5MXYl2L-!YVpyPaMge3Ch4`c70^Gv@A0+_b*>i;gEFI+K+a$Au)Tscfl8~A-#(^sV zH>jj=b*k11akMnGP&VILv|&B)Y?1H+LV5@STrvvd>sSnG7F?*QLJH6cgi|Eo>+?$2 z5d^9V9)XgCfxj3e3bv5=g94KvF0-gxApyd$8zl^Qi$cv~4Dw{gY!TbSY!>it>;g?W zt8LbR*KX*Xp>~DaB2tquh=MeQEKn!Bl#o{gRshT~Gy@Tt^Na2kh@V*fVL`J2U4>6r z9NmN%?;`@l1yNvr2JjTbcaUGA{tD-Goc@tU8COK31|TnB2ZC|bRkA=O2ZSjcrG zMJK>f*Nhl;NHjoR*|}890crGd0B;!}1b}@D`Zhs@5O%_1L-}C`qF5nf@Dw{RPVkk4 z7|c^6dJ1ZQK#ppdbATg^eWHOZs^vI?JnDtV*D3{=_>(*&;1>u5qA_ql0Si>e!2-uL z0!{*33^2d~O)>zA7@ZJs*ai&U8G@IDg*m1ITwVYQn=T4~(^2&C)u)zaIydMR0vH-6 z1#n)V$YQGbfo28(4prz5r-fh~axQIF34jcs$iR*YQjq4CN_C)IZg!+Z15Oj2Fe*E5 z5@bb?6x52D1$C)9YFLKS@hh+s{s`+qU1TVS6bH^FkfkC7NV&l-Q|YIXkb8nN3?2vA zfq*&WS)eKd;EgLmxn(e?6N1w<3t$2z#f7SESLm6juTF}&8NSk$lF(Bh6nmez6_9JL zyvqi=Z^RY=V&1y=Cc3Na*TEogRfab6q#5OVo;9&9@$`K>A3W*vFm;eC+ zoWYZ}7r^G9aLtaNUeB{_40+VQW`FwwO6fXOc;447fl> z3P?o2DhO0*<=9!2{kH`E=Cy~oOIhH(s^gG1b&5;9I0`z&)Ja4L+E-+OHr(wsjFq3fb!+!ljKna|7|B(`sllK0qOEhd(~V0 z9M-^Bbs!e>l&c)+(lyV0wCrpO*cDS?mr?hpics$8Vs=FP2w!EG*?nU2Y)UHFM#Vrts5R_3;zIP;f!OIGZbZNd9s@BgBN&4RkQ9N3R&dD` zXo8U(=-MQ0(yYQ6X-vD28Yx|YkX3T$I%aX@G?)RVU4SEbvdkqZ2lO04@WhY045m1; zNP+2)N|?w@N7slY3s5HWnXaHE*YxrVXj-!y3Sy&11ktf;Vt_=QD5N*Ru#S*epk5an zCwz{kPCk4?07+qwfjTkDb~FwEkCPKVzyS_~wez2mpkEJT1<-;TqJtZt$e|3%P(7?+ zq4@wuG)D&6(2BMJjU0&IPb|t&HaM`OAU#AULrT(;n)IY7O{q#(%F>p)^rbM3sZ3`| e)0*1!rZ~;1PIt=Fp8E8sKnki*hnj~70029JB!`2Iq+6)K zoJ~OumT!7m4oq{9v0!I8&tl=l<R5ZziN#?>v|rNC~jFFJ|6P?#%|B~U1pXOdKv zW4!2M9^KMle=k;35e|n)memq$hD-^<%pE+;@r(@HgsNQ{+G6 BY=Qs) diff --git a/deal.II/doc/reports/assemble/img43.gif b/deal.II/doc/reports/assemble/img43.gif deleted file mode 100644 index efde6fcc0bda1113ef9f3099591a7bcdc22c7435..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 280 zcmZ?wbhEHbG+>Zt_{_t=#Ka^aA)%t8Vq#+A;o%Vy5|WylT2WEa($X@0`t%hmR&3t9 z`Tzg_3^1VhlZBCyfrmi{Bmgplf#v9glb);hTD(5H`+tH)pGv68B1JK#2Y#(tLUV$8 z4(n<$r54h3D_XOes)UA5e*5Q<^zfh8D1ScH#<*ci|$gGes!v=*!>SX NYW&vU))Zv01^{~@H?jZ# diff --git a/deal.II/doc/reports/assemble/img45.gif b/deal.II/doc/reports/assemble/img45.gif deleted file mode 100644 index d64b0e259ea36a6e72ea4804a6e576a774b5483c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 299 zcmZ?wbhEHbG+>Zt_{_t=!ongUA)%t8VrpvY;o%Vy5|WmdR#8#W($X?z%9Ir=R&3t9 z`Tzg_3^1VhlZBCyfrmi{Bmgplf#t@8lb);hTD(5H`+tH)pGv4oQefCIL%mn0RGcyu ziUcRO$n03kG+~j16cfW?)`nRE49qSG2OI;mS!Esv1gJ20dnFx|;1OXwrxa`HUG~6e zj)q`{b)nav1rt=(iB<}8HOaK{6ngP+m8F^rx3f10arv`Y3-_yOd9gFiZK*A-D(d!) zeR(_C)i#8;>M6OECwCtTuY{_TBprA3uHm^7Y&IA3uNn78Yc%1_1U}XAJ-V diff --git a/deal.II/doc/reports/assemble/img46.gif b/deal.II/doc/reports/assemble/img46.gif deleted file mode 100644 index 6034c45bbe394f0e6dc9931ad718450fb7109c82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmV-p0i6CvNk%w1VLkvK0P_q00|NsX7#JiZBsDcPNJvOjR8(kaXn1&dgoK2bmzSuh zsI#-P|Ns900000000000A^8LW0RRjDEC2ui06qX8000F3kjY7_y*TU5yZ>M)j$~<` zSdoNArT}m(1IK98p;BZ7pj?DeLO?PgFbP1bf>?$MJJNs`umnc|+^C?fB%O@rM4>&v zz!bo0(ionW`GBf=UT!q?w$RL}?ZWsF^(kqMI9azYI{sdjTz_J`}g3l|g=y zM+IOA!(K`k1pom61ZxbZ6$70ES>2M9ZWIRKJUs3a1P5Kzo(zW-*C4I}G=jTQ04M+_ zOeY}$H5ln&FVnsc2_9;TXJG&URA^9W+{m$`$Bz*pLy8TO%|Np<@PZmZ-24)5wkSIu=fk|pk|H{+C+zUb` Zo(uWtI`jSI#?zOlJnLMR6~w?`4FL4K7-#?h diff --git a/deal.II/doc/reports/assemble/img48.gif b/deal.II/doc/reports/assemble/img48.gif deleted file mode 100644 index 6c8fa260245afc75ec9db2a5a1ca7238c010c235..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 371 zcmV-(0gV1fNk%w1VL|{O0P_q00s;aU7#JiZBs4TMNJvOjR8(eWW_WmbgoK2bmzSuh zsI#-P|Ns900000000000A^8LW0RRjDEC2ui073vC000F3kjY7_y*TU5yZ>M)j$~<` zRgr{-6`)oj0Q6+ER6%S?Q30^az$ZxvQVGOiV?a=V!QWC+AW9TY#%eQoMkxq@ViK5+ z3TEh+A$x8m1i&C6-ypgYbpb#;;9em^UK0sp0|N_y848L}2nci%14{}=Apm9!Y7Aox z0$Chtj%-8#Zy{lwc@_$r8=@4ST8gR~2Sf#ms}%=$6AN(!RuYz)Ph$l*3M;?>!a`jM zWfjH7f(u&(PRU?an*a+816erQY&aDLGy<8DpaW$Ad=pRuwN3OnG`VtH^`{=Vy<(6k z#h_4}bbV0ZE5jZgU_cq`@NmZ&i4M{A_yI!TnOY%2>PSFG=EDGyYf`FQ$+D%(moQ_> RoJq5$&6_xL>a-9606T@!gJA#w diff --git a/deal.II/doc/reports/assemble/img49.gif b/deal.II/doc/reports/assemble/img49.gif deleted file mode 100644 index d52efb8cd278f0aa707dfe460a5609ac7cd96e9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 417 zcmV;S0bc$`Nk%w1VPgOt0P_q00|NsX7#JiZBsDcPNJvOjR8(eWW_WmbgoK2bmzSuh zsI#-P|Ns900000000000A^8LW0RRjDEC2ui0Am0h000F3kjY7_y*TU5yZ>M)j$~<` zXsWJf5d;S-Yl8q769E7NXb=pA0MStp3YkG{Gf)(dnqO~HaDoB}31XT_5D3|s#S7jT z5P&cP83IrO8APF=7Ek2#4pIP=ut9DUffZX-94>tr2{wO(1BM+5L5(f|?hFo)|=PT~5BakGoM+aE%O5L3tLNqZA2q zbr+Q!LmJV{#S#ht2gphc2{;(1LC+Or(-Q|h>lEFQU+-E(6E)<53c(o4?UDT6fQsQF zA3IwcvSBdD08JeP0Sp{4m&*nK0>nfNxaemVDP&J0_U*7I0b#HK4DDcec1>l4a0)4g zu(+e9M-B#%ArO#(rp=onAoA!KfTT-kjbsX-ceJU~r%=FAlie9Ho{-JA^U>m{e#ZxV5d6|a~ib!wjw=ME#LHCz_1 z;>@1xq35&28EbUpwrE!-7CW)-KFJ95O^a%~)e*(;4_A0X%a|`F`A9tQdoWl2nA3%h z;|6g~+^=+Wa$Xd;G};&OM0p7NKW;6PlXI?;Sm3NmAoe;o%Vy5|WXTQBhIR($X?()~ppPR&3t9 z`Tzg_3^1VhlZBCyfrmi{Bmgplf#u(Xlb);hTD(5H`+tH)UrOe@j9sD(0R^7g=hrSw z<6`8AEi~YAa9_SdAaCZO?(K#mk{kWbggFLG6k|N}d6Gom;Re>8tsK@JEsvx)IE8~fu&!Lh#DqzLy;|D7I9jw%ynv@jDB4SixmInSY%R-F zk?G>B&0RuFlNlN`m?ukfEazeJ&u3ucT*$-V%F(w;xW{;e=`%#s^wA k3{PxWc(`3a*=vr+#zjZFC5*G~oY=Vdct5j{5(9%Z0E8rSdjJ3c diff --git a/deal.II/doc/reports/assemble/img52.gif b/deal.II/doc/reports/assemble/img52.gif deleted file mode 100644 index 96e89ccc0d04ad068491993ea87eefe413d3a77f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 600 zcmV-e0;l~)Nk%w1VVD3P0P_q00s;aU7#JiZBsVuVNJvOjR8(hYXLxvcgoK2dnVG1l zsI#-P|Ns900000000000A^8LW0RRjDEC2ui0GI$D000F3kjY7_y*TU5yZ>M)j$~<` zXsWJk>%MR-vqhp7ZK2Gm;Tk@b0;d963IG6clSn$B$wO+$N(fp8M9O-UDgYirU}qt$ zva7;!Wk#thI!V*h3{nvG)L<2m=KLmoa1#b?9b#pFA_)UZh5$AaNNovgM*wXBcY7z0 zcM1xHV;^;Qc9U|J6sQcE69}9i3IaO?t_)xj2nS!1h874239f4jw-ZoMR~EU1tC3;H zhP%VQ7{S#H#kaNq0jd)PL50Y#+C&3+6czz_qHE4&DTR5u$N*YI6wM^$AyBWvy)yp9?D>(1f#SQ1t=<{K&EUb?KxPqD}&JGWA`tI1r~!2Fs4&!Y~SfCL%n+AS4h=+moT m&%V9;_weJ(pHIKO{rmXy>)+46zyJRL1_vnMfCTao0RTG?a`XTI diff --git a/deal.II/doc/reports/assemble/img53.gif b/deal.II/doc/reports/assemble/img53.gif deleted file mode 100644 index 98014b04dfb5324c203b79c83bc4e0b601b66327..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 799 zcmV+)1K|8eNk%w1Vfp|c0P_q00RaIR7#JiZBsDcPNJvOjR8(kaXn1&dgoK2cn3$-j zsI#-P|Ns900000000000A^8LW0RRjDEC2ui0QvwQ000F3kjY7_y*TU5yZ>M)j$~<` zXsWJk>%MR-&vb3yc&_ifUL?2z=0_8*3X0yupcEwl(5Mu^loYB~V{D;aG8NM>mZa#K zu8e0`Iu5DV(61SWAVB9J`{F{FCW{b~!9z8!$r-0JB8jlY% zS8kJv)j+8aGK z?FCZ_497l7o34S>7;f`^rS$Do(;}AP;hG?TqbJE=XD}cji2+RxwK#_v0J4TqQJo?% z-(kEt_7=E%*Yw%d`m!0JcW_Ez{D+Da49-wb0Q(4_TV@#y5DFDFjWH2i`!qDdcX2?W z%Y!5c_*-2cC>TdghOIS3Z44N&AcYEr;L$w-U>3q_Rvbu;J=vv00UDRM03Qc9cC#0W z8bG#V6KIh^C2I%Gr5;Vvd0)`~?ID(pO_UY%JfCeh)poA7`=%I)vs_3GOHtOi3kVY!$ dq?A@_>7|%vs_CYjcIxS;poS{ys1!s106PwJOv3;G diff --git a/deal.II/doc/reports/assemble/img54.gif b/deal.II/doc/reports/assemble/img54.gif deleted file mode 100644 index 72f9c4a4ea6c18e31e5298736a3be8debbc8d36c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 92 zcmZ?wbhEHb=FH8TH~;_tU-2gkBO?PlgAM}_ ufYdTDD^~2f^KXMFM)j$~<` zXsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~kI1BQ$!t2G(5Q4uty-_xtai)odcWYXcuZ~q z&gir{Z793n@Jr#W*eDJJfFREAlLdMn2?7XyF$D=MZ7qltjWz{hi!uslksS+{6$Eu$ zlQIUMDGHh?p^l#fr7oEi32SPiD6g<+vLK{12WJN!g%zh7w6y@YA;Y!C8M!ipF9yG} zdlL%N6AJ)|90Mc=(F}Q=n=g3_7X&EKCfpoz*(1&z;pZyl^djnqt1Ij%1*QKi4A^%8 zK#6_~UdckB%!EP<3{#*hVXy-rYajx0c-5;y#1#GyJvP*U&_#fbE()MDagsvI3I{M| zs5n9;1p)yqOeB|cTnd{cXl_Ul006-XFXi>T$pWX&5TA-Hvh*1r~8{ zUEwz%3Pls8hn*s}g#^KUZy2x$fy}`nVg84KOkdIT-d+8zL;-;e#K*vV?NNkFQ4G!` zP=6Q&I7uNI34qcdlD*ZDUL0PM2#B?@^a}x#gho?-80>=1SbfzOVFd}GlT>TO$by(g z?CnX@Q4di31K=8B|9QArfdq0GMB) zKobB8Xyf7pFk(;?gcUI8nw>X>H9#E&&`5!k3B7oLHWCo1Py!>tW@HD4CR(LYx2#oE z03inXL2`t40HC0mDx`pqb@-Ri1m|JUXhC%-@Jp!-ND2U@AOsLt41AU`}D5{)R;mPQfbrmuR|%2`fHyKy(RrCl15`pcW+O=zx>~co0+_-bW zwdH1d&^HJ-_>H#~W-vfe#gH~hJ~+Z9g2Kg|(eQ8gi97%h!}fG|Usw`E5ojSRIvMdwE%Im@WX? z-3dFf1~b*$jlF@@Y|0bDY+E-7wg+(Us)>E{3F4;(L4P2g3Qf0LVF!B?mBHUOER6%= z;GlHC-f$Af>QMb4FnJ04IaL#l;wWS;K&Ffn;5dz(6NhHMmqz;m$Pb=w!g?1lQ$u7p z$lh*0kDy?=*BQu?k8~~I7pRG#z?R;wZQ@K zfCvAqh|XGZL_-Mg6>2M@5|_xtCOYwnP>iA! Mr%1&rJ~09SJIw+&{Qv*} diff --git a/deal.II/doc/reports/assemble/img57.gif b/deal.II/doc/reports/assemble/img57.gif deleted file mode 100644 index e75a97361ed5413e81ad0c36373d6de2b6b3d902..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1631 zcmV-l2B7&zNk%w1VT1uS0P_q00s;aU7#JiZBsDcPNJvOjR8(bUWq5dagoK2amX@ff zsI#-P|Ns900000000000A^8LW0RRjDEC2ui0E7WG000F3kjY7_y*TU5yZ>M)j$~<` zXsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~kI1BQ$!t2G(5Q4uty-_xtai)odcWYXcuX#v z&*-#z&3*#j@VGo~XkX{}dEK5ayb~J=2Lu2Dd{uq`fEt2?hKFbag&qk42#`~fj~tbk zm}LrY1s)2cpHQIyrW~cGDFurvdn*TT2b34E6a@-6s}u^Fu`3D!g~KGXGPMA=9mo^B zti}S+#MIUw$}k4oD6K4s*&N*z9G@*V6l;w9%B2Y~iq&w1AgFL|qzHCLqvMK&=XXI41asVRPrtxdL!3Ye6ww5R4r^w!8`R<~IXS?*bs2 zbOr^40OW34K(z$ct&@f**2{p@wuB`Z%P^N?u?h;1=Xrw?L-t8`fo33JmGTAye|t^H zE}@co1OYO_Pk`XxQK$R(ef>#bN+mS0_u2>Fb;m(l2CM==FYf&p zUw#1nvlLVaaw5Qc0a)T60th6qVS55zprBiOpf>?@XGx+#Q-BoUO=TyTIAM4cRF=R1 z$n}`g9tb$NluteGQPd?+3ZP7o82ti39Rys&#_OhM?nq9kk`-e~%#fqA5pR ziP0=tZjj=Ob)?AvhgnW00hb*F;K`VG0(I7O)bYlEa(EWh7zohuSCLpRZs*ORbJDaF z01KH&p-P_J8Ox6vPzuqG$YsjFenGBP8~_32wB3}fK+59;kV55Yd;W1cfvAx|*<+;> z+A5thu|Rp&sj0rI$RaS_if2#!}kZ1)J7NFdV8kjgiZpb{cmYL1o z`Hmrr^s^-eNV=zOkG&}1$&aOUSDP-I`Nlw@zz9&SwU)*B&%PAAS+2SD7((HP@2bV_ zCB82Re(UpA`tMe2KHi`vZW4F_aOtd zD4@*B$6fNHO7Ut+BXs@fub_ac2Ye%x-<29UB;r($c2=;ZBXAgZyXjW)N9ezlwRmyuN#7TYJDV2wv!MMMPBDxd~P!~p>?kZdZ65Gyj$AK!4Qgc`X>Frsmf z59Vir)Um+R3IqZV27-i6Ia$YSn1K_D?t$xJ31&=C00=_Ffd0y&i=%gp<0LoID@|37dr7Bm+%2vAam9UJZEN4l}T5hsKty!WicYw=WI&zmpXcJL@ z8H6H=kC;;klCO}-11K$%nM`0#0lJe&Xxc!UNfDtnn}E0O1Z|r+=%xj}2~H&#Zv`v diff --git a/deal.II/doc/reports/assemble/img58.gif b/deal.II/doc/reports/assemble/img58.gif deleted file mode 100644 index 8ad71c8dccb6dc58e61f827ced1358055dadfadd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 526 zcmV+p0`dJvNk%w1VS4}{0P_q01Ox;a7#JiZBsMlSNJvOjR8(bUWq5dagoK2Xlar{Z zsI#-P|Ns900000000000A^8LW0RRjDEC2ui0DAx*000F3kjY7_y*TU5yZ>M)j$~<` zXsWJk>%Lb3e?>B5hN}Sftr~pc)-fW1?n8~}P42wW#b5(9)Fd4PvdBm}&ViZsMR?0^6}8gWgaLV=_VlQ}e^ zqky0Y0W=2^;XzZ80H6sB0m&$Lh+>H&vILAd6a^TgWflfdboUDtpa4+6!9vwTL84Yp zt9H1F2BHgF6~JCFi_Ah+3S?V;OMt*eodr$XhA2pe=nKDkp>5S>)y?~ Qx9{J;g9{%{+(ZNbJM(R diff --git a/deal.II/doc/reports/assemble/img59.gif b/deal.II/doc/reports/assemble/img59.gif deleted file mode 100644 index f898b00d9a6638b138766d0c3d51219a20276670..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 257 zcmZ?wbhEHb)M1ce_{_t=!NDORA)%t8VrpvY;o%Vy5|WmdR#8#W($X?v!h{toR&3t9 z`Tzg_3^1VhlZBCyfrmi{Bmgplfo0uT_=8q(<6!NU|zyGn`G{- zE`|&lnyqP{6%tArxqTSeD}3u}g=5)RBv|zsSU80_dzvDqO_(IgJWG6{7z=xgaIVOF ziKXJxg_)Xl%Y{~pOp%P2;oQKpO@eLbe;o%Vy5|WmdR#8#W($X?#&YTr1R&3t9 z`Tzg_3^1VhlZBCyfrmi{BmgplfhBpuNzc`LEnc6sW>zrJd@v#BaDc2^_==E+qK`r} z?gbiqzE)&taXBU|VCvZRP(_i$ykWM#&__Wkew4UJ9BEv;=0f(+IGU?D(& diff --git a/deal.II/doc/reports/assemble/img60.gif b/deal.II/doc/reports/assemble/img60.gif deleted file mode 100644 index 4d219c6ac6cc29790c055cbe6f0c99a33237807f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 398 zcmV;90df9ENk%w1VMPER0P_q01qB5d7#JiZBs4TMNJvOjR8(eWW_WmbgoK2Xlar{Z zsI#-P|Ns900000000000A^8LW0RRjDEC2ui07U>F000F3kjY7_y*TU5yZ>M)j$~<` zSD~ORWpKsON=gv`0I`a-mIyP(VSu0+0=tl*h$$3i20>DSc#a5}fQ*$0BrXF|3=TVZ~aA+hP#m3xHB!9#mZ(0Cp4ySbY+I3JH4|3ISvk13Oj>jRchz2mn(P z1TvEnm5mdbmXQ;U2RjLQ8=DtD5~{4Os1~HBLNo$J13(&_3e;o%Vy5|WXTQBhIR($X?*+O!obR&3t9 z`Tzg_3^1VhlZBCyfrmi{BmgplfhA_bNzc`LEnd$J=&&7IBrs0#kVMrXD(z7SLnV=A5uVRn?Sr6603Mmb%%@ V2?ft?y#KMM?)>}T|9J!%tN|xkJU0LU diff --git a/deal.II/doc/reports/assemble/img62.gif b/deal.II/doc/reports/assemble/img62.gif deleted file mode 100644 index 1771abb7670ed5824faed847e91c74203624cbba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 701 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 XGhG{5Fc%C-OSNWuwrIPg5dZ)?1b6?j diff --git a/deal.II/doc/reports/assemble/img65.gif b/deal.II/doc/reports/assemble/img65.gif deleted file mode 100644 index ef1f07b8b031626436883fe12f9545e257937144..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2331 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 diff --git a/deal.II/doc/reports/assemble/img67.gif b/deal.II/doc/reports/assemble/img67.gif deleted file mode 100644 index 74852b156f23c33bd4ea2b62e43b7c21bf679666..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 318 zcmZ?wbhEHb3}ldH_{_t=$jB%mA)%t8Vr*>e;o%Vy5|WjbRZ&sV($X?>=FAle_;aq{EN5P$Fkf_`5Mx?Wjhy2lVOAz?9yWW$8OzMp zY-M1)eN|%D?(WFvE&IOz_@e1=CV27wyWdmJ5$Bs{nnn8VmqboMFb`1Ts++?;wu T+Hd{s_doX3oqzvXnZX(W8u&Zz diff --git a/deal.II/doc/reports/assemble/img69.gif b/deal.II/doc/reports/assemble/img69.gif deleted file mode 100644 index 852f7187a03e2c76d2f596f16e8e3261dbce8b04..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 100 zcmZ?wbhEHb3_{_t=%*-qyA)%t8Vq#+A;o%Vy5|W;tUQtoe($X?{^5hjOR&3t9 z`Tzg_3^1VhlZBCyfrmi{Bmgplfo0x=lb);hTD(5H`~QOF0xg14M-OtkcyOL%(|E^H zP_Fw_D*m^`fFvE&IOz_@e1=CV27wyWdmJ5$Bs@4SE#~nE@L&m9Q*}0P_x%q$ OYW&vUe*b}k!5RQ3d^-C8 diff --git a/deal.II/doc/reports/assemble/img71.gif b/deal.II/doc/reports/assemble/img71.gif deleted file mode 100644 index 233c0f45a8242ebf314509e3e391c0b4c6a43c6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 347 zcmZ?wbhEHb3}BFF_{_t=#Ka^aA)%t8Vr*>e;o%Vy5|W;tUQtoe($X@0`t%hmR&3t9 z`Tzg_3^1VhlZBCyfrmi{Bmgplf#u(Xlb);hTD(5H`+tH)UrOe@j8$n|juP6*A_Y8L zEw-GU?-;q{nHAm$v>soiwlX=4A;5((DnVg^#xv2~r9o^A&5Qyse3@ou>Q2}kHvhto zn1+Ri)f3J*T1`-RBgC2}#+|~$$;e>K(yVGM79mtA&cUNE#O0&Q)+@}yz|O+K*i@^| z$(%1Tk!P|*st{X-ur9+gQO<3(^I6%&iw-a}h|F9iv}T=HN5wH_Q;7tForl%CL_6yy zvNG-yW@B<>+kRX++;Q!(t76FkZ)$^mn3+3YI(tdS{a8JB^>=Rt_7L6E6VAskFq08l rk>vii`=H6*q%$wRZCG@)Tf#W&&WVkSkN0ybICsf-Zc;hU!C(yl=M;9( diff --git a/deal.II/doc/reports/assemble/img72.gif b/deal.II/doc/reports/assemble/img72.gif deleted file mode 100644 index 3b49c00e3f767dd7a4a26fa16c40d878995e81cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1435 zcmV;M1!Ve1Nk%w1VblR10P_q00s;aU7#JiZBs4TMNJvOjR8(kaXn1&dgoK2cn3$-j zsI#-P|Ns900000000000A^8LW0RRjDEC2ui0Mr2=000F3kjY7_y*TU5yZ>M)j$~<` zXsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~kI1BQ$xId!N`vj$#1v}Oszs{G2Dx3R5L_~l zkBaNeEJ*;~@HpT+QpoRg&O#k492jnQad{$vf^UQxX(?*LED=Nj}3-1j-;fd~+c ziJuq*j|K3x!WKhn1u^Usk#K^;V=XR{GI6j(MPmL7F;a?nVIqc)&q8j@(NP0}0RRdh z10V(g90oSukOOeQ0Du5u7&v1PM?wId7+%IC5cDMqn0y9=0sw1*I|=Y|p3@rQDo!p% zi6YJ5RD($iP$x*0K$U{mtT(xKwKoA?*qbf|f@mvYKmY>;0tBdf;qAD)V{z)GaMl9f zHgvJ#<0>~PRHk(oPf#G>RNx6`$HK($ssJ+t&W1AZsf%+4&QLyYR>}Af0M!x%z)En7 zC@R{>*iIB+(wGK~&nU2#;Ch<{1++_U(9PTw+g!jah;G~gdGO`_a9daqJ;cP)r^S=X z?g4!B3FJ3$XN-O2hwZNg#HJme9~T2NY5q6SXcvSs02g*>a8zuGR3ZU@+M$r31oUv{ z4m_X=xX%Cu%vZsMXDrBogMD=@xNrlmcp;6Y6h}vy5df354 z26C~0kN((5hS>K2jh)L!IA&Kc& z1;hyg=2<{JsOWkWLV3Y*di7~rkH2;5siAUaaHgJTG-*@yj6!*K7vb6x+*nPRocOyBxnhRq4|46_MCL3~P}nyMT?%oyVEO3{+>LsMx9v=rM^#Ncd^-8lSWriU4V+Snn!TwdbUo1G0KMxEE z4q$*#3haQuc0~>Z3OLQC=w|}~Y9N2^vqArUWxoe{fN~rdo!Z_Y9tC*tLwEYvST+#@ zzqvqcGGO5gT*v|u&OnCL_}EdzW5XKYFo!jOAKI@^wW@aHFAuTN}n>TO%|Np<@PZmZ-26hG=unM4B z24=&GU3dN&obt>R{3^Jim_?4I?VN|vvz1GF81{USHhB{{xqR!v=2!m@EGY2Mk?KE@ JqRPl%4FKd|CC~r> diff --git a/deal.II/doc/reports/assemble/img74.gif b/deal.II/doc/reports/assemble/img74.gif deleted file mode 100644 index a5539ec3efa887f94cdce7289b50e50c27df0e30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1978 zcmV;r2SxZtNk%w1VU__?0P_q00RaIR7#JfXBQrBINJvOjR8(YSWO#UZgoK2Zm6fQd zsI#-P|Ns900000000000A^8LW0RRjDEC2ui0G0t$000F3aLGxly*TU5yZ>M)j$~<` zXsWJk>%MR-&vb3yc&_h!@BhG{a8q~{VaHZ-$ZXb@P9!3ffT{|LSJjw}dcUcy$Z!B_ z5`vIn08q&X`6W?3VkgJT`i|ttDCTO3W6g9R$vJLs3Er~y(zyY2C>9;!5awyyJiD=9tF!1 z3IhNF(Hzr`*Dl%CBh=m;!^Px4*~%US1a}AkkR4|W8_tS6)E3AVEi=Cw^);0AQb!0`5K}Ne zky@2H?n@yH)RGJk^zcH0hyVsK1@YF9+^`++T6kONE?u~OJJb_90W4t=eB;hdH_A({ zm=jV;NY(`}nl1fF06>c}>G}0x%fIkxyX^e?i+Vf8gtfq+?sSIl@~QP&7;^i5!21$qT= z(+-9>WfNxvyn@$N0{Au`1=z`!*NKt+VibiW{xTQ^jfwS>g5>RYoruD1CPXe_rG$VL zF~T^-TRPfUfn?JZsi1b=tNo}O!JK=Wo|G4sG_Ez-XY)Rbx2tVgnH?#&ymU>q(D$t=|Qf-3Iaj8 z_S!;mQ5cfzmxcODgt5q?AV85n{s^0_ShqeCL$n=G%YwCNG3$e~&#okf5~H2)?X}_3 zFs=#B1lv}(2FdY)8^wxH%DZ&v;BE>81Ste4>>5PKC;XBI@KjfLa*2M~3Y_W_24C_4 zm`w!SFFCEapvt@Pj&Ly#75hSC4iZmX47M7Oe5?y5qkt$05Q{*NCw-<6vdDK}aX~j3 zSAcU0J9i3B#wmZ$^B^Br@SY$FbW*O+Gn3-T!hRY+D?>R?Ks5?igOK$=L3glqIz?L@ zz&=;X9JUiCaV8n86bWbb${K{k(Fbw|bsO9j7%;2~b*qZlx+JR5v>#(nrtM)Hc7U)4 zi*InY1dVeL`2>f*Fgb<(XRC8_RgqAgy z8t0ygog0eC*wz~OMVXJA2Y@)QzH6OJA6DCDW1qWN>eZA4a>Q*n9RITMUvnJy9P?B_ z6xFFfiGXFL?tJHV9x-4`95|n|8AuY45QuCpQM-iMuXJM3QuX&IJyrM zQAj{c-RMa{x=Q|uDnLI8bWm_DVv~~ek}r8MWjJ|SnpTeZgDjzM6F#yTj4;rpCt3hW z>7wH3xHP0Zx+P|in?jPP^op{MXhJgxJ)#Xb=X)&Q(@3{dejNXE5b;(5T^>R*nB)>vfE18((#QgKnZ^W99Y zSOkq&#d6nbbyWux)x-j!a2&u2Cnn#_2L&xvSjn-q1x!Kewt6T<$5P0IeYGKK4!fZH zO$2ayb?Fd5)Qh^(Op7WSY%G#^wt1PM6NKv{-drm(L=y5+ZsbW%g-}$-q$wD@o!BZ_ zZuzP`QL>n%<$(xSlH7d;a{WSTb^YfB2@dVd)=Xi;Z1KPL+b|vTvomC z-9ashQN;M#cN4L@uYUK--~RgdzW@%ffCo(A0vq_i2u`qq7tG)WJNUs6jbX9NHMJNnacZ2$lO diff --git a/deal.II/doc/reports/assemble/img75.gif b/deal.II/doc/reports/assemble/img75.gif deleted file mode 100644 index 9bf6432d29ec47fb751afd77a90c3cbcd517746e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 659 zcmV;E0&M+9Nk%w1VZZ<>0P_q00RaIR7#JiZBr`KJNJvOjR8(MKV0d_VgoK2amX@ff zsI#-P|Ns900000000000A^8LW0RRjDEC2ui0Kfn#000F3aLGxly*TU5yZ>M)j$~<` zXsWJk>%MSY7B4MtHhyzC+johds-W0qh?}4>qjVuXh5<}LNGvVXA|`sha9>nw#{ejs z&*eY{%?1Pxu{ImNm7`^3yLqj5(>n@cEeTp(6NDRqh82n~h#*2K28$GvJd_lXD3&7% z0{{YoAD*D1SEQjLqyeT&tF0WUk0S?G2m`PhwF|eoGP}JYz_^RUz8Ji1J zgf;!EFvck3j37n;06P%!89x93 diff --git a/deal.II/doc/reports/assemble/img76.gif b/deal.II/doc/reports/assemble/img76.gif deleted file mode 100644 index dc0048143d47de7c117c68266bed59bab4f2314e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 172 zcmZ?wbhEHb6lIWQ_{_rq1QHSwDk>_*#>O5V9w8wiDJdxx6%{QlEi-1!Sg~To=FOY` z|NjqC2L_5iSr{1^co=j*Jdha-ERhpVdamAU@%rpfhJ=I?5r?2QMhW(r0^G@3E{|?* zn!+M)j$~<` zXsWJk>%MR-&vb3yc&_h!@BcvG06;7bg2<$@rXWZL2T5T`ty)V5g#?h0M6ckm_>u_J z3SG^#g&v36nYG(+F*rv3^Sej9-u1p$pVj0h8v6$5`G z02~Pd9tM~xp%Zot3Ie4w2UDx9C#M{w8>z81xU8tM3|u6y00oK`1%exQD8~~4X$eO( z&JqaG%g7nl7}E^UHQdz{%9H>EogE1TTAvF9X%>}|#U$~c6ZSLszbf$?#2Wha#Ry2@ z--!Wf?0LHYpp+3qM6`uN(eNGxfiMVSP*BJ~0092y?m3JI5r8!W${1d(p^=(468K_b z(6>N!cL^xf7IL@~ZNN?}0NKWd9kAR9n{*{>Pcu04y_M74Di2oxe92O|OiQn8}t8@GjC zya#kLKskX^Rtkr2KF!N_VCTjl78Ec5;DCXS>3P6Fr=Ic}e=oPga+vAf< zab?o2C(MSI={CROu32ClF#9S4bKOi zb3i~L<`lrwIV@4m_O@%zOCZf1y#EUP;r^E$X4PTfQAk_-l%H*qsWwtYdFW$HSFMCX z1ObvAqK^R1ap;ka!a`Ea6Nd_;bzs~FPs%kTYLlhZq$Hbh5T%nI6bR582NZ(j1_=04!k7kn z8G-?7u82)s#EAJ424w=+=6-jMl4qSDuo(i0icAPdo*xKG2BDzriOob709uflJ0X)m zo|CFjDF>Q-aOpBs7UTkrS8OUtr~A1fg{i2fs_Lq&w(9Duu*NFuthCl@>#exvs_U-2 l_Uh}ezy>Squ*4Q??6JrutL(DO3pVTQv(QE>Z3+s4oD1S1_Mi2!AZ~6do5m{-Thx-n#g2Eh9zM#lN?nzHgI-L(fg!y zCnQfrs3l>twI2p>s@QHOJkK&w#J8Jya M-+o_F&B9;}0J^3%=l}o! diff --git a/deal.II/doc/reports/assemble/img79.gif b/deal.II/doc/reports/assemble/img79.gif deleted file mode 100644 index 9ae0de6db3567d3d698e3a485981632584fdb2ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 221 zcmZ?wbhEHblx2`-_{_t=!ongUA)%t8VrpvY;o%Vy5|WylT2WEa($X?*+O!obR&3t9 z`Tzg_3^1VhlZBCyfrmi{Bmgplfu(E0Nzc`LEnc79{Xc4A1gnMQv87WIltPXu%5p?( zxWT|y6!t}om672EquV5=1_#F%P0dnGCmDPMI$RnS-I!D$yn0F5>JIJ3SvPxl;?Ifv zaJ-(jM~88VQtI+0!VVk>!ch$N!hs#$B1-bCH4@Fzoc`hwYHV4e+G?JqLKEgLTD)ZG RvgIpQu3Eijt&|{xH2@+SOi};< diff --git a/deal.II/doc/reports/assemble/img8.gif b/deal.II/doc/reports/assemble/img8.gif deleted file mode 100644 index 43fe3e7f2ba34264dd19820b0b0d71a7a1235326..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 293 zcmZ?wbhEHbv|^BD_{_t=$jB%mA)%t8VrFLM;o%Vy5|WXTQBhIR($X?()~ppPR&3t9 z`Tzg_3^1VhlZBCyfrmi{Bmgplf#uSKlb);hTD(5H`+tH)UrJ`51DB7tl}fq|&(*{u z(nc#7ibPGk7?)cz@O1emnrf<8dN-*UzENQ4?kk*R5y8)y=6K43W7YJ7XKzgoIh)bF zK0vlYl|`QI!<#MK1{GD3OyvxXJd9E{HXWi2e%V4@(ltEnOsT0%)`h~%wKB{sg=upo zwYe5^nX@rR`iOF*$XYk^tn=I`=FP~)z!+J{VByAp5`2g8()}k-pFMx^^404%Z{NND@bS~QkY-W< diff --git a/deal.II/doc/reports/assemble/img80.gif b/deal.II/doc/reports/assemble/img80.gif deleted file mode 100644 index affbada694bf09309dc097a39577246f60ca067a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 699 zcmV;s0z~~sNk%w1VV?jW0P_q00s;aU7#JiZBs4TMNJvOjR8(YSWO#UZgoK2Zm6fQd zsI#-P|Ns900000000000A^8LW0RRjDEC2ui0G|LK000F3kjY7_y*TU5yZ>M)j$~<` zXsWJk>%MR-&s~v__GVN&?G*}5uW|?wZoY|O$QS^gfrF+X-6#r_Yf{I&Xe)t)0f6)+ z1Q!73>@grH?k$GRiBrgONdXHVQ>T0#1Qi2$7JD9p6a#@_?ydYXm| zm>ho-3V3p)O-O1C35988PXL7lPpk|Gw6%&W3YrE109_NLud%ZewvYq^xfhZZ2|*>P z64KNd(h>>+0t&0p*a2DK8?WTAXcYx-3rssjFsB&s?mAtAzn62xh^c4pE=brvKd zXo&Kiw16E$q&fgCk~Ir6x5Z3p@InD#6Z%nD#X;i|0PMU9AnEY}qX0rFP-Q?><(+cm zwpL}(Bioy)5iKO7S>fEyTe1peZ9wEv#R0&VB?&$kRbk!4 zwFCo568LH)&?2N;V=1UC5Ws6vq|6Rz3RMGLK^3syw z0QI;B1f}6CUm=k_Ck4nc$e#iW$o2{LO=@sJ56PsIivhF!RvHL)Xz&F#jhvT)dK;u; zMS>b2unaohIHwARdgN4th)VEafdKi9klPO^!7)O1OKC!0Cp6YL#Xt|*sN;@2_UPk} hKn5w~kVF<~3`X@}BG+9}Y!5RR8{6V<@ diff --git a/deal.II/doc/reports/assemble/img82.gif b/deal.II/doc/reports/assemble/img82.gif deleted file mode 100644 index 39994399398e44447b214cc7cfadd4bea78c233d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1460 zcmV;l1xxxzNk%w1VWI&f0P_q00RaIR7#JiZBr`KJNJvOjR8(bUWq5dagoK2Yl$5Bb zsI#-P|Ns900000000000A^8LW0RRjDEC2ui0HOgT000F3kjY7_y*TU5yZ>M)j$~<` zXsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~kH{p=5C8-u2Eaf`ty-_xU!fpT7!ujAIG8Yu ziDlm4z(}9p@S1`f4;H{PIt4J-1MfS2DS#(WD269yI0Xuaafl`ZjWG%VcoGN!1_zKn z28t2`0Hc~BqNJb~b1Ma@r%tIG02*^m0E`&37q6wXf-(rPB)S;2qXd^j#3ly6ECm1v z6kDOfItc<7%Ol$v2hu1BQx@GE&0AMp= z3Z_nh1bwGn3S@IE}VFCh;X3goS;b%|=bCO+vc*rMEnn(#{w4eZh(ootgoIIM81JgVh zOO#8n(?ZE0FFh0>@M0c=0Vr9ByT$f{)q;3*iTf}hZ44M_9cOABH5&}39@R|w%fJ0&^ zY`Ec$dXh*+06iRta})zdk~a*IOE%d-HwcW?op&}Bsf(1d(9n%82TZb8mnL3-O)<)m zSmXw0R-nh4F%Bu6m^*r?)-(>LV$XKm#mUDde5@#EW)KSWML}0mwNQBNI95{ySMr%$ ziJ2{WD54pZ1JD5jh0>yPwzXntGLHUITNF<42H0`PC3=@{irgm60EsrYM>rbolm zrs|H(73|6YvnAxS2hS7W9Iw2bzy*lFxey(pQZO2nKy)M&0GLhyxHnm*8YR627?Ut% z2r=hkIV~Gw%R7f<=bQtL6Iy#(fv@WR2crZ6T&qFZ^HSG>K_1m7EC&~2q&Ef}4ssxh z2T=VIAV3EQLgKg5d%{irM8z#Z;S>i8#-%5MigP#6N)EB$3cuKUaInuQbBBK(eICXF9Hg3Jumw|nOqoH7wHV3fXj<6T5r zbo3oTavSv(Tx)c8?u6R{=Mp$?Ljg2TN^`^Va8gv^tJ}Z T21X_q9jX2kOEw8HGFSru&sZb} diff --git a/deal.II/doc/reports/assemble/img84.gif b/deal.II/doc/reports/assemble/img84.gif deleted file mode 100644 index 9207600c6e642beed5640bb85a1647a0bd60e4fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmZ?wbhEHbv}cfI_{_t=#Ka^aA)%t8Vr*>e;o%Vy5|W&pTv1Wc($X?@>eLl0R&3t9 z`Tzg_3^1VhlZBCyfrmi{Bmgplf#u(Xlb);hTD(5H`+tH)UrJ__mmmYf#5o3KJRM6U z8in3ZQhXue(kLFx5I2oc&`lvm#EXYf!!y8IuiKQ_B8KmrcVfiJvSTxtHZ?KCsI%yM zIY>&VG=EohTt7k5UM#n|R*bb=oULAxwJ5VgG>?ZZwj!IAA&@DXxs@}pZl=&|;Q)sE znj~jSR<1OjULHmv24QyYNn6_DHuG%V#?6|ztCO9PIa%Lf=aJ9_`^3&%5M|E3ER{9c zV?U3+WdVB;SF7-yd-;2XxSvQc>nxaZf}5vMm}x2xdk0J4j54dQYBh@%^dD~YsZvvr zc-HP^WyZth&@{E+h<0P&q0|$P@&cLMM)j$~<` zXi64AaH#4a0LDZBzz`Y)qX>wOf>6i|UMQY!Vo-{>1br9@K?VR$30xt0c@hKxgc=A43XghfY#Cz= z0W}9~hyVc+h*V~&7JHKyL24HV1AHEgEDW8HV+v~+j#Zi)0GksBM6H|?2>=JV3`YzJ zNEoFOmm5}C7zYB;XtT%_h7>Z4c)ZRQvl6l$39uFc2-1|n7|vgl2rdWJ83;1~3_3AD zppYxXc;SHatOC3N=3uCJM* RoJq5$&6_xL>eLwl06RT=fs_CM diff --git a/deal.II/doc/reports/assemble/img86.gif b/deal.II/doc/reports/assemble/img86.gif deleted file mode 100644 index e9bdeb31c8cd533e6aeb087dece239f24d7fd3a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 455 zcmV;&0XY6gNk%w1VNU=d0P_q00s;aU7#JiZBs4TMNJvOjR8(kaXn1&dgoK2Yl$5Bb zsI#-P|Ns900000000000A^8LW0RRjDEC2ui08aoR000F3kjY7_y*TU5yZ>M)j$~<` z=%$c}00_s~zOgwN02xR}ZV{gyqjv#KU{000mYmBhfJFiw(RK3gQvx2-F z1_+755LihP1UJP{wj>T@sxV1XdIZ0}4$|rE{RS7rKMJ0Cf@t!MIml16hKG z$P)+57PFkwJl2>K$7bA<0DZRF6qXYR<3;A@m+IsU1nm^+7YPCz%IUTE9QzXNS@73k z9gZ3UVnH&r;-G|t9I$a}_>F-8g&7JoYEz&J#tL-@eofHGpp5~K970wg3G3vT4|D#wBcT-4@I?brqZJqoXpjnks)ruC xG$5tcwWqC=Wm9BS%U~1Rw{YXiolCc_-Me`6>fOt?uiw9b0}CEZxUk>|06Xjbw;TWf diff --git a/deal.II/doc/reports/assemble/img87.gif b/deal.II/doc/reports/assemble/img87.gif deleted file mode 100644 index 0e4d10b3a5cf5fd162672f527fdac318e36f6a3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 334 zcmZ?wbhEHb^kI-;_{_t=%*-qyA)%t8VrFLM;o%Vy5|W;tUQtoe($X@0`t%hmR&3t9 z`Tzg_3^1VhlZBCyfrmi{Bmgplf#vsvlb);hTD(5H`+tH)Uy7!vL&1!kr2-5IKKVBB zYzH-%E~&OSrESm>t>HNM_Jqeht;QA=!y62oUDI3?*KnwHG(6GfjAsxrVGGnq*?OR9 z%c5y3j!v$s%6H_sBcov@6`tQxA(AFmRVBm{D9gdY)!Ug{EaM`^;#yK8%Hi0S&66w6 zUcXqHb*}Ili5|(EBIyZY?2F{s)(Wxti*-y1V_}&gy23Ymr_{b+;j=u)gzJUaQ^J-V z;NaY|Aa|88r@4M`>=Q9gCc_AwSIviyb{iUo@_aVD9`%be_Lual@6QxJxo=o-u$eNzc`LEnc79y}yHjM)j$~<` zXsWJk>%MR-&vb3yc&_hdk>mxJFJ|BwZH8h_5nLrL3PNCjVj2k->I}dIOcY$f&y*1G z4hU8GQYe~HXx@;5P|gI}$>ESHGh>Ioxd~%y7 znipOy1)Vuq6qq6g0S1m51)&lJtsrFp1*Qy>6R)Od0Vala?v$zlAFpV-3Q>UKUs^+YJe3WfgzYz5t!kL#}GMLRKoz08zcQ>khbP9C6B!*7|^JQfdP(SslsSg zK~Hjxa#cXEy2E3GW~cGi_M1V#-0+$Z=oGMqpXI)TKNo%h0WJ=aQr?En=s1IE7Xy4^ zFd*ftRq7qNEXF8+%=b~#(4Vk0Mf(cXoy}rjB@5+OQ#1w`GTSb8!Jv*u3*mHN1_6PC z0XxX(mxlm)xxyP|jO^hL2hU7LN^u>0bjpX^Wl*Asr$pq}4+^ki6b~<2H~}P*+=xMr zBqSgZ1wu-|A$30$$=Z4~`6z;tCE?Sc0W|ewB$G`_0ERBv)OExJN*?J#m{^8TfRh^d zLc&8TBq%{7AF4S5n_t%1!W_~F(V!D{_UY%JfCeh)poA7`=%I)vs_3GOHtOi3kVY!$ cq?A@_>7|%vs_CYjcIxS;poS`{rV#)DJ1DR|)@f7M?H`DT=phZn1A^X9$sS6!R0SbnQ#bmtcz(VRVg;&k(Mg;_NfIUxYny zE>G8tj^?&CR;z>!g;oeLW^fs;n#mc@ykJf^DErGJEi$o7x sROY-QUVTg5MV$NQ1LX@hp1peg=Iy)pA3lEi{N?Mn?>~P25M;0h030iCng9R* diff --git a/deal.II/doc/reports/assemble/img91.gif b/deal.II/doc/reports/assemble/img91.gif deleted file mode 100644 index 5c92644af9d42e42ead15799f195b68f0f1ce361..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 305 zcmZ?wbhEHbG-Qxx_{_t=!ongUA)%t8Vq#+A;o%Vy5|WmdR#8#W($X?z%9Ir=R&3t9 z`Tzg_3^1VhlZBCyfrmi{Bmgplf#u$Wlb);hTD(5H`+tH)pGug$7yjb)Yx||dORM=MZKFW6VuIMpH zW|)4SiQ(Yp=4#THzwSWD91~u3XPlVJ;R1mI9#(qShYKOj->L?Q?`! zv^W?etSnf4IA)22c(GLTGzl|D1v2#Q70O}WZgoU-TQ0kc)oH23?78Q}nH-GQNQJPn yh;T%S@04M^C%t~^CQ;7klIk+dtA%|mKYjl4_1pI!KY#uH^Y`C>hQF>14AuaK{bx%6 diff --git a/deal.II/doc/reports/assemble/img92.gif b/deal.II/doc/reports/assemble/img92.gif deleted file mode 100644 index 26d549bd8807ec2196874a58acc77d4e552e8316..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 142 zcmZ?wbhEHbs4oD1S1_O(A!AZ~6do5m{H5YPlRG6xy(k&R_s@NG;;L(!EDC`i{ jxJg92n^8bwhY@o$Tf;6HE{2$NueDL@Z>&*aVz34Pw`?cx diff --git a/deal.II/doc/reports/assemble/img93.gif b/deal.II/doc/reports/assemble/img93.gif deleted file mode 100644 index 784eba0d769359b89c44e9c957f017bec5e86bc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 298 zcmZ?wbhEHbbYqZb_{_t=$jB%mA)%t8VrpvY;o%Vy5|WmdR#8#W($X?@>eLl0R&3t9 z`Tzg_3^1VhlZBCyfrmi{Bmgplf#v#ylb);hTD(5H`+tH)UrOe@q=^x%ukzXob>E&A zbttIm4B)ap#+Z0nhJ&ZI;fCfFgXSc)4M{4CWalmum=eYyvcc7nfuX5Ei@AM{!iIYr z_AHVR5X?1XZVY%anNgfEt)~P2`X)9icu;g-cN0({qwz`Z36mAr4mEOZOlHtxbyac*EYP($T{=mjRr9gefiTZtmN%Wz zbu*1c%4VeM2Cn!b!X6;P;VTl&=pY;v(Z-`J&#EO{5TU@??APE|C}+yU$Y2!PCpSTS ZvihpkYu2t?zhUF1&0Dr^;}K-A1^}=2Od0?H diff --git a/deal.II/doc/reports/assemble/img95.gif b/deal.II/doc/reports/assemble/img95.gif deleted file mode 100644 index bf8a8497c3a4194d07a29e653613f2c3216fd08c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 454 zcmV;%0XhChNk%w1VQ>H+0P_q00RaIR7#JiZBs4TMNJvOjR8(bUWq5dagoK2bmzSuh zsI#-P|Ns900000000000A^8LW0RRjDEC2ui0B`^w000F3kjY7_y*TU5yZ>M)j$~<` zXsWJk>#{{68tf4e@|y}kAJ7^DFr+A~0to{kr^5g`2|?+AP%WFm0>E(C6pW>TY5>Mo z5(EX~sYqu6-BKZbQd~ob-oOw5z&isuPYelSPD~6000IdCh8hTuB?$#&Bz{H-JspE< z6P*^I32Fla3IQCa7kxdgtx^=H3YwRln-#DWff9p_x=a8Sqssr0d!MIDN_t zGF2hQiAM7#uvEriml+BK4$zU9GG2gL6e_L=8i!4Q1&GW9_#fOt?uiw9b0}CEZxNrmjJ6~6-;{X5v diff --git a/deal.II/doc/reports/assemble/img96.gif b/deal.II/doc/reports/assemble/img96.gif deleted file mode 100644 index 8134a66931ab1898a4d960698f7c23e3d3c2c8bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 202 zcmZ?wbhEHblweR~_{_t=$jB%mA)%t8Vr*>e;o%Vy5|WmdR#8#W($X?*+O!obR&3t9 z`Tzg_3^1VhlZBCyfrmi{Bmgplfu(%HNzc`LEnc79`RYajLxNkLmmmYf#DMfNo{l9F z2i1>GS9~Gtl6Yvf27~_Th8cG#q~V;f?}>1DE4#T`!?ad@~G{_$SRd yWH7-%BS!U`qQQjyhg4bh*$OI|b-XKu*%|D+`X@}BG - - - - -assemble - - - - - - - - - - - - - - - - - -next -up -previous -
    - Next: Introduction -
    -
    - - -

    -

    -
    -
    Assembling matrices in deal.II - -
    -

    -

    -
    -
    -
    -

    -

    -
    Wolfgang Bangerth -
    -ETH Zürich, Switzerland -
    -
    -May 2002 -
    -
    - -

    -


    - - - -

    Overview

    - -

    -Assembling the system matrix for finite element discretizations is standard, -at least as far as scalar problems are concerned. However, things become a -little more complicated in implementations once problems are vector-valued, -and in particular if finite elements are used in which different components of -vector-valued shape functions are coupled, such as for example for -divergence-free elements. - -

    -It is this case that we are interested in in this report, and we will discuss -the implementational details user programs must follow if they want to use -such elements with deal.II. In order to explain the problem in a -simple way, we start by reviewing the algorithms that are used, first for the -scalar case, then for the case of ``simple'' vector-valued finite elements, -and finally for the most general case. However, we do not intend to give an -introduction into the derivation of finite element methods, or of posing a -partial differential equation in weak form. - -

    -The interface for vector-valued finite element shape functions with more than -one non-zero component that is described in this report is presently being -implemented, and will be merged with the library after version 3.4 is -released. Thus, it will be part of version 3.5 or 4.0 of the library, -depending on which version number we will assign to the successor of 3.4. By -then, the library will also contain an implementation of Nedelec elements, for -which these techniques are necessary. The interface for primitive -vector-valued shape functions, for which only one vector component is -non-zero, has been part of the library since its publication with version 3.0. - - -

    Table of contents

    - - - - - -

    -
    -Wolfgang Bangerth -2002-06-14 -
    - - diff --git a/deal.II/doc/reports/assemble/node10.html b/deal.II/doc/reports/assemble/node10.html deleted file mode 100644 index f5d49fc212..0000000000 --- a/deal.II/doc/reports/assemble/node10.html +++ /dev/null @@ -1,156 +0,0 @@ - - - - - -Assembling vector-valued problems: The complicated case - - - - - - - - - - - - - - - - - - - - -next - -up - -previous -
    - Next: Getting information about shape - Up: assemble - Previous: The Stokes equations -
    -
    - - -

    -Assembling vector-valued problems: The complicated case -

    - -

    -The more complicated case is when more than one component of a vector-valued -shape function is non-zero, i.e. the representation -

    -
    - - - -
    $\displaystyle \Phi_i(\vec x) = \left( 0, \dots, 0, \varphi_i(\vec x), 0, \ldots, 0\right)^T,$ -   
    -

    -does not hold any more. The usual case where this happens is when shape -functions have to satisfy certain constraints, such as that they should have -zero divergence or curl, or when the normal fluxes at some points, e.g. the -face centers, are the degrees of freedom: - -$ \vec n\cdot \Phi_i(x_a) = \delta_{ia}$. In this case, the individual -components of a shape function are no more independent, and thus cannot be -chosen such that only one component is non-zero. - -

    -What happens in this case? First, the function -FiniteElement::system_to_component_index does not make much sense -any more, since a shape function $ \Phi_i$ cannot be associated with only one -vector component any more. Calling this function for basis functions $ \Phi_i$ -that are not restricted to only one non-zero component will thus yield an -exception being thrown. - -

    -Second, the functions FEValues::shape_value and -FEValues::shape_grad returning the values and gradients of the only -non-zero component of a shape function at a quadrature point cannot work any -more, since there are now more than only one non-zero components for some or -all values of $ i$. For those shape function for which this holds, you will -again get an exception upon calling these functions. - -

    -


    - -Subsections - - - -
    - - -next - -up - -previous -
    - Next: Getting information about shape - Up: assemble - Previous: The Stokes equations - -
    -Wolfgang Bangerth -2002-06-14 -
    - - diff --git a/deal.II/doc/reports/assemble/node11.html b/deal.II/doc/reports/assemble/node11.html deleted file mode 100644 index b537efd228..0000000000 --- a/deal.II/doc/reports/assemble/node11.html +++ /dev/null @@ -1,153 +0,0 @@ - - - - - -Getting information about shape functions - - - - - - - - - - - - - - - - - - - - -next - -up - -previous -
    - Next: Evaluating shape functions - Up: Assembling vector-valued problems: The - Previous: Assembling vector-valued problems: The -
    -
    - - -

    -Getting information about shape functions -

    - -

    -So how do you find out whether calling these functions is ok or not? In other -words, how do you know whether shape function $ \Phi_i$ has only one non-zero -component, or more? For this, there are two functions: -FiniteElement::is_primitive(i) returns as a bool whether -the shape function has only one non-zero component. For example, for a - -$ Q^2/Q^2/Q^1$ element, this would be true for all 22 shape functions. -For a finite element for which every shape function is non-zero in more than -one component, it would be false for all indices $ i$. It might also -be true for only some shape functions, for example if the velocity -components of the Stokes discretization are done using some more complicated -element, but the pressure component with a $ Q^1$, then it would be -true for the pressure shape functions, but false otherwise. - -

    -Second, the FiniteElement::n_nonzero_components(i) function returns -in how many components the $ i$th shape function is non-zero. Again, for the - -$ Q^2/Q^2/Q^1$ combination, this would yield the value 1 for all allowed -indices $ i$. For coupled elements, it would be greater than 1. - -

    -Third, you may sometimes want to know in which components a certain shape -function is non-zero. For this, the -FiniteElement::get_nonzero_components(i) function is the right thing: it -returns a reference to a vector of boolean values, one for each component of -the vector-valued finite element, and the values indicate whether the shape -function is non-zero for each of them. - -

    -Note that if you have the result of -FiniteElement::get_nonzero_components(i), then the result of -FiniteElement::n_nonzero_components(i) is simply the number of -true values in the array returned by the first function. Likewise, -FiniteElement::is_primitive(i) is simply whether -FiniteElement::n_nonzero_components(i) returned a value other than -1. The functions are thus redundant in some way, but useful nevertheless. Of -course, the values of the FiniteElement::is_primitive(i) -and FiniteElement::n_nonzero_components(i) functions are not -recomputed every time based on the result of some other function, but are -cached once at the time of construction of a finite element object. - -

    -


    - - -next - -up - -previous -
    - Next: Evaluating shape functions - Up: Assembling vector-valued problems: The - Previous: Assembling vector-valued problems: The - -
    -Wolfgang Bangerth -2002-06-14 -
    - - diff --git a/deal.II/doc/reports/assemble/node12.html b/deal.II/doc/reports/assemble/node12.html deleted file mode 100644 index 879e388d9f..0000000000 --- a/deal.II/doc/reports/assemble/node12.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - -Evaluating shape functions - - - - - - - - - - - - - - - - - - - -next - -up - -previous -
    - Next: The elastic equations - Up: Assembling vector-valued problems: The - Previous: Getting information about shape -
    -
    - - -

    -Evaluating shape functions -

    - -

    -Now, we have seen which functions cannot be called for non-primitive shape -functions, and also how to find out about shape functions and whether they are -primitive and the like. Yet, we don't have replacements for the functions that -cannot be called, so here they are: instead of FEValues::shape_value -and FEValues::shape_grad, call -FEValues::shape_value_component and -FEValues::shape_grad_component. These functions take as arguments -first the number of the shape function, and second the number of the -quadrature point (these are also the arguments of the original functions), but -now as additional third argument the vector component. - -

    -Of course, these functions can be called on primitive shape functions as -well. In that case, the following holds: - -

    -The same of course also holds for -FEValues::shape_grad_component(i,q,c) and -FEValues::shape_2nd_derivative_component(i,q,c). - -

    -


    -
    -Wolfgang Bangerth -2002-06-14 -
    - - diff --git a/deal.II/doc/reports/assemble/node13.html b/deal.II/doc/reports/assemble/node13.html deleted file mode 100644 index a547f6ff95..0000000000 --- a/deal.II/doc/reports/assemble/node13.html +++ /dev/null @@ -1,149 +0,0 @@ - - - - - -The elastic equations - - - - - - - - - - - - - - - - - - - - -next - -up - -previous -
    - Next: The Stokes equations - Up: Assembling vector-valued problems: The - Previous: Evaluating shape functions -
    -
    - - -

    -The elastic equations -

    - -

    -With the above, we can now assemble the matrix for the elastic equation in -mostly the same way as before. The difference is that for each shape function, -we have to loop over all components. The code then looks like this (compare -this with the one in Section 5.1): -

    -  for (unsigned int i=0; i<fe.dofs_per_cell; ++i)
    -    for (unsigned int comp_i=0; comp_i<fe.n_components(); ++comp_i)
    -      for (unsigned int j=0; j<fe.dofs_per_cell; ++j)
    -        for (unsigned int comp_j=0; comp_j<fe.n_components(); ++comp_j)
    -          for (unsigned int q=0; q<n_q_points; ++q) 
    -            {
    -                           // first assemble part with lambda+mu
    -              cell_matrix(i,j)
    -                 += ((lambda+mu)                       *
    -                     fe_values.shape_grad_component(i,q,comp_i)[comp_i] * 
    -                     fe_values.shape_grad_component(j,q,comp_j)[comp_j] *
    -                     fe_values.JxW(q)); 
    -
    -                           // then part with mu only
    -              if (comp_i == comp_j)
    -                cell_matrix(i,j)
    -                  += (mu                           *
    -                      (fe_values.shape_grad_component(i,q,comp_i) * 
    -                       fe_values.shape_grad_component(j,q,comp_j)  )*
    -                       fe_values.JxW(q)); 
    -            };
    -
    -If you dislike this particular order of the loops, you can reorder them as you -like, as they are independent. - -

    -The code as shown above can be optimized. For example, instead of -unconditionally performing the loop over all components of shape functions $ i$ -of $ j$, we might first ask whether these shape functions are primitive, using -fe.is_primitive(i), and use the loop only if the result is false; -if, on the other hand, the result is true, we only need to set -comp_i to the fixed value -fe.system_to_component_index(i).first, and likewise for shape -function $ j$. - -

    -Another possibility for optimization would be to ask whether a certain -component over which we loop is actually non-zero, or if the shape function is -a non-primitive one but happens to be zero in the present component -nevertheless. For this, we could replace the loop over comp_i by -this: -

    -    for (unsigned int comp_i=0; comp_i<fe.n_components(); ++comp_i)
    -      if (fe.get_nonzero_components(i)[comp_i] == true)
    -
    -If the if-clause does not succeed then this component of the shape function is -definitely zero, and there will not be a contribution to the matrix anyway, so -we can also skip the computations. - -

    -


    - - -next - -up - -previous -
    - Next: The Stokes equations - Up: Assembling vector-valued problems: The - Previous: Evaluating shape functions - -
    -Wolfgang Bangerth -2002-06-14 -
    - - diff --git a/deal.II/doc/reports/assemble/node14.html b/deal.II/doc/reports/assemble/node14.html deleted file mode 100644 index ad5eeaf519..0000000000 --- a/deal.II/doc/reports/assemble/node14.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - -The Stokes equations - - - - - - - - - - - - - - - - - - - -next - -up - -previous -
    - Next: Conclusions - Up: Assembling vector-valued problems: The - Previous: The elastic equations -
    -
    - - -

    -The Stokes equations -

    - -

    -Likewise, this is now the code for the Stokes equations: -

    -  for (unsigned int i=0; i<fe.dofs_per_cell; ++i)
    -    for (unsigned int comp_i=0; comp_i<fe.n_components(); ++comp_i)
    -      for (unsigned int j=0; j<fe.dofs_per_cell; ++j)
    -        for (unsigned int comp_j=0; comp_j<fe.n_components(); ++comp_j)
    -          for (unsigned int q=0; q<n_q_points; ++q) 
    -            {
    -                           // velocity-velocity coupling?
    -              if ((comp_i<dim) && (comp_j<dim))
    -                if (comp_i == comp_j)
    -                  cell_matrix(i,j)
    -                      += (nu *
    -                          (fe_values.shape_grad_component(i,q,comp_i) * 
    -                           fe_values.shape_grad_component(j,q,comp_j)  ) *
    -                          fe_values.JxW(q)); 
    -
    -                           // velocity-pressure coupling
    -              if ((comp_i<dim) && (comp_j==dim))
    -                cell_matrix(i,j)
    -                    += (-fe_values.shape_grad_component(i,q,comp_i)[comp_i] * 
    -                        fe_values.shape_value_component(j,q,comp_j)        *
    -                        fe_values.JxW(q)); 
    -
    -                           // pressure-velocity coupling
    -              if ((comp_i==dim) && (comp_j<dim))
    -                cell_matrix(i,j)
    -                    += (fe_values.shape_value_component(i,q,comp_i) * 
    -                        fe_values.shape_grad_component(j,q,comp_j)[comp_j] *
    -                        fe_values.JxW(q)); 
    -            };
    -
    -Again, the same optimizations as above are possible. Here, they even seem -worthwhile, since it is often the case that the velocity variables are -discretized using a non-primitive finite element, while the pressure uses a -primitive element. In that case, some shape functions are primitive (namely -those discretizing the pressure), and of the non-primitive shape functions -(those for the velocity variables) some vector components (the pressure -components) are always zero. Thus, both optimizations described above would be -useful. We leave the implementation of this to the reader. - -

    -


    -
    -Wolfgang Bangerth -2002-06-14 -
    - - diff --git a/deal.II/doc/reports/assemble/node15.html b/deal.II/doc/reports/assemble/node15.html deleted file mode 100644 index 546d82241a..0000000000 --- a/deal.II/doc/reports/assemble/node15.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - - -Conclusions - - - - - - - - - - - - - - - - - - - - -next - -up - -previous -
    - Next: About this document ... - Up: assemble - Previous: The Stokes equations -
    -
    - - -

    -Conclusions -

    - -

    -We have shown how finite element matrices are assembled using the -functionality of the deal.II library. For the scalar case, and, in -the vector-valued case, if the -finite element shape functions are such that only one vector component of each -shape function is non-zero, assembling is relatively simple. In the other -case, when there are shape functions with more than one non-zero component, -some more care is necessary, but assembling is still straightforward and -follows the same pattern as before. - -

    -


    -
    -Wolfgang Bangerth -2002-06-14 -
    - - diff --git a/deal.II/doc/reports/assemble/node16.html b/deal.II/doc/reports/assemble/node16.html deleted file mode 100644 index 84bf42eacc..0000000000 --- a/deal.II/doc/reports/assemble/node16.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - - -About this document ... - - - - - - - - - - - - - - - - - -next - -up - -previous -
    - Up: assemble - Previous: Conclusions -
    -
    - - -

    -About this document ... -

    -

    -This document was generated using the -LaTeX2HTML translator Version 2002-1 (1.68) -

    -Copyright © 1993, 1994, 1995, 1996, -Nikos Drakos, -Computer Based Learning Unit, University of Leeds. -
    -Copyright © 1997, 1998, 1999, -Ross Moore, -Mathematics Department, Macquarie University, Sydney. -

    -The command line arguments were:
    - latex2html assemble.tex -

    -The translation was initiated by Wolfgang Bangerth on 2002-06-14 -


    -
    -Wolfgang Bangerth -2002-06-14 -
    - - diff --git a/deal.II/doc/reports/assemble/node2.html b/deal.II/doc/reports/assemble/node2.html deleted file mode 100644 index f393f7447c..0000000000 --- a/deal.II/doc/reports/assemble/node2.html +++ /dev/null @@ -1,775 +0,0 @@ - - - - - -Linear systems for finite element methods - - - - - - - - - - - - - - - - - - - - -next - -up - -previous -
    - Next: Assembling scalar problems - Up: assemble - Previous: Introduction -
    -
    - - -

    -Linear systems for finite element methods -

    - -

    -We start by briefly introducing the way finite element matrices are assembled -``on paper''. As usual in finite elements, we take the weak form of the partial -differential equation. In the most general case, it reads: find $ u\in
-V$ such that -

    -
    - - - -
    $\displaystyle a(u, v) = (f,v)_\Omega \qquad \forall v\in V,$ -   
    -

    -where -$ a(\cdot,\cdot)$ is the bilinear form associated with the partial -differential equations, and $ V$ is the space of test functions. For -simplicity, we have here assumed that the problem is linear and that then - -$ a(\cdot,\cdot)$ is a bilinear form; if the problem is nonlinear, it is -usually solved using a sequence of linear problems, so this is no restriction. - -

    -In finite elements, we define an approximation of the solution $ u$ by choosing -a finite dimensional subspace $ V_h$ spanned by the basis functions - -$ \{\varphi_i\}$, and searching -$ u_h\in V_h$ by testing the weak form by the -test functions from $ V_h$. The problem then reads: find -$ u_h\in V_h$ -such that -

    -
    - - - -
    $\displaystyle a(u_h, v_h) = (f,v_h)_\Omega \qquad \forall v_h\in V_h.$ -   
    -

    - -

    -Now, -$ \{\varphi_i\}$ is a basis of $ V_h$. We denote the dimension of $ V_h$ by -$ N$, and will henceforth let all sums be over the range -$ 0\ldots N-1$, to keep -with the standard notation of the C/C++ programming languages. With this, we -can expand the solution -$ u_h=\sum_{j=0}^{N-1} U_j \varphi_j$, and by -bilinearity of the form -$ a(\cdot,\cdot)$, the problem above is equivalent to -

    -
    - - - -
    $\displaystyle \sum_{j=0}^{N-1} U_j a(\varphi_j,\varphi_i) = (f, \varphi_i) \qquad \forall i=0\ldots N-1.$ -(1)
    -

    -Denoting -

    -
    - - - -
    $\displaystyle A_{ij} = a(\varphi_j,\varphi_i), \qquad \qquad F_j = (f, \varphi_j),$ -   
    -

    -the equations determining the expansion coefficients $ U_i$ are therefore: -

    -
    - - - -
    $\displaystyle A U = F.$ -(2)
    -

    - -

    -Note that we have taken a reverted order of indices in the definition of $ A$, -since we want the linear system (2) with the solution to the -right of the matrix, to keep with standard notation, instead of to the left as -in (1). For symmetric problems, there is no difference, but for -non-symmetric ones this is a common source for problems and a rather common -trap. - -

    -For partial differential equations, the bilinear form used in (1) -involves an integral over the domain $ \Omega$ on which the problem is -posed. For example, for the Laplace equation we have -

    -
    - - - -
    $\displaystyle A_{ij} = a(\varphi_j, \varphi_i) = (\nabla \varphi_j, \nabla \varphi_i)_\Omega = \int_\Omega \nabla \varphi_j \cdot \nabla \varphi_i \; dx.$ -   
    -

    -For practical purposes, we split this equation into integrals over the -individual cells $ K$ of the triangulation -$ \mathbb{T}$ we use for the -discretization. In deal.II, these cells are always lines, -quadrilaterals, or hexahedra. With this, we have that -

    -
    - - - -
    $\displaystyle A = \sum_{K \in {\mathbb{T}}} A^K, \qquad\qquad A^K_{ij} = a_K(\varphi_j, \varphi_i) \qquad 0\le i,j\le N-1,$ -   
    -

    -where the bilinear form -$ a_K(\cdot,\cdot)$ only involves an integral over the -cell $ K$. The important point is that we do so since for the localized basis -functions used in finite elements, $ A^K$ is a matrix with almost only zeros. -The only elements which are not zero are those corresponding to indices $ i,j$ -indicating those shape functions that have support also on the element $ K$. -For example, in 2d and using the usual bilinear shape functions for a scalar -problem, only the four shape functions associated with the vertices of the -cell $ K$ are nonzero on $ K$, and thus only the entries in $ A^K$ are nonzero -where the four rows corresponding to these indices and the respective four -columns intersect. - -

    -In general, assume that there are $ N_K$ shape functions with support on cell -$ K$, and let the set of their indices be denoted by $ I_K$. Then we can define -a matrix $ \hat A^K$ of (small dimension) -$ N_K\times N_K$ holding these nonzero -entries, and we can obtain back the original contribution $ A_K$ to $ A$ by the -transformation -

    -
    - - - -
    $\displaystyle A^K_{ij} = \left\{ \begin{array}{ll} 0 & \text{if $i\not\in I_K$\...
-...al(i),local(j)} & \text{otherwise}, \end{array} \right. \qquad 0\le i,j\le N-1.$ -   
    -

    -Here, $ local(i)$ gives the number of the global degree of freedom $ i$ on the -cell $ K$, i.e. the position of $ i$ in the index set $ I_K$. One could call -$ \hat A^K$ the reduced form of $ A^K$, since the many zero rows and -column have been stripped. - -

    -In general, when assembling the global matrix, the reverse way is used: when -adding up $ A^K$ to $ A$, we do so only with $ \hat A^K$ by -

    -
    - - - -
    $\displaystyle A_{global(i),global(j)} +\!\!= \hat A^K_{ij} \qquad \qquad 0\le i,j\le N_K-1.$ -   
    -

    -Thus, indices only run over the (small) range -$ 0\ldots N_K-1$ instead of - -$ 0\ldots N-1$. Here, $ global(i)$ denotes the global number of the degree of -freedom with number $ i$ on this cell $ K$, i.e. -$ global(i)=I_K[i]$, where the -bracket operator returns the $ i$th element of the set $ I_K$. - -

    -The main part of assembling finite element matrices is therefore to assemble -the local matrix $ \hat A^K$. Before we go on with discussing how this is done -in deal.II, we would like to comment on the evaluation of the -integrals involved. Since the integrals are usually too complex to be -evaluated exactly (they may depend on coefficients appearing in the equation, -or the solution of previous steps in nonlinear or time-dependent problems), -they are approximated by quadrature. Assume we have a quadrature formula with -$ N_q$ points $ x_q$ defined on cell in real space (as opposed to the unit cell) -and weights $ w_q$. Then, for example for the Laplace equation, we approximate -

    -
    - - - -
    $\displaystyle \hat A^K_{ij} \equiv \int_K \nabla\varphi_i \cdot \nabla \varphi_...
-...\sum_{q=0}^{N_q-1} \nabla\varphi_i(x_q) \cdot \nabla \varphi_j(x_q) \ w_q \vert$det$\displaystyle \ J(\hat x_q)\vert.$ -(3)
    -

    -For other problems, the integrand is different, but the principle remains the -same. -det$ \ J(\hat x_q)$ denotes the determinant of the Jacobian of the -transformation between the unit cell on which the quadrature weights are -defined, and the real cell, and $ \hat x_q$ is the point on the unit cell -corresponding to the quadrature point $ x_q$ in real space. - -

    -Since all matrices and right hand side vectors only require knowledge of the -values and gradients of shape functions at quadrature points, this is all that -deal.II usually provides. One can see this as a kind of view -on a finite element, as it only provides a certain perspective on the actual -definition of a shape function. Nevertheless, this is entirely sufficient for -all purposes of programming finite element programs. - -

    -In deal.II the FEValues class does this: you give it a -finite element definition, a quadrature formula object, and an object defining -the transformation between unit and real cell, and it provides you with the -values, gradient, and second derivatives of shape functions at the quadrature -points. It also gives access to the determinant of the Jacobian, although only -multiplied with $ w_q$ as these two are always used in conjunction. It also -provides you with many other fields, such as normal vectors to the outer -boundary. In practice you do not need them all computed on each cell; thus, -you have to specify explicitly in which data you are interested when -constructing FEValues objects. - -

    -In the following, we provide a list of connections between the symbols introduced -above, and the respective functions and variable names used in typical -deal.II programs. With this, we will subsequently show the basic -structure of an assembly routine. If you have already taken a look at the -example programs provided with deal.II, you will recognize all these -names. If you haven't, this would be a good time to look at the first -three of them. - -

    -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    $ A$system_matrix
    $ \hat A^K$cell_matrix
    $ K$cell
    $ N$dof_handler.n_dofs()
    $ N_K$fe.dofs_per_cell
    $ I_K$local_dof_indices
    $ N_q$quadrature_formula.n_quadrature_points
    -$ \varphi_i(x_q)$fe_values.shape_value(i,q)
    -$ \nabla\varphi_i(x_q)$fe_values.shape_grad(i,q)
    $ x_q$fe_values.quadrature_point(q)
    -$ \vert$det$ J(\hat x_q)\vert w_q$fe_values.JxW(q)
    -
    - -

    -With this vocabulary, the typical matrix assembly loop in deal.II has -the following form: first declare a quadrature object and use it for the -initialization of a FEValues object as discussed above: -

    -  QGauss2<2>  quadrature_formula;
    -  FEValues<2> fe_values (fe, quadrature_formula, 
    -                         UpdateFlags(update_values    |
    -                                     update_gradients |
    -                                     update_JxW_values));
    -
    -In practice, you may want to use a different set of fields to be updated on -each cell. For example if you do not need the values of shape functions on a -cell, you may omit update_values from the list. Also note that by -default a bi- or tri-linear (depending on space dimension) mapping between -unit and real cell is used. Other mappings are possible, for example quadratic -ones, or a mapping that makes use of the fact that in many cases cells are -actually rectangular, rather than arbitrary quadrilaterals; in order to use -them, another constructor of the FEValues class can be used, which -takes a mapping object as first argument, before the other arguments listed -above. - -

    -Next we define abbreviations for the values of $ N_K$ and $ N_q$: -

    -  const unsigned int 
    -      dofs_per_cell = fe.dofs_per_cell,
    -      n_q_points    = quadrature_formula.n_quadrature_points;
    -
    -Then have an object to store the matrix $ \hat A^K$, which is of size - -$ N_K\times N_K$: -
    -  FullMatrix<double>   cell_matrix (dofs_per_cell, dofs_per_cell);
    -
    -And an object representing the set of global indices of degrees of freedom, -previously denoted by $ I_K$, that have support on the present cell, i.e. those -degrees of freedom local to the present cell: -
    -  std::vector<unsigned int> local_dof_indices (dofs_per_cell);
    -
    -The next step is then to loop over all cells: -
    -  typename DoFHandler<dim>::active_cell_iterator
    -       cell = dof_handler.begin_active(),
    -       endc = dof_handler.end();
    -  for (; cell!=endc; ++cell)
    -    {
    -
    -On each cell, first tell the FEValues object to compute the values of -the various fields for this particular cell, and do not forget to reset the -local matrix $ \hat A^K$ to zero before adding it up: -
    -      fe_values.reinit (cell);
    -      cell_matrix.clear ();
    -
    -Now comes the main part, assembling the local matrix $ \hat A^K$. It consists -of a loop over all indices -$ 0\le i,j \le N_K$ and all quadrature points -$ 0\le
-q\le N_q$, and summing up the contributions. As this is what we will discuss -in detail later on, we only denote it here by an ellipse: -
    -      for (unsigned int i=0; i<dofs_per_cell; ++i)
    -        for (unsigned int j=0; j<dofs_per_cell; ++j)
    -          for (unsigned int q=0; q<n_q_points; ++q)
    -            cell_matrix(i,j) += ...;
    -
    -After we have $ \hat A^K$, we still have to sum it into the global matrix -$ A$. This is done by first getting the set $ I_K$ of the global indices of the -shape functions that were active on this cell, and then distributing $ \hat A^K$: -
    -      cell->get_dof_indices (local_dof_indices);
    -
    -      for (unsigned int i=0; i<dofs_per_cell; ++i)
    -        for (unsigned int j=0; j<dofs_per_cell; ++j)
    -          system_matrix.add (local_dof_indices[i],
    -                             local_dof_indices[j],
    -                             cell_matrix(i,j));
    -    };
    -
    -When this is done, we go on to the next cell. - -

    -Within this framework, the only open point is assembling $ \hat A^K$ on one -quadrature point. This will be subject of the rest of this report. - -

    -


    - - -next - -up - -previous -
    - Next: Assembling scalar problems - Up: assemble - Previous: Introduction - -
    -Wolfgang Bangerth -2002-06-14 -
    - - diff --git a/deal.II/doc/reports/assemble/node3.html b/deal.II/doc/reports/assemble/node3.html deleted file mode 100644 index 9d1ecb7eaf..0000000000 --- a/deal.II/doc/reports/assemble/node3.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - - -Assembling scalar problems - - - - - - - - - - - - - - - - - - - - -next - -up - -previous -
    - Next: Vector-valued problems - Up: assemble - Previous: Linear systems for finite -
    -
    - - -

    -Assembling scalar problems -

    - -

    -For scalar problems, assembling $ \hat A^K$ is relatively simple. With the -terms introduced above, and for the Laplace equation, this looks as follows: -

    -    local_matrix(i,j) += (fe_values.shape_grad(i,q_point) *
    -                          fe_values.shape_grad(j,q_point) *
    -                          fe_values.JxW (q_point));
    -
    -This term is placed in the innermost loop, i.e. is performed for all indices -$ i,j$, and all quadrature points q_point. - -

    -For nonsymmetric problems, the order of terms has to be considered, as -mentioned above. For example, for the advection equation -

    -
    - - - -
    $\displaystyle \beta \cdot \nabla u = f,$ -   
    -

    -with which the bilinear form -

    -
    - - - -
    $\displaystyle a(u,v) = (\beta \cdot \nabla u, v)_\Omega$ -   
    -

    -is associated, the local matrix is assembled as -
    -    local_matrix(i,j) += (fe_values.shape_values(i,q_point) *
    -                          ( beta * fe_values.shape_grad(j,q_point) ) *
    -                          fe_values.JxW (q_point));
    -
    -Here, beta is an object of type Tensor<1,dim>, which -represents a tensor of rank 1 in dim space dimensions. - -

    -Assembling matrices for scalar problems is also shown from a practical -perspective in many of the example programs of deal.II, where it is -also demonstrated how to do this for the right hand side vectors. Thus, scalar -problems are not too interesting, and we now turn to vector-valued problems. - -

    -


    - - -next - -up - -previous -
    - Next: Vector-valued problems - Up: assemble - Previous: Linear systems for finite - -
    -Wolfgang Bangerth -2002-06-14 -
    - - diff --git a/deal.II/doc/reports/assemble/node4.html b/deal.II/doc/reports/assemble/node4.html deleted file mode 100644 index f8e652c3b8..0000000000 --- a/deal.II/doc/reports/assemble/node4.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - -Vector-valued problems - - - - - - - - - - - - - - - - - - - - -next - -up - -previous -
    - Next: The elastic equations - Up: assemble - Previous: Assembling scalar problems -
    -
    - - -

    -Vector-valued problems -

    - -

    -Since we need some problems at which we will explain assembling the matrix for -the vector-valued case, we now briefly introduce two simple equations. The -first are the Lamé equations of elasticity, which are taken for the symmetric -case, then we briefly introduce the Stokes equations as a nonsymmetric problem. - -

    -


    - -Subsections - - - -

    -
    -Wolfgang Bangerth -2002-06-14 -
    - - diff --git a/deal.II/doc/reports/assemble/node5.html b/deal.II/doc/reports/assemble/node5.html deleted file mode 100644 index 67e3e8e61b..0000000000 --- a/deal.II/doc/reports/assemble/node5.html +++ /dev/null @@ -1,355 +0,0 @@ - - - - - -The elastic equations - - - - - - - - - - - - - - - - - - - - -next - -up - -previous -
    - Next: The Stokes equations - Up: Vector-valued problems - Previous: Vector-valued problems -
    -
    - - -

    - -
    -The elastic equations -

    - -

    -As first example for the methods we are going to discuss for vector-valued -problems, we consider the elastic Lamé equations for isotropic materials, -which read in strong form: - -

    -
    -$\displaystyle -
-\nabla (\lambda+\mu) (\div\vec u)
--
-(\nabla \cdot \mu \nabla) \vec u
-=
-\vec f.
-$ -

    -These equations describe the three-dimensional deformation $ \vec u$ of an -elastic body under a body force $ \vec f$. The respective bilinear form -associated with this operator is then - -

    -
    -$\displaystyle a(\vec u, \vec v) =
-\left(
-(\lambda+\mu) \div\vec u, \div\vec v
-\right)_\Omega
-+
-\sum_k
-\left(
-\mu \nabla u_k, \nabla v_k
-\right)_\Omega,
-$ -

    -or as a sum over components: - -

    -
    -$\displaystyle a(\vec u, \vec v) =
-\sum_{k,l}
-\left(
-(\lambda+\mu) \partial_l u_...
-..._\Omega
-+
-\sum_{k,l}
-\left(
-\mu \partial_l u_k, \partial_l v_k
-\right)_\Omega.
-$ -

    - -

    -When assembling matrices, it is advantageous to write the weak form -(i.e. after integration by parts) as a kind of operator. This is since matrix -elements after discretization are defined as -

    -
    - - - -
    $\displaystyle A_{ij} = a(\varphi_j,\varphi_i)_\Omega,$ -   
    -

    -where -$ \varphi_i,\varphi_j$ are two vector-valued trial functions, and it -would be nice if we could write the bilinear form -$ a(\cdot,\cdot)$ as a kind -of scalar product -$ (\varphi_i, Q \varphi_j)$, where $ Q$ is a differential -operator. This is trivial if we take $ Q$ as the operator of the strong form, - -$ Q=-\nabla (\lambda+\mu) \div - (\nabla \cdot \mu \nabla)$, but we wanted to -do this for the weak form. For this, we introduce some notation that is used -in quantum field theory: for differential operators, we indicate by an arrow -placed atop of it whether it shall act on the object to the left or to the -right of it. Thus, - -$ \varphi \overleftarrow\nabla \cdot \overrightarrow\nabla \psi
-=(\nabla\varphi)\cdot(\nabla\psi)$. With this, a simple computation shows -that -

    -
    -\begin{multline*}
-a(\vec u,\vec v)
-=
-(\lambda+\mu)
-\left(
-\begin{pmatrix}
-...
-...\mid
-\begin{pmatrix}
-v_1 \\ v_2
-\end{pmatrix} \right)_\Omega.
-\end{multline*}
    -
    -

    -The sought operator $ Q$ is then -

    -
    - - - -
    $\displaystyle Q = (\lambda+\mu) \begin{pmatrix}\overleftarrow \partial _1 \over...
-...tial _1 + \overleftarrow \partial _2 \overrightarrow \partial _2 \end{pmatrix},$ -   
    -

    -and -$ a(\vec u,\vec v)=(\vec u \vert Q \vert \vec v)$. We demonstrate the fact that $ Q$ -acts to both sides by placing it in the middle of the scalar product, just as -in the bra-ket notation of quantum physics. - -

    -The advantages of this formulation will become clear when discussing -assembling matrices below. For now, we remark that the symmetry of the weak -form is equally apparent from the form of $ Q$ as well as from the initial -definition of -$ a(\cdot,\cdot)$. - -

    -


    - - -next - -up - -previous -
    - Next: The Stokes equations - Up: Vector-valued problems - Previous: Vector-valued problems - -
    -Wolfgang Bangerth -2002-06-14 -
    - - diff --git a/deal.II/doc/reports/assemble/node6.html b/deal.II/doc/reports/assemble/node6.html deleted file mode 100644 index 287b5f6327..0000000000 --- a/deal.II/doc/reports/assemble/node6.html +++ /dev/null @@ -1,183 +0,0 @@ - - - - - -The Stokes equations - - - - - - - - - - - - - - - - - - - -next - -up - -previous -
    - Next: Assembling vector-valued problems: The - Up: Vector-valued problems - Previous: The elastic equations -
    -
    - - -

    - -
    -The Stokes equations -

    - -

    -For a nonsymmetric problem, we take the Stokes equations: -

    -
    - - - - - - - - -
    $\displaystyle -\Delta \vec u + \nabla p$$\displaystyle = 0,$ -   
    div $\displaystyle \vec u$$\displaystyle = 0.$ -   
    -

    -We denote by -$ \vec w=\{\vec u,p\}$ the entire solution vector. In the weak -form, the above equations read -

    -
    - - - -
    $\displaystyle a(\vec u,p; \vec v, q) = \nu(\nabla \vec u_1, \nabla \vec v_1) +\...
-... \vec u_2, \nabla \vec v_2) - (p, \nabla\cdot \vec v) + (\nabla\cdot\vec u, q).$ -   
    -

    -Since we integrated the gradient term in the first equation by parts, but not -the divergence term in the second equation, the problem is now -nonsymmetric. If we would have liked, we could have made the problem symmetric -again by multiplying the entire second equation by $ -1$, but we don't want to -do that for now for illustrational purposes. - -

    -Again, we introduce the operator $ Q$ for this problem, which after some -computations turns out to be -

    -
    - - - -
    $\displaystyle Q = \begin{pmatrix}\nu(\overleftarrow \partial _1 \overrightarrow...
-...\\ \overrightarrow \partial _1 & \overrightarrow \partial _2 & 0 \end{pmatrix}.$ -   
    -

    -Again, it is clear from this form that we could have made the operator -symmetric by multiplying the last row by $ -1$. Note when checking the symmetry -of $ Q$ that taking the transpose of such an operator means reverting the -directions of the arrows over the operators, and exchanging their order. -For example, using the first term, these two steps are - -$ \overleftarrow \partial _1 \overrightarrow \partial _1 \rightarrow \overrighta...
-... \partial _1
-\rightarrow \overleftarrow \partial _1 \overrightarrow \partial _1$. - -

    -


    - - -next - -up - -previous -
    - Next: Assembling vector-valued problems: The - Up: Vector-valued problems - Previous: The elastic equations - -
    -Wolfgang Bangerth -2002-06-14 -
    - - diff --git a/deal.II/doc/reports/assemble/node7.html b/deal.II/doc/reports/assemble/node7.html deleted file mode 100644 index a05621fe17..0000000000 --- a/deal.II/doc/reports/assemble/node7.html +++ /dev/null @@ -1,321 +0,0 @@ - - - - - -Assembling vector-valued problems: The simple case - - - - - - - - - - - - - - - - - - - - -next - -up - -previous -
    - Next: The elastic equations - Up: assemble - Previous: The Stokes equations -
    -
    - - -

    -Assembling vector-valued problems: The simple case -

    - -

    -The simple case in assembling vector-valued problems is when the (also -vector-valued) shape functions are chosen such that only one component in the -vector is nonzero. This is usually the case, if we choose the shape functions -to be the outer product of scalar shape functions, such as independent -bilinear ansatz spaces for each component of a finite element space. - -

    -In this case, each shape function $ \Phi_i$ has the representation -

    -
    - - - -
    $\displaystyle \Phi_i(\vec x) = \left( 0, \dots, 0, \varphi_i(\vec x), 0, \ldots, 0\right)^T,$ -   
    -

    -where $ \Phi_i$ is the vector-valued shape function, and $ \varphi_i$ its -only non-zero component. Let us denote by $ c(i)$ the index of this non-zero -component, then $ \Phi_i$ can also be written as -

    -
    - - - -
    $\displaystyle \left(\Phi_i(\vec x)\right)_l = \varphi_i(\vec x) \delta_{c(i),l},$ -   
    -

    -with the Kronecker delta function -$ \delta_{jk}$. - -

    -With this simple form, the cell matrix on cell $ K$ has a simple form: -

    -
    - - - -
    $\displaystyle A^K_{ij} = a_K(\Phi_i,\Phi_j) = \left(\Phi_i \mid Q \mid \Phi_j \right)_K = \left(\varphi_i \mid Q_{c(i),c(j)} \mid \varphi_j \right)_K.$ -   
    -

    -Thus, in assembling the local cell matrices, we only have to determine the -single components in which the two shape functions are non-zero, and -pick one element from the matrix $ Q$ to assemble each entry of the cell -matrix with the help of the values of the functions $ \varphi_i$ at the -quadrature points. Here, it comes handy that we have written the operator as a -matrix operator $ Q$, since this makes it very clear how shape functions $ i$ -and $ j$ couple: if -$ Q_{c(i),c(j)}$ is zero, then they do not couple at all for -this operator. Otherwise, it is easily visible which derivative acts on which -shape function for this combination of shape functions. - -

    -In deal.II, these two actions mentioned above (getting the non-zero -component of a shape function, and the value of this component at a given -quadrature point) are done as follows: - -

    - -

    -


    - -Subsections - - - -
    - - -next - -up - -previous -
    - Next: The elastic equations - Up: assemble - Previous: The Stokes equations - -
    -Wolfgang Bangerth -2002-06-14 -
    - - diff --git a/deal.II/doc/reports/assemble/node8.html b/deal.II/doc/reports/assemble/node8.html deleted file mode 100644 index 0d730b7e9f..0000000000 --- a/deal.II/doc/reports/assemble/node8.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - -The elastic equations - - - - - - - - - - - - - - - - - - - - -next - -up - -previous -
    - Next: The Stokes equations - Up: Assembling vector-valued problems: The - Previous: Assembling vector-valued problems: The -
    -
    - - -

    - -
    -The elastic equations -

    - -

    -With this, and the definition of the ``bi-directional'' operator $ Q$ in -Section 4.1, the local matrix assembly function for the elastic -equations would then read as follows: -

    -  for (unsigned int i=0; i<fe.dofs_per_cell; ++i)
    -    for (unsigned int j=0; j<fe.dofs_per_cell; ++j)
    -      for (unsigned int q=0; q<n_q_points; ++q) 
    -        {
    -          const unsigned int
    -            comp_i = fe.system_to_component_index(i).first,
    -            comp_j = fe.system_to_component_index(j).first;
    -
    -                           // first assemble part with lambda+mu
    -          cell_matrix(i,j) += ((lambda+mu)                       *
    -                               fe_values.shape_grad(i,q)[comp_i] * 
    -                               fe_values.shape_grad(j,q)[comp_j] *
    -                               fe_values.JxW(q)); 
    -
    -                           // then part with mu only
    -          if (comp_i == comp_j)
    -            cell_matrix(i,j) += (mu                           *
    -                                 (fe_values.shape_grad(i,q) * 
    -                                  fe_values.shape_grad(j,q)  )*
    -                                 fe_values.JxW(q)); 
    -        };
    -
    -Note that this code works in any space dimension, not only for -dim==2. Optimization of this is possible by hoisting the computation -of comp_i and comp_j, denoting $ c(i)$ and $ c(j)$, -respectively, out of the inner loops. Also, if the coefficients are -non-constant, they need to be computed at each quadrature point; this may be -done using this fragment in the innermost loop: -
    -  const double
    -    lambda_value = lambda.value(fe_values.quadrature_point(q)),
    -    mu_value     = mu.value(fe_values.quadrature_point(q));
    -
    -assuming that lambda,mu are variables of classes that are derived -from the Function<dim> class. - -

    -


    -
    -Wolfgang Bangerth -2002-06-14 -
    - - diff --git a/deal.II/doc/reports/assemble/node9.html b/deal.II/doc/reports/assemble/node9.html deleted file mode 100644 index b08791e1ec..0000000000 --- a/deal.II/doc/reports/assemble/node9.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - -The Stokes equations - - - - - - - - - - - - - - - - - - - -next - -up - -previous -
    - Next: Assembling vector-valued problems: The - Up: Assembling vector-valued problems: The - Previous: The elastic equations -
    -
    - - -

    - -
    -The Stokes equations -

    - -

    -For the Stokes equation, things are slightly more complicated since the three -components denote different quantities, and the operator $ Q$ does not have -such a simple form, but the case is still simple enough. We present its -generalization to an arbitrary number of space dimensions, i.e. assume that -there are dim velocity variables and one scalar pressure: -

    -  for (unsigned int i=0; i<fe.dofs_per_cell; ++i)
    -    for (unsigned int j=0; j<fe.dofs_per_cell; ++j)
    -      for (unsigned int q=0; q<n_q_points; ++q) 
    -        {
    -          const unsigned int
    -            comp_i = fe.system_to_component_index(i).first,
    -            comp_j = fe.system_to_component_index(j).first;
    -
    -                           // velocity-velocity coupling?
    -          if ((comp_i<dim) && (comp_j<dim))
    -            if (comp_i == comp_j)
    -              cell_matrix(i,j) += (nu *
    -                                   (fe_values.shape_grad(i,q) * 
    -                                    fe_values.shape_grad(j,q)  ) *
    -                                   fe_values.JxW(q)); 
    -
    -                           // velocity-pressure coupling
    -          if ((comp_i<dim) && (comp_j==dim))
    -            cell_matrix(i,j) += (-fe_values.shape_grad(i,q)[comp_i] * 
    -                                  fe_values.shape_value(j,q)        *
    -                                 fe_values.JxW(q)); 
    -
    -                           // pressure-velocity coupling
    -          if ((comp_i==dim) && (comp_j<dim))
    -            cell_matrix(i,j) += (fe_values.shape_value(i,q) * 
    -                                 fe_values.shape_grad(j,q)[comp_j] *
    -                                 fe_values.JxW(q)); 
    -        };
    -
    -Again, optimization is possible by observing that only one of the outer -ifs in the body can be true, for example using else clauses, -or break statements. - -

    -


    -
    -Wolfgang Bangerth -2002-06-14 -
    - - -- 2.39.5