]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Even more various updates.
authorwolf <wolf@0785d39b-7218-0410-832d-ea1e28bc413d>
Tue, 30 Nov 1999 14:37:32 +0000 (14:37 +0000)
committerwolf <wolf@0785d39b-7218-0410-832d-ea1e28bc413d>
Tue, 30 Nov 1999 14:37:32 +0000 (14:37 +0000)
git-svn-id: https://svn.dealii.org/trunk@1960 0785d39b-7218-0410-832d-ea1e28bc413d

18 files changed:
deal.II/doc/tutorial/chapter-1.elements/adaptivity.html
deal.II/doc/tutorial/chapter-1.elements/boundary.html
deal.II/doc/tutorial/chapter-1.elements/condense.html
deal.II/doc/tutorial/chapter-1.elements/dofs.html
deal.II/doc/tutorial/chapter-1.elements/grid_creation.html
deal.II/doc/tutorial/chapter-1.elements/hanging_nodes.html
deal.II/doc/tutorial/chapter-1.elements/index.html
deal.II/doc/tutorial/chapter-1.elements/logo.html
deal.II/doc/tutorial/chapter-1.elements/matrix_generation.html
deal.II/doc/tutorial/chapter-1.elements/matrix_structure.html
deal.II/doc/tutorial/chapter-1.elements/navbar.html
deal.II/doc/tutorial/chapter-1.elements/output.html
deal.II/doc/tutorial/chapter-1.elements/parameters.html
deal.II/doc/tutorial/chapter-1.elements/rhs.html
deal.II/doc/tutorial/chapter-1.elements/solve.html
deal.II/doc/tutorial/chapter-1.elements/title.html
deal.II/doc/tutorial/chapter-1.elements/toc.html
deal.II/doc/tutorial/index.html

index d904df491e810090354253cbdcff3167b8de42cf..238b72264b17d9a894d11b2b6cb9fa849c1a99ef 100644 (file)
@@ -3,14 +3,14 @@
 <html>
 <head>
 <!-- deal.II tutorial template
-     Jan Schrage <schrage@gaia.iwr.uni-heidelberg.de> 1999 
+     Jan Schrage <schrage@hermes.iwr.uni-heidelberg.de> 1999 
 -->
 
 <title>deal.II tutorial: Error Estimate and Adaptivity</title>
     <link href="../screen.css" rel="StyleSheet" title="deal.II Tutorial" media="screen">
     <link href="../print.css" rel="StyleSheet" title="deal.II Tutorial" media="print">
     <link href="../audio.css" rel="StyleSheet" title="deal.II Tutorial" media="aural">
-    <meta name="author" content="Jan Schrage <schrage@gaia.iwr.uni-heidelberg.de>">
+    <meta name="author" content="Jan Schrage <schrage@hermes.iwr.uni-heidelberg.de>">
     <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
 </head>
 
 <p>
 The basic principles of using error estimates for adaptive refinement 
 are rather simple. First, you get an error estimate for each cell.
-This error estimate can be interpreted as a 
-mesh function describing the desired local mesh width.
-Second, each and every cell is refined according to this estimate.
+Second, each cell is refined according to this estimate, i.e. the
+cells with largest error estimate are refined and those with the least
+one are coarsened.
 </p>
 <p>
 The implementation of <acronym>deal.II</acronym> handles this principle
 exactly the same way: First, you call an error estimator that returns
-a vector containing the error estimtates for each cell. Second,
+a vector containing the error estimates for each cell. Second,
 you pass this vector on to a function doing the refinement.
 </p>
+<p>
+What we have not told yet is that actually constructing an error
+estimator is nontrivial and in particular dependent on the equation
+you are presently solving. Since this is so, the library can not do it
+for you, but can only aid you in doing so.
+</p>
+<p>
+However, the library contains an error estimator for one equation, the
+Laplace equation, which is the standard equation in numerical
+analysis. Since it is so common, an error estimator for it was once
+implemented. It was later moved into the library, since besides being
+an estimator for Laplace's equation, it proved an almost universal
+tool if you want something to refine your grid based on local
+smoothness of your solution. This, in fact, is the principle from
+which the error estimator was constructed: it computes an
+approximation to the second derivative of the solution on each cell,
+and these values can then be used to control refinement of the grid
+for a wide class of equations. Almost all projects using
+<acronym>deal.II</acronym> have used this criterion in its early
+stages, to get a quick way to local mesh refinement, before
+problem-adapted error estimators were written for the particular
+equation later. Since the class has thus proven universal
+functionality, we will discuss it in this section and show how to use
+it to control mesh refinement.
 
 <h2><a name="types">Error Estimators in <acronym>deal.II</acronym></a></h2>
 
@@ -60,11 +84,11 @@ tries to approximate the error per cell by integration of the jump of the
 gradient of the solution along the faces of each cell.
 In theory this error estimator has quite a number of limitations. These 
 limitations as well as its implementation are described in 
-<a href="http://gaia.iwr.uni-heidelberg.de/~deal/doc/auto/kdoc/numerics/KellyErrorEstimator.html">
+<a href="http://hermes.iwr.uni-heidelberg.de/~deal/doc/auto/kdoc/numerics/KellyErrorEstimator.html">
 the documentation for the class <code>KellyErrorEstimator</code></a>.
 In daily use, however, this error estimator has shown itself to behave
 rather like Hamlet: It is laden with theoretical woes and sorrows,
-but at the end of the day all practical problems are...<font size=-1>gone.</font>
+but at the end of the day all practical problems are... gone.
 </p>
 
 <p>
@@ -72,29 +96,29 @@ In order to use an error estimator you need the following information
 and objects respectively:
 </p>
 <ul>
-  <li>a <code>DoFHandler&lt;dim&gt; dof</code> giving access to the degrees of 
+  <li>a <code>DoFHandler&lt;dim&gt; dof_handler</code> giving access to the degrees of 
        freedom
   </li> 
   
   <li>a <code>Quadrature&lt;dim-1&gt; quadrature</code> describing the
-       quadrature you use for integration
+       quadrature rule to be used for integration on the cell faces
   </li>
 
-  <li>a <code>FunctionMap neumann_bc</code> &quot;<Q>which denotes a mapping 
+  <li>a <code>FunctionMap neumann_bc</code> which denotes a mapping 
        between a 
        boundary indicator and the function denoting the boundary values on 
