]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Remove the old chapter 1 of the tutorial, which was hopelessly outdated anyway. Fix...
authorwolf <wolf@0785d39b-7218-0410-832d-ea1e28bc413d>
Mon, 12 Apr 2004 14:28:59 +0000 (14:28 +0000)
committerwolf <wolf@0785d39b-7218-0410-832d-ea1e28bc413d>
Mon, 12 Apr 2004 14:28:59 +0000 (14:28 +0000)
git-svn-id: https://svn.dealii.org/trunk@8986 0785d39b-7218-0410-832d-ea1e28bc413d

55 files changed:
deal.II/doc/documentation.html
deal.II/doc/navbar.html
deal.II/doc/tutorial/Makefile
deal.II/doc/tutorial/chapter-1.elements/Makefile [deleted file]
deal.II/doc/tutorial/chapter-1.elements/adaptivity.html [deleted file]
deal.II/doc/tutorial/chapter-1.elements/boundary.html [deleted file]
deal.II/doc/tutorial/chapter-1.elements/condense.html [deleted file]
deal.II/doc/tutorial/chapter-1.elements/dofs.html [deleted file]
deal.II/doc/tutorial/chapter-1.elements/grid_creation.html [deleted file]
deal.II/doc/tutorial/chapter-1.elements/hanging_nodes.html [deleted file]
deal.II/doc/tutorial/chapter-1.elements/index.html [deleted file]
deal.II/doc/tutorial/chapter-1.elements/matrix_generation.html [deleted file]
deal.II/doc/tutorial/chapter-1.elements/matrix_structure.html [deleted file]
deal.II/doc/tutorial/chapter-1.elements/navbar.html [deleted file]
deal.II/doc/tutorial/chapter-1.elements/output.html [deleted file]
deal.II/doc/tutorial/chapter-1.elements/parameters.html [deleted file]
deal.II/doc/tutorial/chapter-1.elements/postprocess.html [deleted file]
deal.II/doc/tutorial/chapter-1.elements/rhs.html [deleted file]
deal.II/doc/tutorial/chapter-1.elements/solve.html [deleted file]
deal.II/doc/tutorial/chapter-1.elements/title.html [deleted file]
deal.II/doc/tutorial/chapter-1.elements/toc.html [deleted file]
deal.II/doc/tutorial/chapter-2.step-by-step/navbar.html
deal.II/doc/tutorial/chapter-2.step-by-step/toc.html
deal.II/doc/tutorial/chapter-3.laplace/Makefile [deleted file]
deal.II/doc/tutorial/chapter-3.laplace/assemble.html [deleted file]
deal.II/doc/tutorial/chapter-3.laplace/code/Makefile [deleted file]
deal.II/doc/tutorial/chapter-3.laplace/code/func.cc [deleted file]
deal.II/doc/tutorial/chapter-3.laplace/code/functions.h [deleted file]
deal.II/doc/tutorial/chapter-3.laplace/code/laplace.cc [deleted file]
deal.II/doc/tutorial/chapter-3.laplace/code/laplace.h [deleted file]
deal.II/doc/tutorial/chapter-3.laplace/code/main.cc [deleted file]
deal.II/doc/tutorial/chapter-3.laplace/index.html [deleted file]
deal.II/doc/tutorial/chapter-3.laplace/laplace.html [deleted file]
deal.II/doc/tutorial/chapter-3.laplace/main.html [deleted file]
deal.II/doc/tutorial/chapter-3.laplace/navbar.html [deleted file]
deal.II/doc/tutorial/chapter-3.laplace/solution.html [deleted file]
deal.II/doc/tutorial/chapter-3.laplace/source.html [deleted file]
deal.II/doc/tutorial/chapter-3.laplace/structure.html [deleted file]
deal.II/doc/tutorial/chapter-3.laplace/title.html [deleted file]
deal.II/doc/tutorial/chapter-3.laplace/toc.html [deleted file]
deal.II/doc/tutorial/chapter-3.laplace/triangulation.html [deleted file]
deal.II/doc/tutorial/index.html [deleted file]
deal.II/doc/tutorial/navbar.html [deleted file]
deal.II/doc/tutorial/scripts/filelist.pl [deleted file]
deal.II/doc/tutorial/scripts/validate [deleted file]
deal.II/doc/tutorial/templates/body.html [deleted file]
deal.II/doc/tutorial/templates/example.html [deleted file]
deal.II/doc/tutorial/templates/index.html [deleted file]
deal.II/doc/tutorial/templates/navbar.html [deleted file]
deal.II/doc/tutorial/templates/title.html [deleted file]
deal.II/doc/tutorial/templates/toc.html [deleted file]
deal.II/doc/tutorial/tex/report-july-1999.tex [deleted file]
deal.II/doc/tutorial/tex/tutorial.bib [deleted file]
deal.II/doc/tutorial/title.html [deleted file]
deal.II/doc/tutorial/toc.html [deleted file]

index 75547fadb7ff00a8d8161bbc4328cad6e3bd0f6d..1912968d2348c79ca428b8b66db304c7d52d745e 100644 (file)
     <h4>Tutorials</h4>
     
       <p>
-      The <a href="tutorial/index.html" target="_top">tutorial</a>:
+      The <a href="tutorial/chapter-2.step-by-step/index.html"
+      target="_top">tutorial</a>:
       for new users of the library. It explains the basic elements of
       finite element programs based on the library, and provides small
       example programs.
-      Another chapter of the tutorial gives an overview of information
-      classified by subject. This is more for reference than to learn
-      about the library the first time.
       </p>
 
       <p>
@@ -73,7 +71,7 @@
         </ul>
 
       <p>
-      As for the tutorials, the API docs need to be generated first,
+      Just as for the tutorials, the API docs need to be generated first,
       if you download <acronym>deal.II</acronym>. Please follow the
       instructions in the 
       <a href="readme.html" target="body">ReadMe file</a> on how to do
index 54899c31e189bc19c4705a3df4518981e0fff590..a234aebabaa278d391992656c1dd054d236a003d 100644 (file)
@@ -42,7 +42,7 @@
       <hr>      
 
        <p>
-         <a href="tutorial/index.html" target="_top">
+         <a href="tutorial/chapter-2.step-by-step/index.html" target="_top">
            Tutorial</a>
        </p>
 
index 06ab483bf00700f2f6ef4bf6fe879b4436b334c6..71a62e9b199871594ffb2d2189597557d18ff8fd 100644 (file)
@@ -4,9 +4,7 @@ step-by-step:
        cd chapter-2.step-by-step ; $(MAKE)
 
 validate-xrefs:
-       cd chapter-1.elements ; $(MAKE) validate-xrefs
        cd chapter-2.step-by-step ; $(MAKE) validate-xrefs
-       cd chapter-3.laplace ; $(MAKE) validate-xrefs
 
 clean:
        cd chapter-2.step-by-step ; $(MAKE) clean
