From 3acde255716562f2bece90e8190c300ec0982080 Mon Sep 17 00:00:00 2001 From: wolf Date: Tue, 30 Nov 1999 14:37:32 +0000 Subject: [PATCH] Even more various updates. git-svn-id: https://svn.dealii.org/trunk@1960 0785d39b-7218-0410-832d-ea1e28bc413d --- .../chapter-1.elements/adaptivity.html | 111 ++++++++++++------ .../tutorial/chapter-1.elements/boundary.html | 6 +- .../tutorial/chapter-1.elements/condense.html | 79 +++++++++++-- .../doc/tutorial/chapter-1.elements/dofs.html | 6 +- .../chapter-1.elements/grid_creation.html | 6 +- .../chapter-1.elements/hanging_nodes.html | 6 +- .../tutorial/chapter-1.elements/index.html | 4 +- .../doc/tutorial/chapter-1.elements/logo.html | 4 +- .../chapter-1.elements/matrix_generation.html | 8 +- .../chapter-1.elements/matrix_structure.html | 6 +- .../tutorial/chapter-1.elements/navbar.html | 4 +- .../tutorial/chapter-1.elements/output.html | 38 ++---- .../chapter-1.elements/parameters.html | 10 +- .../doc/tutorial/chapter-1.elements/rhs.html | 6 +- .../tutorial/chapter-1.elements/solve.html | 46 ++++---- .../tutorial/chapter-1.elements/title.html | 4 +- .../doc/tutorial/chapter-1.elements/toc.html | 4 +- deal.II/doc/tutorial/index.html | 8 +- 18 files changed, 222 insertions(+), 134 deletions(-) diff --git a/deal.II/doc/tutorial/chapter-1.elements/adaptivity.html b/deal.II/doc/tutorial/chapter-1.elements/adaptivity.html index d904df491e..238b72264b 100644 --- a/deal.II/doc/tutorial/chapter-1.elements/adaptivity.html +++ b/deal.II/doc/tutorial/chapter-1.elements/adaptivity.html @@ -3,14 +3,14 @@ deal.II tutorial: Error Estimate and Adaptivity - + @@ -40,16 +40,40 @@

The basic principles of using error estimates for adaptive refinement are rather simple. First, you get an error estimate for each cell. -This error estimate can be interpreted as a -mesh function describing the desired local mesh width. -Second, each and every cell is refined according to this estimate. +Second, each cell is refined according to this estimate, i.e. the +cells with largest error estimate are refined and those with the least +one are coarsened.

The implementation of deal.II handles this principle exactly the same way: First, you call an error estimator that returns -a vector containing the error estimtates for each cell. Second, +a vector containing the error estimates for each cell. Second, you pass this vector on to a function doing the refinement.

+

+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. +

+

+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 +deal.II 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.

Error Estimators in deal.II

@@ -60,11 +84,11 @@ tries to approximate the error per cell by integration of the jump of the gradient of the solution along the faces of each cell. In theory this error estimator has quite a number of limitations. These limitations as well as its implementation are described in - + the documentation for the class KellyErrorEstimator. 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. +but at the end of the day all practical problems are... gone.

@@ -72,29 +96,29 @@ In order to use an error estimator you need the following information and objects respectively:

@@ -109,14 +133,18 @@ The Kelly error estimator is then used the following way: KellyErrorEstimator<dim> error_estimate; -

  • Make your error estimator estimate each cell's error:
    - void error_estimate::estimate (const DoFHandler<dim> - &dof, const Quadrature<dim-1> - &quadrature, const FunctionMap &neumann_bc, - const Vector<double> &solution, - Vector<float> &error, const Function<dim> - *coefficient = 0, const unsigned int selected_component = 0); +
  • Make the error estimator estimate each cell's error:
    +
    +      
    + void error_estimate::estimate (const DoFHandler<dim> &dof_handler,
    +                                const Quadrature<dim-1> &quadrature,
    +                                const FunctionMap &neumann_bc, 
    +                                const Vector<double> &solution,
    +                                Vector<float> &error_per_cell, 
    +                                ... // coefficients, etc.
    +                               ); 
           
    +      
  • @@ -127,7 +155,7 @@ All the functions for refinement (and coarsening) are contained within the Triangulation class. Refinement and coarsening take place by first flagging the cells for coarsening or refinement using the functions described below -and the executing it using +and then actually executing the refinement using void execute_coarsening_and_refinement(). There are several ways of refining or coarsening your grid using the output from an error estimator: @@ -142,7 +170,7 @@ the output from an error estimator: threshold) -
  • Refine a certain fraction top fraction_of_cells with +
  • Refine a certain fraction top_fraction_of_cells with the highest error, at the same time coarsen a certain fraction of cells bottom_fraction_of_cells with the lowest error.
    void refine_and_coarsen_fixed_number(const Vector<number> @@ -170,9 +198,24 @@ you have to call void execute_coarsening_and_refinement().

    Example

    -

    -To be provided... -

    +The following is a code snippet taken from some example programs: +
    +
    +                     // use the Simpson rule for integration on the faces
    +  QSimpson face_quadrature;
    +                     // estimate error with no Neumann boundary conditions
    +  KellyErrorEstimator::estimate (*dof, face_quadrature,
    +			              KellyErrorEstimator::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 ();
    +
    +
    @@ -192,7 +235,7 @@ To be provided...
    -Jan Schrage
    +Jan Schrage

    Last modified: $Date$

    diff --git a/deal.II/doc/tutorial/chapter-1.elements/boundary.html b/deal.II/doc/tutorial/chapter-1.elements/boundary.html index 21ba9640e8..2e43ab6797 100644 --- a/deal.II/doc/tutorial/chapter-1.elements/boundary.html +++ b/deal.II/doc/tutorial/chapter-1.elements/boundary.html @@ -3,14 +3,14 @@ deal.II tutorial: Boundary conditions - + @@ -114,7 +114,7 @@ only the final object to apply_boundary_values.
    -Jan Schrage
    +Jan Schrage

    Last modified: $Date$

    diff --git a/deal.II/doc/tutorial/chapter-1.elements/condense.html b/deal.II/doc/tutorial/chapter-1.elements/condense.html index 058313ee31..53ed6081e3 100644 --- a/deal.II/doc/tutorial/chapter-1.elements/condense.html +++ b/deal.II/doc/tutorial/chapter-1.elements/condense.html @@ -3,14 +3,14 @@ deal.II tutorial: Condensing the Hanging Nodes - + @@ -29,7 +29,7 @@ account when dealing with them.

    The deal.II class that has the ability to handle constraint matrices is called -ConstraintMatrix. It provides all functions +ConstraintMatrix. It provides all functions necessary to condense hanging nodes into a matrix structure. You will have to:

      @@ -46,7 +46,10 @@ Create a global sparsity pattern (as described in the chapter on Create the constraints on the hanging nodes using void DoFHandler::make_constraint_matrix(ConstraintMatrix &). -
    1. Close the constraints matrix using void DoFHandler<dim>::constraints::close(). +
    2. Close the constraints matrix using void +ConstraintMatrix::close(). Closing the object performs some +sorting and reshuffling of data (but you need not care about what +actually happens). This method is needed because you might wish to implement additional constraints (apart from those for the hanging nodes). This would have to be done before closing the object; therefore you can't have it closed automatically somewhere. @@ -69,20 +72,74 @@ function calls needed. Be sure to use them in their appropriate places. #include <grid/dof_constraints.h> const unsigned int dim=2; // Work in two dimensions, could also be three -SparseMatrixStruct<double> sparsity_pattern; -DoFHandler<dim> dof; -ConstraintMatrix<dim> hanging_nodes; - +SparseMatrixStruct sparsity_pattern; +DoFHandler<dim> dof_handler; +ConstraintMatrix hanging_nodes; hanging_nodes.clear(); -dof.make_sparsity_pattern(sparsity_pattern); -dof.make_hanging_nodes_constraints(hanging_nodes); +dof_handler.make_sparsity_pattern(sparsity_pattern); +dof_handler.make_hanging_nodes_constraints(hanging_nodes); hanging_nodes.close(); hanging_nodes.condense(matrix_structure); + + + +You will later need to condense the matrix itself, and the right hand +side vector, which is done by the following calls: +
      +
      +
      +SparseMatrix system_matrix;
      +Vector       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);
       
       
      + +

      Generalizations

      + +The ConstraintMatrix is more general than only for use +with hanging nodes. In fact, it is able to represent general +constraints of the form +
      +  Cx = 0
      +
      +where C is a matrix and is represented by an object of +type ConstraintMatrix. 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 1, -0.5, -0.5. Since C can be +scaled arbitrarily, we can chose its diagonal elements to be one, and +then only need to store the nondiagonal elements. The +ConstraintMatrix 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. + +

      +

      + +Some other constraints can be written in the same form as above, with +a sparse matrix C. In these cases, the +ConstraintMatrix 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. + + + +


      @@ -100,7 +157,7 @@ hanging_nodes.condense(matrix_structure);
      -Jan Schrage
      +Jan Schrage

      Last modified: $Date$

      diff --git a/deal.II/doc/tutorial/chapter-1.elements/dofs.html b/deal.II/doc/tutorial/chapter-1.elements/dofs.html index e5fb3575af..4dd20a070d 100644 --- a/deal.II/doc/tutorial/chapter-1.elements/dofs.html +++ b/deal.II/doc/tutorial/chapter-1.elements/dofs.html @@ -3,14 +3,14 @@ deal.II tutorial: Degrees of Freedom - + @@ -143,7 +143,7 @@ functions performing the re-enumerations have to be called.
      -Jan Schrage
      +Jan Schrage

      Last modified: $Date$

      diff --git a/deal.II/doc/tutorial/chapter-1.elements/grid_creation.html b/deal.II/doc/tutorial/chapter-1.elements/grid_creation.html index 2723502a42..a3aad0eb11 100644 --- a/deal.II/doc/tutorial/chapter-1.elements/grid_creation.html +++ b/deal.II/doc/tutorial/chapter-1.elements/grid_creation.html @@ -6,7 +6,7 @@ - + @@ -194,7 +194,7 @@ grid construction algorithm. Otherwise some of your matrix elements may have the wrong sign (plus instead of minus or vice versa). A more detailed description of the problems encountered in two dimensions can be found in the - DataIn class description. + DataIn class description.

      @@ -296,7 +296,7 @@ coarse_grid->create_triangulation (vector<Point<2> >(&vertices[0]
      -Jan Schrage
      +Jan Schrage

      Last modified: $Date$

      diff --git a/deal.II/doc/tutorial/chapter-1.elements/hanging_nodes.html b/deal.II/doc/tutorial/chapter-1.elements/hanging_nodes.html index e324d1905b..e4e8aeb62d 100644 --- a/deal.II/doc/tutorial/chapter-1.elements/hanging_nodes.html +++ b/deal.II/doc/tutorial/chapter-1.elements/hanging_nodes.html @@ -3,14 +3,14 @@ deal.II tutorial: Hanging Nodes - + @@ -132,7 +132,7 @@ using the constraints, solve the system and obtain u by
      -Jan Schrage
      +Jan Schrage

      Last modified: $Date$

      diff --git a/deal.II/doc/tutorial/chapter-1.elements/index.html b/deal.II/doc/tutorial/chapter-1.elements/index.html index 1aef8d64d4..f9790a6a64 100644 --- a/deal.II/doc/tutorial/chapter-1.elements/index.html +++ b/deal.II/doc/tutorial/chapter-1.elements/index.html @@ -6,7 +6,7 @@ - + @@ -27,7 +27,7 @@

      The deal.II Tutorial

      Your browser does not seem to understand frames. A version of this tutorial that does not use frames can be found at -http://gaia.iwr.uni-heidelberg.de/~deal/doc/tutorial/00.fe_structure/toc.html. +http://hermes.iwr.uni-heidelberg.de/~deal/doc/tutorial/00.fe_structure/toc.html. diff --git a/deal.II/doc/tutorial/chapter-1.elements/logo.html b/deal.II/doc/tutorial/chapter-1.elements/logo.html index 6673eec84f..c21c75a323 100644 --- a/deal.II/doc/tutorial/chapter-1.elements/logo.html +++ b/deal.II/doc/tutorial/chapter-1.elements/logo.html @@ -3,14 +3,14 @@ deal.II tutorial: Logo - + diff --git a/deal.II/doc/tutorial/chapter-1.elements/matrix_generation.html b/deal.II/doc/tutorial/chapter-1.elements/matrix_generation.html index d76fd45fd4..40acd683c8 100644 --- a/deal.II/doc/tutorial/chapter-1.elements/matrix_generation.html +++ b/deal.II/doc/tutorial/chapter-1.elements/matrix_generation.html @@ -3,14 +3,14 @@ deal.II tutorial: Matrix and Vector Generation - + @@ -119,7 +119,7 @@ sparse_matrix.reinit (sparsity_pattern);

      Vector operations are supplied by the class Vector. +href="http://hermes.iwr.uni-heidelberg.de/~deal/doc/auto/kdoc/lac/Vector.html">Vector. The first and most important operation on a vector is its initialization using void Vector::reinit(const usigned int N, const bool fast=false), which resets the vector's size to @@ -246,7 +246,7 @@ either. This unfortunate name clash is due to historical reasons.


      -Jan Schrage
      +Jan Schrage

      Last modified: $Date$

      diff --git a/deal.II/doc/tutorial/chapter-1.elements/matrix_structure.html b/deal.II/doc/tutorial/chapter-1.elements/matrix_structure.html index d2f2d86817..a0b2546a4d 100644 --- a/deal.II/doc/tutorial/chapter-1.elements/matrix_structure.html +++ b/deal.II/doc/tutorial/chapter-1.elements/matrix_structure.html @@ -3,14 +3,14 @@ deal.II tutorial: Matrix Structure - + @@ -216,7 +216,7 @@ for more information.
      -Jan Schrage
      +Jan Schrage

      Last modified: $Date$

      diff --git a/deal.II/doc/tutorial/chapter-1.elements/navbar.html b/deal.II/doc/tutorial/chapter-1.elements/navbar.html index c56c8a2c5e..fd23313eee 100644 --- a/deal.II/doc/tutorial/chapter-1.elements/navbar.html +++ b/deal.II/doc/tutorial/chapter-1.elements/navbar.html @@ -6,7 +6,7 @@ - + @@ -103,7 +103,7 @@


      - Comments on the tutorial + Comments on the tutorial

      diff --git a/deal.II/doc/tutorial/chapter-1.elements/output.html b/deal.II/doc/tutorial/chapter-1.elements/output.html index 730306fc4b..c5b5982b02 100644 --- a/deal.II/doc/tutorial/chapter-1.elements/output.html +++ b/deal.II/doc/tutorial/chapter-1.elements/output.html @@ -3,14 +3,14 @@ deal.II tutorial: Grid and Data Output - + @@ -48,9 +48,6 @@ in depth: common to both GridOut and DataOut
    3. -
    4. Limitations of DataOut -
    5. -
    6. Usage of DataOut
    7. @@ -112,12 +109,14 @@ The graphics formats available in GridOut are:

      Parameters for grid and data output

      -

      For each and every output format there is a class containing the +

      For each output format there is a class containing the parameters that determine how the output will look. All these classes have a sensible set of default parameters; you will only have to bother about setting parameters yourself if your desires are rather special. We shall commence with a brief description of -these classes and the most important parameters you can set. +these classes and the most important parameters you can set. It is +also worthwhile to look at the online documentation to see whether +additional flags have been introduced in the meantime.

      @@ -205,8 +204,10 @@ denote the default values.

      PovrayFlags

      -This class provides the settings for PoVRay output. At present it -is empty. +This class provides the settings for PoVRay output. There are several +flags implemented presently, but we advise you to consult the online +documentation since they are rather special and you will probably have +to set them anyway, if you want high-quality output.

      GmvFlags

      @@ -216,19 +217,6 @@ is empty.

      -
      -
      - -

      Limitations of the DataOut -class

      - -

      -Grouping of components to vectors is not implemented, i.e. each -component must be written independent of the others. It is -also not possible to write the results of calculations on grids -with more or less than one degree of freedom per vertex. -

      -

      @@ -399,7 +387,7 @@ to be plotted.

      The limitations of the gnuplot data format have been well described in the - + DataOut class description:

      @@ -416,7 +404,7 @@ each cell being straight lines. You won't see the structure of the solution in t

      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 - + DataOut class description:

      @@ -735,7 +723,7 @@ as explained in the part on the usage of the
      -Jan Schrage
      +Jan Schrage

      Last modified: $Date$

      diff --git a/deal.II/doc/tutorial/chapter-1.elements/parameters.html b/deal.II/doc/tutorial/chapter-1.elements/parameters.html index 0effc5a77b..33d38993f3 100644 --- a/deal.II/doc/tutorial/chapter-1.elements/parameters.html +++ b/deal.II/doc/tutorial/chapter-1.elements/parameters.html @@ -3,14 +3,14 @@ deal.II tutorial: Parameter Input - + @@ -131,7 +131,7 @@ and retrieve their values. The values are stored in the strings zeldovich_solver and sunyaev_solver. Please note that in order to stick to the essentials this example violates the - + recommended style for parameter declaration.

      @@ -306,7 +306,7 @@ value encountered last of the parameter in question is used. Example: We read parameters successively from three different sources. This example was taken from -the ParameterHandler class documentation. +the ParameterHandler class documentation.

      @@ -374,7 +374,7 @@ the indent_level is the level of indentation.
       
       
      -Jan Schrage
      +Jan Schrage

      Last modified: $Date$

      diff --git a/deal.II/doc/tutorial/chapter-1.elements/rhs.html b/deal.II/doc/tutorial/chapter-1.elements/rhs.html index 5aa31453a2..531fae87f8 100644 --- a/deal.II/doc/tutorial/chapter-1.elements/rhs.html +++ b/deal.II/doc/tutorial/chapter-1.elements/rhs.html @@ -3,14 +3,14 @@ deal.II tutorial: The Problem Matrix and the Right Hand Side - + @@ -186,7 +186,7 @@ is a linear form instead of a bilinear one.
      -Jan Schrage
      +Jan Schrage

      Last modified: $Date$

      diff --git a/deal.II/doc/tutorial/chapter-1.elements/solve.html b/deal.II/doc/tutorial/chapter-1.elements/solve.html index 1fc4cd7b07..61740160ad 100644 --- a/deal.II/doc/tutorial/chapter-1.elements/solve.html +++ b/deal.II/doc/tutorial/chapter-1.elements/solve.html @@ -3,14 +3,14 @@ deal.II tutorial: Solving the Problem - + @@ -41,9 +41,12 @@ iteration method +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.

      -Besides, there are several utility classes: +Besides the solver classes, there are several utility classes:

      • SolverControl to @@ -75,15 +78,13 @@ Information on common solution methods can be found in any modern textbook on finite elements, for example in Braess, Dietrich, Finite Elements. The GMRES solver discussed below is rather special, and if you are going to use it you probably know what -you ar edoing anyway. +you are doing anyway.

        We will now begin with the discussion of the SolverControl, the SolverSelector and the PreconditionSelector classes, then discuss the solvers -in more detail. Although we do not demonstrate this method in the -examples for the different solvers every last solver can be called -using SolverSelector. +in more detail.

        Solver Control

        @@ -110,6 +111,11 @@ SolverControl control(1000,1e-6);
      +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. + +

      SolverSelector

      @@ -161,7 +167,8 @@ the PreconditionSelect class with an appropriate choice of parameters. This can be done using PreconditionSelector(const string preconditioning, const typename Vector::value_type &omega=1.) where preconditioning denotes the preconditioning method used -and omega is the damping parameter. +and omega is the damping parameter if the preconditioner +you selected uses it.

      The preconditioning methods currently available using this class are @@ -237,13 +244,11 @@ we solve the problem. SolverControl control(1000,1e-6); VectorMemory<Vector<double> > vectormem; -SolverBicgstab<SparseMatrix,Vector<double> > solver(control,vectormem); +SolverBicgstab<SparseMatrix<double>,Vector<double> > 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. -// To make it clear: This code as it is will not do anything because -// it does not contain any mathematical problem ! SparseMatrix<double> A; Vector<double> u,f; @@ -289,13 +294,11 @@ we solve the problem. SolverControl control(1000,1e-6); VectorMemory<Vector<double> > vectormem; -SolverCG<SparseMatrix,Vector<double> > solver(control,vectormem); +SolverCG<SparseMatrix<double>,Vector<double> > 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. -// To make it clear: This code as it is will not do anything because -// it does not contain any mathematical problem ! SparseMatrix<double> A; Vector<double> u,f; @@ -320,10 +323,11 @@ It is initialized using
      const AdditionalData &data=Additionaldata()) This constructor needs the maximum number of temporary vectors to be used. -A number too small can seriously affect its performance. This number is +A number too small can seriously affect its performance, but a number +too large will also increase the required computing time. This number is contained in the AdditionalData structure with a default of 30. This solver is rather special, and for a detailed explanation you should -take a look at the detailed description of the SolverGMRES +take a look at the detailed description of the SolverGMRES class.

      @@ -351,13 +355,11 @@ vectors. SolverControl control(1000,1e-6); VectorMemory<Vector<double> > vectormem; -SolverCG<SparseMatrix,Vector<double> > solver(control,vectormem); +SolverGMRES<SparseMatrix<double>,Vector<double> > 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. -// To make it clear: This code as it is will not do anything because -// it does not contain any mathematical problem ! SparseMatrix<double> A; Vector<double> u,f; @@ -408,13 +410,11 @@ we solve the problem. We use the default damping parameter of 1. SolverControl control(1000,1e-6); VectorMemory<Vector<double> > vectormem; -SolverCG<SparseMatrix,Vector<double> > solver(control,vectormem); +SolverRichardson<SparseMatrix<double>,Vector<double> > 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. -// To make it clear: This code as it is will not do anything because -// it does not contain any mathematical problem ! SparseMatrix<double> A; Vector<double> u,f; @@ -447,7 +447,7 @@ solver.solve(A,u,f,preconditioning);
      -Jan Schrage
      +Jan Schrage

      Last modified: $Date$

      diff --git a/deal.II/doc/tutorial/chapter-1.elements/title.html b/deal.II/doc/tutorial/chapter-1.elements/title.html index 08e3cc5c6a..1574a7a8d7 100644 --- a/deal.II/doc/tutorial/chapter-1.elements/title.html +++ b/deal.II/doc/tutorial/chapter-1.elements/title.html @@ -3,14 +3,14 @@ deal.II tutorial: Chapter title - + diff --git a/deal.II/doc/tutorial/chapter-1.elements/toc.html b/deal.II/doc/tutorial/chapter-1.elements/toc.html index 48b793463f..935dd61778 100644 --- a/deal.II/doc/tutorial/chapter-1.elements/toc.html +++ b/deal.II/doc/tutorial/chapter-1.elements/toc.html @@ -6,7 +6,7 @@ - + @@ -143,7 +143,7 @@ chapters of this tutorial.
      -Jan Schrage
      +Jan Schrage

      Last modified: $Date$

      diff --git a/deal.II/doc/tutorial/index.html b/deal.II/doc/tutorial/index.html index 8f66c1ea3e..0dc341a5b4 100644 --- a/deal.II/doc/tutorial/index.html +++ b/deal.II/doc/tutorial/index.html @@ -6,7 +6,7 @@ The deal.II Tutorial - + Deal Logo @@ -33,7 +33,7 @@ which says it all, really. Its purpose is the solution of partial differential equations on unstructured, locally refined grids with error control. You can find more information on deal.II and some examples at - the + the deal.II homepage . deal.II was written by the numerics group at the IWR, University of Heidelberg, @@ -77,13 +77,13 @@ addressed to the deal.II group:

      - deal@gaia.iwr.uni-heidelberg.de + deal@hermes.iwr.uni-heidelberg.de


      - The deal.II group
      + The deal.II group

      Last modified: $Date$

      -- 2.39.5