-       this part of the boundary</Q>&quot; (quoted from the 
-       <a href="http://gaia.iwr.uni-heidelberg.de/~deal/doc/auto/kdoc/numerics/KellyErrorEstimator.html">
-         class documentation for <code>KellyErrorEstimator</code></a>)
+       this part of the boundary, i.e. for each part of the boundary
+       where Neumann boundary conditions hold (and its respective
+       number) the function with the (inhomogeneous) Neumann values
+       are given; in case you have homogeneous Neumann boundary
+       values, the <code>ZeroFunction</code> is the right function to
+       be passed
   </li>
       
-  <li>a coefficient <code>coefficient</code> for tuning the error estimator;
-      refer to the <a href="http://gaia.iwr.uni-heidelberg.de/~deal/doc/auto/kdoc/numerics/KellyErrorEstimator.html">
-         <code>KellyErrorEstimator</code> class documentation</a>
-  </li>
-
-  <li>the number of the selected component <code>selected_component</code>
-      for finite elements with more than one component
+  <li>in case your problem includes spatially varying coefficients,
+      you may give that as well (but we will not discuss this here,
+      refer to the <a href="http://hermes.iwr.uni-heidelberg.de/~deal/doc/auto/kdoc/numerics/KellyErrorEstimator.html">
+         <code>KellyErrorEstimator</code> class documentation</a>).
   </li>
 </ul>
 <p>
@@ -109,14 +133,18 @@ The Kelly error estimator is then used the following way:
       <code>KellyErrorEstimator&lt;dim&gt; error_estimate;</code> 
   </li>
 
-  <li>Make your error estimator estimate each cell's error:<br>
-      <code>void error_estimate::estimate (const DoFHandler&lt;dim&gt; 
-         &amp;dof, const Quadrature&lt;dim-1&gt;
-         &amp;quadrature, const FunctionMap &amp;neumann_bc, 
-         const Vector&lt;double&gt; &amp;solution,
-          Vector&lt;float&gt; &amp;error, const Function&lt;dim&gt; 
-         *coefficient = 0, const unsigned int selected_component = 0); 
+  <li>Make the error estimator estimate each cell's error:<br>
+      <pre>
+      <code>
+ void error_estimate::estimate (const DoFHandler&lt;dim&gt; &amp;dof_handler,
+                                const Quadrature&lt;dim-1&gt; &amp;quadrature,
+                                const FunctionMap &amp;neumann_bc, 
+                                const Vector&lt;double&gt; &amp;solution,
+                                Vector&lt;float&gt; &amp;error_per_cell, 
+                                ... // coefficients, etc.
+                               ); 
       </code>
+      </pre>
   </li>
 </ol>
 
@@ -127,7 +155,7 @@ All the functions for refinement (and coarsening) are contained
 within the <code>Triangulation</code> class.
 Refinement and coarsening take place by first flagging the cells
 for coarsening or refinement using the functions described below
-and the executing it using 
+and then actually executing the refinement using 
 <code>void execute_coarsening_and_refinement()</code>. 
 There are several ways of refining or coarsening your grid using
 the output from an error estimator:
@@ -142,7 +170,7 @@ the output from an error estimator:
          threshold)</code>
   </li>
 