diff --git a/deal.II/doc/tutorial/chapter-1.elements/Makefile b/deal.II/doc/tutorial/chapter-1.elements/Makefile
deleted file mode 100644 (file)
index 9d7bf2c..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-# $Id$
-
-
-# include paths and global variables
-include ../../../common/Make.global_options
-
-
-validate-xrefs:
-       $(PERL) $D/doc/auto/scripts/validate-xrefs.pl *.html
-
-
-.PHONY: validate-xrefs
diff --git a/deal.II/doc/tutorial/chapter-1.elements/adaptivity.html b/deal.II/doc/tutorial/chapter-1.elements/adaptivity.html
deleted file mode 100644 (file)
index 7ad93c5..0000000
+++ /dev/null
@@ -1,242 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"
-   "http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<!-- deal.II tutorial template
-     Jan Schrage and others <deal@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">
-    <meta name="author" content="the deal.II authors <authors@dealii.org>">
-    <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
-</head>
-
-<!-- Page Body -->
-<body lang="en">
-
-<h1>Error Estimate and Adaptivity</h1>
-
-<p>In this chapter we shall discuss</p>
-<ul>
-  <li><a href="#basics">how to use error estimators for adaptive refinement</a>
-  </li>      
-
-  <li><a href="#types">error estimators in <acronym>deal.II</acronym></a>
-  </li>
-
-  <li><a href="#refinement">adaptive refinement</a>
-  </li>
-
-  <li><a href="#example">an example</a> of how all this works
-  </li>
-</ul>
-
-
-<h2><a name="basics">How to use error estimates for adaptive refinement</a></h2>
-
-<p>
-The basic principles of using error estimates for adaptive refinement 
-are rather simple. First, you get an error estimate for each cell.
-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 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>
-
-<p>
-In <acronym>deal.II</acronym> there is exactly on standard error estimator:
-the error estimator by Kelly, Gago, Zienkiewicz and Babuska that 
-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="../../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... gone.
-</p>
-
-<p>
-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_handler</code> giving access to the degrees of 
-       freedom
-  </li> 
-  
-  <li>a <code>Quadrature&lt;dim-1&gt; quadrature</code> describing the
-       quadrature rule to be used for integration on the cell faces
-  </li>
-
-  <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, 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>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="../../auto/kdoc/numerics/KellyErrorEstimator.html">
-         <code>KellyErrorEstimator</code> class documentation</a>).
-  </li>
-</ul>
-<p>
-The Kelly error estimator is then used the following way:
-</p>
-<ol>
-  <li>Include the include file:<br>
-      <code>#include &lt;numerics/error_estimator.h&gt;</code>
-  </li>
-  
-  <li>Define an error estimator for <code>dim</code> dimensions: <br>
-      <code>KellyErrorEstimator&lt;dim&gt; error_estimate;</code> 
-  </li>
-
-  <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>
-
-<h2><a name="refinement">Adaptive Refinement</a></h2>
-
-<p>
-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 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:
-<ul>
-  <li>Refine all cells with an error larger than a given threshold:<br>
-       <code>void refine(const Vector&lt;float&gt; &amp;error, const double
-         threshold)</code>
-  </li>
-  <li>Coarsen all cells with an error less than a given threshold:<br>
-       <code>void coarsen(const Vector&lt;float&gt; &amp;error, const double
-         threshold)</code>
-  </li>
-
-  <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; 
-         &amp;error, const double top_fraction_of_cells, const double
-         bottom_fraction_of_cells)
-       </code>
-  </li>
-
-  <li>Refine those cells which make up a given fraction 
-       <code>top_fraction</code> of the total error,
-       at the same time coarsen a certain fraction of
-       cells <code>bottom_fraction</code> which make up only the 
-       bottom fraction.<br>
-       <code>void refine_and_coarsen_fixed_fraction(const Vector&lt;number&gt; 
-         &amp;error, const double top_fraction, const double
-         bottom_fraction)
-       </code>
-  </li>
-</ul>
-
-<p>
-<b>Remember: In order to actually execute the refinement or coarsening 
-you have to call <code>void execute_coarsening_and_refinement()</code>.</b>
-
-
-<h2><a name="example">Example</a></h2>
-
-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 -->
-<hr>
-<table class="navbar">      
-<tr>
-  <td>
-    <a href="parameters.html">Next Chapter: </a>
-  </td>
-  <td>
-    <a href="toc.html">Back to this chapter's index</a>
-  </td>
-  <td>
-    <a href="../index.html" target="_top">Back to the tutorial index</a>
-  </td>
-</tr>
-</table>
-<hr>
-<address>
-<a href="../../mail.html">The deal.II group</a></address>
-<p>
-
-</p>
-</body>
-</html>
diff --git a/deal.II/doc/tutorial/chapter-1.elements/boundary.html b/deal.II/doc/tutorial/chapter-1.elements/boundary.html
deleted file mode 100644 (file)
index 4a79f21..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"
-   "http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<!-- deal.II tutorial template
-     Jan Schrage and others <deal@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">
-    <meta name="author" content="the deal.II authors <authors@dealii.org>">
-    <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
-</head>
-
-<!-- Page Body -->
-<body lang="en">
-
-<h1>Boundary Conditions</h1>
-
-<h2><a name="boundary">Setting boundary conditions</a></h2>
-
-<p>
-There are two <acronym>deal.II</acronym> functions relevant for us at the moment:
-</p>
-<pre>
-<code>
-void VectorTools::interpolate_boundary_values(...)
-</code>
-</pre>
-<p>
-which does exactly what it says. This function accepts a number
-describing which part of the boundary we want to consider
-and the according function which shall be interpolated on that portion
-of the boundary. It returns a list of
-pairs of degrees of freedom numbers and values denoting the respective 
-Dirichlet boundary values.
-</p>
-<p>
-This output is used by
-</p>
-<pre>
-<code>
-void MatrixTools::apply_boundary_values(...)
-</code>
-</pre>
-<p>
-that inserts the proper boundary conditions into the system of equations.
-</p>
-
-<p class="example">
-<span class="example">Example:</span> We insert Dirichlet boundary conditions into 
-a system of equations of the form <code>Au=f</code>. The vectors <code>u</code> and 
-<code>f</code> and the matrix <code>A</code> have already been initialized, likewise
-the handler for the degrees of freedom <code>dof</code> and the corresponding finite
-element <code>fe</code>.
-</p>
-<pre class="example"><code>
-                      // this will hold the boundary value for
-                      // the degrees of freedom on the boundary
-                      // part with number '0'
-map&lt;int,double&gt; boundary_values;
-                      // and this is some user-defined function
-                      // describing the boundary values
-BoundaryFunction&lt;dim&gt; boundary_function;
-                      // interpolate the DoFs on boundary
-                      // portion '0':
-VectorTools&lt;dim&gt;::interpolate_boundary_values 
-               (dof_handler,
-                0, boundary_function, 
-                boundary_values);
-
-                      // set solution vector to the right size
-u.reinit(dof_handler.n_dofs());
-                      // we assume that the global matrix and
-                      // right hand side have already been
-                      // assembled.
-
-                      // now insert the boundary values into
-                      // the linear system of equations:
-MatrixTools&lt;dim&gt;::apply_boundary_values 
-               (boundary_values,
-                A, u, f);  
-</code></pre>
-<p>
-You may have several different parts of the boundary which are
-identified by different boundary indicators. For example, this is
-commonly the case if you have inflow and outflow boundaries, or if
-your domain has inner boundaries, such as obstacles inside your
-domain. You may then want to associate different boundary functions
-with the different parts of the boundary, and you can do so by
-multiply calling <code>interpolate_boundary_values</code> with
-different boundary indicators (the <code>'0'</code> above) and
-respective functions. Since the function does not clear the contents
-of the map, you may use it for each of this successive calls and pass
-only the final object to <code>apply_boundary_values</code>.
-
-
-<!-- Page Foot -->
-<hr>
-<table class="navbar">      
-<tr>
-  <td>
-    <a href="condense.html">Next Chapter: Condensing the Hanging Nodes</a>
-  </td>
-  <td>
-    <a href="toc.html">Back to this chapter's index</a>
-  </td>
-  <td>
-    <a href="../index.html" target="_top">Back to the tutorial index</a>
-  </td>
-</tr>
-</table>
-<hr>
-<address>
-<a href="../../mail.html">The deal.II group</a></address>
-<p>
-
-</p>
-</body>
-</html>
diff --git a/deal.II/doc/tutorial/chapter-1.elements/condense.html b/deal.II/doc/tutorial/chapter-1.elements/condense.html
deleted file mode 100644 (file)
index ca787aa..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"
-   "http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<!-- deal.II tutorial template
-     Jan Schrage and others <deal@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">
-    <meta name="author" content="the deal.II authors <authors@dealii.org>">
-    <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
-</head>
-
-<!-- Page Body -->
-<body lang="en">
-
-<h1>Condensing the Hanging Nodes</h1>
-
-<p>
-On locally refined grids you get <a href="hanging_nodes.html">hanging nodes</a>
-that need to be integrated into your problem matrix, and before that, into
-the <a href="matrix_structure.html">matrix structure</a>. Hanging nodes are
-constrained degrees of freedom; these constraints need to be taken into
-account when dealing with them. 
-</p>
-<p>
-The <acronym>deal.II</acronym> class 
-that has the ability to handle constraint matrices is called 
-<a href="../../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>
-<li>Clear the hanging nodes so there is no mess left from previous use.
-    Clearing them if they are already cleared doesn't hurt. This is
-    accomplished with the function <code>void ConstraintMatrix::clear()</code>.
-</li>
-<li>
-Create a global sparsity pattern (as described in the chapter on
-<a href="matrix_structure.html">matrix structure</a>) using 
-<code>void DoFTools::make_sparsity_pattern(const DoFHandler&lt;dim&gt; &amp;,
-                                           SparsityPattern &amp;)</code></a>.
-</li>
-<li>
-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
-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.
-</li>
-<li>Finally, condense the hanging nodes into the matrix structure
-using <code>ConstraintMatrix::condense(SparsityPattern &amp;)</code>.
-</li>
-</ol>
-
-<p class="Example">
-<span class="example">Example:</span> We will create a
-constraint matrix for hanging nodes and condense the hanging nodes into our matrix structure. Below we show the includes,
-definitions and
-function calls needed. Be sure to use them in their appropriate places.
-</p>
-<pre class="example">
-<code>
-#include &lt;dofs/dof_handler.h&gt;
-#include &lt;lac/sparse_matrix.h&gt;
-#include &lt;dofs/dof_constraints.h&gt;
-#include &lt;dofs/dof_tools.h&gt;
-
-const unsigned int dim=2; // Work in two dimensions, could also be three
-SparsityPattern sparsity_pattern;
-DoFHandler&lt;dim&gt; dof_handler;
-ConstraintMatrix hanging_nodes; 
-
-hanging_nodes.clear();
-DoFTools::make_sparsity_pattern(dof_handler, sparsity_pattern);
-DoFTools::make_hanging_nodes_constraints(dof_handler, 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">      
-<tr>
-  <td>
-    <a href="solve.html">Next Chapter: Solving the Problem</a>
-  </td>
-  <td>
-    <a href="toc.html">Back to this chapter's index</a>
-  </td>
-  <td>
-    <a href="../index.html" target="_top">Back to the tutorial index</a>
-  </td>
-</tr>
-</table>
-<hr>
-<address>
-<a href="../../mail.html">The deal.II group</a></address>
-<p>
-
-</p>
-</body>
-</html>
diff --git a/deal.II/doc/tutorial/chapter-1.elements/dofs.html b/deal.II/doc/tutorial/chapter-1.elements/dofs.html
deleted file mode 100644 (file)
index 1ed47ec..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"
-   "http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<!-- deal.II tutorial template
-     Jan Schrage and others <deal@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">
-    <meta name="author" content="the deal.II authors <authors@dealii.org>">
-    <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
-</head>
-
-<!-- Page Body -->
-<body lang="en">
-
-<h1>Degrees of Freedom</h1>
-
-<p>
-Degrees of freedom - short DoFs - are needed to associate a numering
-to the shape functions living on our triangulation. Using this
-numbering, we can then interpret the discretized operator as a matrix,
-where the matrix row and column numbers are identified with the DoF
-numbers, and likewise the index of a vector denotes the number of the
-respective degree of freedom.
-</p>
-<p>
-For now we will only discuss how and when to number and renumber the
-degrees of freedom. this needs to be done so <acronym>deal.II</acronym>
-has a consistent numbering.
-</p>
-
-<h2>When to Distribute and Renumber Degrees of Freedom</h2>
-<p>
-Degrees of freedom <em>must always</em> be renumbered after the triangulation
-has changed in any way, i.e. has been created or refined. 
-<b>In particular the degrees of freedom must be distributed after the
-triangulation has been created !</b>
-Degrees of freedom 
-can but should not be renumbered at any other time. The reason is that
-sparse matrix structures and constraint matrices - to name two examples -
-rely on the numbering. If you
-construct a sparse matrix structure and renumber your degrees of freedom
-afterwards the structure will be invalid.
-</p>
-
-
-
-<h2>How to Distribute and Renumber Degrees of Freedom</h2>
-<p>
-The degrees of freedom are distributed on a triangulation using the function<br>
-<code>void DoFHandler&lt;dim&gt;::distribute_dofs(const FiniteElement&lt;dim&gt; &amp;)</code><br>
-The argument to <code>distribute_dofs</code> is a finite element that describes
-how many degrees of freedom are located on vertices, lines etc. 
-(<code>FiniteElement</code> objects have much more functionality than only storing
-these numbers. Parts of this functionality are discussed in the chapter on 
-<a href="matrix_generation.html">matrix and vector
-generation</a>.)
-<code>distribute_dofs</code> works its way through the triangulation cell by
-cell, starting at the coarsest level, and numbers every degree of freedom that is not yet numbered.
-For non-multigrid algorithms it considers only active cells, i.e. cells 
-without children.
-</p>
-<p class="Example">
-<span class="example"><a name="ex_distribute">Example:</a></span> We show the include files, definitions
-and function calls needed. Be sure to use them in their appropriate places.
-This example creates a hypercube and distributes the degrees of freedom.
-The finite elements used are bilinear.
-</p>
-<pre class="example">
-<code>
-#include &lt;grid/tria.h&gt;
-#include &lt;dofs/dof_handler.h&gt;
-#include &lt;grid/grid_generator.h&gt;
-#include &lt;fe/fe_lib.lagrange.h&gt;
-
-// first build up the triangulation
-Triangulation&lt;dim&gt; triangulation;
-GridGenerator::hyper_cube (triangulation,-1,1);
-
-// you may want to refine the triangulation a bit here
-...
-
-// then associate a DoFHandler object with this triangulation...
-DoFHandler&lt;dim&gt; dof_handler (tria);
-
-// ...and distribute degrees of freedom for linear elements
-FEQ1&lt;dim&gt; fe;
-dof_handler.distribute_dofs(fe);
-</code>
-</pre>
-
-<p>
-For a number of solution algorithms this way of numbering is way below
-optimal. In particular, as mentioned above, the degrees of freedom are
-numbered starting on the active cells of coarser levels and going to
-finer levels, but depending on how your triangulation was refined, the
-order in which the cells are traversed will have no geometrical
-pattern. Likewise, the distribution of DoF numbers will look mostly
-random.
-</p>
-<p>
-For some problems, it is better if the numbering of DoFs is roughly
-into a certain direction, for example from inflow to outflow in
-hyperbolic problems.
-To achieve a kind of numbering better suited to your problem the <acronym>deal.II</acronym> 
-offers the class
-<code>DoFRenumbering</code> with several functions implementing
-different ways of renumbering.
-The methods presently available are Cuthill-McKee and reverse
-Cuthill-McKee, and some other methods you will only want to ask for in
-more advanced applications. The first two algorithms are usually much
-better than the one used 
-by <code>distribute_dofs</code>, but neither is optimal (there is no algorithm
-that accomplishes optimal results within a reasonable amount of time).
-Both algorithms require a good point to start numbering from (for
-example one or more degrees of freedom on the inflow boundary) to
-achieve good results.
-</p>
-<p>
-The documentation of the <code>DoFRenumbering</code> gives a good
-overview of how the methods mentioned above work, and how the
-functions performing the re-enumerations have to be called.
-
-
-<!-- Page Foot -->
-<hr>
-<table class="navbar">      
-<tr>
-  <td>
-    <a href="hanging_nodes.html">Next Chapter: Hanging Nodes</a>
-  </td>
-  <td>
-    <a href="toc.html">Back to this chapter's index</a>
-  </td>
-  <td>
-    <a href="../index.html" target="_top">Back to the tutorial index</a>
-  </td>
-</tr>
-</table>
-<hr>
-<address>
-<a href="../../mail.html">The deal.II group</a></address>
-<p>
-
-</p>
-</body>
-</html>
diff --git a/deal.II/doc/tutorial/chapter-1.elements/grid_creation.html b/deal.II/doc/tutorial/chapter-1.elements/grid_creation.html
deleted file mode 100644 (file)
index 4a7bfa4..0000000
+++ /dev/null
@@ -1,308 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"
-   "http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<title>deal.II tutorial: Creation of a Grid</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">
-    <meta name="author" content="the deal.II authors <authors@dealii.org>">
-    <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
-</head>
-
-<body lang="en">
-
-<h1>Creation of a Grid</h1>
-
-<h2>Different kinds of grids</h2>
-
-<p>
-The numerics for which this library was written is always done on a grid. 
-Choosing the right kind of grid can be essential for solving your problem.
-A grid should be chosen to fit your problem space in the best way possible.
-This chapter describes coarse grids for the triangulation of your domain.
-</p>
-<p>
-<acronym>deal.II</acronym> offers various ways to produce grids for
-standard domains, such as 
-a <a href="#cube">hypercube</a>, a <a href="#ball">hyperball</a> 
-and a <a href="#L">hyper_L</a>. There may be more in the meantime (for
-example I can now see a ring domain), and you may want to check out
-the documentation of the <tt>GridGenerator</tt> class for this.
-<p>
-Furthermore it is possible to 
-<a href="#file">read a triangulation from a <tt>ucd</tt>-file</a> or 
-<a href="#program">generate a custom grid from within a program</a>.
-</p>
-<p>We note before actually going to some code snippets that
-a triangulation object must be empty before it is initialized with a
-grid. However, you need not fear now, since the library will tell you
-if you try to initialize a triangulation which is already initialized;
-in general, the library will warn you about almost all errors you do,
-since in the debug version there are very many checks.
-</p>
-
-<h3><a name="cube">Hypercube</a></h3>
-
-<p>
-A hypercube can be created using the function<br>
-<code>void GridGenerator::hyper_cube(Triangulation&lt;dim&gt; &amp;tria,const double left=0.,const double right=1.)</code><br>
-The cube created is the tensor product of the left and right edges which
-default to 0 and 1, creating the unit hypercube. The hypercube will consist of
-exactly one cell. In two dimensions, this amounts to a unit square, in
-three, to a unit cube. In one dimension, you simply get a line.
-</p>
-
-<table class="figure">
-<caption class="figure" align="bottom">Hypercubes in two and three dimensions</caption>
-<td>
-  <img src="../images/Hypercube.gif" alt="Hypercubes" width=536 height=257>
-</td>
-</table>
-         
-<p class="Example">
-<span class="example">Example - create the square [-1,-1]x[-1,1]:</span> Below we show the includes,
-definitions and
-function calls needed. Be sure to use them in their appropriate places.
-</p>
-<pre class="example">
-<code>
-#include &lt;grid/tria.h&gt;
-#include &lt;grid/grid_generator.h&gt;
-
-const unsigned int dim=2;  // Two dimensions; to create a cube set to dim=3
-Triangulation&lt;dim&gt; triangulation;
-
-GridGenerator::hyper_cube (triangulation, -1, 1);
-</code>
-</pre>
-
-
-<h3><a name="ball">Hyperball</a></h3>
-<p>
-A hyperball can be created using the function<br>
-<code>void GridGenerator::hyper_ball(Triangulation&lt;dim&gt; &amp;tria,const Point&lt;dim&gt; center=0.,const double radius=1.)</code><br>
-This will create a hyperball of given centre and radius where the
-location of the centre defaults to the origin and the radius to
-unity. Note that the left figure is scaled a bit large, since the
-corner points of the outer square will later be the points on the
-circles surface in diagonal directions.
-</p>
-
-<table class="figure">
-<caption class="figure" align="bottom">Different levels of refinement for a  2D-Hyperball</caption>
-<td>
-  <img src="../images/hyperballs.gif" alt="Hyperballs" width=399 height=219>
-</td>
-</table>
-
-<p class="Example">
-<span class="example">Example:</span> Below we show the includes,
-definitions and
-function calls needed. Be sure to use them in their appropriate places.
-This example will create a hyperball with unit radius centred on (1,0).
-</p>
-<pre class="example">
-<code>
-#include &lt;grid/tria.h&gt;
-#include &lt;grid/grid_generator.h&gt;
-#include &lt;base/point.h&gt;
-
-const unsigned int dim=2;  // For example
-Triangulation&lt;dim&gt; triangulation;
-Point&lt;dim&gt; centre(1,0); // Taking (1,0) as the centre of the ball
-
-GridGenerator::hyper_ball (triangulation, centre, 1);
-
-</code>
-</pre>
-
-As can be seen above, the unrefined ball (or circle) does not look
-very much like a ball (or circle). After several refinement
-steps, it looks much better, though. However, along the rays pointing
-outward in the initial grid, the cells ar distorted even in the fine
-grid and if you want to do high-accuracy computations on circles, you
-may want to use a better coarse grid than the one on the left.
-
-
-<h3><a name="L">Hyper-L</a></h3>
-<p>
-A hyper-L can be created using the function<br>
-<code>void GridGenerator::hyper_L(Triangulation&lt;dim&gt; &amp;tria,const double left=-1.,const double right=1.)</code><br>
-This will create a hyper-L consisting of 2<sup>dimension</sup>-1 cells. 
-The hyper-L is created from the hypercube [left,right]<sup>dimension</sup> by taking 
-away the hypercube [left+right/2,right]<sup>dimension</sup>. 
-</p>
-<p>
-<span class="parhead">Use of the hyper-L:</span> 
-The hyper-L is mainly of use in testing grid refinement, error estimates etc.
-Boundary conditions of the form <code>u=g</code> on the faces of the original
-hypercube and <code>&part;<sub>n</sub>u=0</code> on the "inner" faces resulting
-from the smaller hypercube taken away  are chosen, this will usually lead to
-a singular solution because of the reentrant corner; these singularities 
-can be used to test the efficiency of error estimators.
-</p>
-
-<table class="figure">
-<caption class="figure" align="bottom">
-Hyper-L in three dimensions (not a good picture, since the proportions
-of short and long lines is not exactly one half, but you might get a
-clue about it)
-</caption>
-<td>
-  <img src="../images/Hyper-L.gif" alt="Hyper-L" width=348 height=321>
-</td>
-</table>
-
-<p class="example">
-<span class="example">Example:</span> Below we show the includes,
-definitions and
-function calls needed. Be sure to use them in their appropriate places.
-This example will create the default hyper-L.
-</p>
-<pre class="example">
-<code>
-#include &lt;grid/tria.h&gt;
-#include &lt;grid/grid_generator.h&gt;
-
-const unsigned int dim=2;  // For example
-Triangulation&lt;dim&gt; triangulation;
-
-GridGenerator::hyper_L (triangulation, -1, 1);
-</code>
-</pre>
-
-
-<h3><a name="file">Reading a grid from a file</a></h3>
-
-<p>In many problems taken from real life you will find those grid types
-insufficient and you will need to create your own grid. 
-This is possible: <acronym>deal.II</acronym> offers the possibility of
-reading a complete triangulation from a file in the <tt>ucd</tt>-format 
-used by avs. A <tt>ucd</tt>-file can be read with the function<br> 
-<code>void GridIn::read_ucd(istream&)</code><br>
-</p>
-
-<p><span class="parhead">
-Since the creation of input grids is probably not something you need to do on a
-daily basis, we will only very briefly describe the format of the
-input file. More information can be found in the documentation of the
-<code>GridIn</code> class.
-</p>
-<p>
-Vertex numbering in input files:</span>
-The vertex numbering must start at the vertex with the lowest number for lines
-and be counterclockwise for quads. Also, faces between adjacent cells
-must face in the same direction. This must be ensured by you, or by the
-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="../../auto/kdoc/grid/GridIn.html" target="_top"> <code>GridIn</code> class description</a>.
-</p>
-
-
-<h3><a name="program">Custom grid creation from within a program</a></h3>
-
-<p>
-Another way to build cutom grids is to use <acronym>deal.II</acronym> methods
-for creating grid cells and their properties. This is done in the order
-<ol>
-<li>vertices</li>
-<li>cells</li>
-<li>boundaries</li>
-<li>create a triangulation from this information</li>
-</ol>
-In fact, this is the way the functions in the
-<code>GridGenerator</code> class use to produce the grids we have
-shown above.
-</p>
-<p class="example">
-<span class="example">Example:</span> Below we show the includes,
-definitions and
-function calls needed. Be sure to use them in their appropriate places.
-This example will create a triangulation as shown in this figure. It will
-work only in two dimensions. It creates three rectangular cells, the leftmost 
-boundary is a Neumann-boundary.
-</p>
-<pre class="example">
-<code>
-// First, create an array holding the (2-dimensional) vertices
-const Point&lt;2&gt; vertices[8] = { Point&lt;2&gt; (0,0),               
-                                 Point&lt;2&gt; (1,0),               
-                                 Point&lt;2&gt; (1,1),
-                                 Point&lt;2&gt; (0,1),            
-                                 Point&lt;2&gt; (2,0),        
-                                 Point&lt;2&gt; (2,1),         
-                                 Point&lt;2&gt; (3,0),      
-                                 Point&lt;2&gt; (3,1)  };
-
-// Next, create a two-dimensional array holding the information
-// on what cell consists of which vertices
-const int cell_vertices[3][4] = {{0, 1, 2, 3},      
-                                 {1, 4, 5, 2},
-                                 {4, 6, 7, 5}};
-
-// Next, create a vector of type CellData&lt;2&gt; that holds the
-// cells
-vector&lt;CellData&lt;2&gt; &gt; cells (3, CellData&lt;2&gt;());             
-
-// The information on the cells is copied into this vector and the 
-// material is set to 0. This index can be used to distinguish cells
-// of different types. 
-for (unsigned int i=0; i&lt;3; ++i)                                        
-  {                                                         
-    for (unsigned int j=0; j&lt;4; ++j)        
-      cells[i].vertices[j] = cell_vertices[i][j];
-    cells[i].material_id = 0;
-  };
-
-// The Neumann boundary is set below:
-// Boundaries are parts of cells, therefore the class is called SubCellData
-// to distinguish them from cell data like vertices and material.
-SubCellData boundary_info;                                       
-
-// We want to describe a line in 2d, which would be a cell in 1d,
-// which is why we can use the object for a 1d cell
-// (CellData&lt;1&gt;) for its description:
-boundary_info.boundary_lines.push_back (CellData&lt;1&gt;());
-
-// The boundary gets a material id of 1. The boundary id of lines in 2d
-// will be interpreted as the boundary id
-boundary_info.boundary_lines[0].material_id = 1;
-
-// The boundary is between vertices number 0 and 3
-boundary_info.boundary_lines[0].vertices[0] = 0; 
-boundary_info.boundary_lines[0].vertices[1] = 3;
-
-// From this information the triangulation is created 
-coarse_grid-&gt;create_triangulation (vector&lt;Point&lt;2&gt; &gt;(&vertices[0],
-                                                       &vertices[8]),
-                                      cells, boundary_info);
-</code>
-</pre>
-
-
-<hr>
-
-<table class="navbar" >      
-<tr>
-  <td>
-    <a href="dofs.html">Next chapter: Degrees of Freedom</a>
-  </td>
-  <td>
-    <a href="toc.html">Back to this chapter's index</a>
-  </td>
-  <td>
-    <a href="../index.html" target="_top">Back to the tutorial index</a>
-  </td>
-</tr>
-</table>
-<hr>
-<address>
-<a href="../../mail.html">The deal.II group</a></address>
-<p>
-
-</p>
-</body>
-</html>
-
diff --git a/deal.II/doc/tutorial/chapter-1.elements/hanging_nodes.html b/deal.II/doc/tutorial/chapter-1.elements/hanging_nodes.html
deleted file mode 100644 (file)
index 74e8173..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"
-   "http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<!-- deal.II tutorial template
-     Jan Schrage and others <deal@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">
-    <meta name="author" content="the deal.II authors <authors@dealii.org>">
-    <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
-</head>
-
-<!-- Page Body -->
-<body lang="en">
-
-<h1>Hanging Nodes</h1>
-
-This chapter discusses one aspect of locally refined grids. Using the
-approach chosen in <acronym>deal.II</acronym>, grids are produced with
-so-called hanging nodes.
-A node is called hanging if its value is subject to a 
-constraint induced by the requirement of globally continuous
-functions. We will make this clearer in the following.
-
-<h2>When do you get hanging nodes?</h2>
-
-<p>
-You get hanging nodes after some refinements. Hanging nodes are those that 
-are situated on the boundary of a larger active cell. The global function 
-is assumed
-to be linear on the boundary of each active cell, therefore the value
-of the hanging node must be adjusted accordingly. Newly created nodes that
-are not situated on boundaries of larger active cells are not subject to this 
-constraint because there is no reason to assume that the global function
-is linear on the boundary of a parent cell.
-Hanging nodes 
-and the constraints they are subject to need to be
-taken into account when generating your matrix structure.
-This is further discussed in the chapters on
-<a href="matrix_structure.html">matrix structure</a> and 
-<a href="condense.html">condensing the hanging nodes</a>.
-</p>
-
-<table class="figure">
-<caption class="figure" align=bottom>Hanging nodes on a locally refined grid</caption>
-<td>
-<img src="../images/hanging_nodes.gif" width=405 height=254
-      alt="Hanging Nodes">
-</td>
-</table>
-
-<h2>Constraints on Hanging Nodes</h2>
-
-<h3>Where do the constraints come from?</h3>
-<p>
-In order to get constraints for your hanging nodes you have to assume
-some function on the boundaries of your cells, as mentioned above.
-Take a linear function on the cell boundary between vertices 1 and 2
-with function values <code>x1</code> and <code>x2</code>. If you get
-a hanging node on this boundary during refinement it will be situated
-in the middle and therefore its value - the value of the function on 
-the boundary at this point - will be <code>x3 = 1/2 (x1+x2)</code>.
-The value <code>x3</code> is therefore not a free degree of freedom,
-but it is bound by this constraining equation and we will have to take
-this into account.
-</p>
-
-<h3>Mathematical implications, or<br>
-why is it a constraint <em>matrix</em> ?</h3>
-
-<p>
-Assume a system <code>Au=f</code> with <code>u</code> being the solution
-vector with all the degrees of freedom of the finite elements, in particular
-base functions associated with hanging nodes, which are not true degrees of 
-freedom of the system of equations.
-</p>
-<p>
-The constraint for hanging nodes now is that we must be able to calculate
-their value from the values of the surrounding nodes by interpolation.
-Let <code>y</code> be a vector with entries corresponding to true degrees of
-freedom only. We must be able to write <code>u</code> as <br>
-<code>u=Cy</code><br>
-where <code>C</code>, the constraint matrix is a square matrix containing the 
-interpolation.
-</p>
-<p>
-Now we have to solve
-</p>
-<pre>
-<code>
-  Au = f
-</code>
-with the constraint, that there is a <code>y</code> satisfying
-<code>
-  u = Cy
-</code>
-From this we get
-<code>
-  C<sup>T</sup>ACy = C<sup>T</sup>f
-</code>
-or, taking
-<code>
-  ~A := C<sup>T</sup>AC, b := C<sup>T</sup>f 
-  ~A y = b.
-</code>
-</pre>
-
-<p>
-It is not possible to generate <code>~A</code> directly, but 
-we can generate <code>A</code> and condense it to <code>~A</code>
-using the constraints, solve the system and obtain <code>u</code> by
-<code>u=Cy</code>.
-</p>
-<!-- Page Foot -->
-<hr>
-<table class="navbar">      
-<tr>
-  <td>
-    <a href="matrix_structure.html">Next Chapter: Matrix Structure</a>
-  </td>
-  <td>
-    <a href="toc.html">Back to this chapter's index</a>
-  </td>
-  <td>
-    <a href="../index.html" target="_top">Back to the tutorial index</a>
-  </td>
-</tr>
-</table>
-<hr>
-<address>
-<a href="../../mail.html">The deal.II group</a></address>
-<p>
-
-</p>
-</body>
-</html>
diff --git a/deal.II/doc/tutorial/chapter-1.elements/index.html b/deal.II/doc/tutorial/chapter-1.elements/index.html
deleted file mode 100644 (file)
index 9cb4311..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"
-   "http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<title>deal.II tutorial: Elements of finite element programs</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">
-    <meta name="author" content="the deal.II authors <authors@dealii.org>">
-    <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
-</head>
-
-<frameset rows="70,*" border=0>
-
-      <frame name="title" src="title.html" frameborder="yes">
-      <frameset cols="150,*" border=0>
-       <frame name="navbar" src="navbar.html" border=0 frameborder="no">
-       <frame name="body" src="toc.html" border=0 frameborder="no">
-      </frameset>
-
-</frameset>
-
-<noframes>
-<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">../../tutorial/chapter-1.elements/toc.html</a>.
-</noframes>
-
-</html>
-
-
-
-
-
diff --git a/deal.II/doc/tutorial/chapter-1.elements/matrix_generation.html b/deal.II/doc/tutorial/chapter-1.elements/matrix_generation.html
deleted file mode 100644 (file)
index 2af2e7a..0000000
+++ /dev/null
@@ -1,253 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"
-   "http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<!-- deal.II tutorial template
-     Jan Schrage and others <deal@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">
-    <meta name="author" content="the deal.II authors <authors@dealii.org>">
-    <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
-</head>
-
-<!-- Page Body -->
-<body lang="en">
-
-<h1>Matrix and Vector Generation</h1>
-
-<h2>Different kinds of matrices</h2>
-<p>
-There are several kinds of matrices which we will deal with: 
-</p>
-<ul>
-<li>
-<a href="#full">Full matrices</a>, i.e. matrices where we store all
-entries, which is useful if the majority of entries is non-zero.
-</li>
-<li>
-<a href="#sparse">Sparse matrices</a>, i.e. matrices where the majority of 
-cells has zero value; these zeroes are not stored in order to save memory.
-</li>
-</ul>
-
-<h3><a name="full">The full matrix</a></h3>
-
-<p>
-The full matrix is useful is we can assume that the we have mostly
-entries of non-zero value.  Since we then store all entries, it
-consumes a lot of memory, much more than the other matrix types.  It
-is initialized using <code>FullMatrix::reinit(const unsigned int rows,
-const unsigned int cols)</code>.
-</p>
-
-<p class="Example">
-<span class="example">Example:</span> We show the include files you need, 
-the definitions and the function calls. Make sure to use them in their
-appropriate places. This example initializes two full matrices of doubles
-with 100 rows and 50 columns in two different ways.
-</p>
-<pre class="example">
-<code>
-#include &lt;dofs/dof_handler.h&gt;
-#include &lt;lac/full_matrix.h&gt;
-
-FullMatrix&lt;double&gt; A;
-
-A.reinit(100,50);
-
-// or, alternatively (important for const objects):
-
-FullMatrix&lt;double&gt; B(100,50);
-
-</code>
-</pre>
-
-
-<h3><a name="sparse">The sparse matrix</a></h3>
-
-<p>
-A sparse matrix is a matrix with mostly zero elements. In other words,
-it is possible to store this matrix efficiently, which can be important
-for large systems of equations. Before generating a sparse matrix you 
-will have to generate a 
-<a href="matrix_structure.html">sparse matrix structure</a> 
-to initialize the sparse matrix with. This is simply due to the fact that
-before you can generate a memory-efficient matrix for your special
-problem you need information about the matrix structure, i.e. where
-the matrix has non-zero entries.
-</p>
-
-
-<p class="Example">
-<span class="example">Example:</span> We show the include files you need, 
-the definitions and the function calls. Make sure to use them in their
-appropriate places. This example initializes a sparse square matrix structure.
-</p>
-<pre class="example">
-<code>
-#include &lt;dofs/dof_handler.h&gt;
-#include &lt;lac/sparse_matrix.h&gt;
-
-
-const unsigned int dim=2; // For example
-SparsityPattern sparsity_pattern;
-SparseMatrix&lt;double&gt; sparse_matrix;
-DoFHandler&lt;dim&gt; dof_handler;
-
-// Your degrees of freedom must already be distributed
-
-sparsity_pattern.reinit (dof_handler.n_dofs(),
-                         dof_handler.n_dofs(),
-                         dof_handler.max_couplings_between_dofs());
-
-// If your grid is locally refined, <a href="matrix_structure.html#sparsity_pattern">condense the hanging nodes</a> into the
-// structure.
-
-sparsity_pattern.compress();
-
-// initialize the actual matrix with the sparsity pattern
-sparse_matrix.reinit (sparsity_pattern);
-</code>
-</pre>
-
-
-<h2>Vector Generation</h2>
-
-<p>
-Vector operations are supplied by the class <code><a
-href="../../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
-<code>N</code> and sets all elements to zero.  If the second parameter
-<code>fast</code> is set true, this means that the entries will not be
-cleared; this is useful if the vector is being assigned to immediately
-after, in which case an initialization with zeroes would be
-redundant. Note that this mode of use is rather uncommon and mostly
-only useful inside linear solvers where it is important to save as
-much computing time as possible.
-</p>
-
-<p>
-In addition to standard vector operations such as addition, multiplication with
-a vector etc. <acronym>deal.II</acronym> provides several vector norms, too:
-</p>
-
-<ul>
-  <li>the l1-norm: <code>Number Vector::l1_norm() const</code></li>
-  <li>the l2-norm: <code>Number Vector::l2_norm() const</code></li>
-  <li>the infinity-norm: <code>Number Vector::infty_norm() const</code></li>
-</ul>
-
-<p class="Example">
-<span class="example">Example:</span>Continuing the above example, 
-we initialize the vector for the right hand side. Recall that the problem 
-matrix is a sparse square matrix of size 
-<code>dof.n_dofs()<sup>2</sup></code>. 
-</p>
-<pre class="example">
-<code>
-#include &lt;lac/vector.h&gt;
-
-Vector&lt;double&gt; f;
-
-f.reinit(dof.n_dofs());
-</code>
-</pre>
-
-
-<h2>A word on memory allocation</h2>
-
-Since vectors and matrices are used <i>very</i> often, it is necessary
-to be rather conservative with operations that may use significant
-computing time. One of such operations is memory allocation and
-de-allocation. For this reason, the <code>reinit</code> functions of
-all vector and matrix classes are implemented in a way to only allow
-the allocated memory to grow, since this reduces the number of times
-allocation and de-allocation has to happen, and in addition reduces
-memory fragmentation.
-</p>
-<p>
-One immediate consequence is that if you write
-<pre class="example">
-<code>
-Vector&lt;double&gt; f;
-f.reinit(100);
-f.reinit(50);
-</code>
-</pre>
-then the second <code>reinit</code> will only have the effect of
-reducing the internal size of the vector, but the memory that is no
-more needed will not be released. Likewise, if you later write
-<pre class="example">
-<code>
-f.reinit(100);
-</code>
-</pre>
-this will again only set the size of the vector to a different value,
-but since enough memory is still allocated, no re-allocation has to
-happen. Only if the required number of entries exceeds the memory
-already allocated, will there be a re-allocation.
-</p>
-<p>
-All matrix and vector classes in <acronym>deal.II</acronym> work this
-way, and in fact this is also the way the standard C++ container
-classes like <code>vector</code> or <code>map</code> work.
-However, this is not very useful if you use vectors or matrices
-as member variables, since at times they may not be used at all if
-your program works on other objects or you are in other parts of the
-object. You would then like to let the vectors and matrices sleep with
-no memory presently lying around unused. For this purpose, all
-matrices and vectors support a mode of their <code>reinit</code>
-function which frees all memory that is presently allocated: just call
-it with parameters such that the new size is zero. For example, the
-following lines will release all memory from their objects:
-<pre class="example">
-<code>
-f.reinit(0);
-full_matrix.reinit(0,0);
-sparse_matrix_struct.reinit (0,0);
-sparse_matrix.reinit (sparse_matrix_struct);
-</code>
-</pre>
-Note that in the last line, you have to pass an empty sparsity pattern
-to the sparse matrix to tell it to release all of its memory.
-
-
-<h4>A word of caution</h4>
-
-It is noted that several vector and matrix classes have a
-<code>clear</code> function. These, however, work differently than
-might be expected from the analogous functions in the C++ standard
-library. There, <code>clear</code> removes all data from the objects
-and resets it into a virgin state. In <acronym>deal.II</acronym>,
-<code>clear</code> only resets the values of a metrix or vector to
-zero, but does not change the size and does no re-allocation
-either. This unfortunate name clash is due to historical reasons.
-
-<!-- Page Foot -->
-<hr>
-<table class="navbar">      
-<tr>
-  <td>
-    <a href="rhs.html">Next Chapter: Problem Matrix and RHS</a>
-  </td>
-  <td>
-    <a href="toc.html">Back to this chapter's index</a>
-  </td>
-  <td>
-    <a href="../index.html" target="_top">Back to the tutorial index</a>
-  </td>
-</tr>
-</table>
-<hr>
-<address>
-<a href="../../mail.html">The deal.II group</a></address>
-<p>
-
-</p>
-</body>
-</html>
diff --git a/deal.II/doc/tutorial/chapter-1.elements/matrix_structure.html b/deal.II/doc/tutorial/chapter-1.elements/matrix_structure.html
deleted file mode 100644 (file)
index f0b7cdd..0000000
+++ /dev/null
@@ -1,225 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"
-   "http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<!-- deal.II tutorial template
-     Jan Schrage and others <deal@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">
-    <meta name="author" content="the deal.II authors <authors@dealii.org>">
-    <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
-</head>
-
-<!-- Page Body -->
-<body lang="en">
-
-<h1>Matrix Structure</h1>
-
-<h2>Why thinking about matrix structures is important</h2>
-<p>
-Many of the matrices encountered when trying to solve systems of differential
-equations consist mostly of zero entries. At the same time those matrices are 
-very large, and therefore storage is expensive in terms of memory. 
-<acronym>deal.II</acronym> attempts to resolve this problem by 
-providing means of generating memory efficient structures for sparse
-matrices where only non-zero elements are stored.
-</p>
-<p>
-To show only two example of matrices which are quite typical of finite
-element discretizations of partial differential equations, we present
-the following two graphics, in which each dot represents a non-zero
-entry of the matrix:
-</p>
-<p>
- <img src="../images/sparsity_1.jpg" alt="Sparsity 1" width="45%">
- <img src="../images/sparsity_2.jpg" alt="Sparsity 2" width="45%">
-</p>
-<p>
-The first is a 300x300 matrix, the second has approximately 4000 rows
-and columns. As can be seen, the vast majority of entries is zero, and
-we can also guess that the proportion of zeroes is even growing as the
-matrix size is increased (this is in fact so, but can not so clearly
-be seen from the pictures, admittedly). The equation discretized to
-yield these matrices is rather complex, so the number of non-zero
-entries per row is quite large for finite element matrices.
-Both matrices were derived after renumbering of the degrees of freedom
-using the algorithm of Cuthill-McKee, which concentrates the entries
-around the diagonal of the matrix.
-
-
-<h2>Ways of dealing with matrix structures provided by <acronym>deal.II</acronym></h2>
-<p>
-Before you can build the appropriate matrices for your problem you
-need to ascertain where the components of your matrix are non-zero 
-and generate a structure for storing the matrix accordingly. 
-This structure
-is then used to actually initialize the matrix, i.e.
-tell the matrix for which elements to allocate memory.
-</p>
-
-<h3>The Standard Sparse Matrix</h3>
-<p>
-The <acronym>deal.II</acronym> function initializing a standard sparse matrix
-structure is <code>void SparsityPattern::reinit(const unsigned int m, const unsigned int n, const unsigned int max_per_row)</code>. It takes as its arguments
-the size of the matrix in question and the maximum number of non-zero elements
-in one row. This first sets up a blank sparsity pattern which,
-however, has as yet no information which entries are non-zero.
-</p>
-<p>
-Before going on with showing how to find out which elements are
-non-zero, we have to talk about how to find out about the maximum
-number of non-zero entries per row which we will need for our matrix.
-Since this number depends of the actual finite element used (higher
-order elements need more non-zero entries than linear elements, for
-example), of the equation under consideration, and of some properties
-of the triangulation on which we want to do our computations. Since
-all these factors can't be considered by the user all the time, there
-is a library function which does the necessary computations for you:
-<code>unsigned int DoFHandler::max_couplings_between_dofs()</code>.
-We note that this function was written to cope with refined grids, and
-if you only have structured grids without local refinement and hanging
-nodes, the result of this function will overestimate the maximal
-number of non-zero entries per row.
-</p>
-<p>
-After having fixed the basic properties of the sparsity structure, we
-can tell it which entries actually are non-zero. This is again done
-using a library function,
-<code>DoFTools::make_sparsity_pattern</code>. Then we have to take
-into account that constraints due to hanging nodes (see the previous
-chapter) add some more non-zero entries, which is again done using 
-some library functions (see the example below). After this, we can
-instruct the sparsity pattern to throw out all unused elements
-(in those rows where the actual number of non-zero elements is less
-than the maximal number given to <code>reinit</code>, we can discard
-the unused one to save some more memory). This is discussed in the
-next subsection.
-</p>
-<p>
-This matrix structure can then be used to serve as sparsity pattern to
-one or several matrices using 
-<code>void SparseMatrix::reinit(const SparsityPattern &amp;sparsity)</code>.
-We note the distinction that the <code>SparsityPattern</code> only
-stores the places of the non-zero elements, while the
-<code>SparseMatrix</code> actually stores the values of these
-elements. The separation was made since often several matrices are
-needed with the same sparsity pattern, but different entry values;
-this way, we can save some memory space.
-</p>
-
-<p class="Example">
-<a name="sparsity_pattern"><span class="example">Example:</span></a> We show the include files you need, 
-the definitions and the function calls. Make sure to use them in their
-appropriate places. This example initializes a sparse square matrix structure.
-</p>
-<pre class="example">
-<code>
-#include &lt;dofs/dof_handler.h&gt;
-#include &lt;lac/sparse_matrix.h&gt;
-#include &lt;dofs/dof_tools.h&gt;
-
-
-const unsigned int dim=2; // For example
-SparsityPattern sparsity_pattern;
-DoFHandler&lt;dim&gt; dof_handler;
-
-// set up a triangulation, refine it, associate the DoFHandler object
-// shown above to it, and distribute the degrees of freedom
-...
-
-// now fix the size of the matrix and the maximal number
-// of non-zero entries:
-sparsity_pattern.reinit (dof_handler.n_dofs(),
-                         dof_handler.n_dofs(),
-                         dof_handler.max_couplings_between_dofs());
-
-// tell the sparsity pattern which entries are non-zero:
-make_sparsity_pattern (dof_handler, sparsity_pattern); 
-
-// Condense the <a href="hanging_nodes.html">hanging nodes</a> into
-// the matrix structure, taking into account the constraints due to
-// the hanging nodes. 
-// You can skip this part if your grid is not locally refined.
-ConstraintMatrix hanging_nodes; 
-dof_handler.make_constraint_matrix(hanging_nodes);
-hanging_nodes.condense (sparsity_pattern);
-</code>
-</pre>
-
-<h3>Compression of Matrix Structures</h3>
-
-<p>
-Sparse matrix structures can (and indeed must) be compressed before they are used 
-in objects of the class <code>SparseMatrix&lt;&gt;</code> that actually hold the matrix
-data. The reason for this is the way matrix structures and matrices are generated:
-<ul>
-      <li>Initially a fixed number of non-zero entries is allocated for each matrix row.
-       Usually, though, rows will have much less entries than this maximum number. Rows
-       rows corresponding to degrees of freedom
-       on cells with hanging nodes have more entries than rows corresponding to degrees of freedom
-       in regular regions of the grid.
-      </li>
-      <li> When you compress the matrix structure
-       you stop adding new non-zero entries and all unused entries in each row
-       are deleted. Thus memory is saved.
-      </li>
-      <li> Only now are you allowed to associate this matrix structure
-       to a matrix object which then allocates memory for each non-zero entry,
-       rather than for the maximum number of non-zero entries of each row.
-      </li>
-</ul>
-
-The appropriate function is <code>void SparsityPattern::compress()</code>.
-</p>
-
-<p class="Example">
-<span class="example">Example:</span> Starting from <a href="#sparsity_pattern">the example above</a>, we
-compress our matrix structure <code>sparsity_pattern</code>.
-</p>
-<pre class="example">
-<code>
-sparsity_pattern.compress();
-</code>
-</pre>
-
-
-<h3>More complex matrices</h3>
-
-Finally, we note that in some cases not all variables in a system of
-partial differential equations couple to each other, or that the
-operators have a special structure. For this reason, there are more
-specialized version of the
-<code>DoFTools::make_sparsity_pattern</code> and 
-<code>SparsityPattern::reinit</code> functions, which allow you to
-more flexibly determine the actual number of non-zero elements of all
-or individual rows. See the documentation of the respective classes
-for more information.
-
-
-<!-- Page Foot -->
-<hr>
-<table class="navbar">      
-<tr>
-  <td>
-    <a href="matrix_generation.html">Next Chapter: Matrix and Vector Generation</a>
-  </td>
-  <td>
-    <a href="toc.html">Back to this chapter's index</a>
-  </td>
-  <td>
-    <a href="../index.html" target="_top">Back to the tutorial index</a>
-  </td>
-</tr>
-</table>
-<hr>
-<address>
-<a href="../../mail.html">The deal.II group</a></address>
-<p>
-
-</p>
-</body>
-</html>
-
diff --git a/deal.II/doc/tutorial/chapter-1.elements/navbar.html b/deal.II/doc/tutorial/chapter-1.elements/navbar.html
deleted file mode 100644 (file)
index 3fee673..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"
-   "http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<title>deal.II tutorial: Structure of a Finite Element Program</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">
-    <meta name="author" content="the deal.II authors <authors@dealii.org>">
-    <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
-</head>
-<body style="background-image:url(../../pictures/deal.II-text.jpg);" lang="en">
-
-<p>
-<strong>Table of contents</strong>
-</p>
-    <dl>
-      <li>
-       <p>
-         <a href="toc.html" target="body">Long table of contents</a>
-       </p>
-      </li>
-      <li>
-       <p>
-         <a href="grid_creation.html" target="body">Creation of a grid</a>
-       </p>
-      </li>
-
-      <li>
-       <p>
-         <a href="dofs.html" target="body">Degrees of Freedom</a>
-       </p>
-      </li>
-      
-      <li>
-       <p>
-         <a href="hanging_nodes.html" target="body">Hanging Nodes</a>
-       </p>
-      </li>
-      
-      <li>
-       <p>
-         <a href="matrix_structure.html" target="body">Matrix Structure</a>
-       </p>
-      </li>
-
-      <li>
-       <p>
-         <a href="matrix_generation.html" target="body">Matrix and Vector Generation</a>
-       </p>
-      </li>
-      
-      <li>
-       <p>
-         <a href="rhs.html" target="body">The Problem Matrix and the Right Hand Side</a>
-       </p>
-      </li>
-
-      <li>
-       <p>
-         <a href="boundary.html" target="body">Boundary Conditions</a>
-       </p>
-      </li>
-      
-      <li>
-       <p>
-         <a href="condense.html" target="body">Condensing the Hanging Nodes</a>
-       </p>
-      </li>
-
-      <li>
-       <p>
-         <a href="solve.html" target="body">Solving the Problem</a>
-       </p>
-      </li>
-
-      <li>
-       <p>
-         <a href="postprocess.html" target="body">Postprocessing</a>
-       </p>
-      </li>
-      
-      <li>
-       <p>
-         <a href="adaptivity.html" target="body">Error Estimation and Adaptivity</a>
-       </p>
-      </li>
-      
-      <li>
-       <p>
-         <a href="parameters.html" target="body">Parameter Input</a>
-       </p>
-      </li>
-
-      <li>
-       <p>
-         <a href="output.html" target="body">Grid and Data Output</a>
-       </p>
-      </li>
-    </dl>
-    <p>
-      <a href="../index.html" target="_top">Back to the tutorial index</a>
-    </p>
-
-    <p>
-      <a href="../../index.html" target="_top">Back to the deal.II homepage</a>
-    </p>
-
-
-    <hr>
-
-    <p>
-      <a href="../../mail.html">Comments on the tutorial</a>
-    </p>
-
-<!-- Last modified: $Date$ -->
-
-</body>
-</html>
-
-
-
-
-
diff --git a/deal.II/doc/tutorial/chapter-1.elements/output.html b/deal.II/doc/tutorial/chapter-1.elements/output.html
deleted file mode 100644 (file)
index 248c07d..0000000
+++ /dev/null
@@ -1,736 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"
-   "http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<!-- deal.II tutorial template
-     Jan Schrage and others <deal@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">
-    <meta name="author" content="the deal.II authors <authors@dealii.org>">
-    <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
-</head>
-
-<!-- Page Body -->
-<body lang="en">
-
-<h1>Grid and Data Output</h1>
-
-<p>
-Grid and data output becomes a difficult thing as soon as flexibility
-in terms of different output formats and which parts of the data 
-are actually written is required.
-Consequently, there is a bunch of classes in <acronym>deal.II</acronym>, 
-every one dealing with a different aspect of the problem. You, the 
-user, however, need to concern yourself only with two ouput classes:
-<code>GridOut</code> and <code>DataOut</code> handling the output of
-grid and data, respectively.  In addition there is one class for
-each kind of output storing the parameters for this particular 
-format. These parameters are common to both grid and data ouput 
-and are used by both <code>GridOut</code> and <code>DataOut</code>.
-</p>
-
-<p>
-Since <acronym>deal.II</acronym> is fairly versatile when it comes
-to graphics output we shall have to talk about the following topics
-in depth:
-</p>
-
-<ul class="pagetoc">
-  <li><a href="#formats">Graphics formats</a> for 
-       <code>GridOut</code> and <code>DataOut</code>
-  </li>
-  
-  <li><a href="#parameters">Parameters</a> for the different formats
-       common to both <code>GridOut</code> and <code>DataOut</code>
-  </li>
-
-  <li><a href="#usage">Usage of <code>DataOut</code></a>
-  </li>
-
-  <li><a href="#usage">Usage of <code>GridOut</code></a>
-  </li>
-</ul>
-
-<hr>
-<hr>
-
-<h2><a name="formats">Graphics Formats</a></h2>
-<p>
-<acronym>deal.II</acronym> provides a class called <code>DataOut</code>
-dealing with the output of simulation data and a class called
-<code>GridOut</code> handling the output of grid (triangulation) data. 
-Both are fairly versatile and can handle a 
-number of different data formats.
-</p>
-
-<h3><code>DataOut</code> graphics formats</h3>
-<p>
-The graphics formats available in <code>DataOut</code> are:
-</p>
-<ul>
-  <li><a href="#ucd">Unstructured Cell Data (ucd)</a>
-  </li>
-
-  <li><a href="#gnuplot">Gnuplot</a>, in two different qualities.
-  </li>
-
-  <li><a href="#eps">Encapsulated Postscript (eps)</a>
-  </li>
-
-  <li><a href="#pov">PoVRay mesh data</a>, for use with the PoVRay raytracer.
-  </li>
-
-  <li><a href="#gmv">General Mesh Viewer</a>
-  </li>
-</ul>
-
-
-<h3><code>GridOut</code> graphics formats</h3>
-<p>
-The graphics formats available in <code>GridOut</code> are:
-</p>
-<ul>
-  <li><a href="#grid_ucd">Unstructured Cell Data (ucd)</a>
-  </li>
-
-  <li><a href="#grid_gnuplot">Gnuplot</a>
-  </li>
-
-  <li><a href="#grid_eps">Encapsulated Postscript (eps)</a>
-  </li>
-</ul>
-
-<hr>
-<hr>
-
-<h2><a name="parameters">Parameters for grid and data output</a></h2>
-
-<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. It is
-also worthwhile to look at the online documentation to see whether
-additional flags have been introduced in the meantime.
-</p>
-
-
-<h3>UcdFlags</h3>
-
-<p>
-This class provides the settings for ucd output. The values in brackets
-denote the default values.
-</p>
-<ul>
-      <li><code>bool write_preamble</code> (true): 
-         Determines whether to write a preamble containing creation
-         date etc.
-      </li>
-</ul>
-
-<h3>GnuplotFlags</h3>
-
-<p>
-This class provides the settings for gnuplot output. At present it
-is empty.
-</p>
-
-<h3>EpsFlags</h3>
-
-<p>
-This class provides the settings for EPS output. The values in brackets
-denote the default values.
-</p>
-
-<ul>
-      <li><code>unsigned int height_vector</code> (0):
-       Number of the data vector to be used for generation of the height 
-       information. The number is determined by the order in which 
-       <code>DataOut&lt;dim&gt;::add_data_vector</code> was called
-       for the different vectors.
-      </li>
-      <li><code>unsigned int color_vector</code> (0):
-       Number of the data vector to be used for colorizing cells.
-       The number is determined by the order in which 
-       <code>DataOut&lt;dim&gt;::add_data_vector</code> was called
-       for the different vectors.
-      </li>
-      <li><code>SizeType sizetype</code> (width):
-       Determines whether the width or the height is used to scale
-       the output. Can be set to width or height.
-      </li>
-      <li><code>unsigned int size</code> (300): 
-       Size of the output in points. One point is 1/72 inch.
-      </li>
-      <li><code>double line_width</code> (0.5):
-       Width of a line in points. One point is 1/72 inch.
-      </li>
-      <li><code>double azimut_angle</code> (60):
-       Viewing angle with respect to the positive z-axis.
-      </li>
-      <li><code>double turn_angle</code> (30):
-       We quote the class documentation:
-       <cite>Angle by which the viewers position projected onto the 
-         x-y-plane is rotated around the z-axis, in positive sense when 
-         viewed from above. The unit are degrees, and zero
-         equals a position above or below the negative y-axis.
-       </cite>
-      </li>
-      <li><code>double z_scaling</code> (1):
-       Factor by which the z-axis is stretched compared to the
-       x- and y-axis.
-      </li>
-      <li><code>bool draw_mesh</code> (true): 
-       Determines whether the cell boundaries are drawn.
-      </li>
-      <li><code>bool draw_cells</code> (true): Determines whether the
-       cells are drawn. If this flag is true and 
-       <code>shade_cells</code> is false the cells are filled with white.
-      </li>
-      <li><code>bool shade_cells</code> (true):
-       Determines whether to colour cells. 
-      </li>
-      <li><code>ColorFunction color_function</code> (&amp;default_color_function):
-       Determines the function to use for colouring the cells. The default
-       shifts the colours from black for the lowest values through the
-       spectrum towards white.
-      </li>
- </ul>
-
-<h3>PovrayFlags</h3>
-<p>
-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>
-<p>
-This class provides the settings for General Mesh Viewer output. At present it 
-is empty.
-</p>
-
-
-<hr>
-<hr>
-
-<h2><a name="usage">General description of the usage of 
-<code>DataOut</code></a></h2>
-
-<p>
-What exactly it is you need to do in order to make use of the 
-<code>DataOut</code> 
-class is described in the table below. Note that data is written to an 
-<code>ostream</code>. That means you have to attach your <code>ostream</code>
-to a file if you want to use the data later on.
-</p>
-
-<table>
-<caption><b>Usage of the <code>DataOut</code> class</b></caption>
-<tr>
-  <td><b>Step</b>
-  </td>
-  <td><b>What to do</b>
-  </td>
-  <td><b>Function call</b>
-  </td>
-</tr>
-<tr>
-  <td>1.</td>
-  <td>Use the correct include-file.
-  </td>
-  <td><code>#include &lt;numerics/data_out.h&gt;</code>
-  </td>
-</tr>
-<tr>
-  <td>2.</td>
-  <td>Create an object of this class with the right dimension. 
-      It takes no initialization parameters.
-  </td>
-  <td><code>DataOut&lt;dim&gt; my_data_out;</code>
-  </td>
-</tr>
-<tr>
-  <td>3.
-  </td>
-  <td>Attach a <a href="dofs.html"><code>DoFHandler</code></a> 
-      object to your <code>DataOut</code>
-      object. This <code>DoFHandler</code> 
-      is used to extract geometry
-      data and the mapping between nodes and node values.
-  </td>
-  <td><code>
-        void DataOut&lt;dim&gt;::attach_dof_handler(const DoFHandler&lt;dim&gt; &amp;)
-      </code>
-  </td>
-</tr>
-<tr>
-  <td>4.
-  </td>
-  <td>Add data vectors to be written to a file. The second and third argument
-      are the name of the vector and its physical units.
-  </td>
-  <td><code>
-        void DataOut&lt;dim&gt;::add_data_vector(const Vector&lt;double&gt; &amp;data,
-        const string &amp;name, const string &amp;
-       units=&quot;&lt;dimensionless&gt;&quot;)
-      </code>
-  </td>
-</tr>
-<tr>
-  <td>5.
-  </td>
-  <td>Generate an <code>ostream</code> (and, normally, attach it to a file).
-  </td>
-  <td><code>
-      ofstream out("filename");
-      </code>
-  </td>
-</tr>
-<tr>
-  <td>6.
-  </td>
-  <td>Write your data to this ofstream. The second parameter denotes the 
-      output format to be used. It must be one of <code>{ ucd, gnuplot, 
-      gnuplot_draft,
-      povray_mesh, eps, gmv }</code>.
-  </td>
-  <td><code>void DataOut&lt;dim&gt;::write(ostream &amp;out, const OutputFormat output_format)</code>
-  </td>
-</tr>
-</table>
-
-
-<hr>
-
-<h2><a name="dataout_formats"><code>DataOut</code> data formats</a></h2>
-
-<h3><a name="ucd">Unstructured Cell Data (ucd)</a></h3>
-
-<p>
-The ucd data format is described in the AVS developer's guide. There
-are a binary and a ASCII version of this format. <acronym>deal.II</acronym>
-uses the ASCII ucd format.
-</p>
-
-<h4>Limitations of the ucd format</h4>
-<p>
-Only node based data can be written, higher order elements are written
-with their node values, not with interior or line values. This is
-due to limitations in the present format. In this implementation
-it is not possible to give model data since this is not widely supported.
-It is possible to give cell data.
-</p>
-
-<h4>Usage of the ucd format</h4>
-
-<p>
-In order to write your data in ucd format you need to follow the
-steps described in the section on the <a href="#usage">usage of 
-<code>DataOut</code></a>. 
-The data is written using <code>void write(ostream &amp;out,"ucd")</code>.
-</p>
-
-
-<h3><a name="gnuplot">Gnuplot data format</a></h3>
-
-<h4>Understanding gnuplot data</h4>
-
-<p>
-The gnuplot data format is a pure ASCII format where each line is 
-of the form<br>
-<code>x v1 v2 ...</code><br>
-for one-dimensional data and<br>
-<code>x y v1 v2 ...</code><br>
-for two-dimensional data.<br>
-<code>x</code> and <code>y</code> denote the grid coordinates,
-<code>v<sub>i</sub></code> denote the vertex values.
-</p>
-
-<p>
-A somewhat more elaborate description can be found in the 
-<a href="http://www.cs.dartmouth.edu/gnuplot/gptug.ps">Gnuplot User's Guide (Postscript)</a>
-</p>
-
-<h4>Viewing gnuplot data</h4>
-
-<p>
-In order to view a one-dimensional plot you use<br>
-<code>
-plot &quot;filename&quot; using 1:x</code><br>
-where <code>x</code> denotes the number of the vertex you wish to plot.
-</p>
-
-<p>
-In order to view your grid in two dimensions you should use<br>
-<code>
-set data style lines<br>
-plot &quot;filename&quot;<br>
-</code>
-and to finally see your results<br>
-<code>
-set data style lines<br>
-plot &quot;filename&quot; using 1:2:x
-</code><br>
-where again <code>x</code> denotes the number of the vertex 
-to be plotted.
-</p>
-
-
-<h4>Limitations of the gnuplot data format</h4>
-
-<p>The limitations of the gnuplot data format have been well described
-in the 
-<a href="../../auto/kdoc/base/DataOutBase.html">
-<code>DataOutBase</code> class description</a>:
-</p>
-<blockquote>
-<p>
-This format is somewhat restricted to coninuous data and to finite
-elements of first order only. The reason for the first restriction is
-that it takes nodal values and can therefore only work if a finite
-element has degrees of freedom in the vertices of each cell. This is
-not the case for discontinuous elements. The second restriction is
-only a problem of quality of output: you actually can print quadratic
-or higher order elements using this style, but you will only see the
-contour of each cell with the bounding lines of each cell being
-straight lines. You won't see the structure of the solution in the
-interior of a cell nor on the lines bounding it.
-</p>
-</blockquote>
-
-<h4>The two different qualities of gnuplot output</h4>
-
-<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="../../auto/kdoc/base/DataOutBase.html">
-<code>DataOutBase</code> class description</a>:
-</p>
-
-<blockquote>
-<p>
-To remedy the abovementioned problems, the gnuplot &quot;quality&quot; format 
-was introduced. [...] gnuplot can handle tensor grids and 
-displays them quite nicely,
-including hidden line removal. It can also handle more than one tensor grid, 
-then called a patch. The idea now is to describe each cell as a patch of 
-<code>N x N</code> points (in 2D).
-For linear elements, <code>2 x 2</code> is sufficient, but for elements
-of higher order you will want to use a higher number. The 
-<code>write_gnuplot</code> 
-function writes the data in this format and
-the argument it takes is the number of subintervals it divides each cell into,
- i.e. <code>N-1</code>. 
-</p>
-<p>
-This output routine also addresses the problem introduced with discontinuous 
-elements, since it takes its data locally from each cell and displays it as a 
-patch separately; it
-therefore does not use continuity and gnuplot will also plot discontinuities 
-if there are any. 
-</p>
-</blockquote>
-
-
-<h4>Usage of the gnuplot data format</h4>
-
-<p>
-In order to write your data in gnuplot format you need to follow the
-steps described in the section on the <a href="#usage">usage of 
-<code>DataOut</code></a>. 
-The data is written using 
-</p>
-<ul>
-<li>
-  <code>void write(ostream &amp;out,"gnuplot_draft")</code> for the lower 
-  (draft) quality output.
-</li>
-<li>
-  <code>void write(ostream &amp;out,"gnuplot")</code> for the high quality
-  output. 
-</li>
-</ul>
-
-<h3><a name="eps">Encapsulated Postscript (EPS)</a></h3>
-
-<p>EPS output of <acronym>deal.II</acronym> data consists of the grid
-and the cells. The cells can be left empty, printed white (which leads
-to hidden-line removal) or colorized using a data vector. This format
-does not support gradient shading, i.e. each cell has one color which 
-is taken from the value of the data in its centre. Coordinates 
-have at most five digits, and the EPS files do not have an explicit 
-bounding box, i.e. the bonding box is close to the graphics on  
-all four sides. <em>EPS output can only be used for two-dimensional
-data.</em>
-</p>
-
-<p>EPS otput is performed by calling <br>
-<code>void DataOut&lt;dim&gt;::write_eps(ostream &amp;out)</code>
-</p>
-
-
-<h3><a name="pov">PoVRay output</a></h3>
-
-<p>
-PoVRay is a most comprehensive raytracer freely available at 
-<a href="http://www.povray.org">http://www.povray.org</a>. 
-This is also the place to start looking for more information
-on its features.
-</p>
-
-<p>PoVRay output is accomplished by calling<br>
-<code>DataOut&lt;dim&gt;::write_povray(ostream &amp;out)</code><br>
-At present there is no more information available on PoVRay output
-in <acronym>deal.II</acronym>.
-</p>
-
-
-<h3><a name="gmv">General Mesh Viewer (gmv) output</a></h3>
-
-<p>
-The General Mesh Viewer can display data in both 2D, 3D and cuts through
-data sets. More information on the gmv is available at
-<a href="http://www-xdiv.lanl.gov/XCM/gmv/GMVHome.html">
-http://www-xdiv.lanl.gov/XCM/gmv/GMVHome.html</a>
-At present the gmv cannot output postscript or EPS data.
-</p>
-
-<p>
-gmv output is accomplished by calling<br>
-<code>void DataOut&lt;dim&gt;::write_gmv(ostream &amp;out)</code><br>
-There is no more information available on the output format.
-</p>
-
-<hr>
-<hr>
-
-<h2><a name="grid_usage">General description of the usage of 
-<code>GridOut</code></a></h2>
-
-<p>
-What exactly it is you need to do in order to make use of the 
-<code>GridOut</code> 
-class is described in the table below. Note that data is written to an 
-<code>ostream</code>. That means you have to attach your <code>ostream</code>
-to a file if you want to use the data later on.
-</p>
-
-<p>
-There are essentially two ways to use <code>GridOut</code>: If you don't need
-to change any of the default parameters (which will be explained along with 
-the graphics formats) you can use the class almost as if its methods
-were static. There is no need to create a <code>GridOut</code> object
-in advance.
-</p>
-
-<p>
-The second method requires the creation of a <code>GridOut</code> object
-to which parameters can be passed. 
-</p>
-
-<table>
-<caption><b>Usage of the <code>GridOut</code> class with the default parameters</b></caption>
-<tr>
-  <td><b>Step</b>
-  </td>
-  <td><b>What to do</b>
-  </td>
-  <td><b>Function call</b>
-  </td>
-</tr>
-<tr>
-  <td>1.</td>
-  <td>Use the correct include-file.
-  </td>
-  <td><code>#include &lt;grid/grid_out.h&gt;</code>
-  </td>
-</tr>
-<tr>
-  <td>2.
-  </td>
-  <td>Generate an <code>ostream</code> (and, normally, attach it to a file).
-  </td>
-  <td><code>
-      ofstream out("filename");
-      </code>
-  </td>
-</tr>
-<tr>
-  <td>3.
-  </td>
-  <td>Write your data to the ofstream by calling the appropriate 
-      <code>write</code> method giving your triangulation object and
-      the output file type as parameters. <code>output_format</code>
-      is one of {ucd,gnuplot, eps}.
-  </td>
-  <td><code>void GridOut().write(const Triangulation&lt;dim&gt; &amp; tria,ostream &amp;out, const OutputFormat output_format)</code><br>        
-  </td>
-</tr>
-</table>
-
-<table>
-<caption><b>Usage of the <code>GridOut</code> class with new parameters</b></caption>
-<tr>
-  <td><b>Step</b>
-  </td>
-  <td><b>What to do</b>
-  </td>
-  <td><b>Function call</b>
-  </td>
-</tr>
-<tr>
-  <td>1.</td>
-  <td>Use the correct include-files.
-  </td>
-  <td><code>#include &lt;grid/grid_out.h&gt;</code><br>
-      <code>#include &lt;numerics/data_out_base.h&gt;</code>
-  </td>
-</tr>
-<tr>
-  <td>2.
-  </td>
-  <td>Generate an <code>ostream</code> (and, normally, attach it to a file).
-  </td>
-  <td><code>
-      ofstream out("filename");
-      </code>
-  </td>
-</tr>
-<tr>
-  <td>3.
-  </td>
-  <td>Generate a <code>GridOut&lt;dim&gt;</code> object.
-  </td>
-  <td><code>GridOut&lt;dim&gt; my_grid_out;</code><br>   
-  </td>
-</tr>
-<tr>
-  <td>4.
-  </td>
-  <td>Set your parameters (in this example for ucd).
-  </td>
-  <td><code>UcdFlags ucd_flags;<br> 
-      ucd_flags.write_preamble = 1;<br>
-      my_grid_out.set_flags(ucd_flags);
-      </code>
-  </td>
-</tr>
-<tr>
-  <td>5.
-  </td>
-  <td>Write your data to the ostream by calling the appropriate 
-      <code>write</code> method giving your triangulation object and
-      the output file type as parameters. <code>output_format</code>
-      is one of {ucd,gnuplot, eps}.
-  </td>
-  <td><code>void my_grid_out.write(const Triangulation&lt;dim&gt; &amp; tria,ostream &amp;out, const OutputFormat output_format)</code><br>      
-  </td>
-</tr>
-</table>
-
-<hr>
-
-<h2><a name="gridout_formats"><code>GridOut</code> data formats</a></h2>
-
-
-<h3><a name="grid_ucd">Unstructured Cell Data (ucd)</a></h3>
-
-<p>
-The ucd data format is described in the AVS developer's guide. There
-are a binary and a ASCII version of this format. <acronym>deal.II</acronym>
-uses the ASCII ucd format.
-</p>
-
-<p>
-The ucd data format is special because it can not only be written but
-also read by <acronym>deal.II</acronym>. I.e. you can use a triangulation
-written to a ucd-file as a starting triangulation for 
-<acronym>deal.II</acronym>. In order to be able to reuse your triangulation
-you will need to explicitly write all of your boundary indicators that
-are not zero to the output file. Otherwise, upon reloading the triangulation,
-all your boundaries will be labelled with the default value, zero.
-There is a flag in the class <code>UcdFlags</code>
-controlling <code>GridOut</code> with respect to whether
-boundary indicators are explicitly written: 
-<code>bool UcdFlags::write_preamble</code>. It defaults to true, i.e.
-boundary indicators are written by default and you can use the first,
-simpler method for writing ucd-files.
-</p>
-
-<h3><a name="grid_gnuplot">Gnuplot data format</a></h3>
-
-<p>
-Gnuplot output is performed by calling<br>
-<code>void write_gnuplot (const Triangulation&lt;dim&gt; &amp;tria, 
-ostream &amp;out)  </code><br>
-It is controlled by the class <code>GnuplotFlags</code>.
-</p>
-
-<p>
-In Gnuplot format the boundaries of each cell 
-are written as a sequence of lines to your output stream. 
-Output can be modified by the following flags:
-</p>
-<ul>
-  <li><code>GnuplotFlags::write_cell_numbers</code>:
-       If this is set the (internal) number of each cell is written to the
-       output file before the cell data.
-  </li>
-  <li><code>GnuplotFlags::write_level</code>: If this flag
-       is set the refinement level of each cell is written as an
-       additional column. This can be used to raise the cells according
-       to their refinement level if a 2D-grid is plotted as 3D, or, 
-       alternatively, to plot only the cells within a given range of 
-       levels of refinement using<br>
-       <code>splot [:][:][level1:level2] &quot;filename&quot;</code> 
-  </li>
-</ul>
-<p>
-Contrary to, e.g., EPS, you do not need to set a viewpoint. 
-</p>
-
-<h3><a name="grid_eps">Encapsulated Postscript</a></h3>
-
-<p>
-EPS output is performed using the parameters set forth in the class
-<code>EpsFlags</code>. Grid output in the EPS format is always 
-two-dimensional; 3D-grids are viewed from a given viewpoint
-without hidden-line removal.
-EPS output is performed by calling<br>
-<code>GridOut::write_eps (Triangulation&amp; tria, ostream&amp; output)</code>
-<br>
-Alternatively, you can use the general <code>GridOut::write</code> method
-as explained in the part on the <a href="#grid_usage">usage of the 
-<code>GridOut</code> class</a>.
-</p>
-
-
-
-
-
-<!-- Page Foot -->
-<hr>
-<table class="navbar">      
-<tr>
-  <td>
-    <a href="toc.html">Back to this chapter's index</a>
-  </td>
-  <td>
-    <a href="../index.html" target="_top">Back to the tutorial index</a>
-  </td>
-</tr>
-</table>
-<hr>
-<address>
-<a href="../../mail.html">The deal.II group</a></address>
-<p>
-
-</p>
-</body>
-</html>
diff --git a/deal.II/doc/tutorial/chapter-1.elements/parameters.html b/deal.II/doc/tutorial/chapter-1.elements/parameters.html
deleted file mode 100644 (file)
index 8c16cf9..0000000
+++ /dev/null
@@ -1,381 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"
-   "http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<!-- deal.II tutorial template
-     Jan Schrage and others <deal@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">
-    <meta name="author" content="the deal.II authors <authors@dealii.org>">
-    <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
-</head>
-
-<!-- Page Body -->
-<body lang="en">
-
-<h1>Parameter Input</h1>
-
-<p>
-When writing a numerical program you will usually wish to keep it flexible
-with regard to parameter settings and the like. Rewriting a program 
-every time a parameter changes is ever so annoying.
-For this reason <acronym>deal.II</acronym> provides a class 
-called <code>ParameterHandler</code>. This class enables you to easily
-parse a parameter file and extract the values of the parameters.
-The names and allowed values of the parameters can be defined by you.
-</p>
-
-<h2>Introducing parameters into your code</h2>
-
-<h3>Introduction - the most simple case</h3>
-<p>
-The most simple way to using runtime parameters in your program is the following:
-</p>
-
-<table>
-<caption><b>Using runtime parameters</b></caption>
-<tr>
-  <td><b>Step</b>
-  </td>
-  <td><b>What to do</b>
-  </td>
-  <td><b>Function call</b>
-  </td>
-</tr>
-<tr>
-  <td>1.</td>
-  <td>Use the correct include-file.
-  </td>
-  <td><code>#include &lt;base/parameter_handler.h&gt;</code>
-  </td>
-</tr>
-<tr>
-  <td>2.</td>
-  <td>Declare a parameter handler object.
-  </td>
-  <td><code>ParameterHandler prm;</code>
-  </td>
-</tr>
-<tr>
-  <td>3.</td>
-  <td>Tell the parameter handler about the parameters, their types and their 
-         default values. Here we get one parameter called 
-         &quot;My favourite booze&quot;, its default value is 
-         &quot;Stout&quot; and we allow anything as its value. Note that
-         the parameter name may contain whitespace.
-  </td>
-  <td><code>prm.declare_entry(&quot;My favourite booze&quot;,
-         &quot;Stout&quot;,Patterns::Anything());
-      </code>
-  </td>
-</tr>
-<tr>
-  <td>4.</td>
-  <td>Generate a parameter file. Following the example above, we
-         set &quot;My favourite booze&quot; to &quot;Ale&quot;. This
-         file will be called &quot;parameters.in&quot;.
-  </td>
-  <td><code>set My favourite booze = Ale</code>
-  </td>
-</tr>
-<tr>
-  <td>5.</td>
-  <td>Read the parameters from the file.
-  </td>
-  <td><code>prm.read_input(&quot;parameters.in&quot;);</code>
-  </td>
-</tr>
-<tr>
-  <td>6.</td>
-  <td>Find the values of your parameters.
-  </td>
-  <td><code>string booze = prm.get(&quot;My favourite booze&quot;);</code>
-  </td>
-</tr>
-</table>
-
-<p>
-The few steps outlined above are indeed the most simple case. What, now, if 
-you have a more complex set of parameters, grouped by purpose ? You could,
-for example, wish to solve different equations and set parameters for each
-of them. For this purpose you can introduce <em>subsections</em> into
-your parameter set.
-</p>
-
-<h3>Subsections</h3>
-
-<p>
-Parameters declared in different subsections are distinct, although they
-may share the same name. Let us stay with the example of two equations
-for which you wish to set parameters: <code>Zeldovich-equation</code> and 
-<code>Sunyaev-equation</code>. You want to be able to use different solvers,
-and thus both take a parameter called <code>Solver</code>.
-The way to go is to declare two subsections called (preferably)
-<code>Zeldovich-equation</code> and <code>Sunyaev-equation</code>. Each of the two
-subsections contains a parameter called <code>Solver</code>.
-</p>
-
-<p class=example>
-<span class=example>Example:</span>
-We declare subsections for two equations called 
-Zeldovich-equation and Sunyaev-equation
-within a parameter handler.
-The allowed values for the parameter <code>Solver</code> are 
-<code>CG</code> (default) and <code>GMRES</code>. Afterwards
-we read the settings from a file called &quot;parameters.in&quot;
-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="../../auto/kdoc/base/ParameterHandler.html">
-recommended style for parameter declaration</a>.
-</p>
-
-<pre class="example"> 
-<code>
-// We declare a parameter handler
-
-ParameterHandler prm;
-
-// We declare the first subsection and its entry
-
-prm.enter_subsection(&quot;Zeldovich-equation&quot;)
-prm.declare_entry(&quot;Solver&quot;,&quot;CG&quot;,Patterns::Sequence(&quot;CG|GMRES&quot;));
-prm.leave_subsection();
-
-// We declare the second subsection and its entry
-
-prm.enter_subsection(&quot;Sunyaev-equation&quot;)
-prm.declare_entry(&quot;Solver&quot;,&quot;CG&quot;,Patterns::Sequence(&quot;CG|GMRES&quot;));
-prm.leave_subsection();
-
-// The input file is read
-
-prm.read_input(&quot;parameters.in&quot;
-
-// We retrieve the parameters from the first subsection
-
-prm.enter_subsection(&quot;Zeldovich-equation&quot;)
-string zeldovich_solver = prm.get(&quot;Solver&quot;);
-prm.leave_subsection();
-
-// We retrieve the parameters from the second subsection
-
-prm.enter_subsection(&quot;Sunyaev-equation&quot;)
-string sunyaev_solver = prm.get(&quot;Solver&quot;);
-prm.leave_subsection();
-</code>
-</pre>
-
-<p class="example">We continue this example with a sample parameter
-file that tells the code to solve the Zeldovich equation using GMRES
-and the Sunyaev equation using CG.
-</p>
-
-<pre class="example">
-<code>
-subsection Zeldovich-equation
-  set Solver = GMRES
-end
-
-subsection Sunyaev-equation
-  set Solver = CG
-end
-</code>
-</pre>
-
-<p>
-There are, as we have seen, two methods within the 
-<code>ParameterHandler</code> class handling subsections:<br>
-<code>
-void ParameterHandler::enter_subsection(const string &amp;subsection)
-</code><br>
-and<br>
-<code>
-bool ParameterHandler::leave_subsection()
-</code><br>
-Their names are telling. First you enter a subsection, then you declare
-(or retrieve)
-all the parameters for this subsection and finally you leave it.
-Subsections may be nested, i.e. you are at liberty to declare
-subsections within subsections within subsections... 
-</p>
-
-<h3>Parameter types</h3>
-
-<p>
-The parameter handler allows you to specify that any parameter
-be of a distinct type. 
-Upon reading a file the value of this
-parameter is checked against the type and an exception is thrown
-if they do not match. An exception is also thrown if the default
-parameter does not match the specified type.
-Below we show a list of the types available. The first column
-gives an explanation, the second lists the corresponding C++ type
-and the third column shows how to use this type in <acronym>deal.II</acronym>.
-<em>Parameter values may not contain linebreaks.</em>
-<acronym>deal.II</acronym> always gets passed a pointer to a class
-handling that type. Those classes are defined in a structure
-called <code>Patterns</code>. The include file to be used is the 
-same as for the <code>ParameterHandler</code> class. 
-</p>
-
-<table>
-<caption><b>Parameter types</b></caption>
-<tr>
-  <td><b>Type</b>
-  </td>
-  <td><b>Correspondig C++ type</b>
-  </td>
-  <td><b>deal.II type</b>
-  </td>
-</tr>
-<tr>
-  <td>Integer number.</td>
-  <td><code>int</code>
-  </td>
-  <td><code>Patterns::Integer()</code>
-  </td>
-</tr>
-<tr>
-  <td>Floating point number of double length.</td>
-  <td><code>double</code>
-  </td>
-  <td><code>Patterns::Double()</code>
-  </td>
-</tr>
-<tr>
-  <td>One member of a set.</td>
-  <td><code>enum</code>
-  </td>
-  <td><code>Patterns::Sequence("element 1|element 2|...")</code>
-  </td>
-</tr>
-<tr>
-  <td>An arbitrary string.</td>
-  <td><code>string</code>
-  </td>
-  <td><code>Patterns::Anything()</code>
-  </td>
-</tr>
-</table>
-
-
-<h3>Allowed characters</h3>
-
-<p>
-Neither the names nor the values of entries may contain the
-following characters:<br>
-<tt>\ { } | </tt><br>
-</p>
-
-<p>
-Besides, entries may not contain linebreaks, i.e. entries may not span
-multiple lines.
-</p>
-
-<p>
-Leading and trailing whitespace is ignored and multiple whitespace is
-condensed into one. Entry or subsection
-declarations within your code should therefore 
-not contain multiple whitespace, which will not be recognized.
-</p>
-
-<h3>Different input sources</h3>
-
-<p>
-You can obtain data from three different kinds of source:
-</p>
-<ul>
-  <li>an <code>istream</code></li>
-  <li>a file</li>
-  <li>a string</li>
-</ul>
-
-<p>
-It is possible to use different sources successively. Parameters
-that are entered more than once will be overwritten, i.e. the
-value encountered last of the parameter in question is used. 
-</p>
-
-<p class="Example">
-<span class="example">Example:</span>
-We read parameters successively
-from three different sources. This example was taken from
-the <a href="../../auto/kdoc/base/ParameterHandler.html"><code>ParameterHandler</code> class documentation</a>.
-</p>
-
-<pre class="example">
-<code>
-ParameterHandler prm;
-...
-// declaration of entries
-...
-prm.read_input (cin);         // read input from standard in,
-// or
-prm.read_input (&quot;simulation.in&quot;);
-// or
-char *in = &quot;set Time step size = 0.3 \n ...&quot;;
-prm.read_input (in);
-...
-</code>
-</pre>
-
-<h3>Parameter output</h3>
-
-<p>
-You can, for example for logging purposes, write all the parameters
-your code knows about to an <code>ostream</code> in a given format.
-The formats supported at present are text and LaTeX.
-The method handling this is called: <br>
-<code>
-ostream &amp; ParameterHandler::print_parameters(ostream &amp;out, const OutputStyle style) 
-</code><br>
-</p>
-
-<p>
-You can also write the parameters of a single subsection to an
-<code>ostream</code> using<br>
-<code>
-void ParameterHandler::print_parameters_section (ostream &amp;out,
-                                   const OutputStyle style,
-                                   const unsigned int indent_level);
-</code>
-</p>
-
-<p>
-In both cases <code>out</code> is the <code>ostream</code> 
-the parameters are written to, <code>style</code> is 
-the output format, either 
-<tt>text</tt> or <tt>LaTeX</tt>. In the case of subsections 
-the <code>indent_level</code> is the level of indentation.
-</p>
-
-<!-- Page Foot -->
-<hr>
-<table class="navbar">      
-<tr>
-<!-- This is the last chapter.
-  <td>
-    <a href="output.html">Next Chapter: Grid and Data Output</a>
-  </td>
--->
-  <td>
-    <a href="toc.html">Back to this chapter's index</a>
-  </td>
-  <td>
-    <a href="../index.html" target="_top">Back to the tutorial index</a>
-  </td>
-</tr>
-</table>
-<hr>
-<address>
-<a href="../../mail.html">The deal.II group</a></address>
-<p>
-
-</p>
-</body>
-</html>
diff --git a/deal.II/doc/tutorial/chapter-1.elements/postprocess.html b/deal.II/doc/tutorial/chapter-1.elements/postprocess.html
deleted file mode 100644 (file)
index 9d9acd3..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"
-   "http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<!-- deal.II tutorial template
-     Jan Schrage and others <deal@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">
-    <meta name="author" content="the deal.II authors <authors@dealii.org>">
-    <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
-</head>
-
-<!-- Page Body -->
-<body lang="en">
-
-<h1>Postprocessing</h1>
-
-<p>
-This section has unfortunately not yet been written.
-</p>
-
-
-<!-- Page Foot -->
-<hr>
-<table class="navbar">      
-<tr>
-  <td>
-    <a href="adaptivity.html">Next Chapter: Error Estimation and Adaptivity</a>
-  </td>
-  <td>
-    <a href="toc.html">Back to this chapter's index</a>
-  </td>
-  <td>
-    <a href="../index.html" target="_top">Back to the tutorial index</a>
-  </td>
-</tr>
-</table>
-<hr>
-<address>
-<a href="../../mail.html">The deal.II group</a></address>
-<p>
-
-</p>
-</body>
-</html>
diff --git a/deal.II/doc/tutorial/chapter-1.elements/rhs.html b/deal.II/doc/tutorial/chapter-1.elements/rhs.html
deleted file mode 100644 (file)
index ed8d86f..0000000
+++ /dev/null
@@ -1,199 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"
-   "http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<!-- deal.II tutorial template
-     Jan Schrage and others <deal@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">
-    <meta name="author" content="the deal.II authors <authors@dealii.org>">
-    <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
-</head>
-
-<!-- Page Body -->
-<body lang="en">
-
-<h1>The Problem Matrix and the Right Hand Side</h1>
-
-<p>
-Having talked a lot about the initialization of matrices and vectors
-we shall now discuss how to fill them. You have to:
-</p>
-<ol>
-  <li>Define a quadrature rule which will be used for integration of
-  the local cell matrices and vectors. </li>
-  <li><a href="#calcfe">Calculate the trial functions</a> for the
-       finite elements and their faces. 
-  </li>
-  <li><a href="#integrate">Integrate the problem locally.</a></li>
-  <li>Insert your local matrix into the global one.</li>
-</ol>
-
-<h2><a name="calcfe">Calculating finite element trial functions</a></h3>
-
-<p>
-</p>
-
-<p class="Example">
-<span class="example">Example:</span> The two lines below calculate
-trial functions for the two-dimensional finite element <code>fe</code>
-and for its faces using Gaussian quadrature. The first line
-initializes an object for the trial and test functions of the
-finite element associated with the degree of freedom handler
-<code>dof_handler</code>, telling it to update the values of the gradients and
-of the Jacobi determinant multiplied by a weight function given by the
-quadrature <code>quadrature</code> whenever <code>fe_values.reinit(fe)</code>
-is called on a cell. The second line does the same for the faces of the finite
-element, telling it to update the <code>JxW</code> values and the
-quadrature points.
-</p>
-<pre class="example">
-<code>
-// Initialize the trial functions on the cell faces.
-FEValues&lt;2&gt; fe_values(fe, quadrature,
-                   UpdateFlags(update_values    | 
-                               update_gradients |
-                               update_JxW_values));
-FEFaceValues&lt;2&gt; fe_face_values (fe, face_quadrature,
-                              UpdateFlags(update_values     | 
-                                          update_JxW_values |
-                                          update_q_points));
-</code>
-</pre>
-
-<h2><a name="integrate">Integrating the problem</a></h2>
-
-<p>
-Integration of a problem is performed locally, i.e. you have to traverse all
-the cells and integrate the problem on the cell. This implies that you need a local
-matrix to store your results. This local matrix must then be inserted 
-into the global problem matrix. 
-</p>
-
-<p class="example">
-<span class="example">Example: Integration of the two-dimensional Laplace-problem:</span>
-Integration is done locally. Therefore we need appropriate definitions for
-</p>
-<ul>
-<li>
-an index vector that will allow us to reassemble the global matrix later on
-</li>
-<li>a vector of doubles with the dimension of the number of degrees of freedom per cell
-</li>
-<li>and a square matrix of doubles with the same dimension</li>
-</ul>
-
-<pre class="example">
-<code>
-  vector&lt;int&gt; dof_indices (fe.dofs_per_cell);
-  Vector&lt;double&gt; element_vector (fe.dofs_per_cell);
-  
-  FullMatrix&lt;double&gt; element_matrix (fe.dofs_per_cell, fe.dofs_per_cell);
-</code>
-</pre>
-
-<p class="example">
-Next we traverse all the cells and integrate the Laplace problem using the
-discretized Laplace operator. <tt>quadrature</tt> is some quadrature
-rule, for example a Gaussian rule.
-</p>
-
-<p class="example">
-Within the loop over all cells, the outer loop traverses all the
-points of the quadrature <code>quadrature</code>.  The inner two loops
-traverse the degrees of freedom of the finite element <code>fe</code>
-where <code>du</code> and <code>dv</code> are the gradients of the
-trial and test functions at the present quadrature points. 
-<code>fe_values.JxW(k)</code> gives
-the Jacobi determinant multiplied by the weight of the quadrature
-point <code>k</code>. Taken together the line <br>
-<code>
-element_matrix(i,j) += fevalues.JxW(k) * du * dv;
-</code>
-<br>
-gives the discretized Laplace operator.
-</p>
-
-<pre class="example">
-<code>
-// Integrate the problem locally...
-vector&lt;int&gt;        local_dof_indices (fe.dofs_per_cell);
-Vector&lt;double&gt;     element_vector    (fe.dofs_per_cell);
-FullMatrix&lt;double&gt; element_matrix    (fe.dofs_per_cell);
-
-                        // traverse all cells  
-for (DoFHandler&lt;2&gt;::active_cell_iterator cell = dof_handler.begin_active();
-     cell != dof_handler.end(); ++cell)
-{
-                        // compute gradients and some other values
-                        // of the shape functions on this cell
-  fe_values.reinit (cell);
-                        // set entries of local matrix and vector
-                        // to zero
-  element_matrix.clear();
-  element_vector.clear();
-
-                        // The loop over the quadrature points
-                        // starts here. In effect, the  integration
-                        // is performed in this loop.
-  for (unsigned q_point=0; q_point&lt;quadrature.n_quadrature_points; ++q_point)
-    for (unsigned i=0; i&lt;fe.dofs_per_cell; ++i)
-      {
-        const Point&lt;dim&gt; dv = fe_values.shape_grad (i, q_point);
-       
-        for (unsigned j=0; j&lt;fe.dofs_per_cell; ++j)
-          {
-           const Point&lt;2&gt; du = fe_values.shape_grad(j,q_point);
-       
-                       // Perform the integration using
-                        // the weak form of the Laplace operator
-           element_matrix(i,j) += fevalues.JxW(k) * du * dv;
-          }
-      }
-
-                        // get the global indices of the degrees
-                        // of freedom on the present cell
-  cell-&gt;get_dof_indices (local_dof_indices);
-                        // and insert the local matrix
-                        // into the global one.
-  for (unsigned i=0; i&lt;fe.dofs_per_cell; ++i)
-    for (unsigned j=0; j&lt;fe.dofs_per_cell; ++j)
-      A.add (local_indices[i], local_indices[j],
-             element_matrix (i,j));
-}    
-</code>
-</pre>
-
-The right hand side vector is set up analogously, but obviously you
-only need one loop over the shape functions, since the right hand side
-is a linear form instead of a bilinear one.
-
-
-<!-- Page Foot -->
-<hr>
-<table class="navbar">      
-<tr>
-  <td>
-    <a href="boundary.html">Next Chapter: Boundary Conditions</a>
-  </td>
-  <td>
-    <a href="toc.html">Back to this chapter's index</a>
-  </td>
-  <td>
-    <a href="../index.html" target="_top">Back to the tutorial index</a>
-  </td>
-</tr>
-</table>
-<hr>
-<address>
-<a href="../../mail.html">The deal.II group</a></address>
-<p>
-
-</p>
-</body>
-</html>
-
-
diff --git a/deal.II/doc/tutorial/chapter-1.elements/solve.html b/deal.II/doc/tutorial/chapter-1.elements/solve.html
deleted file mode 100644 (file)
index 369fcc3..0000000
+++ /dev/null
@@ -1,454 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"
-   "http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<!-- deal.II tutorial template
-     Jan Schrage and others <deal@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">
-    <meta name="author" content="the deal.II authors <authors@dealii.org>">
-    <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
-</head>
-
-<!-- Page Body -->
-<body lang="en">
-
-<h1>Solving the Problem</h1>
-
-<p>
-<acronym>deal.II</acronym> offers several solver classes:
-</p>
-
-<ul>
-<li>
-  <code><a href="#bicgstab">SolverBicgstab</a></code>, the Bicgstab algorithm 
-       by van der Worst
-</li>
-<li>
-  <code><a href="#cg">SolverCG</a></code>, the preconditioned cg-algorithm
-</li>
-<li>
-  <code><a href="#gmres">SolverGMRES</a></code>, an implementation of the 
-       Restarted 
-       Preconditioned Direct Generalized Minimal Residual Method
-</li>
-<li>
-  <code><a href="#richardson">SolverRichardson</a></code>, the Richardson 
-       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 the solver classes, there are several utility classes:
-<ul>
-<li> 
-<code><a href="#control">SolverControl</a></code> to 
-control the iterative solvers, i.e. to determine whether the iteration 
-should be continued
-</li>
-<li>
-<code><a href="#solvselect">SolverSelector</a></code>, the use of which
-offers several advantages over solver selection by hand
-</li>
-<li>
-<code><a href="#precondition">PreconditionSelector</a></code> that allows
-you to select a preconditioner
-</li>
-</ul>
-</p>
-
-<h3>A note on <acronym>deal.II</acronym> solvers</h3>
-
-<p>
-All of the <acronym>deal.II</acronym> solvers have a structure
-<code>AdditionalData</code> that is used to pass additional 
-arguments to the solver. We discuss this structure only for those 
-solvers that need it.
-</p>
-
-<p>
-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 are doing 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.
-</p>
-
-<h2><a name="control">Solver Control</a></h2>
-
-<p>
-The class <code>SolverControl</code> is used by iterative solvers
-to determine whether to continue with the iteration. It takes two
-to three parameters: the maximum number of iterations and the criterium for
-abortion, usually the residual and a flag controlling whether to log the 
-history (the value to be checked and the number of the iteration step).  
-<code>SolverControl</code> is initialized using<br>
-<code>SolverControl (const unsigned int n, const double tol, const bool log_history = false)</code>
-
-<p class="Example">
-<span class="example">Example:</span>We initialize a solver control with
-a maximum of 1000 iterations and a maximum residual of 1e-6.
-</p>
-
-<pre class="example">
-<code>
-#include &lt;lac/solver_control.h&gt;
-
-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>
-The <code>SolverSelector</code> class is a wrapper for all the 
-<acronym>deal.II</acronym> solver classes. By calling it with the
-right constructor you select your solver, and by calling its <code>solve</code>
-method you call the <code>solve</code> method of the solver you selected.
-The advantage of this approach is that your solver is an argument
-to this class and - more important - an argument you can set in a 
-parameter file. That means that if you want to change your solver, e.g.
-because a new one has been added you do not have to rewrite your program.
-</p>
-<p>
-The <code>SolverSelector</code> is initialized using<br>
-<code>
-SolverSelector(const string solvername, SolverControl &amp;control,
-VectorMemory&lt;Vector&gt; &amp;mem)
-</code>
-</p>
-
-<p class="Example">
-<span class="example">Example:</span>We initialize a solver selector
-that will call the cg-solver. The problem matrix is a sparse matrix of
-doubles and the right hand side a vector of doubles. 
-</p>
-
-<pre class="example">
-<code>
-#include &lt;lac/solver_control.h&gt;
-#include &lt;lac/solver_selector.h&gt;
-#include &lt;lac/sparse_matrix.h&gt;
-#include &lt;lac/vector.h&gt;
-
-SolverControl control;
-VectorMemory&lt;Vector&lt;double&gt; &gt; mem;
-
-SolverSelector&lt;SparseMatrix&lt;double&gt;, Vector&lt;double&gt; &gt;
-  solver_selector("cg", control, mem);
-</code>
-</pre>
-
-
-<h2><a name="precondition">Preconditioning</a></h2>
-
-<p>
-Before firing up the solver of your choice you will need some kind of 
-preconditioning. This is easiest selected by creating an instance of
-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 if the preconditioner
-you selected uses it.
-</p>
-<p>
-The preconditioning methods currently available using this class are
-</p>
-<ul>
-<li>none</li>
-<li>jacobi</li>
-<li>sor</li>
-<li>ssor</li>
-</ul>
-<p>
-You can obtain a list of available methods by calling
-<code>string PreconditionSelector::get_precondition_names()</code>.
-</p>
-
-<p>
-After having selected a preconditioner you will need to select a 
-matrix used for preconditioning. Usually this will be the problem matrix 
-<code>A</code> of the problem <code>Au=f</code>.
-The method to be called is <code>void PreconditionSelector::use_matrix(const
-Matrix &amp;M)</code>.
-</p>
-
-<p class="Example">
-<span class="example">Example:</span>We initialize a Jacobi preconditioner
-with a damping parameter of 1. The matrix used for preconditioning 
-is the matrix <code>A</code>
-of the problem <code>Au=f</code>.
-</p>
-
-<pre class="example">
-<code>
-#include &lt;lac/precondition_selector.h&gt;
-#include &lt;dofs/dof_handler.h&gt;
-#include &lt;lac/full_matrix.h&gt;
-
-FullMatrix&lt;double&gt; A(100,50);
-
-PreconditionSelector preconditioning("jacobi",1.);
-preconditioning.use_matrix(A);
-</code>
-</pre>
-
-
-
-<h2><a name="bicgstab">SolverBicgstab</a></h2>
-
-<p>
-This class implements the Bicgstab algorithm by van der Worst.
-It is initialized by<br>
-<code>SolverBicgstab (SolverControl &cn, VectorMemory<Vector> &mem)</code>.
-</p>
-<p class="Example">
-<span class="example">Example:</span>We initialize a Bicgstab-solver for
-the problem <code>Au=f</code>, using the <a href="#control">solver control</a>
-explained above. <code>A</code> shall be a sparse matrix and the vectors
-<code>u</code> and <code>f</code> shall be vectors of doubles. Next,
-we solve the problem. 
-</p>
-
-<pre class="example">
-<code>
-// Include files for solver control, solver and preconditioner
-#include &lt;lac/solver_control.h&gt;
-#include &lt;lac/solver_bicgstab.h&gt;
-#include &lt;lac/precondition_selector.h&gt;
-
-// Include files for matrices and vectors
-#include &lt;lac/sparse_matrix.h&gt;
-#include &lt;lac/vector.h&gt;
-
-// Initialize the solver control and the solver
-
-SolverControl control(1000,1e-6);
-VectorMemory&lt;Vector&lt;double&gt; &gt; 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. 
-
-SparseMatrix&lt;double&gt; A;
-Vector&lt;double&gt; u,f;
-
-// Generate a Jacobi preconditioner with the damping parameter 1
-PreconditionSelector&lt;SparseMatrix&lt;double&gt;, Vector&lt;double&gt; &gt; preconditioning("jacobi",1.);
-
-// Use the matrix of the linear equation system for preconditioning
-// (this is the usual case).
-preconditioning.use_matrix(A);
-
-solver.solve(A,u,f,preconditioning);
-</code>
-</pre>
-
-<h2><a name="cg">SolverCG</a></h2>
-
-<p>
-This class implements the preconditioned cg-method.
-It is initialized by<br>
-<code>SolverCG (SolverControl &cn, VectorMemory<Vector> &mem)</code>.
-</p>
-<p class="Example">
-<span class="example">Example:</span>We initialize a CG-solver for
-the problem <code>Au=f</code>, using the <a href="#control">solver control</a>
-explained above. <code>A</code> shall be a sparse matrix and the vectors
-<code>u</code> and <code>f</code> shall be vectors of doubles. Next,
-we solve the problem. 
-</p>
-
-<pre class="example">
-<code>
-// Include files for solver control, solver and preconditioner
-#include &lt;lac/solver_control.h&gt;
-#include &lt;lac/solver_bicgstab.h&gt;
-#include &lt;lac/precondition_selector.h&gt;
-
-// Include files for matrices and vectors
-#include &lt;lac/sparse_matrix.h&gt;
-#include &lt;lac/vector.h&gt;
-
-// Initialize the solver control and the solver
-
-SolverControl control(1000,1e-6);
-VectorMemory&lt;Vector&lt;double&gt; &gt; 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. 
-
-SparseMatrix&lt;double&gt; A;
-Vector&lt;double&gt; u,f;
-
-// Generate a Jacobi preconditioner with the damping parameter 1
-PreconditionSelector&lt;SparseMatrix&lt;double&gt;, Vector&lt;double&gt; &gt; preconditioning("jacobi",1.);
-
-// Use the matrix of the linear equation system for preconditioning
-// (this is the usual case).
-preconditioning.use_matrix(A);
-
-solver.solve(A,u,f,preconditioning);
-</code>
-</pre>
-
-<h2><a name="gmres">SolverGMRES</a></h2>
-
-<p>This class implements the Restarted Preconditioned Direct Generalized
-Minimal Residual Method. The stopping criterion is the norm of the residual.
-It is initialized using <br>
-<code>SolverGMRES(SolverControl &amp;cn, VectorMemory&lt;Vector&gt; &amp;mem,
-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, 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="../../auto/kdoc/lac/SolverGMRES.html">take a look at the detailed description of the <code>SolverGMRES</code>
-class</a>.
-</p>
-
-<p class="Example">
-<span class="example">Example:</span>We initialize a GMRES-solver for
-the problem <code>Au=f</code>, using the <a href="#control">solver control</a>
-explained above. <code>A</code> shall be a sparse matrix and the vectors
-<code>u</code> and <code>f</code> shall be vectors of doubles. 
-Next, we solve the problem. We use the default number of thirty temporary
-vectors.
-</p>
-
-<pre class="example">
-<code>
-// Include files for solver control, solver and preconditioner
-#include &lt;lac/solver_control.h&gt;
-#include &lt;lac/solver_gmres.h&gt;
-#include &lt;lac/precondition_selector.h&gt;
-
-// Include files for matrices and vectors
-#include &lt;lac/sparse_matrix.h&gt;
-#include &lt;lac/vector.h&gt;
-
-// Initialize the solver control and the solver
-
-SolverControl control(1000,1e-6);
-VectorMemory&lt;Vector&lt;double&gt; &gt; 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. 
-
-SparseMatrix&lt;double&gt; A;
-Vector&lt;double&gt; u,f;
-
-// Generate a Jacobi preconditioner with the damping parameter 1
-PreconditionSelector&lt;SparseMatrix&lt;double&gt;, Vector&lt;double&gt; &gt; preconditioning("jacobi",1.);
-
-// Use the matrix of the linear equation system for preconditioning
-// (this is the usual case).
-preconditioning.use_matrix(A);
-
-solver.solve(A,u,f,preconditioning);
-</code>
-</pre>
-
-
-<h2><a name="richardson">SolverRichardson</a></h2>
-
-<p>
-This class implements the Richardson iteration method. The stopping criterion
-is the norm of the residual. It is initialized using<br>
-<code>SolverRichardson(SolverControl &amp;cn, VectorMemory&lt;Vector&gt; 
-&amp;mem, const AdditionalData &amp;data=Additionaldata())
-</code>
-The additional data for this solver is the damping, with a default of 1.
-</p>
-
-<p class="Example">
-<span class="example">Example:</span>We initialize a Richardson-solver for
-the problem <code>Au=f</code>, using the <a href="#control">solver control</a>
-explained above. <code>A</code> shall be a sparse matrix and the vectors
-<code>u</code> and <code>f</code> shall be vectors of doubles. Next,
-we solve the problem. We use the default damping parameter of 1.
-</p>
-
-<pre class="example">
-<code>
-// Include files for solver control, solver and preconditioner
-#include &lt;lac/solver_control.h&gt;
-#include &lt;lac/solver_richardson.h&gt;
-#include &lt;lac/precondition_selector.h&gt;
-
-// Include files for matrices and vectors
-#include &lt;lac/sparse_matrix.h&gt;
-#include &lt;lac/vector.h&gt;
-
-// Initialize the solver control and the solver
-
-SolverControl control(1000,1e-6);
-VectorMemory&lt;Vector&lt;double&gt; &gt; 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. 
-
-SparseMatrix&lt;double&gt; A;
-Vector&lt;double&gt; u,f;
-
-// Generate a Jacobi preconditioner with the damping parameter 1
-PreconditionSelector&lt;SparseMatrix&lt;double&gt;, Vector&lt;double&gt; &gt; preconditioning("jacobi",1.);
-
-// Use the matrix of the linear equation system for preconditioning
-// (this is the usual case).
-preconditioning.use_matrix(A);
-
-solver.solve(A,u,f,preconditioning);
-</code>
-</pre>
-
-<!-- Page Foot -->
-<hr>
-<table class="navbar">      
-<tr>
-  <td>
-    <a href="postprocess.html">Next Chapter: Postprocessing</a>
-  </td>
-  <td>
-    <a href="toc.html">Back to this chapter's index</a>
-  </td>
-  <td>
-    <a href="../index.html" target="_top">Back to the tutorial index</a>
-  </td>
-</tr>
-</table>
-<hr>
-<address>
-<a href="../../mail.html">The deal.II group</a></address>
-<p>
-
-</p>
-</body>
-</html>
diff --git a/deal.II/doc/tutorial/chapter-1.elements/title.html b/deal.II/doc/tutorial/chapter-1.elements/title.html
deleted file mode 100644 (file)
index 8b7984e..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"
-   "http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<!-- deal.II tutorial template
-     Jan Schrage and others <deal@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">
-    <meta name="author" content="the deal.II authors <authors@dealii.org>">
-    <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
-</head>
-
-<!-- Page Body -->
-<body style="background-image:url(../../pictures/title-background.jpg);" lang="en">
-
-<!-- Title Frame -->
-
-<h1 style="text-align: center;">
-The deal.II tutorial - Chapter 1 - Elements of
-finite element programs
-</h1>
-
-</body>
-</html>
-
-
-
-
-
-
-
-
diff --git a/deal.II/doc/tutorial/chapter-1.elements/toc.html b/deal.II/doc/tutorial/chapter-1.elements/toc.html
deleted file mode 100644 (file)
index 878d503..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"
-   "http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<title>deal.II tutorial: Structure of a Finite Element Program</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">
-    <meta name="author" content="the deal.II authors <authors@dealii.org>">
-    <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
-</head>
-<body lang="en">
-
-<h1>Basic Elements of a Finite Element Program</h1>
-
-<h2>About this tutorial</h2> 
-<p>
-This part of the <acronym>deal.II</acronym> documentation will discuss
-some building blocks of a finite element program. We will take a look at the general
-structure of programs of this kind and at the various possibilities 
-in that respect offered by <acronym>deal.II</acronym>. The order of
-the <a href="#toc">table of contents</a> below reflects the order in which
-you need to perform the tasks. Some things may be left out according to
-your needs. The application in actual programs can be found in other
-chapters of this tutorial.
-</p>
-
-<h2><a name="toc">Table of contents</a></h2>
-
-    <ol>      
-      <li>
-       <p>
-         <b><a href="grid_creation.html">Creation of a grid</a></b>
-       </p>
-       <p>dealing with grid creation, grid input from a file and grid 
-         refinement. 
-         The various kinds of grid are also discussed.
-       </p>
-      </li>
-
-      <li>
-       <p>
-         <b><a href="dofs.html">Degrees of Freedom</a></b>
-       </p>
-       <p>where degrees of freedom are distributed and numbered.</p>
-      </li>
-      
-      <li>
-       <p>
-         <b><a href="hanging_nodes.html">Hanging Nodes</a></b>
-       </p>
-       <p>where locally refined grids are discussed.</p>
-      </li>
-      
-      <li>
-       <p>
-         <b><a href="matrix_structure.html">Matrix Structure</a></b>
-       </p>
-       <p>where efficient structures for sparse matrices are discussed.</p>
-      </li>
-
-      <li>
-       <p>
-         <b><a href="matrix_generation.html">Matrix and Vector Generation</a></b>
-       </p>
-       <p>where the different kinds of matrices and vectors are discussed.</p>
-      </li>
-      
-      <li>
-       <p>
-         <b><a href="rhs.html">The Problem Matrix and the Right Hand Side</a></b>
-       </p>
-       <p>which shows how to implement a particular problem.</p>
-      </li>
-
-      <li>
-       <p>
-         <b><a href="boundary.html">Boundary Conditions</a></b>
-       </p>
-       <p>which shows how to set boundary conditions in deal.II.</p>
-      </li>
-      
-      <li>
-       <p>
-         <b><a href="condense.html">Condensing the Hanging Nodes</a></b>
-       </p>
-       <p>which shows how, when and why to condense hanging nodes.</p>
-      </li>
-
-      <li>
-       <p>
-         <b><a href="solve.html">Solving the Problem</a></b>
-       </p>
-       <p>explaining the different solvers available and how to use them.</p>
-      </li>
-
-      <li>
-       <p>
-         <b><a href="postprocess.html">Postprocessing</a></b>
-       </p>
-       <p>where the data is postprocessed and stored and the error
-         is calculated.
-       </p>
-      </li>
-      
-      <li>
-       <p>
-         <b><a href="adaptivity.html">Error Estimate and Adaptivity</a></b>
-       </p>
-       <p>explaining how to use adaptive refinement with error estimates.</p>
-      </li>
-      
-      <li>
-       <p>
-         <b><a href="parameters.html">Parameter Input</a></b>
-       </p>
-       <p>explaining how to use a parameter file for configuring
-          your program.
-       </p>
-      </li>
-
-      <li>
-       <p>
-         <b><a href="output.html">Grid and Data Output</a></b>
-       </p>
-       <p>explaining how to get output of your data, with an emphasis on
-         different graphic formats.
-       </p>
-      </li>
-    </ol>
-
-<hr>
-
-<table class="navbar">      
-<tr>
-  <td>
-    <a href="toc.html">Back to this chapter's index</a>
-  </td>
-  <td>
-    <a href="../index.html" target="_top">Back to the tutorial index</a>
-  </td>
-</tr>
-</table>
-<hr>
-<address>
-<a href="../../mail.html">The deal.II group</a></address>
-<p>
-
-</p>
-</body>
-</html>
-
-
-
-
-
index 370be4a69fc9fa4062b5ad1985dd4e1162877c6e..fc10c5610ccdd58be1d15880b93e670f1120ade5 100644 (file)
 
        <hr>
 
-    <p>
-      <a href="../index.html" target="_top">Back to the tutorial index</a>
-    </p>
-
     <p>
       <a href="../../index.html" target="_top">Back to the deal.II homepage</a>
     </p>
index 2cfcf3184c04b1dada3cd0682aa2c455506bc2a0..73607e961add5795c94d9eabf23de26e4f60e9b8 100644 (file)
@@ -153,14 +153,6 @@ At present, the following programs exist:
 
 <!-- Page Foot -->
 <hr>
-<table class="navbar">      
-<tr>
-  <td>
-    <a href="../index.html" target="_top">Back to the tutorial index</a>
-  </td>
-</tr>
-</table>
-<hr>
 <address>
 <a href="../../mail.html">The deal.II group</a></address>
 </body>
diff --git a/deal.II/doc/tutorial/chapter-3.laplace/Makefile b/deal.II/doc/tutorial/chapter-3.laplace/Makefile
deleted file mode 100644 (file)
index 9d7bf2c..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-# $Id$
-
-
-# include paths and global variables
-include ../../../common/Make.global_options
-
-
-validate-xrefs:
-       $(PERL) $D/doc/auto/scripts/validate-xrefs.pl *.html
-
-
-.PHONY: validate-xrefs
diff --git a/deal.II/doc/tutorial/chapter-3.laplace/assemble.html b/deal.II/doc/tutorial/chapter-3.laplace/assemble.html
deleted file mode 100644 (file)
index 504de98..0000000
+++ /dev/null
@@ -1,275 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN" 
-    "http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-  <head>
-    <title>deal.II tutorial: the Laplace problem</title>
-    <meta name="keyword" content="deal.II,deal.II tutorial">
-    <link href="../../screen.css" rel="StyleSheet" title="deal.II Tutorial" media="screen">
-    <link href="../../print.css" rel="StyleSheet" title="deal.II Tutorial" media="print">
-    <meta name="author" content="the deal.II authors <authors@dealii.org>">
-    <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
-  </head>
-  
-<body>
-<h1>Assembling the problem</h1>
-
-<h2>What's to be done</h2>
-<p>
-In order to assemble the matrices we basically need to:
-</p>
-<ol>
-<li><a href="#matrix">Generate the matrices</a>, i.e. call the <em>deal.II</em> 
-       functions that reserve storage space for us.
-</li>
-<li>
-<a href="#calcfe">Calculate the finite element trial functions</a>
-</li>
-<li>
-Traverse all existing cells and <a href="#integrate">integrate the problem</a> 
-using the discretized Laplace operator
-</li>
-<li>
-<a href="#insert">Insert</a> the local matrices we have used into the global matrix using the
-appropriate <acronym>deal.II</acronym> functions
-</li>
-<li>
-Traverse all the cell faces and <a href="#boundary">set the appropriate boundary conditions</a>
-</li>
-</ol>
-
-<h2>...and how to do it</h2>
-
-<h3><a name="matrix">Generating the matrix structures</a></h3>
-
-<p>
-First we generate a structure for the storage of a sparse n times n matrix 
-where n is the number of the degrees of freedom.
-The parameter <code>max_couplings_between_dofs()</code> returns the maximum 
-number of couplings between degrees of freedom, i.e. the number of elements in the 
-matrix and allows <acronym>deal.II</acronym> to generate the matrix structure more 
-efficiently, which in effect is done in the next line of code.
-</p>
-<p>
-Afterwards a constraint matrix for the <em>hanging nodes</em> is created and they
-are copied into the matrix structure.
-</p>
-<pre>
-<code>
-  matrix_structure.reinit(dof.n_dofs(),dof.n_dofs(),
-                         dof.max_couplings_between_dofs());
-  dof.make_sparsity_pattern(matrix_structure);
-  hanging_nodes.clear();
-  dof.make_constraint_matrix(hanging_nodes);
-  hanging_nodes.condense(matrix_structure);
-</code>
-</pre>
-<p>
-The problem is of the form <tt>Au=f</tt>, we generate the matrix <tt>A</tt> with the 
-structure given by <code>matrix_structure</code>:
-</p>
-<pre>
-<code>
-  A.reinit(matrix_structure);
-  f.reinit(dof.n_dofs());
-</code>
-</pre>
-
-<h3><a name="calcfe">Calculating finite element trial functions</a></h3>
-<p>
-The two lines below calculate trial functions for the finite elements and
-for their faces using Gaussian quadrature. The first line calculates the trial
-function for the finite element associated with the degree of freedom <code>dof</code>
-updating the values of the gradients and of the Jacobi determinant multiplied by a
-weight function given by the quadrature <code>qc</code>.
-</p>
-<pre>
-<code>
-  FEValues&lt;dim&gt; fevalues(dof->get_fe(), qc, UpdateFlags(update_gradients |
-                                                  update_JxW_values));
-  FEFaceValues&lt;dim&gt; ffvalues(dof->get_fe(), qf,
-                          UpdateFlags(update_JxW_values | update_q_points));
-</code>
-</pre>
-
-<h3><a name="integrate">Integrating the problem</a></h3>
-<p>
-Integration is done locally. Therefore we need appropriate definitions for
-</p>
-<ul>
-<li>
-an index vector that will allow us to reassemble the global matrix later on
-</li>
-<li>a vector of doubles with the dimension of the number of degrees of freedom per cell
-</li>
-<li>and a square matrix of doubles with the same dimension</li>
-</ul>
-
-<pre>
-<code>
-  vector&lt;int&gt; indices(fe.total_dofs);
-  dVector elvec(fe.total_dofs);
-  
-  dFMatrix elmat(fe.total_dofs);
-</code>
-</pre>
-<p>
-Next we traverse all the cells and integrate the Laplace problem using the
-discretized Laplace operator. <tt>qc</tt> is a 
-<code>Quadrature&lt;dim&gt;</code>.
-</p>
-<p>
-The outer loop traverses all the points of the quadrature <code>qc</code>.
-The inner two loops traverse the degrees of freedom of the finite element
-<code>fe</code> where <code>du</code> and <code>dv</code> are the gradients
-with respect to the quadrature points. <code>fevalues.JxW(k)</code> gives
-the Jacobi determinant multiplied by the weight of the quadrature point 
-<code>k</code>. Taken together the line <br>
-<code>
-elmat(i,j) += fevalues.JxW(k) * du * dv;
-</code>
-<br>
-gives the discretized Laplace operator.
-</p>
-
-<pre>
-<code>
-  for (DoFHandler&lt;2&gt;::active_cell_iterator c = dof.begin_active()
-                                       ; c != dof.end() ; ++c)
-  {
-    fevalues.reinit(c, stb);
-    elmat.clear();
-    elvec.clear();
-    c->get_dofindices(indices);
-    
-    for (unsigned k=0;k&lt;qc.n_quadrature_points;++k)
-    {
-      for (unsigned i=0;i&lt;fe.total_dofs;++i)
-      {
-       const Point&lt;2&gt; dv = fevalues.shape_grad(i,k);
-       
-       for (unsigned j=0;j&lt;fe.total_dofs;++j)
-       {
-         const Point&lt;2&gt; du = fevalues.shape_grad(j,k);
-         
-         elmat(i,j) += fevalues.JxW(k)
-                       * du * dv
-                       ;
-         
-       }
-      }
-    }
-</code>
-</pre>
-<p>
-<a name="insert">The insertion of the local matrix into the global one</a> 
-happens in the following piece of code (<code>f</code> is the right hand 
-vector of the problem, <code>A</code> the problem matrix):
-</p>
-<pre>
-<code>
-    for (unsigned i=0;i&lt;fe.total_dofs;++i)
-    {
-      f(indices[i]) += elvec(i);
-            
-      for (unsigned j=0;j&lt;fe.total_dofs;++j)
-      {
-       A.add(indices[i], indices[j], elmat(i,j));
-      }
-    }
-</code>
-</pre>
-
-<h3><a name="boundary">Setting boundary conditions</a></h3>
-
-<p>
-There are two <acronym>deal.II</acronym> functions relevant for us at the moment:
-</p>
-<pre>
-<code>
-void VectorTools::interpolate_boundary_values(...)
-</code>
-</pre>
-<p>
-which does exactly what it says. This function accepts a list of pairs
-of boundary indicators and the according functions and returns a list of
-pairs of DoF numbers and values denoting the respective 
-Dirichlet boundary values.
-</p>
-<p>
-This output is used by
-</p>
-<pre>
-<code>
-void MatrixTools::apply_boundary_values(...)
-</code>
-</pre>
-<p>
-that inserts the proper boundary conditions into the system of equations:
-</p>
-<P>
-<pre><code>
-  map&lt;int,double&gt; boundary_values;
-  DoFHandler&lt;2&gt;::FunctionMap dirichlet_bc;
-  BoundaryFct bfct;
-  dirichlet_bc[0]=&amp;bfct;
-  VectorTools&lt;2&gt;::interpolate_boundary_values(dof,dirichlet_bc,fe,boundary,boundary_values);
-  u.reinit(f);
-  MatrixTools&lt;2&gt;::apply_boundary_values(boundary_values,A,u,f);  
-</code></pre>
-<p>
-First, we need a few definitions: 
-</p>
-<ul>
-<li>
-<code>boundary_values</code> maps DoF indices at the boundary computed by <code>interpolate_boundary_values</code> to their respective values.
-</li>
-<li><code>dirichlet_bc</code> maps boundary indicators to boundary functions, supplied by us. All boundary indicators are zero by default, therefore the 
-above statement maps the same function to all the boundaries. The boundary functions compute the boundary values.
-</li>
-<li><code>bfct</code> is a function returning <code>cos(2*PI*x)*sin(2*PI*y)
-</code>, thereby supplying boundary values.
-</ul>
-<p>
-This may seem a bit confusing. What actually happens is the following:
-</p>
-<ol>
-<li><code>interpolate_boundary_values</code> takes the boundary functions
-<code>bfct</code>, its relation to boundaries <code>dirichlet_bc</code> and
-the triangulation <code>dof, fe</code> and returns a
-mapping <code>boundary_values</code> that maps values instead of functions
-to our boundaries. The function looks at <em>all</em> the boundaries. All we
-ever need to do is specify the initial triangulation.
-</li>
-<li><code>apply_boundary_values</code> subsequently takes that mapping and
-our system of equations <tt>Au=f</tt> and inserts the boundary values into
-the system of equations which can then be solved.
-</li>
-</ol>
-
-
-<hr>
-
-<table class="navbar">      
-<tr>
-  <td>
-    <a href="toc.html">Back to this chapter's index</a>
-  </td>
-  <td>
-    <a href="../index.html" target="_top">Back to the tutorial index</a>
-  </td>
-</tr>
-</table>
-
-  
-<hr>
-<address><a href="../../mail.html">The deal.II group</a></address>
-<p>
-Last modified: $Date$
-</p>
-</body>
-</html>
-
-
-
-
-
diff --git a/deal.II/doc/tutorial/chapter-3.laplace/code/Makefile b/deal.II/doc/tutorial/chapter-3.laplace/code/Makefile
deleted file mode 100644 (file)
index 637ab68..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-# $Id$
-# Author: Wolfgang Bangerth, 1998
-
-root = ../../../../
-
-vpath %.a $(root)/deal.II/lib
-vpath %.a $(root)/lac/lib
-vpath %.a $(root)/base/lib
-
-# Template for makefiles for the examples subdirectory. In principle,
-# everything should be done automatically if you set the target file
-# here correctly:
-target   = laplace
-
-# All dependencies between files should be updated by the included
-# file Makefile.dep if necessary. Object files are compiled into
-# the archives ./Obj.a and ./Obj.g.a. By default, the debug version
-# is used to link. It you don't like that, change the following
-# variable to "off"
-debug-mode = on
-
-# If you want your program to be linked with extra object or library
-# files, specify them here:
-user-libs = 
-
-# To run the program, use "make run"; to give parameters to the program,
-# give the parameters to the following variable:
-run-parameters  = 60 4
-
-# To execute additional action apart from running the program, fill
-# in this list:
-#additional-run-action =
-
-# To specify which files are to be deleted by "make clean" (apart from
-# the usual ones: object files, executables, backups, etc), fill in the
-# following list
-delete-files = gnuplot* *.eps
-
-deal_II_dimension=2
-
-
-###############################################################################
-# Internals
-
-INCLUDE=-I$(root)/deal.II/include -I$(root)/lac/include -I$(root)/base/include
-
-CXXFLAGS.g= -DDEBUG -g -Wall -W -pedantic -Wconversion \
-            -Winline -Woverloaded-virtual  \
-            $(INCLUDE) -Ddeal_II_dimension=$(deal_II_dimension)
-CXXFLAGS  =-O3 -Wuninitialized -finline-functions -ffast-math \
-           -felide-constructors -fnonnull-objects \
-            $(INCLUDE) \
-           -Ddeal_II_dimension=$(deal_II_dimension)
-
-ifeq ($(shell uname),Linux)
-CXX       = g++
-endif
-
-ifeq ($(shell uname),SunOS)
-CXX       = g++
-endif
-
-
-%.go : %.cc #Makefile
-       @echo ============================ Compiling with debugging information:   $<
-       @echo $(CXX) ... -c $< -o $@
-       @$(CXX) $(CXXFLAGS.g) -c $< -o $@
-%.o : %.cc #Makefile
-       @echo ============================ Compiling with optimization:   $<
-       @echo $(CXX) ... -c $< -o $@
-       @$(CXX) $(CXXFLAGS) -c $< -o $@
-
-
-# get lists of files we need
-cc-files    = $(wildcard *.cc)
-o-files     = $(cc-files:.cc=.o)
-go-files    = $(cc-files:.cc=.go)
-h-files     = $(wildcard *.h)
-lib-h-files = $(wildcard $(root)/deal.II/include/*/*.h)
-
-# list of libraries needed to link with
-libs     = ./Obj.a   $(wildcard $(root)/deal.II/lib/lib*2d.a)   $(root)/lac/lib/liblac.a
-libs.g   = ./Obj.g.a $(wildcard $(root)/deal.II/lib/lib*2d.g.a)   $(root)/lac/lib/liblac.a $(root)/base/lib/libbase.g.a
-
-#$(root)/deal.II/lib/deal_II_2d.g -llac.g -lbase.g#-lbasic.g -lfe.g -lgrid.g -lbasic.g -llac.g
-
-
-# check whether we use debug mode or not
-ifeq ($(debug-mode),on)
-libraries = $(libs.g)
-flags     = $(CXXFLAGS.g)
-endif
-
-ifeq ($(debug-mode),off)
-libraries = $(libs)
-flags     = $(CXXFLAGS)
-endif
-
-
-
-# make rule for the target
-$(target) : $(libraries) $(user-libs)
-       @echo ============================ Linking $@
-       $(CXX) $(flags) -o $@ $^
-
-# rule how to run the program
-run: $(target)
-       $(target) $(run-parameters)
-       $(additional-run-action)
-
-
-# rule to make object files
-%.go : %.cc
-       @echo ============================ Compiling with debugging information:   $<
-       @echo $(CXX) ... -c $< -o $@
-       @$(CXX) $(CXXFLAGS.g) -c $< -o $@
-%.o : %.cc
-       @echo ============================ Compiling with optimization:   $<
-       @echo $(CXX) ... -c $< -o $@
-       @$(CXX) $(CXXFLAGS) -c $< -o $@
-
-
-# rules which files the libraries depend upon
-Obj.a: ./Obj.a($(o-files))
-Obj.g.a: ./Obj.g.a($(go-files))
-
-
-clean:
-       rm -f *.o *.go *~ Makefile.dep Obj.a Obj.g.a $(target) $(delete-files)
-
-
-
-.PHONY: clean
-
-
-#Rule to generate the dependency file. This file is
-#automagically remade whenever needed, i.e. whenever
-#one of the cc-/h-files changed. Make detects whether
-#to remake this file upon inclusion at the bottom
-#of this file.
-#
-#use perl to generate rules for the .go files as well
-#as to make rules not for tria.o and the like, but
-#rather for libnumerics.a(tria.o)
-Makefile.dep: $(cc-files) $(h-files) $(lib-h-files)
-       @echo ============================ Remaking Makefile
-       @$(PERL) $(root)/deal.II/Make_dep.pl ./Obj $(INCLUDE) $(cc-files) \
-               > Makefile.dep
-
-
-include Makefile.dep
-
diff --git a/deal.II/doc/tutorial/chapter-3.laplace/code/func.cc b/deal.II/doc/tutorial/chapter-3.laplace/code/func.cc
deleted file mode 100644 (file)
index 8a739c6..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-// $Id$
-
-const char* funcversion = "Functions: $Revision$";
-
-#include "functions.h"
-
-#include <cmath>
-
-
-double 
-BoundaryFct::operator ()(const Point<2> &p) const
-{ 
-  return cos(2*M_PI*p(0))*cos(2*M_PI*p(1));
-}
diff --git a/deal.II/doc/tutorial/chapter-3.laplace/code/functions.h b/deal.II/doc/tutorial/chapter-3.laplace/code/functions.h
deleted file mode 100644 (file)
index 9b888fd..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-// $Id$
-
-
-#include <base/function.h>
-
-class BoundaryFct
-  : public Function<2>
-{
- public:
-  virtual double operator()(const Point<2> &p) const;
-};
-
diff --git a/deal.II/doc/tutorial/chapter-3.laplace/code/laplace.cc b/deal.II/doc/tutorial/chapter-3.laplace/code/laplace.cc
deleted file mode 100644 (file)
index 98c93d8..0000000
+++ /dev/null
@@ -1,195 +0,0 @@
-// $Id$
-
-const char* laplaceversion = "Laplace: $Revision$";
-
-#include "laplace.h"
-#include "functions.h"
-
-#include <lac/solver_cg.h>
-#include <grid/tria_accessor.h>
-#include <grid/dof_accessor.h>
-#include <grid/tria_iterator.h>
-#include <grid/tria_boundary.h>
-#include <grid/dof_constraints.h>
-#include <basic/data_io.h>
-#include <base/function.h>
-#include <base/parameter_handler.h>
-#include <fe/fe_lib.lagrange.h>
-#include <fe/fe_lib.criss_cross.h>
-#include <fe/fe_values.h>
-#include <base/quadrature_lib.h>
-#include <numerics/matrices.h>
-#include <numerics/vectors.h>
-#include <lac/vector.h>
-#include <lac/fullmatrix.h>
-
-#include <cmath>
-#include <fstream>
-#include <iomanip>
-
-#define PRIMEL FELinear<2>
-
-// Finite Elements
-
-static PRIMEL fe;
-
-// Quadrature formulae
-
-static QGauss2<2> qc;
-static QGauss2<1> qf;
-static QGauss5<2> qc_integrate;
-static QGauss5<1> qf_integrate;
-
-StraightBoundary<2> stb;
-
-Laplace::Laplace()
-            : dof(&tr)         
-{
-  // Generate the initial triangulation
-  tr.create_hypercube(-1.,1.);
-
-  // Distribute the degrees of freedom
-  dof.distribute_dofs(fe);
- }
-
-Laplace::~Laplace()
-{}
-
-
-// Remesh the grid
-void
-Laplace::remesh(unsigned int steps)
-{
-  if (tr.n_levels() <= 1)
-  {
-    tr.refine_global(1); // refine globally
-  }
-
-  if (steps)
-    tr.refine_global(steps);
-  else
-    tr.execute_coarsening_and_refinement();  // refine locally
-
-  // redistribute the degrees of freedom...
-  dof.distribute_dofs(fe);
-  // ...and renumber them so they can be used more efficiently
-  dof.renumber_dofs(Cuthill_McKee);
-}
-
-// JS.Primales Problem zusammenstellen.
-void
-Laplace::assemble()
-{
-  // Initialize the problem matrix, i.e. reserve storage space
-  matrix_structure.reinit(dof.n_dofs(),dof.n_dofs(),
-                         dof.max_couplings_between_dofs());
-  // Generate the matrix structure
-  dof.make_sparsity_pattern(matrix_structure);
-  hanging_nodes.clear();
-  dof.make_constraint_matrix(hanging_nodes);
-  hanging_nodes.condense(matrix_structure);
-  matrix_structure.compress(); 
-  
-  // The problem has the form Au=f.
-  A.reinit(matrix_structure);
-  f.reinit(dof.n_dofs());
-
-  // Calculate the trial functions on the cell faces.
-  FEValues<2> fevalues(fe, qc, UpdateFlags(update_gradients |
-                                                  update_JxW_values));
-  FEFaceValues<2> ffvalues(fe, qf,
-                          UpdateFlags(update_JxW_values | update_q_points));
-
-  // Integrate the problem locally...
-  vector<int> indices(fe.total_dofs);
-  Vector<float> elvec(fe.total_dofs);
-  
-  FullMatrix<float> elmat(fe.total_dofs);
-  
-  for (DoFHandler<2>::active_cell_iterator c = dof.begin_active()
-                                       ; c != dof.end() ; ++c)
-  {
-    fevalues.reinit(c, stb);
-    elmat.clear();
-    elvec.clear();
-    c->get_dof_indices(indices);
-    
-    for (unsigned k=0;k<qc.n_quadrature_points;++k)
-    {
-      for (unsigned i=0;i<fe.total_dofs;++i)
-      {
-       const Point<2> dv = fevalues.shape_grad(i,k);
-
-       
-       for (unsigned j=0;j<fe.total_dofs;++j)
-       {
-         const Point<2> du = fevalues.shape_grad(j,k);
-         
-         elmat(i,j) += fevalues.JxW(k)
-                       * du * dv
-                       ;
-         
-       }
-      }
-    }
-    // ...and insert the local matrix into the global one.
-    for (unsigned i=0;i<fe.total_dofs;++i)
-    {
-      f(indices[i]) += elvec(i);
-            
-      for (unsigned j=0;j<fe.total_dofs;++j)
-      {
-       A.add(indices[i], indices[j], elmat(i,j));
-      }
-    }
-  }    
-
-  // Insert the boundary conditions into the matrix.
-  map<int,double> boundary_values;
-  DoFHandler<2>::FunctionMap dirichlet_bc;
-  BoundaryFct bfct;
-  dirichlet_bc[0]=&bfct;
-  VectorTools<2>::interpolate_boundary_values(dof,dirichlet_bc,
-                                             fe,boundary,
-                                             boundary_values);
-  u.reinit(f);
-  MatrixTools<2>::apply_boundary_values(boundary_values,A,u,f);
-}
-
-// Solve the primal problem.
-void
-Laplace::solve()
-{
-  // Solver control: max 1000 iterations, threshold 1e-10
-  SolverControl control(1000, 1.e-10);
-  // Define the solver.
-  SolverCG<AdvMatrix, Vector<float>> solver(control, mem);
-  
-  solver.solve(A,u,f);
-  
-  hanging_nodes.distribute(u);
-}
-
-
-// Data output for gnuplot.
-void Laplace::write_data(const char* name)
-{
-
-  DataOut<2> out;
-  char fname[100];
-  {
-    ofstream gnuplot(fname);
-
-    out.clear_data_vectors();
-    out.attach_dof_handler(dof);
-    out.add_data_vector(u,"solution","kg");
-    
-    out.write_gnuplot (gnuplot, 1);
-    gnuplot.close ();
-  }
-     
-}
-
-
-
-
diff --git a/deal.II/doc/tutorial/chapter-3.laplace/code/laplace.h b/deal.II/doc/tutorial/chapter-3.laplace/code/laplace.h
deleted file mode 100644 (file)
index 1e93ced..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-// $Id$
-
-#include <base/exceptions.h>
-#include <base/point.h>
-#include <grid/tria.h>
-#include <grid/dof.h>
-#include <grid/dof_constraints.h>
-#include <grid/tria_boundary.h>
-#include <lac/vector_memory.h>
-#include <lac/vector.h>
-#include <lac/sparsematrix.h>
-
-class AdvMatrix : 
-  public SparseMatrix<double>
-{
-public:
-  void precondition(Vector<double>& dst, const Vector<double>& src) const
-      {
-       SparseMatrix::precondition_SSOR(dst, src);
-      }
-};
-
-
-class Laplace
-{
-protected:
-//  Point<2> direction;
-  Triangulation<2> tr;
-  DoFHandler<2> dof;
-
-  SparsityPattern matrix_structure;
-  AdvMatrix A;
-  
-  Vector<float> u;
-  Vector<float> z;
-  Vector<float> f;
-
-  PrimitiveVectorMemory<float> mem;
-  
-  ConstraintMatrix hanging_nodes;
-
-  StraightBoundary<2> boundary;
-  
-public:
-  Laplace();
-  ~Laplace();
-
-  void remesh(unsigned int global_refine = 0);
-  void assemble();
-  void solve();
-
-  void write_data(const char* name);
-};
-
diff --git a/deal.II/doc/tutorial/chapter-3.laplace/code/main.cc b/deal.II/doc/tutorial/chapter-3.laplace/code/main.cc
deleted file mode 100644 (file)
index 76eb23f..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-// $Id$
-
-#include "laplace.h"
-#include "functions.h"
-
-#include <iostream.h>
-#include <fstream.h>
-#include <stdlib.h>
-
-char fname[30];
-
-main(int argc, char** argv)
-{
-  if (argc==1)
-    cerr << "Usage: " << argv[0] << "firstgrid\nUsing 3"
-        << endl;
-  
-  int firstgrid = 3;
-
-  if (argc>=2) firstgrid = atoi(argv[1]);
-
-  Laplace lap;
-  
-  for (unsigned step = 0; step < 3 ; ++step)
-  {
-    // Generate a refined grid.
-    if (!step)
-      lap.remesh(firstgrid);
-    else
-    {
-      lap.remesh(1);
-    }
-
-    
-    // Assemble and solve the problem.
-    lap.assemble();
-    lap.solve();
-       
-    // Data output.
-    lap.write_data(fname);
-  }
-}
diff --git a/deal.II/doc/tutorial/chapter-3.laplace/index.html b/deal.II/doc/tutorial/chapter-3.laplace/index.html
deleted file mode 100644 (file)
index 56ffc70..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"
-   "http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<title>deal.II tutorial: The Laplace 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">
-    <meta name="author" content="the deal.II authors <authors@dealii.org>">
-    <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
-</head>
-
-<frameset rows="70,*" border=0>
-
-      <frame name="title" src="title.html"  frameborder="yes">
-      <frameset cols="150,*" border=0>
-       <frame name="navbar" src="navbar.html" frameborder="no"> 
-       <frame name="body" src="toc.html" frameborder="no">
-      </frameset>
-
-</frameset>
-
-<noframes>
-<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://www.dealii.org/doc/tutorial/chapter-3.laplace/toc.html</a>.
-</noframes>
-
-</html>
-
-
-
-
-
diff --git a/deal.II/doc/tutorial/chapter-3.laplace/laplace.html b/deal.II/doc/tutorial/chapter-3.laplace/laplace.html
deleted file mode 100644 (file)
index bfa2be2..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN" 
-    "http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-  <title>deal.II tutorial: the Laplace 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">
-  <meta name="author" content="the deal.II authors <authors@dealii.org>">
-  <meta name="keywords" content="deal.II,deal.II tutorial,finite element,fem">
-</head>
-<body>
-<h1>The class Laplace</h1>
-<p>
-The class <em>Laplace</em> contains most of the code we need to actually solve the problem at
-hand. The purpose of this chapter is to establish the elements that are needed for this class
-or any one like it.
-</p>
-
-<p>
-Let's have a look at the class definition:
-<pre>
-<code>
-class Laplace
-{
-
-  Triangulation&lt;2&gt; tr;
-  DoFHandler&lt;2&gt; dof;
-
-  SparsityPattern matrix_structure;
-  LapMatrix A;
-
-  ConstraintMatrix hanging_nodes;
-
-</code>
-</pre>
-<p>
-These few lines define several important elements: The triangulation <code>tr</code>, i.e. the grid, and a handler for the degrees
-of freedom for the finite elements <code>dof</code>, all for the two-dimensional case. 
-In addition one matrix structure and two matrices are defined (the matrix <code>A</code> defining our problem). Further explanation can be found in the 
-chapter <a href="assemble.html#matrix">Assembling the problem</a>. Note that 
-in order to solve any problem at all with <acronym>deal.II</acronym> the definitions above are paramount.
-</p>
-
-<p>
-The next bit are the functions actually called by our program, the working part, so to say.
-The constructor has the task of generating a triangulation, too.
-</p>  
-<pre>
-<code>
-public:
-  Laplace();
-  ~Laplace();
-</code>
-</pre>
-<p>
-The next few functions refine the grid - non-adaptively - assemble the problem and
-call the appropriate solver.
-</p>
-<pre>
-<code>
-  void remesh(unsigned int global_refine = 0);
-  void assemble();
-  void solve();
-};
-</code>
-</pre>
-
-<hr>
-
-<table class="navbar">      
-<tr>
-  <td>
-    <a href="toc.html">Back to this chapter's index</a>
-  </td>
-  <td>
-    <a href="../index.html" target="_top">Back to the tutorial index</a>
-  </td>
-</tr>
-</table>
-
-  
-<hr>
-
-<address><a href="../../mail.html">The deal.II group</a></address>
-
-
-<p>
-Last modified: $Date$
-</p>
-</body>
-</html>
diff --git a/deal.II/doc/tutorial/chapter-3.laplace/main.html b/deal.II/doc/tutorial/chapter-3.laplace/main.html
deleted file mode 100644 (file)
index 901eb16..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN" 
-    "http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-  <title>deal.II tutorial: the Laplace 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">
-   <meta name="author" content="the deal.II authors <authors@dealii.org>">
-  <meta name="keywords" content="deal.II,deal.II tutorial">
-</head>
-<body>
-
-<h1>The Laplace Problem</h1>
-  
-<h2>Main Program: <a href="code/main.cc">main.cc</a></h2>
-<p>
-The main program has several functions:
-</p>
-
-<ol>
-   <li> <a href="#program">Inclusion of the necessary headers and variable
-       definitions.</a>
-   </li>
-   <li>
-       <a href="#instantiation">Instantiation of  the C++ class <em>Laplace</em>
-         dealing with the problem</a>.
-   </li>
-   <li><a href="#laplace">Calling the <em>Laplace</em> methods for assemblage and solution of the
-       problem.</a>
-   </li>
-   <li>
-       <a href="#output">Writing out of the output data and termination.</a>
-   </li>
-</ol>
-    
-<p>
-We shall look at this in detail now:
-</p>
-    
-<h4><a name="program">Program Header and Definitions</a></h4>
-    
-<p>
-First the header files containing the <em>Laplace</em> class definition and
-the function definition for our solution function are included:
-</p>
-
-<pre>
-<code>
-#include "<a href="code/laplace.h">laplace.h</a>"
-#include "<a href="code/functions.h">functions.h</a>"
-</code>
-</pre>
-    
-<p>
-Our main program starts here. It will take the initial number of global grid
-refinements as its argument. That means that the number 3 as argument will
-lead to the initial grid being globally refined three times, no questions
-asked.
-</p>
-
-<pre>
-<code>
-main(int argc, char** argv) 
-{
-</code>
-</pre>
-<h4><a name="instantiation">Instantiation of needed classes</a></h4>
-<p>
-We need a solution function and an instance of the class dealing with the
-Laplace problem:
-</p>
-
-<pre>
-<code>
-Laplace lap;
-</code>
-</pre>
-
-<p>
-In addition we need to do some refinement (the command line argument was
-previously stored in the variable <var>firstgrid</var>. During the first 
-execution
-of the loop global refinement is done <var>firstgrid</var> times, every 
-following time it is done once more.
-</p>
-<pre><code>
-for (unsigned step = 0; step &lt; 3 ; ++step)   
-{     
-  
-  if (step == 0) 
-     lap.remesh(firstgrid);
-  else
-  {
-     lap.remesh(1);
-  }
-</code></pre>
-
-<h4><a name="laplace">Problem assemblage and solution</a></h4>
-<p>
-Our class assembles and solves the primal problem.
-</p>
-<pre><code>
-  lap.assemble(); 
-  lap.solve();          
-</code></pre>
-
-<h4><a name="output">Data output</a></h4>
-<p>
-Finally the solution is written to a file.</p>
-<pre>
-<code>
-  lap.write_data(fname);   
- }   
-}
-</code></pre>
-<hr>
-
-<table class="navbar">      
-<tr>
-  <td>
-    <a href="toc.html">Back to this chapter's index</a>
-  </td>
-  <td>
-    <a href="../index.html" target="_top">Back to the tutorial index</a>
-  </td>
-</tr>
-</table>
-
-<hr>
-<address>
-  <a href="../../mail.html">The deal.II group</a></address>
-<p>
-Last modified: $Date$
-</p>
-
-</body>
-</html>
diff --git a/deal.II/doc/tutorial/chapter-3.laplace/navbar.html b/deal.II/doc/tutorial/chapter-3.laplace/navbar.html
deleted file mode 100644 (file)
index 45f6d02..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"
-   "http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<title>deal.II tutorial: The Laplace 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">
-    <meta name="author" content="the deal.II authors <authors@dealii.org>">
-    <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
-</head>
-<body style="background-image:url(../../pictures/deal.II-text.jpg);" lang="en">
-
-<strong>Table of contents</strong><br>
-
-<dl>
-<li>
-<p>
-<a href="toc.html" target="body">Long table of contents</a>
-</p>
-</li>
-<li>
-<p>
-<a href="structure.html" target="body">Program structure</a>
-</p>
-</li>
-<li>
-<p>
-<a href="main.html" target="body">The main program</a>
-</p>
-</li>
-<li>
-<p>
-<a href="laplace.html" target="body">The class Laplace</a>
-</p>
-</li>
-<li>
-<p>
-<a href="triangulation.html" target="body">Generating a triangulation</a>
-</p>
-</li>
-<li>
-<p>
-<a href="assemble.html" target="body">Assembling the problem matrix</a>
-</p>
-</li>
-<li>
-<p>
-<a href="solution.html" target="body">Solving the problem</a>
-</p>
-</li>
-<li>
-<p>
-<a href="source.html" target="body">The source code</a>
-</p>
-</li>
-</dl>
-
-    <p>
-      <a href="../index.html" target="_top">Back to the tutorial index</a>
-    </p>
-    <hr>
-    <p>
-      <a href="../../mail.html">Comments on the tutorial</a>
-    </p>
-
-<!-- Last modified: $Date$ -->
-
-</body>
-</html>
-
-
-
-
-
diff --git a/deal.II/doc/tutorial/chapter-3.laplace/solution.html b/deal.II/doc/tutorial/chapter-3.laplace/solution.html
deleted file mode 100644 (file)
index 3c20300..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN" 
-    "http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-  <title>deal.II tutorial: the Laplace 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">
-  <meta name="author" content="the deal.II authors <authors@dealii.org>">
-  <meta name="keywords" content="deal.II,deal.II tutorial">
-</head>
-<body>
-<h1>Solving the problem</h1>
-
-<p>
-Now that the problem matrix is assembled we need to define an appropriate
-solver. In this case we use a <tt>CG</tt>-solver with a maximum of 1000 
-iterations and a threshold of 1e-10.
-</p>
-
-<pre><code>
-void
-Laplace::solve()
-{
-
-  SolverControl control(1000, 1.e-10);
-
-  SolverCG&lt;AdvMatrix, Vector&lt;double&gt; &gt; solver(control, mem);
-  
-  solver.solve(A,u,f);
-  
-  hanging_nodes.distribute(u);
-
-}
-</code></pre>
-
-<hr>
-
-<table class="navbar">      
-<tr>
-  <td>
-    <a href="toc.html">Back to this chapter's index</a>
-  </td>
-  <td>
-    <a href="../index.html" target="_top">Back to the tutorial index</a>
-  </td>
-</tr>
-</table>
-
-  
-<hr>
-<address><a href="../../mail.html">The deal.II group</a></address>
-
-<p>
-Last modified: $Date$
-</p>
-</body>
-</html>
diff --git a/deal.II/doc/tutorial/chapter-3.laplace/source.html b/deal.II/doc/tutorial/chapter-3.laplace/source.html
deleted file mode 100644 (file)
index ee54faf..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"
-   "http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<title>deal.II tutorial: The Laplace 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">
-    <meta name="author" content="the deal.II authors <authors@dealii.org>">
-    <meta name="keywords" content="deal.II,deal.II tutorial">
-</head>
-<body lang="en">
-<h1>The Source Code for the Solution of the Laplace Problem</h1>
-
-<p><b>Warning: This source code is outdated and does not
-compile with newer versions of <acronym>deal.II</acronym>. We will provide
-an up-to-date version when <acronym>deal.II</acronym> gets more stable 
-(in terms of backwards-compatibility).
-</b>
-</p>
-
-<p>
-You can have a look at the complete source code for the solution of the 
-Laplace problem by following the links below:
-</p>
-<ul>
-<li><p><a href="code/main.cc">main.cc</a> containing the main program which
-         sets some parameters and starts the solution process.</p>
-</li>
-<li><p><a href="code/laplace.h">laplace.h</a> and 
-         <a href="code/laplace.cc">laplace.cc</a> which define the class
-         <code>Laplace</code> that assembles the laplace problem.</p>
-</li>
-<li><p><a href="code/functions.h">functions.h</a> and 
-         <a href="code/func.cc">func.cc</a> which define the function that sets
-         the boundary conditions.</p>
-</li>
-<li><p><a href="code/Makefile">Makefile</a>. Last but not least. You will 
-         probably need to edit the variable <code>root</code> defined at the
-         top of the Makefile. This variable defines the location of your 
-         <acronym>DEAL</acronym> directory.</p>
-</li>
-</ul>
-
-<hr>
-
-<table class="navbar">      
-<tr>
-  <td>
-    <a href="toc.html">Back to this chapter's index</a>
-  </td>
-  <td>
-    <a href="../index.html" target="_top">Back to the tutorial index</a>
-  </td>
-</tr>
-</table>
-
-<hr>
-<address>
-<a href="../../mail.html">The deal.II group</a></address>
-<p>
-Last modified: $Date$
-</p>
-</body>
-</html>
diff --git a/deal.II/doc/tutorial/chapter-3.laplace/structure.html b/deal.II/doc/tutorial/chapter-3.laplace/structure.html
deleted file mode 100644 (file)
index 1c5efb9..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN" 
-    "http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-  <title>deal.II tutorial: the Laplace 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">
-  <meta name="keywords" content="deal.II,deal.II tutorial">
-</head>
-  <body>
-    <h1>Program structure</h1>
-    <p>
-    In order to solve our differential equation we have to deal with the
-    the following tasks:
-    </p>
-    <ul>
-      <li> <a href="triangulation.html">Grid generation</a>
-      </li>
-      <li> <a href="assemble.html">Assembly of the problem matrix</a>
-      </li>
-      <li> <a href="assemble.html#boundary">Description of the boundary conditions</a>
-      </li>
-      <li> <a href="solution.html">Solution of the equation system</a>
-      </li>
-    </ul>
-    <p>
-      All these tasks are problem specific, therefore we will put them into
-      a class called <a href="laplace.html"><em>Laplace</em></a>. 
-      The <a href="main.html">main program</a> 
-      will - for now - do nothing but call the methods of this class in their 
-      proper order. 
-    </p>
-    <p>
-      We end up with a program consisting of two major components:
-    <ul>
-      <li>a <em>main program</em> that starts the process of problem
-       generation and solution by calling methods of
-      </li>
-      <li>the <em>class Laplace</em> that contains all the parts specific
-       to the problem at hand
-      </li>
-    </ul>
-  
-
-<hr>
-
-<table class="navbar">      
-<tr>
-  <td>
-    <a href="toc.html">Back to this chapter's index</a>
-  </td>
-  <td>
-    <a href="../index.html" target="_top">Back to the tutorial index</a>
-  </td>
-</tr>
-</table>
-
-  
-<hr>
-<address><a href="../../mail.html">The deal.II group</a></address>
-
-<p>
-Last modified: $Date$
-</p>
-</body>
-</html>
diff --git a/deal.II/doc/tutorial/chapter-3.laplace/title.html b/deal.II/doc/tutorial/chapter-3.laplace/title.html
deleted file mode 100644 (file)
index c52e189..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"
-   "http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<!-- deal.II tutorial template
-     Jan Schrage and others <deal@iwr.uni-heidelberg.de> 1999 
--->
-
-    <link href="../../screen.css" rel="StyleSheet" title="deal.II Tutorial" media="screen">
-    <link href="../../print.css" rel="StyleSheet" title="deal.II Tutorial" media="print">
-    <meta name="author" content="the deal.II authors <authors@dealii.org>">
-    <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
-</head>
-
-<!-- Page Body -->
-<body style="background-image:url(../../pictures/title-background.jpg);" lang="en">
-
-<!-- Title Frame -->
-
-<h1 style="text-align: center;">The deal.II tutorial - Chapter 3 - The Laplace Problem</h1>
-
-</body>
-</html>
-
-
diff --git a/deal.II/doc/tutorial/chapter-3.laplace/toc.html b/deal.II/doc/tutorial/chapter-3.laplace/toc.html
deleted file mode 100644 (file)
index 3e16a18..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"
-   "http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<title>deal.II tutorial: The Laplace 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">
-    <meta name="author" content="the deal.II authors <authors@dealii.org>">
-    <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
-</head>
-<body lang="en">
-
-<h1>The Laplace Problem</h1>
-<p>
-We will start with a simple example for a differential equation to be solved
-with <strong>deal.II</strong>: the Laplace problem. We will try to solve the
-Laplace equation on a square where one of the four boundaries has a constant
-and the other three zero potential.</p>
-<p>
-In order to solve this problem we will need to:</p>
-<ul>
-<li>
-generate a triangulation, i.e. describe the grid on which the equation will be
-solved
-</li>
-<li>
-assemble the problem matrix, i.e. generate the matrix structure describing the
-laplace problem
-</li>
-<li>
-assemble matrices describing the boundary conditions
-</li>
-<li>
-let deal.II solve the problem
-</li>
-<li>
-take care of the data output
-</li>
-</ul>
-<p>
-</p>
-<p>
-This tutorial will accordingly be split into several chapters:</p>
-<ol>
-<li>
-<strong><a href="structure.html">Program structure</a></strong>
-<p>
-where the overall design of the program and its classes are discussed</p>
-</li>
-<li>
-<strong><a href="main.html">The main program</a></strong>
-<p>
-where we take a look at how deal.II is used</p>
-</li>
-<li>
-<strong><a href="laplace.html">The class Laplace</a></strong>
-<p>
-where some of the details of the problem generation and solution are
-discussed</p>
-</li>
-<li>
-<strong><a href="triangulation.html">Generating a triangulation</a></strong>
-<p>where a triangulation is generated and degrees of freedom are discussed</p>
-</li>
-<li>
-<strong><a href="assemble.html">Assembling the problem matrix</a></strong>
-<p>
-where the matrices describing the problem is assembled
-and the boundary conditions are set
-</p>
-</li>
-<li>
-<strong><a href="solution.html">Solving the problem</a></strong>
-<p>
-where the problem is solved
-</p>
-</li>
-<li>
-<strong><a href="source.html">The source code</a></strong>
-<p>
-contains link to all the source files.
-</p>
-</li>
-</ol>
-<hr>
-
-<p class="navbar">
-      <a href="../index.html" target="_top">Back to the tutorial index</a>
-</p>
-<hr>
-<address>
-<a href="../../mail.html">The deal.II group</a></address>
-<p>
-Last modified: $Date$
-</p>
-</body>
-</html>
-
-
-
-
-
diff --git a/deal.II/doc/tutorial/chapter-3.laplace/triangulation.html b/deal.II/doc/tutorial/chapter-3.laplace/triangulation.html
deleted file mode 100644 (file)
index 9f15faf..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN" 
-    "http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-  <title>deal.II tutorial: the Laplace 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">
-  <meta name="author" content="the deal.II authors <authors@dealii.org>">
-  <meta name="keywords" content="deal.II,deal.II tutorial">
-</head>
-<body>
-<h1>Generating a triangulation</h1>
-
-<p>
-The initial triangulation is generated by the constructor of the class <em>Laplace</em>.
-It is a hypercube with the coordinates along each axis ranging from -1 to 1. This first
-triangulation consists of only one finite element. 
-</p>
-<pre>
-<code>
-Laplace::Laplace(Function&lt;2&gt;&amp; solution)              
-{
-  tr.create_hypercube(-1.,1.);
-</code>
-</pre>
-
-
-<p>
-Afterwards all the degrees of freedom, i.e. all the cell vertices, are renumbered. 
-This step is necessary whenever the triangulation has changed, e.g. after each refinement.
-</p>
-<pre>
-<code>
-  dof_primal.distribute_dofs(fe_primal);
- }
-</code>
-</pre>
-
-<hr>
-
-<table class="navbar">      
-<tr>
-  <td>
-    <a href="toc.html">Back to this chapter's index</a>
-  </td>
-  <td>
-    <a href="../index.html" target="_top">Back to the tutorial index</a>
-  </td>
-</tr>
-</table>
-
-  
-<hr>
-
-<address><a href="../../mail.html">The deal.II group</a></address>
-
-<p>
-Last modified: $Date$
-</p>
-</body>
-</html>
-
-
-
-
-
-
diff --git a/deal.II/doc/tutorial/index.html b/deal.II/doc/tutorial/index.html
deleted file mode 100644 (file)
index adac103..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"
-   "http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<title>deal.II tutorial: Elements of finite element programs</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">
-    <meta name="author" content="the deal.II authors <authors@dealii.org>">
-    <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
-</head>
-
-<frameset rows="70,*">
-
-      <frame name="title" src="title.html" frameborder="1">
-      <frameset cols="150,*">
-       <frame name="navbar" src="navbar.html" border=0 frameborder="0">
-       <frame name="body" src="toc.html" border=0 frameborder="0">
-      </frameset>
-
-</frameset>
-
-<noframes>
-<h1>The deal.II Tutorial</h1>
-Your browser does not seem to understand frames. A version of this
-page that does not use frames can be found at 
-<a href="toc.html">toc.html</a>.
-</noframes>
-
-</html>
diff --git a/deal.II/doc/tutorial/navbar.html b/deal.II/doc/tutorial/navbar.html
deleted file mode 100644 (file)
index ebcc68e..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"
-   "http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<title>deal.II tutorial: Structure of a Finite Element Program</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">
-    <meta name="author" content="the deal.II authors <authors@dealii.org>">
-    <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
-</head>
-<body style="background-image:url(../pictures/deal.II-text.jpg);" lang="en">
-
-<p>
-  <a href="toc.html" target="body">Long table of contents</a>
-</p>
-
-<hr>
-
-<p>
-  <a href="chapter-2.step-by-step/index.html" target="_top">
-    Step-by-step examples
-  </a>
-</p>
-
-<p>
-  <a href="chapter-1.elements/index.html" target="_top">
-    Elements of finite element programs (Reference)
-  </a>
-</p>
-
-<hr>   
-
-<p>
-  <a href="../index.html" target="_top">Back to the deal.II homepage</a>
-</p>
-
-
-<p>
-  <a href="../mail.html">The deal.II mailing list</a>
-</p>
-
-<!-- Last modified: $Date$ -->
-
-</body>
-</html>
diff --git a/deal.II/doc/tutorial/scripts/filelist.pl b/deal.II/doc/tutorial/scripts/filelist.pl
deleted file mode 100755 (executable)
index 701fa46..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/usr/local/bin/perl
-
-# Takes table title as argument, traverses the files in .
-# and writes to STDOUT a list of all files 
-# as a TeX-table, with modification date and revision number.
-# Jan Schrage and others <deal@iwr.uni-heidelberg.de> 1999
-
-use File::Find;
-use File::stat;
-use Time::localtime;
-
-unless ($ARGV[0]) { $ttitle="{\tt deal.II} tutorial"; }
-else { $ttitle=$ARGV[0];}
-
-@ignore=("CVS","/#.*#",".*~","^[./]*\$","\.#");
-
-tablehead($ttitle); 
-find(\&process,".");
-tablefoot();
-
-sub process {
-    local ($what="");
-    local ($last_rev,$rev,$line,@parts,@cvsout);
-
-    $what=$File::Find::dir."/".$_;
-
-    foreach $i (@ignore) {
-       if ($what =~ $i) {return;}
-    }
-      
-    @cvsout=`cvs status $what`;
-    
-    $last_rev=ctime(stat($what)->mtime);
-
-    
-    while ($line=shift(@cvsout))
-    {
-       if ($line =~ "Working revision:" ) 
-       {
-           @parts=split(/:\w*/,$line);
-           $rev=@parts[1];
-           
-           print $what." &".$last_rev." &".$rev;
-       }
-    }
-    
-}
-
-sub tablehead {
-    local ($what=$_);
-
-    print
-"%% Table compiled by filelist.pl 
-%% Jan Schrage <deal\@iwr.uni-heidelberg.de> 1999
-\\begin{table}
-\\caption{Directory listing of $ttitle}
-\\begin{tabular}[l r r]
-File & Last change  & Revision number \\\\ 
-\\hrule \n";
-}
-
-
-sub tablefoot {
-    print "\\end{table} \n";
-}
-
diff --git a/deal.II/doc/tutorial/scripts/validate b/deal.II/doc/tutorial/scripts/validate
deleted file mode 100755 (executable)
index 5741b95..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/sh
-
-# For HTML validation. Use as validate <filename>. 
-# nsgmls can at the time of this writing not handle URLS. Therefore we have
-# to filter out the references to the DTDs. Unfortunately this means not
-# all valid entities will be recognized. Errors regarding undefined 
-# entities can therefore most likely be ignored.
-#
-# Oh...and you might have to set the path to the DTD. This is just a 
-# quick hack anyway.
-#
-# Jan Schrage and others <deal@iwr.uni-heidelberg.de> 1999
-# $Id$
-
-
-echo Validating $1
-cat $1 | sed  -e 's/http:\/\/www.w3.org\/TR\/REC-html40\/strict.dtd//' -e 's/\"\"//' | nsgmls -s -m /home/people/schrage/lib/sgml/pubtext/HTML4.soc 
diff --git a/deal.II/doc/tutorial/templates/body.html b/deal.II/doc/tutorial/templates/body.html
deleted file mode 100644 (file)
index defe52b..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"
-   "http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<!-- deal.II tutorial template
-     Jan Schrage and others <deal@iwr.uni-heidelberg.de> 1999 
--->
-
-<title>deal.II tutorial: INSERT_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">
-    <meta name="author" content="the deal.II authors <authors@dealii.org>">
-    <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
-</head>
-
-<!-- Page Body -->
-<body lang="en">
-
-<h1>INSERT_title</h1>
-
-<!-- Page Foot -->
-<hr>
-<table class="navbar">      
-<tr>
-  <td>
-    <a href="INSERT_url">Next Chapter: </a>
-  </td>
-  <td>
-    <a href="toc.html">Back to this chapter's index</a>
-  </td>
-  <td>
-    <a href="../index.html" target="_top">Back to the tutorial index</a>
-  </td>
-</tr>
-</table>
-<hr>
-<address>
-<a href="mailto:INSERT_your_email">INSERT_your_name</a></address>
-<p>
-Last modified: $Date$ 
-</p>
-</body>
-</html>
diff --git a/deal.II/doc/tutorial/templates/example.html b/deal.II/doc/tutorial/templates/example.html
deleted file mode 100644 (file)
index 5e26d87..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-<p class="Example">
-<span class="example">Example:</span>
-</p>
-
-<pre class="example">
-<code>
-</code>
-</pre>
diff --git a/deal.II/doc/tutorial/templates/index.html b/deal.II/doc/tutorial/templates/index.html
deleted file mode 100644 (file)
index e026910..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"
-   "http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<!-- deal.II tutorial template
-     Jan Schrage and others <deal@iwr.uni-heidelberg.de> 1999 
--->
-
-<title>deal.II tutorial: INSERT_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">
-    <meta name="author" content="the deal.II authors <authors@dealii.org>">
-    <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
-</head>
-
-<frameset rows="70,*" border=0>
-
-      <frame name="title" src="title.html" frameborder="yes">
-      <frameset cols="150,*" border=0>
-       <frame name="navbar" src="navbar.html" border=0 frameborder="no">
-       <frame name="body" src="toc.html" border=0 frameborder="no">
-      </frameset>
-
-</frameset>
-
-<noframes>
-<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://www.dealii.org/doc/tutorial/INSERT_rest_of_the_url</a>.
-</noframes>
-
-</html>
-
-
-
-
-
diff --git a/deal.II/doc/tutorial/templates/navbar.html b/deal.II/doc/tutorial/templates/navbar.html
deleted file mode 100644 (file)
index dd3c0c9..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"
-   "http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<!-- deal.II tutorial template
-     Jan Schrage and others <deal@iwr.uni-heidelberg.de> 1999 
--->
-
-<title>deal.II tutorial: INSERT_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">
-    <meta name="author" content="the deal.II authors <authors@dealii.org>">
-    <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
-</head>
-<body style="background-image:url(../../pictures/deal.II-text.jpg);" lang="en">
-
-<p>
-<strong>Table of contents</strong>
-</p>
-    <dl>
-      <li>
-       <p>
-         <a href="toc.html" target="body">Long table of contents</a>
-       </p>
-      </li>
-      <li>
-       <p>
-         <a href="INSERT_url" target="body">INSERT_whatever_you_wish</a>
-       </p>
-      </li>
-    </dl>
-    <p>
-      <a href="../index.html" target="_top">Back to the tutorial index</a>
-    </p>
-<!-- Last modified: $Date$ -->
-
-</body>
-</html>
-
-
-
-
-
diff --git a/deal.II/doc/tutorial/templates/title.html b/deal.II/doc/tutorial/templates/title.html
deleted file mode 100644 (file)
index 96169d3..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"
-   "http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<!-- deal.II tutorial template
-     Jan Schrage and others <deal@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">
-    <meta name="author" content="the deal.II authors <authors@dealii.org>">
-    <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
-</head>
-
-<!-- Page Body -->
-<body style="background-image:url(../../pictures/title-background.jpg);" lang="en">
-
-<!-- Title Frame -->
-
-<h1 style="text-align: center;">The deal.II tutorial - Chapter INSERT_number - INSERT_chapter_title</h1>
-
-<!-- Last modified: $Date$ -->
-</body>
-</html>
-
-
-
-
-
-
-
-
diff --git a/deal.II/doc/tutorial/templates/toc.html b/deal.II/doc/tutorial/templates/toc.html
deleted file mode 100644 (file)
index 2195655..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"
-   "http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<!-- deal.II tutorial template
-     Jan Schrage and others <deal@iwr.uni-heidelberg.de> 1999 
--->
-
-<title>deal.II tutorial: INSERT_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">
-    <meta name="author" content="the deal.II authors <authors@dealii.org>">
-    <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
-</head>
-<body lang="en">
-
-<h1>INSERT_title</h1>
-
-<h2>About this tutorial</h2> 
-<p>
-INSERT_some_introductory_text
-</p>
-
-<h2><a name="toc">Table of contents</a></h2>
-
-    <ol>      
-      <li>
-       <p>
-         <b><a href="INSERT_url">INSERT_topic</a></b>
-       </p>
-       <p>dealing with INSERT_description_of_aforementioned_topic
-       </p>
-      </li>
-
-     </ol>
-
-<hr>
-
-<table class="navbar">      
-<tr>
-  <td>
-    <a href="toc.html">Back to this chapter's index</a>
-  </td>
-  <td>
-    <a href="../index.html" target="_top">Back to the tutorial index</a>
-  </td>
-</tr>
-</table>
-<hr>
-<address>
-<a href="mailto:INSERT_your_email">INSERT_your_name</a></address>
-<p>
-Last modified: $Date$
-</p>
-</body>
-</html>
-
-
-
-
-
diff --git a/deal.II/doc/tutorial/tex/report-july-1999.tex b/deal.II/doc/tutorial/tex/report-july-1999.tex
deleted file mode 100644 (file)
index 2820e61..0000000
+++ /dev/null
@@ -1,278 +0,0 @@
-%% $Id$
-
-\documentclass[a4paper]{article}
-\usepackage[latin1]{inputenc}
-
-\newcommand{\dealii}{{\em deal.II\/}}
-
-\title{Report on the \dealii{} tutorial}
-\author{Jan Schrage\footnote{Universität Heidelberg, Institut für theoretische Astrophysik \& SFB 359}}
-
-
-\begin{document}
-\maketitle
-
-\begin{abstract}
-We will describe the \dealii{} tutorial, its purpose,
-its state at the time of this writing, the standards employed
-in writing it and the means to extend it.
-\end{abstract}
-
-\clearpage
-
-\tableofcontents
-
-\clearpage
-
-\section{\dealii}
-\label{sec:dealii}
-
-\dealii{} is a C++ class library for the solution of systems 
-of differential equations with finite element methods.
-
-\section{Purpose of the tutorial}
-\label{sec:purpose}
-There are about one thousand pages of documentation of the \dealii{}
-classes. However, there was not introductory documentation
-nor instructions on the use of \dealii{} before the start of this
-project. The purpose of this tutorial is to enable students or
-other persons interested in \dealii{} to get an overview of the
-methods employed and the use of the C++ classes. One should also
-be able to use it as a quick reference to look up concepts of \dealii{}.
-It should provide a background for a closer inspection
-of the existing class documentation. Its purpose is not to replace
-the class documentation but to complement it.
-
-We have chosen to write the tutorial for viewing on the world wide web
-in order to make it easily usable and
-easily adaptable to the rapid changes in \dealii{}. 
-
-\section{State of the tutorial}
-\label{sec:state}
-
-There are at the time of this writing two main parts of the tutorial:
-\begin{itemize}
-\item A general overview of the structure of a finite element program.
-  This is the most crucial part laying the background for working with
-  \dealii{}; it explains how and when to use what methods in a finite
-  element program. This part is up--to--date.
-\item The Laplace problem. This part gives a detailed explanation of
-  the source code of a program solving the stationary Laplace problem 
-  with \dealii{}. Due to the  rapid changes in \dealii{} the source
-  code of this part is not compatible with the current
-  version of \dealii{} any more.
-\end{itemize}
-Other parts can easily be added as needed following the steps 
-in appendix~\ref{sec:steps}.
-
-
-\section{Standards employed}
-\label{sec:standards}
-
-The \dealii{} tutorial makes use of HTML4 including frames and CSS1.
-None of its pages contain dynamic content, in particular they do not
-contain JavaScript\footnote{JavaScript is a registered trademark 
-of Sun Microsystems, inc.}
-and they do not require server--side preprocessing.
-
-\subsection{HTML4 and CSS}
-\label{sec:html4}
-
-The tutorial makes use of HTML4\footnote{c.f. \cite{html4,htmlhelp4,niederst:webdesign}}
-including frames
-and Cascading Style Sheets (CSS) Level 1.
-\footnote{c.f. \cite{css1,htmlhelpcss,niederst:webdesign}}
-Even though
-not all web browsers currently support CSS we expect this technology
-to gain more widespread support in the near future. The browsers
-currently at use in the IWR support a large part of the 
-specifications of CSS1 and HTML4.
-
-All the web pages has been validated against the HTML4 Document Type
-Definition (DTD)\footnote{c.f. \cite{html4dtd}} and are guaranteed to be
-syntactically correct. 
-
-
-\subsection{Practical implications}
-\label{sec:standards:implications}
-
-
-\subsubsection{Usability by third parties}
-
-\begin{list}{Frames}{}
-\item[{\bf Frames:}] Frames are supported by most web browsers, even older versions.
-  It is possible to view the tutorial without frames if a browser does not
-  support them.
-\item[{\bf HTML4:}] HTML4 to its full extent is supported by almost no browser; 
-  Netscape Navigator 4 (NN4) and Microsoft Internet Explorer 4 (MSIE4)
-  support a large
-  subset of HTML4 and even older browsers can render most of it. We have
-  taken care to use a subset of HTML4 mostly 
-  compatible with older versions of HTML. Browsers that do not 
-  support HTML4 will render small parts of the web pages incorrectly.
-\item[{\bf CSS:}] Cascading Style Sheets Level 1 to their full extent are not 
-  supported
-  by any browser currently available. Again, NN4 and MSIE4 support a large 
-  subset of CSS1. Browsers that do not support CSS1 will render the 
-  web pages differently but still in a way that leaves them usable.
-\end{list}
-The browsers in use at the IWR render all the web pages correctly.
-
-The use of CSS makes it possible to use different style sheets
-for different media types, i.e. paper or audio for the 
-blind. In the long and even medium run the usability of the tutorial
-is thereby very much increased. Currently the tutorial uses
-style sheets for screen, print and audio. The screen and print style
-sheets are identical at the moment, the audio style sheet merely 
-offers access to all the classes in use, as we are not aware of any
-audio applications with the ability to parse style sheets.
-
-\subsubsection{Writers}
-
-The practical implications for writers are more eminent:
-The use of CSS allows the separation of the page design from its content.
-Any writer extending the tutorial only needs to include the
-appropriate CSSs in order to produce a web page with the same
-design as the rest of the tutorial suitable for use with 
-different media. 
-
-
-\section{Use of templates}
-\label{sec:templates}
-
-In order to facilitate the extension of the tutorial there
-are a number of template files for recurring elements.
-Anybody who wishes to use such an element only needs to include
-and adapt the appropriate template. Where replacements
-are needed in a template they are prefixed with ``INSERT\_''
-to ease the adaption to any specific case.
-
-A more detailed explanation is provided in appendix~\ref{sec:steps}.
-
-
-\section{A question of style}
-\label{sec:style}
-
-Within the \dealii{} tutorial style and content are (with very few 
-exceptions) strictly separated. This makes the design easily changeable
-and adaptable to different needs. It also helps to keep the design 
-and style consistent throughout the tutorial. 
-We have used abstract HTML markup, defining classes for different
-element types. The visual (or aural) markup of each class for different media
-is defined in the style sheets. 
-
-We have taken care to ensure easy and consistent means of navigation
-throughout the tutorial; we have also tried to suit the needs of the
-users and not those of the programmers of \dealii{}.
-
-In the bibliography we list a few references on good HTML style, like
-\cite{galactus:style,fleming:webnavigation}.
-
-\section{Feedback so far}
-\label{sec:feedback}
-
-Feedback on the tutorial so far has been positive.
-The methods of navigation and the general look and feel of the
-\dealii{} tutorial have met with agreement, as have the contents.
-
-The most eminent wish by students was that more examples in the 
-way of working programs should be provided to complement the
-tutorial. At the time of this writing the examples provided
-are stripped of all the program code that is not strictly necessary 
-to develop an understanding of the principles. In particular,
-there are usually no compilable and runnable programs provided. 
-
-\clearpage
-
-\appendix
-
-\section{Directory structure}
-\label{sec:directories}
-
-All the relevant files and directories are contained in the directory 
-{\tt doc/tutorial} in the \dealii{} directory structure.
-At the moment the following subdirectories and files exist on the top
-level:
-\par
-\vspace{0.5cm}
-\begin{tabular}[H]{l|r|p{6cm}}
-Name & Revision number & Description \\
-\hline
-index.html & 1.10 & tutorial entry page \\
-screen.css & 1.1 & CSS1 style sheet, media: screen \\
-print.css & 1.1 & CSS1 style sheet, media: print media \\
-audio.css & 1.1 & CSS1 style sheet, media: aural media \\
-templates/ & --- & template directory \\
-figures/ & --- & figures in {\tt eps} or {\tt fig} format\\
-images/ & --- & figures in {\tt gif} format for the web pages\\
-glossary/ & --- & glossary explaining the terms used \\
-scripts/ & --- & scripts for maintenance and validation\\
-tex/ & --- & reports \\
-00.fe\_structure/ & --- & Chapter 0: Structure of a finite element program \\
-01.laplace/ & --- & Chapter 1: The Laplace problem\\
-\end{tabular}
-
-\section{CSS1--classes in use}
-\label{sec:css-classes}
-
-Below we show the CSS1--classes currently in use and the 
-structural elements to which they should be applied, i.e.
-which elements should have the attribute ``class=...'' set.
-\par
-\vspace{0.5cm}
-\begin{tabular}[H]{l|p{6cm}}
-Class & Corresponding Elements \\
-\hline
-figure & figures, subtitles to figures \\
-pagetoc & small table of contents for only one (long) page \\
-chapter\_title & title of a chapter, used in the appropriate templates\\
-parhead & paragraph heading \\
-example & examples, used in the appropriate template \\
-navbar & navigation bar at the page bottom\\
-\end{tabular}
-\par
-\vspace{0.5cm}
-In addition to this we have defined some properties common to 
-all elements of a particular type, like background colour for the
-page body etc.
-
-
-\section{Extending the tutorial -- step by step}
-\label{sec:steps}
-
-\begin{enumerate}
-\item Create a directory with the number and name of the new
-  chapter like ``02.newchapter''.
-\item Copy the following files from the directory ``templates''
-  into your new directory: 
-  {\tt
-  \begin{itemize}
-  \item toc.html
-  \item index.html
-  \item navbar.html
-  \item title.html
-  \item logo.html
-  \end{itemize}
-  }
-\item Adapt these files according to your needs. {\tt toc.html} contains
-  the long table of contents with explanations, {\tt navbar.html} the 
-  brief table of contents that can be seen on the left, {\tt index.html}
-  puts the layout of the frameset together and {\tt title.html} contains
-  the large chapter title on top. Take care to replace all the ``INSERT\_''
-  tags with sensible content. {\tt logo.html} contains a link
-  to the \dealii{} logo.
-\item Create your web pages using {\tt body.html} from the template
-  directory. Again replace all ``INSERT\_'' tags with sensible content.
-\item For code examples within a web page 
-  use {\tt example.html} from the template
-  directory. This particular template can be inserted into any
-  web page.
-\item Create a link to your {\tt index.html} from the tutorial's 
-  entry page.
-\end{enumerate}
-
-\clearpage
-\bibliographystyle{alpha}
-\bibliography{tutorial}
-
-\end{document}
diff --git a/deal.II/doc/tutorial/tex/tutorial.bib b/deal.II/doc/tutorial/tex/tutorial.bib
deleted file mode 100644 (file)
index 5240b7b..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-
-@Book{fleming:webnavigation,
-  author =      "J. Fleming",
-  title =       "Web Navigation",
-  publisher =   "O'Reilly",
-  year =        1998
-}
-
-@Book{niederst:webdesign,
-  author =      "J. Niederst",
-  title =       "Web Design in a Nutshell",
-  publisher =   "O'Reilly",
-  year =        1999
-}
-
-                 
-@TechReport{css1,
-  author =      "H. Wium Lie and B. Bos",
-  title =       "Cascading Style Sheets, level 1",
-  institution =  "W3C",
-  year =        1997,
-  note =        "http://www.w3.org/TR/REC-CSS1"
-}
-
-@TechReport{html4,
-  author =      "D. Raggett and A. Le Hors and I. Jacobs",
-  title =       "HTML 4.0",
-  institution =  "W3C",
-  year =        1997,
-  note =        "http://www.w3.org/TR/REC-html40"
-}
-
-@TechReport{html4dtd,
-  author =      "D. Raggett and A. Le Hors and I. Jacobs",
-  title =       "HTML 4.0 strict DTD",
-  institution =  "W3C",
-  year =        1997,
-  note =        "http://www.w3.org/TR/REC-html40/strict.dtd"
-}
-
-
-@Manual{galactus:style,
-  author =      "A. Engelfriet",
-  title =       "Style guide for online hypertext",
-  note =        "http://www.htmlhelp.org/design/style",
-  year =        1997,
-  organization = "Web Design Group"
-}
-
-
-@Manual{htmlhelp4,
-  author =      "L. Quinn",
-  title =       "HTML 4.0 Reference",
-  note =        "http://www.htmlhelp.org/reference/html40",
-  year =        1998,
-  organization = "Web Design Group"
-}
-
-@Manual{htmlhelpcss,
-  title =       "Cascading Style Sheets",
-  author =      "J. Pozadzides and L. Quinn",
-  year =        1998,
-  organization = "Web Design Group",
-  note =        "http://www.htmlhelp.org/reference/css"
-}
-
-
-                 
diff --git a/deal.II/doc/tutorial/title.html b/deal.II/doc/tutorial/title.html
deleted file mode 100644 (file)
index ee3e518..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"
-   "http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-<head>
-<!-- deal.II tutorial template
-     Jan Schrage and others <deal@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">
-    <meta name="author" content="the deal.II authors <authors@dealii.org>">
-    <meta name="keywords" content="deal.II,deal.II tutorial,deal II">
-</head>
-
-<!-- Page Body -->
-<body style="background-image:url(../pictures/title-background.jpg);" lang="en">
-
-<!-- Title Frame -->
-
-<h1 style="text-align: center;">
-The deal.II tutorial
-</h1>
-
-</body>
-</html>
-
-
-
-
-
-
-
-
diff --git a/deal.II/doc/tutorial/toc.html b/deal.II/doc/tutorial/toc.html
deleted file mode 100644 (file)
index 2b5ebf1..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"
-   "http://www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-  <head>
-    <link href="../screen.css" rel="StyleSheet" title="deal.II Tutorial" media="screen">
-    <link href="../print.css" rel="StyleSheet" title="deal.II Tutorial" media="print">
-    <title>The deal.II Tutorial</title>
-    <meta name="author" content="Wolfgang Bangerth, Jan Schrage and
-                                 others <deal@iwr.uni-heidelberg.de>">
-    <meta name="keywords" content="deal.II,deal.II tutorial,deal II"></head>
-  <body>
-
-
-    <h1>The <acronym>deal.II</acronym> Tutorial</h1>
-
-    <p>
-    This is the tutorial for the <acronym>deal.II</acronym>
-    library. It is divided into several parts, covering different
-    aspects of a reference manual:
-    </p>
-
-    <ul>
-      <li>
-        <p>
-          The first chapter contains a 
-         <a href="chapter-2.step-by-step/index.html" target="_top">
-         series of small programs</a> which are meant to provide a
-         step-by-step introduction of a new user to programming with
-         <acronym>deal.II</acronym>. The examples start on a very
-         basic level and demonstrate successively more complex parts
-         of a finite element program.
-       </p>
-
-        <p>
-          This part is targeted at new users of the library that want
-          to learn how to use it and to program with it. It may also
-          be used by people who know about the mathematics of finite
-          elements, but have never written a finite element program
-          themselves. Finally, the programs may also serve as starting
-          point for own projects.
-        </p>
-
-      <li>
-        <p>
-          The second chapter gives a 
-         <a href="chapter-1.elements/index.html" target="_top">survey
-         of the tools that <acronym>deal.II</acronym> provides</a>
-         for several important
-          parts of finite element programs, for example grid creation,
-          creation of matrices, boundary conditions, etc. The sections
-          of the chapter contain small code snippets which demonstrate
-          the use of the techniques under discussion, but no actual
-          programs.
-       </p>
-
-        <p>
-          This part is probably better suited for more
-          experienced users of the library, if you seek for specific
-          information on a certain topic. Note that we do not keep
-          this section up to date any more, so the library often
-          provides more than what this section might suggest.
-        </p>
-    </ul>
-
-
-
-    <h3>Comments and Suggestions</h3>
-    <p>
-      Comments and suggestions on this tutorial are welcome and should be
-      addressed to the <acronym>deal.II</acronym> mailing list: 
-    </p>
-      <address>
-      <a href="../mail.html">The deal.II mailing list</a>
-    </address>
-    <br>
-    <hr>
-    
-    <address>
-      <a href="../mail.html">The deal.II mailing list</a></address>
-
-  </body>
-</html>
-

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

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.