-  <li>Refine a certain fraction <code>top fraction_of_cells</code> with
+  <li>Refine a certain fraction <code>top_fraction_of_cells</code> with
        the highest error, at the same time coarsen a certain fraction of
        cells <code>bottom_fraction_of_cells</code> with the lowest error.<br>
        <code>void refine_and_coarsen_fixed_number(const Vector&lt;number&gt; 
@@ -170,9 +198,24 @@ you have to call <code>void execute_coarsening_and_refinement()</code>.</b>
 
 <h2><a name="example">Example</a></h2>
 
-<p>
-To be provided...
-</p>
+The following is a code snippet taken from some example programs:
+<pre>
+<code>
+                     // use the Simpson rule for integration on the faces
+  QSimpson<dim-1> face_quadrature;
+                     // estimate error with no Neumann boundary conditions
+  KellyErrorEstimator<dim>::estimate (*dof, face_quadrature,
+                                     KellyErrorEstimator<dim>::FunctionMap(),
+                                     solution,
+                                     estimated_error_per_cell);
+
+                     // flag some cells for refinement or coarsening
+  tria->refine_and_coarsen_fixed_number (estimated_error_per_cell,
+                                        0.3,
+                                        0.05);
+  tria->execute_coarsening_and_refinement ();
+</code>
+</pre>
 
 
 <!-- Page Foot -->
@@ -192,7 +235,7 @@ To be provided...
 </table>
 <hr>
 <address>
-<a href="mailto:schrage@gaia.iwr.uni-heidelberg.de">Jan Schrage</a></address>
+<a href="mailto:schrage@hermes.iwr.uni-heidelberg.de">Jan Schrage</a></address>
 <p>
 Last modified: $Date$ 
 </p>
index 21ba9640e80b33a301b99c597194ee1550cc4a5c..2e43ab679734607fbd4d42efb597b05672549f0b 100644 (file)
@@ -3,14 +3,14 @@
 <html>
 <head>
 <!-- deal.II tutorial template
-     Jan Schrage <schrage@gaia.iwr.uni-heidelberg.de> 1999 
+     Jan Schrage <schrage@hermes.iwr.uni-heidelberg.de> 1999 
 -->
 
 <title>deal.II tutorial: Boundary conditions</title>
     <link href="../screen.css" rel="StyleSheet" title="deal.II Tutorial" media="screen">
     <link href="../print.css" rel="StyleSheet" title="deal.II Tutorial" media="print">
     <link href="../audio.css" rel="StyleSheet" title="deal.II Tutorial" media="aural">
-    <meta name="author" content="Jan Schrage <schrage@gaia.iwr.uni-heidelberg.de>">
+    <meta name="author" content="Jan Schrage <schrage@hermes.iwr.uni-heidelberg.de>">
     <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
 </head>
 
@@ -114,7 +114,7 @@ only the final object to <code>apply_boundary_values</code>.
 </table>
 <hr>
 <address>
-<a href="mailto:schrage@gaia.iwr.uni-heidelberg.de">Jan Schrage</a></address>
+<a href="mailto:schrage@hermes.iwr.uni-heidelberg.de">Jan Schrage</a></address>
 <p>
 Last modified: $Date$ 
 </p>
index 058313ee31482dcc463214065db1a0161188b165..53ed6081e32c0f76b6ac04617f9ae55a4072c5b8 100644 (file)
@@ -3,14 +3,14 @@
 <html>
 <head>
 <!-- deal.II tutorial template
-     Jan Schrage <schrage@gaia.iwr.uni-heidelberg.de> 1999 
+     Jan Schrage <schrage@hermes.iwr.uni-heidelberg.de> 1999 
 -->
 
 <title>deal.II tutorial: Condensing the Hanging Nodes</title>
     <link href="../screen.css" rel="StyleSheet" title="deal.II Tutorial" media="screen">
     <link href="../print.css" rel="StyleSheet" title="deal.II Tutorial" media="print">
     <link href="../audio.css" rel="StyleSheet" title="deal.II Tutorial" media="aural">
-    <meta name="author" content="Jan Schrage <schrage@gaia.iwr.uni-heidelberg.de>">
+    <meta name="author" content="Jan Schrage <schrage@hermes.iwr.uni-heidelberg.de>">
     <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
 </head>
 
@@ -29,7 +29,7 @@ account when dealing with them.
 <p>
 The <acronym>deal.II</acronym> class 
 that has the ability to handle constraint matrices is called 
-<a href="http://gaia.iwr.uni-heidelberg.de/~deal/doc/auto/kdoc/dof/ConstraintMatrix.html"><code>ConstraintMatrix</code></a>. It provides all functions
+<a href="http://hermes.iwr.uni-heidelberg.de/~deal/doc/auto/kdoc/dof/ConstraintMatrix.html"><code>ConstraintMatrix</code></a>. It provides all functions
 necessary to condense hanging nodes into a matrix structure. 
 You will have to:
 <ol>
@@ -46,7 +46,10 @@ Create a global sparsity pattern (as described in the chapter on
 Create the constraints on the hanging nodes using 
 <code>void DoFHandler::make_constraint_matrix(ConstraintMatrix &amp;)</code>. 
 </li>   
-<li>Close the constraints matrix using <code>void DoFHandler&lt;dim&gt;::constraints::close()</code>.
+<li>Close the constraints matrix using <code>void
+ConstraintMatrix::close()</code>. Closing the object performs some
+sorting and reshuffling of data (but you need not care about what
+actually happens).
 This method is needed because you might wish to implement additional constraints
 (apart from those for the hanging nodes). This would have to be done before
 closing the object; therefore you can't have it closed automatically somewhere.
@@ -69,20 +72,74 @@ function calls needed. Be sure to use them in their appropriate places.
 #include &lt;grid/dof_constraints.h&gt;
 
 const unsigned int dim=2; // Work in two dimensions, could also be three
-SparseMatrixStruct&lt;double&gt; sparsity_pattern;
-DoFHandler&lt;dim&gt; dof;
-ConstraintMatrix&lt;dim&gt; hanging_nodes; 
-
+SparseMatrixStruct sparsity_pattern;
+DoFHandler&lt;dim&gt; dof_handler;
+ConstraintMatrix hanging_nodes; 
 
 hanging_nodes.clear();
-dof.make_sparsity_pattern(sparsity_pattern);
-dof.make_hanging_nodes_constraints(hanging_nodes);
+dof_handler.make_sparsity_pattern(sparsity_pattern);
+dof_handler.make_hanging_nodes_constraints(hanging_nodes);
 hanging_nodes.close();
 hanging_nodes.condense(matrix_structure);
+</code>
+</pre>
+
+You will later need to condense the matrix itself, and the right hand
+side vector, which is done by the following calls:
+<pre class="example">
+<code>
+
+SparseMatrix<double> system_matrix;
+Vector<double>       right_hand_side;
+
+// set up matrix and rhs, possibly apply boundary values, etc
+...
 
+// now condense the hanging nodes into the matrix:
+hanging_nodes.condense (system_matrix);
+hanging_nodes.condense (right_hand_side);
 </code>
 </pre>
 
+
+<h3>Generalizations</h3>
+
+The <code>ConstraintMatrix</code> is more general than only for use
+with hanging nodes. In fact, it is able to represent general
+constraints of the form
+<pre class="example">
+  Cx = 0
+</pre>
+where <code>C</code> is a matrix and is represented by an object of
+type <code>ConstraintMatrix</code>. Constraints due to hanging nodes
+are of this form, since for example using bilinear elements, the
+hanging node on the middle of a line equals the mean value of the two
+neighboring points, i.e. the entries of the respective row in the
+matrix are <code>1, -0.5, -0.5</code>. Since <code>C</code> can be
+scaled arbitrarily, we can chose its diagonal elements to be one, and
+then only need to store the nondiagonal elements. The
+<code>ConstraintMatrix</code> is specialized in storing these
+nondiagonal elements if there are only relatively few such elements
+per row (as is commonly the case for hanging nodes) and if the number
+of constraints itself is relatively low, i.e. much smaller than the
+total size of the matrix. In the latter case, most rows of the matrix
+contain only zeroes, and we only store those lines that constitute
+constraints, which are exactly the lines corresponding to hanging
+nodes.
+
+</p>
+<p>
+
+Some other constraints can be written in the same form as above, with
+a sparse matrix <code>C</code>. In these cases, the
+<code>ConstraintMatrix</code> can be used as well. For example, it has
+been used to perform computations on two grids at the same time, where
+the interpolation between the grids can be represented by some such
+matrix. 
+
+
+
+
 <!-- Page Foot -->
 <hr>
 <table class="navbar">      
@@ -100,7 +157,7 @@ hanging_nodes.condense(matrix_structure);
 </table>
 <hr>
 <address>
-<a href="mailto:schrage@gaia.iwr.uni-heidelberg.de">Jan Schrage</a></address>
+<a href="mailto:schrage@hermes.iwr.uni-heidelberg.de">Jan Schrage</a></address>
 <p>
 Last modified: $Date$ 
 </p>
index e5fb3575aff595985986c36a489a2e5b7b73ce39..4dd20a070d2f03a71dcf46ec1cafdc8d93f33b84 100644 (file)
@@ -3,14 +3,14 @@
 <html>
 <head>
 <!-- deal.II tutorial template
-     Jan Schrage <schrage@gaia.iwr.uni-heidelberg.de> 1999 
+     Jan Schrage <schrage@hermes.iwr.uni-heidelberg.de> 1999 
 -->
 
 <title>deal.II tutorial: Degrees of Freedom</title>
     <link href="../screen.css" rel="StyleSheet" title="deal.II Tutorial" media="screen">
     <link href="../print.css" rel="StyleSheet" title="deal.II Tutorial" media="print">
     <link href="../audio.css" rel="StyleSheet" title="deal.II Tutorial" media="aural">
-    <meta name="author" content="Jan Schrage <schrage@gaia.iwr.uni-heidelberg.de>">
+    <meta name="author" content="Jan Schrage <schrage@hermes.iwr.uni-heidelberg.de>">
     <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
 </head>
 
@@ -143,7 +143,7 @@ functions performing the re-enumerations have to be called.
 </table>
 <hr>
 <address>
-<a href="mailto:schrage@gaia.iwr.uni-heidelberg.de">Jan Schrage</a></address>
+<a href="mailto:schrage@hermes.iwr.uni-heidelberg.de">Jan Schrage</a></address>
 <p>
 Last modified: $Date$
 </p>
index 2723502a42e9a4a04c7734612016941f0eddc701..a3aad0eb111b6ad24dce993e2a2b600d719ccfea 100644 (file)
@@ -6,7 +6,7 @@
     <link href="../screen.css" rel="StyleSheet" title="deal.II Tutorial" media="screen">
     <link href="../print.css" rel="StyleSheet" title="deal.II Tutorial" media="print">
     <link href="../audio.css" rel="StyleSheet" title="deal.II Tutorial" media="aural">
-    <meta name="author" content="Jan Schrage <schrage@gaia.iwr.uni-heidelberg.de>">
+    <meta name="author" content="Jan Schrage <schrage@hermes.iwr.uni-heidelberg.de>">
     <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
 </head>
 
@@ -194,7 +194,7 @@ grid construction algorithm. Otherwise some of your matrix elements
 may have the wrong sign (plus instead of minus or vice versa).
 A more detailed description of the problems
 encountered in two dimensions can be found in the
-<a href="http://gaia.iwr.uni-heidelberg.de/~deal/doc/auto/kdoc/basic/DataIn.html" target="_top"> <code>DataIn</code> class description</a>.
+<a href="http://hermes.iwr.uni-heidelberg.de/~deal/doc/auto/kdoc/basic/DataIn.html" target="_top"> <code>DataIn</code> class description</a>.
 </p>
 
 
@@ -296,7 +296,7 @@ coarse_grid-&gt;create_triangulation (vector&lt;Point&lt;2&gt; &gt;(&vertices[0]
 </table>
 <hr>
 <address>
-<a href="mailto:schrage@gaia.iwr.uni-heidelberg.de">Jan Schrage</a></address>
+<a href="mailto:schrage@hermes.iwr.uni-heidelberg.de">Jan Schrage</a></address>
 <p>
 Last modified: $Date$
 </p>
index e324d1905b35bf29abfdedea9b40cf4a7393e176..e4e8aeb62d96e0bde9b35cc3cd62ed7341c84eb0 100644 (file)
@@ -3,14 +3,14 @@
 <html>
 <head>
 <!-- deal.II tutorial template
-     Jan Schrage <schrage@gaia.iwr.uni-heidelberg.de> 1999 
+     Jan Schrage <schrage@hermes.iwr.uni-heidelberg.de> 1999 
 -->
 
 <title>deal.II tutorial: Hanging Nodes</title>
     <link href="../screen.css" rel="StyleSheet" title="deal.II Tutorial" media="screen">
     <link href="../print.css" rel="StyleSheet" title="deal.II Tutorial" media="print">
     <link href="../audio.css" rel="StyleSheet" title="deal.II Tutorial" media="aural">
-    <meta name="author" content="Jan Schrage <schrage@gaia.iwr.uni-heidelberg.de>">
+    <meta name="author" content="Jan Schrage <schrage@hermes.iwr.uni-heidelberg.de>">
     <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
 </head>
 
@@ -132,7 +132,7 @@ using the constraints, solve the system and obtain <code>u</code> by
 </table>
 <hr>
 <address>
-<a href="mailto:schrage@gaia.iwr.uni-heidelberg.de">Jan Schrage</a></address>
+<a href="mailto:schrage@hermes.iwr.uni-heidelberg.de">Jan Schrage</a></address>
 <p>
 Last modified: $Date$
 </p>
index 1aef8d64d4f4eaded37d5f0ddcb1a2ce54891f7f..f9790a6a6409cfd19733917532a2a90ffbbf9593 100644 (file)
@@ -6,7 +6,7 @@
     <link href="../screen.css" rel="StyleSheet" title="deal.II Tutorial" media="screen">
     <link href="../print.css" rel="StyleSheet" title="deal.II Tutorial" media="print">
     <link href="../audio.css" rel="StyleSheet" title="deal.II Tutorial" media="aural">
-    <meta name="author" content="Jan Schrage <schrage@gaia.iwr.uni-heidelberg.de>">
+    <meta name="author" content="Jan Schrage <schrage@hermes.iwr.uni-heidelberg.de>">
     <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
 </head>
 
@@ -27,7 +27,7 @@
 <h1>The deal.II Tutorial</h1>
 Your browser does not seem to understand frames. A version of this
 tutorial that does not use frames can be found at 
-<a href="toc.html">http://gaia.iwr.uni-heidelberg.de/~deal/doc/tutorial/00.fe_structure/toc.html</a>.
+<a href="toc.html">http://hermes.iwr.uni-heidelberg.de/~deal/doc/tutorial/00.fe_structure/toc.html</a>.
 </noframes>
 
 </html>
index 6673eec84fadacdc33a66b9dfc0e699d5472e9ca..c21c75a32392f2f87baa2cfe65f47d883edcb4fc 100644 (file)
@@ -3,14 +3,14 @@
 <html>
 <head>
 <!-- deal.II tutorial template
-     Jan Schrage <schrage@gaia.iwr.uni-heidelberg.de> 1999 
+     Jan Schrage <schrage@hermes.iwr.uni-heidelberg.de> 1999 
 -->
 
 <title>deal.II tutorial: Logo</title>
     <link href="../screen.css" rel="StyleSheet" title="deal.II Tutorial" media="screen">
     <link href="../print.css" rel="StyleSheet" title="deal.II Tutorial" media="print">
     <link href="../audio.css" rel="StyleSheet" title="deal.II Tutorial" media="aural">
-    <meta name="author" content="Jan Schrage <schrage@gaia.iwr.uni-heidelberg.de>">
+    <meta name="author" content="Jan Schrage <schrage@hermes.iwr.uni-heidelberg.de>">
     <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
 </head>
 
index d76fd45fd42e932f373701a09e0141ceccefd1d7..40acd683c85aa0db803f94468a6d2d77e4da46e0 100644 (file)
@@ -3,14 +3,14 @@
 <html>
 <head>
 <!-- deal.II tutorial template
-     Jan Schrage <schrage@gaia.iwr.uni-heidelberg.de> 1999 
+     Jan Schrage <schrage@hermes.iwr.uni-heidelberg.de> 1999 
 -->
 
 <title>deal.II tutorial: Matrix and Vector Generation</title>
     <link href="../screen.css" rel="StyleSheet" title="deal.II Tutorial" media="screen">
     <link href="../print.css" rel="StyleSheet" title="deal.II Tutorial" media="print">
     <link href="../audio.css" rel="StyleSheet" title="deal.II Tutorial" media="aural">
-    <meta name="author" content="Jan Schrage <schrage@gaia.iwr.uni-heidelberg.de>">
+    <meta name="author" content="Jan Schrage <schrage@hermes.iwr.uni-heidelberg.de>">
     <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
 </head>
 
@@ -119,7 +119,7 @@ sparse_matrix.reinit (sparsity_pattern);
 
 <p>
 Vector operations are supplied by the class <code><a
-href="http://gaia.iwr.uni-heidelberg.de/~deal/doc/auto/kdoc/lac/Vector.html">Vector</a></code>.
+href="http://hermes.iwr.uni-heidelberg.de/~deal/doc/auto/kdoc/lac/Vector.html">Vector</a></code>.
 The first and most important operation on a vector is its
 initialization using <code>void Vector::reinit(const usigned int N,
 const bool fast=false)</code>, which resets the vector's size to
@@ -246,7 +246,7 @@ either. This unfortunate name clash is due to historical reasons.
 </table>
 <hr>
 <address>
-<a href="mailto:schrage@gaia.iwr.uni-heidelberg.de">Jan Schrage</a></address>
+<a href="mailto:schrage@hermes.iwr.uni-heidelberg.de">Jan Schrage</a></address>
 <p>
 Last modified: $Date$ 
 </p>
index d2f2d868174b07c20798fa6b489008ecf8129eff..a0b2546a4da9e879f5745f1748ac631b8eedc5af 100644 (file)
@@ -3,14 +3,14 @@
 <html>
 <head>
 <!-- deal.II tutorial template
-     Jan Schrage <schrage@gaia.iwr.uni-heidelberg.de> 1999 
+     Jan Schrage <schrage@hermes.iwr.uni-heidelberg.de> 1999 
 -->
 
 <title>deal.II tutorial: Matrix Structure</title>
     <link href="../screen.css" rel="StyleSheet" title="deal.II Tutorial" media="screen">
     <link href="../print.css" rel="StyleSheet" title="deal.II Tutorial" media="print">
     <link href="../audio.css" rel="StyleSheet" title="deal.II Tutorial" media="aural">
-    <meta name="author" content="Jan Schrage <schrage@gaia.iwr.uni-heidelberg.de>">
+    <meta name="author" content="Jan Schrage <schrage@hermes.iwr.uni-heidelberg.de>">
     <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
 </head>
 
@@ -216,7 +216,7 @@ for more information.
 </table>
 <hr>
 <address>
-<a href="mailto:schrage@gaia.iwr.uni-heidelberg.de">Jan Schrage</a></address>
+<a href="mailto:schrage@hermes.iwr.uni-heidelberg.de">Jan Schrage</a></address>
 <p>
 Last modified: $Date$ 
 </p>
index c56c8a2c5e8f129b4e765e38ab2c45263f0b5dc7..fd23313eee057614a7a0f218747c379c97024124 100644 (file)
@@ -6,7 +6,7 @@
     <link href="../screen.css" rel="StyleSheet" title="deal.II Tutorial" media="screen">
     <link href="../print.css" rel="StyleSheet" title="deal.II Tutorial" media="print">
     <link href="../audio.css" rel="StyleSheet" title="deal.II Tutorial" media="aural">
-    <meta name="author" content="Jan Schrage <schrage@gaia.iwr.uni-heidelberg.de>">
+    <meta name="author" content="Jan Schrage <schrage@hermes.iwr.uni-heidelberg.de>">
     <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
 </head>
 <body lang="en">
     </p>
     <hr>
     <p>
-      <a href="mailto:deal@gaia.iwr.uni-heidelberg.de">Comments on the tutorial</a>
+      <a href="mailto:deal@hermes.iwr.uni-heidelberg.de">Comments on the tutorial</a>
     </p>
 
 <!-- Last modified: $Date$ -->
index 730306fc4b994c3ce184b61dc1fa2b0d0c4a2821..c5b5982b027c4a7ff6fdd7a9f55713336c1d0afd 100644 (file)
@@ -3,14 +3,14 @@
 <html>
 <head>
 <!-- deal.II tutorial template
-     Jan Schrage <schrage@gaia.iwr.uni-heidelberg.de> 1999 
+     Jan Schrage <schrage@hermes.iwr.uni-heidelberg.de> 1999 
 -->
 
 <title>deal.II tutorial: Grid and Data Output</title>
     <link href="../screen.css" rel="StyleSheet" title="deal.II Tutorial" media="screen">
     <link href="../print.css" rel="StyleSheet" title="deal.II Tutorial" media="print">
     <link href="../audio.css" rel="StyleSheet" title="deal.II Tutorial" media="aural">
-    <meta name="author" content="Jan Schrage <schrage@gaia.iwr.uni-heidelberg.de>">
+    <meta name="author" content="Jan Schrage <schrage@hermes.iwr.uni-heidelberg.de>">
     <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
 </head>
 
@@ -48,9 +48,6 @@ in depth:
        common to both <code>GridOut</code> and <code>DataOut</code>
   </li>
 
-  <li><a href="#dataout_limits">Limitations of <code>DataOut</code></a>
-  </li>
-
   <li><a href="#usage">Usage of <code>DataOut</code></a>
   </li>
 
@@ -112,12 +109,14 @@ The graphics formats available in <code>GridOut</code> are:
 
 <h2><a name="parameters">Parameters for grid and data output</a></h2>
 
-<p>For each and every output format there is a class containing the
+<p>For each output format there is a class containing the
 parameters that determine how the output will look. All these classes
 have a sensible set of default parameters; you will only have
 to bother about setting parameters yourself if your desires are
 rather special. We shall commence with a brief description of 
-these classes and the most important parameters you can set.
+these classes and the most important parameters you can set. It is
+also worthwhile to look at the online documentation to see whether
+additional flags have been introduced in the meantime.
 </p>
 
 
@@ -205,8 +204,10 @@ denote the default values.
 
 <h3>PovrayFlags</h3>
 <p>
-This class provides the settings for PoVRay output. At present it 
-is empty.
+This class provides the settings for PoVRay output. There are several
+flags implemented presently, but we advise you to consult the online
+documentation since they are rather special and you will probably have
+to set them anyway, if you want high-quality output.
 </p>
 
 <h3>GmvFlags</h3>
@@ -216,19 +217,6 @@ is empty.
 </p>
 
 
-<hr>
-<hr>
-
-<h2><a name="dataout_limits">Limitations of the <code>DataOut</code> 
-class</a></h2>
-
-<p>
-Grouping of components to vectors is not implemented, i.e. each 
-component must be written independent of the others. It is 
-also not possible to write the results of calculations on grids
-with more or less than one degree of freedom per vertex.
-</p>
-
 <hr>
 <hr>
 
@@ -399,7 +387,7 @@ to be plotted.
 
 <p>The limitations of the gnuplot data format have been well described
 in the 
-<a href="http://gaia.iwr.uni-heidelberg.de/~deal/doc/auto/kdoc/basic/DataOut.html">
+<a href="http://hermes.iwr.uni-heidelberg.de/~deal/doc/auto/kdoc/basic/DataOut.html">
 <code>DataOut</code> class description</a>:
 </p>
 <blockquote>
@@ -416,7 +404,7 @@ each cell being straight lines. You won't see the structure of the solution in t
 <p>The limitations mentioned above can to some extent be remedied,
 and that is why there is also an option for high quality output.
 For how this is done, we quote (again) the 
-<a href="http://gaia.iwr.uni-heidelberg.de/~deal/doc/auto/kdoc/basic/DataOut.html">
+<a href="http://hermes.iwr.uni-heidelberg.de/~deal/doc/auto/kdoc/basic/DataOut.html">
 <code>DataOut</code> class description</a>:
 </p>
 
@@ -735,7 +723,7 @@ as explained in the part on the <a href="#grid_usage">usage of the
 </table>
 <hr>
 <address>
-<a href="mailto:schrage@gaia.iwr.uni-heidelberg.de">Jan Schrage</a></address>
+<a href="mailto:schrage@hermes.iwr.uni-heidelberg.de">Jan Schrage</a></address>
 <p>
 Last modified: $Date$ 
 </p>
index 0effc5a77b81fb594908835533382cdb68dac619..33d38993f3f2e86d99df5cfac83acef55f2f2f25 100644 (file)
@@ -3,14 +3,14 @@
 <html>
 <head>
 <!-- deal.II tutorial template
-     Jan Schrage <schrage@gaia.iwr.uni-heidelberg.de> 1999 
+     Jan Schrage <schrage@hermes.iwr.uni-heidelberg.de> 1999 
 -->
 
 <title>deal.II tutorial: Parameter Input</title>
     <link href="../screen.css" rel="StyleSheet" title="deal.II Tutorial" media="screen">
     <link href="../print.css" rel="StyleSheet" title="deal.II Tutorial" media="print">
     <link href="../audio.css" rel="StyleSheet" title="deal.II Tutorial" media="aural">
-    <meta name="author" content="Jan Schrage <schrage@gaia.iwr.uni-heidelberg.de>">
+    <meta name="author" content="Jan Schrage <schrage@hermes.iwr.uni-heidelberg.de>">
     <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
 </head>
 
@@ -131,7 +131,7 @@ and retrieve their values. The values are stored in the strings
 <code>zeldovich_solver</code> and <code>sunyaev_solver</code>.
 Please note that in order to stick to the essentials this example 
 violates the 
-<a href="http://gaia.iwr.uni-heidelberg.de/~deal/doc/auto/kdoc/base/ParameterHandler.html">
+<a href="http://hermes.iwr.uni-heidelberg.de/~deal/doc/auto/kdoc/base/ParameterHandler.html">
 recommended style for parameter declaration</a>.
 </p>
 
@@ -306,7 +306,7 @@ value encountered last of the parameter in question is used.
 <span class="example">Example:</span>
 We read parameters successively
 from three different sources. This example was taken from
-the <a href="http://gaia.iwr.uni-heidelberg.de/~deal/doc/auto/kdoc/base/ParameterHandler.html"><code>ParameterHandler</code> class documentation</a>.
+the <a href="http://hermes.iwr.uni-heidelberg.de/~deal/doc/auto/kdoc/base/ParameterHandler.html"><code>ParameterHandler</code> class documentation</a>.
 </p>
 
 <pre class="example">
@@ -374,7 +374,7 @@ the <code>indent_level</code> is the level of indentation.
 </table>
 <hr>
 <address>
-<a href="mailto:schrage@gaia.iwr.uni-heidelberg.de">Jan Schrage</a></address>
+<a href="mailto:schrage@hermes.iwr.uni-heidelberg.de">Jan Schrage</a></address>
 <p>
 Last modified: $Date$ 
 </p>
index 5aa31453a25028994dc22b6f314fdd6cfbbf73e7..531fae87f8a895b0dbfdd723258b2eca782c73bd 100644 (file)
@@ -3,14 +3,14 @@
 <html>
 <head>
 <!-- deal.II tutorial template
-     Jan Schrage <schrage@gaia.iwr.uni-heidelberg.de> 1999 
+     Jan Schrage <schrage@hermes.iwr.uni-heidelberg.de> 1999 
 -->
 
 <title>deal.II tutorial: The Problem Matrix and the Right Hand Side</title>
     <link href="../screen.css" rel="StyleSheet" title="deal.II Tutorial" media="screen">
     <link href="../print.css" rel="StyleSheet" title="deal.II Tutorial" media="print">
     <link href="../audio.css" rel="StyleSheet" title="deal.II Tutorial" media="aural">
-    <meta name="author" content="Jan Schrage <schrage@gaia.iwr.uni-heidelberg.de>">
+    <meta name="author" content="Jan Schrage <schrage@hermes.iwr.uni-heidelberg.de>">
     <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
 </head>
 
@@ -186,7 +186,7 @@ is a linear form instead of a bilinear one.
 </table>
 <hr>
 <address>
-<a href="mailto:schrage@gaia.iwr.uni-heidelberg.de">Jan Schrage</a></address>
+<a href="mailto:schrage@hermes.iwr.uni-heidelberg.de">Jan Schrage</a></address>
 <p>
 Last modified: $Date$ 
 </p>
index 1fc4cd7b0795dc37aa13849f4de770018f4a824e..61740160ad487ad1179b3899018a6881929a6d17 100644 (file)
@@ -3,14 +3,14 @@
 <html>
 <head>
 <!-- deal.II tutorial template
-     Jan Schrage <schrage@gaia.iwr.uni-heidelberg.de> 1999 
+     Jan Schrage <schrage@hermes.iwr.uni-heidelberg.de> 1999 
 -->
 
 <title>deal.II tutorial: Solving the Problem</title>
     <link href="../screen.css" rel="StyleSheet" title="deal.II Tutorial" media="screen">
     <link href="../print.css" rel="StyleSheet" title="deal.II Tutorial" media="print">
     <link href="../audio.css" rel="StyleSheet" title="deal.II Tutorial" media="aural">
-    <meta name="author" content="Jan Schrage <schrage@gaia.iwr.uni-heidelberg.de>">
+    <meta name="author" content="Jan Schrage <schrage@hermes.iwr.uni-heidelberg.de>">
     <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
 </head>
 
        iteration method
 </li>
 </ul>
+Some more specialized solvers may be implemented in the meantime. In
+case you need some such solver, you should take a look at the
+up-to-date online documentation.
 
 <p>
-Besides, there are several utility classes:
+Besides the solver classes, there are several utility classes:
 <ul>
 <li> 
 <code><a href="#control">SolverControl</a></code> to 
@@ -75,15 +78,13 @@ Information on common solution methods can be found in any modern
 textbook on finite elements, for example in <cite>Braess, Dietrich, Finite
 Elements</cite>. The GMRES solver discussed below is rather
 special, and if you are going to use it you probably know what
-you ar edoing anyway.
+you ardoing anyway.
 
 <p>
 We will now begin with the discussion of the <code>SolverControl</code>, the
 <code>SolverSelector</code>
 and the <code>PreconditionSelector</code> classes, then discuss the solvers 
-in more detail. <em>Although we do not demonstrate this method in the
-examples for the different solvers every last solver can be called
-using <code>SolverSelector</code>.</em>
+in more detail.
 </p>
 
 <h2><a name="control">Solver Control</a></h2>
@@ -110,6 +111,11 @@ SolverControl control(1000,1e-6);
 </code>
 </pre>
 
+Thus, the iterative solver which with it shall be used will stop after
+either 1000 iterations are performed or the norm of the residual is
+below the given threshold.
+
+
 <h2><a name="solvselect">SolverSelector</a></h2>
 
 <p>
@@ -161,7 +167,8 @@ the <code>PreconditionSelect</code> class with an appropriate choice of
 parameters. This can be done using <code>PreconditionSelector(const string
 preconditioning, const typename Vector::value_type &amp;omega=1.)</code>
 where <code>preconditioning</code> denotes the preconditioning method used 
-and <code>omega</code> is the damping parameter.
+and <code>omega</code> is the damping parameter if the preconditioner
+you selected uses it.
 </p>
 <p>
 The preconditioning methods currently available using this class are
@@ -237,13 +244,11 @@ we solve the problem.
 
 SolverControl control(1000,1e-6);
 VectorMemory&lt;Vector&lt;double&gt; &gt; vectormem;
-SolverBicgstab&lt;SparseMatrix,Vector&lt;double&gt; &gt; solver(control,vectormem);
+SolverBicgstab&lt;SparseMatrix&lt;double&gt;,Vector&lt;double&gt; &gt; solver(control,vectormem);
 
 // Initialize the problem matrices. Well...they shouldn't only be
 // initialized but also contain the problem, so this is just an example
 // to get the definitions and types and everything right. 
-// <em>To make it clear: This code as it is will not do anything because</em>
-// <em>it does not contain any mathematical problem !</em> 
 
 SparseMatrix&lt;double&gt; A;
 Vector&lt;double&gt; u,f;
@@ -289,13 +294,11 @@ we solve the problem.
 
 SolverControl control(1000,1e-6);
 VectorMemory&lt;Vector&lt;double&gt; &gt; vectormem;
-SolverCG&lt;SparseMatrix,Vector&lt;double&gt; &gt; solver(control,vectormem);
+SolverCG&lt;SparseMatrix&lt;double&gt;,Vector&lt;double&gt; &gt; solver(control,vectormem);
 
 // Initialize the problem matrices. Well...they shouldn't only be
 // initialized but also contain the problem, so this is just an example
 // to get the definitions and types and everything right. 
-// <em>To make it clear: This code as it is will not do anything because</em>
-// <em>it does not contain any mathematical problem !</em> 
 
 SparseMatrix&lt;double&gt; A;
 Vector&lt;double&gt; u,f;
@@ -320,10 +323,11 @@ It is initialized using <br>
 const AdditionalData &amp;data=Additionaldata())
 </code>
 This constructor needs the maximum number of temporary vectors to be used. 
-A number too small can seriously affect its performance. This number is
+A number too small can seriously affect its performance, but a number
+too large will also increase the required computing time. This number is
 contained in the <code>AdditionalData</code> structure with a default of 30. 
 This solver is rather special, and for a detailed explanation you should
-<a href="http://gaia.iwr.uni-heidelberg.de/~deal/doc/auto/kdoc/lac/SolverGMRES.html">take a look at the detailed description of the <code>SolverGMRES</code>
+<a href="http://hermes.iwr.uni-heidelberg.de/~deal/doc/auto/kdoc/lac/SolverGMRES.html">take a look at the detailed description of the <code>SolverGMRES</code>
 class</a>.
 </p>
 
@@ -351,13 +355,11 @@ vectors.
 
 SolverControl control(1000,1e-6);
 VectorMemory&lt;Vector&lt;double&gt; &gt; vectormem;
-SolverCG&lt;SparseMatrix,Vector&lt;double&gt; &gt; solver(control,vectormem);
+SolverGMRES&lt;SparseMatrix&lt;double&gt;,Vector&lt;double&gt; &gt; solver(control,vectormem);
 
 // Initialize the problem matrices. Well...they shouldn't only be
 // initialized but also contain the problem, so this is just an example
 // to get the definitions and types and everything right. 
-// <em>To make it clear: This code as it is will not do anything because</em>
-// <em>it does not contain any mathematical problem !</em> 
 
 SparseMatrix&lt;double&gt; A;
 Vector&lt;double&gt; u,f;
@@ -408,13 +410,11 @@ we solve the problem. We use the default damping parameter of 1.
 
 SolverControl control(1000,1e-6);
 VectorMemory&lt;Vector&lt;double&gt; &gt; vectormem;
-SolverCG&lt;SparseMatrix,Vector&lt;double&gt; &gt; solver(control,vectormem);
+SolverRichardson&lt;SparseMatrix&lt;double&gt;,Vector&lt;double&gt; &gt; solver(control,vectormem);
 
 // Initialize the problem matrices. Well...they shouldn't only be
 // initialized but also contain the problem, so this is just an example
 // to get the definitions and types and everything right. 
-// <em>To make it clear: This code as it is will not do anything because</em>
-// <em>it does not contain any mathematical problem !</em> 
 
 SparseMatrix&lt;double&gt; A;
 Vector&lt;double&gt; u,f;
@@ -447,7 +447,7 @@ solver.solve(A,u,f,preconditioning);
 </table>
 <hr>
 <address>
-<a href="mailto:schrage@gaia.iwr.uni-heidelberg.de">Jan Schrage</a></address>
+<a href="mailto:schrage@hermes.iwr.uni-heidelberg.de">Jan Schrage</a></address>
 <p>
 Last modified: $Date$ 
 </p>
index 08e3cc5c6a25476835baf9fbf379733608d522ba..1574a7a8d78d8aedfd09cae95d691823979e0335 100644 (file)
@@ -3,14 +3,14 @@
 <html>
 <head>
 <!-- deal.II tutorial template
-     Jan Schrage <schrage@gaia.iwr.uni-heidelberg.de> 1999 
+     Jan Schrage <schrage@hermes.iwr.uni-heidelberg.de> 1999 
 -->
 
 <title>deal.II tutorial: Chapter title</title>
     <link href="../screen.css" rel="StyleSheet" title="deal.II Tutorial" media="screen">
     <link href="../print.css" rel="StyleSheet" title="deal.II Tutorial" media="print">
     <link href="../audio.css" rel="StyleSheet" title="deal.II Tutorial" media="aural">
-    <meta name="author" content="Jan Schrage <schrage@gaia.iwr.uni-heidelberg.de>">
+    <meta name="author" content="Jan Schrage <schrage@hermes.iwr.uni-heidelberg.de>">
     <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
 </head>
 
index 48b793463f78773040d458608f0689af88b1bcd1..935dd617785446f5e8e230045d624aa77475fec7 100644 (file)
@@ -6,7 +6,7 @@
     <link href="../screen.css" rel="StyleSheet" title="deal.II Tutorial" media="screen">
     <link href="../print.css" rel="StyleSheet" title="deal.II Tutorial" media="print">
     <link href="../audio.css" rel="StyleSheet" title="deal.II Tutorial" media="aural">
-    <meta name="author" content="Jan Schrage <schrage@gaia.iwr.uni-heidelberg.de>">
+    <meta name="author" content="Jan Schrage <schrage@hermes.iwr.uni-heidelberg.de>">
     <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
 </head>
 <body lang="en">
@@ -143,7 +143,7 @@ chapters of this tutorial.
 </table>
 <hr>
 <address>
-<a href="mailto:schrage@gaia.iwr.uni-heidelberg.de">Jan Schrage</a></address>
+<a href="mailto:schrage@hermes.iwr.uni-heidelberg.de">Jan Schrage</a></address>
 <p>
 Last modified: $Date$
 </p>
index 8f66c1ea3ea1a51442186d0225ab3c290c22a100..0dc341a5b462a6de20ceb31816e0a577aeb89fb4 100644 (file)
@@ -6,7 +6,7 @@
     <link href="print.css" rel="StyleSheet" title="deal.II Tutorial" media="print">
     <link href="audio.css" rel="StyleSheet" title="deal.II Tutorial" media="aural">
     <title>The deal.II Tutorial</title>
-    <meta name="author" content="Jan Schrage <schrage@gaia.iwr.uni-heidelberg.de>">
+    <meta name="author" content="Jan Schrage <schrage@hermes.iwr.uni-heidelberg.de>">
     <meta name="keywords" content="deal.II,deal.II tutorial,deal II"></head>
   <body>
     <img align=right valign=top width="50%" alt="Deal Logo" src="../pictures/deal100.gif">
@@ -33,7 +33,7 @@
       which says it all, really. Its purpose is the solution of partial differential
       equations on unstructured, locally refined grids with error control. You can find more
       information on <acronym>deal.II</acronym> and some examples at 
-      <a href="http://gaia.iwr.uni-heidelberg.de/~deal/">the
+      <a href="http://hermes.iwr.uni-heidelberg.de/~deal/">the
       <acronym>deal.II</acronym> homepage </a>.
       <acronym>deal.II</acronym> was written 
       by the numerics group at the IWR, University of Heidelberg,
       addressed to the <acronym>deal.II</acronym> group: 
     </p>
       <address>
-      <a href="mailto:deal@gaia.iwr.uni-heidelberg.de">deal@gaia.iwr.uni-heidelberg.de</a>
+      <a href="mailto:deal@hermes.iwr.uni-heidelberg.de">deal@hermes.iwr.uni-heidelberg.de</a>
     </address>
     <br>
     <hr>
     
     <address>
-      <a href="mailto:deal@gaia.iwr.uni-heidelberg.de">The deal.II group</a></address>
+      <a href="mailto:deal@hermes.iwr.uni-heidelberg.de">The deal.II group</a></address>
     <p>
       Last modified: $Date$
     </p>

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

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.