From 772fe53b0391a2941186841c7de41508e6868449 Mon Sep 17 00:00:00 2001 From: bangerth Date: Fri, 17 Aug 2007 16:22:11 +0000 Subject: [PATCH] Revisit the listing of tutorial programs. Sort not only by number but also by topic. Remove the duplicate listing in the doxygen page. git-svn-id: https://svn.dealii.org/trunk@14966 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/doc/doxygen/headers/tutorial.h | 88 +---- deal.II/doc/doxygen/tutorial/navbar.html | 62 ++-- deal.II/doc/doxygen/tutorial/toc.html | 409 +++++++++++++++++------ 3 files changed, 359 insertions(+), 200 deletions(-) diff --git a/deal.II/doc/doxygen/headers/tutorial.h b/deal.II/doc/doxygen/headers/tutorial.h index 70362dfa37..e967a2c12a 100644 --- a/deal.II/doc/doxygen/headers/tutorial.h +++ b/deal.II/doc/doxygen/headers/tutorial.h @@ -14,85 +14,11 @@ /** * @page Tutorial Tutorial programs * - * The tutorial is a separate part of the documentation for deal.II - * (in fact, the second part, next to the manual you are presently - * in). It consists of a collection of small programs, each more or - * less built atop of the previous ones, which demonstrate various - * aspects of the library. A more detailed overview can be found on this - * page that also includes short summaries of what each of the - * tutorial programs are supposed to demonstrate. - * - * The tutorial programs are named step-1, step-2, etc. If you want to - * jump to any of these programs directly, simply follow one of the - * links below: - * - * - * - * - * - * - * - * - * + * The tutorial is a separate part of the documentation for deal.II. It + * consists of a collection of small programs, each more or less built atop + * previous ones. They demonstrate various aspects of the library. A more + * detailed overview can be found on this + * page that also includes short summaries of what each of the tutorial + * programs are supposed to demonstrate, as well as a list of the programs + * sorted by topic. */ diff --git a/deal.II/doc/doxygen/tutorial/navbar.html b/deal.II/doc/doxygen/tutorial/navbar.html index 8e168d82c7..0b5fa6809c 100644 --- a/deal.II/doc/doxygen/tutorial/navbar.html +++ b/deal.II/doc/doxygen/tutorial/navbar.html @@ -15,37 +15,47 @@

- Overview + Overview +

+

+ Programs by number +

+

+ Programs by topic


- Step 1
- Step 2
- Step 3
- Step 4
- Step 5
- Step 6
- Step 7
- Step 8
- Step 9
- Step 10
- Step 11
- Step 12
- Step 13
- Step 14
- Step 15
- Step 16
- Step 17
- Step 18
- Step 19
- Step 20
- Step 21
- Step 23
- Step 24
- Step 25
- Step 27 + Programs by number: +

+ +

+ 1  + 2  + 3
+ 4  + 5  + 6
+ 7  + 8  + 9
+ 10  + 11  + 12
+ 13  + 14  + 15
+ 16  + 17  + 18
+ 19  + 20  + 21
+ 23  + 24  + 25
+ 27


diff --git a/deal.II/doc/doxygen/tutorial/toc.html b/deal.II/doc/doxygen/tutorial/toc.html index d3148ede88..b64ccdc79c 100644 --- a/deal.II/doc/doxygen/tutorial/toc.html +++ b/deal.II/doc/doxygen/tutorial/toc.html @@ -15,188 +15,411 @@ -

Step-by-Step Examples

+ +

Overview

The deal.II tutorial contains a collection of programs, each more -or less built atop of the previous ones, which demonstrate various -aspects of the library. The general layout of each such example is as +or less built atop of previous ones, which demonstrate various +aspects of the library. Each such example has the following structure follows:

    -
  1. A brief description of what the program does and what is new - compared to the previous programs. -
  2. The program, in commented form. -
  3. The output of the program, with some comments. -
  4. Since the program itself usually is a little bit unreadable - with all the comments intertwingled, we present the program again, - with all comments stripped off, to allow getting an overview of it. +
  5. Introduction:A brief description of what the program does and + what is new compared to the previous programs. This also includes a + discussion of the mathematical model and its formulation. +
  6. The commented program:: A listing of the program, interspersed + with many comments that explain what is going on, how things are done + and why. +
  7. Results:The output of the program, with some comments and + interpretation. +
  8. The plain program:Since the program itself usually is a little + bit unreadable with all the comments intertwingled, we present the + program again, with all comments stripped off, to allow getting an + overview of it.

-The programs themselves can be found at a path which is indicated at +The programs can be found at a path which is indicated at the beginning of the last section of each example. You can compile them by typing make in the respective directory, and run them -using make run. The latter command also compiles the program if -that has not already been done. The Makefiles in the different +using make run. The latter command also compiles the program +if that has not already been done. The Makefiles in the different directories are based on the small program Makefile template described in in this section.

-

-At present, the following programs exist: +Below we will list the currently available tutorial programs twice, once +listed by topic to facilitate +searching for programs for certain functionality.

-
-
Step 1
-
What's new: Everything. We create a grid - and show a simple way to write it to a file. -
+ + +

Tutorial programs listed by number

+ +
- * - * @ref step_1 "step-1" - * - * @ref step_2 "step-2" - * - * @ref step_3 "step-3" - * - * @ref step_4 "step-4" - * - * @ref step_5 "step-5" - * - * @ref step_6 "step-6" - * - * - * - * @ref step_7 "step-7" - * - * @ref step_8 "step-8" - * - * @ref step_9 "step-9" - * - * @ref step_10 "step-10" - * - * @ref step_11 "step-11" - * - * @ref step_12 "step-12" - * - * - * - * @ref step_13 "step-13" - * - * @ref step_14 "step-14" - * - * @ref step_15 "step-15" - * - * @ref step_16 "step-16" - * - * @ref step_17 "step-17" - * - * @ref step_18 "step-18" - * - * - * - * @ref step_19 "step-19" - * - * @ref step_20 "step-20" - * - * @ref step_21 "step-21" - * - * @ref step_23 "step-23" - * - * @ref step_24 "step-24" - * - * @ref step_25 "step-25" - * - * - * - * @ref step_19 "step-27" - * - *
+ + -
Step 2
-
What's new: Associate degrees of freedom to +
+ -
Step 3
-
What's new: Actually solve Laplace's +
+ -
Step 4
-
What's new: This example is programmed in a +
+ -
Step 5
-
What's new: Computations on successively +
+ -
Step 6
-
What's new: Adaptive local +
+ -
Step 7
-
What's new: Helmholtz +
+ -
Step 8
-
What's new: The elastic equations will be +
+ -
Step 9
-
What's new: Transport equation, assembling +
+ + -
Step 11
-
What's new: Solving a Laplace problem with +
+ -
Step 12
-
What's new: General framework for +
+ -
Step 13
-
What's new: Software design questions and +
+ -
Step 14
-
What's new: Duality based error estimators, +
+ -
Step 15
-
What's new: 1d problems, nonlinear solvers, +
+ -
Step 16
-
What's new: Based on step 5, a multilevel +
+ -
Step 17
-
What's new: Using PETSc for linear algebra; running +
+ -
Step 18
-
What's new: A time dependent problem; using a much +
+ -
Step 19
-
What's new: Input parameter file handling. Merging +
+ -
Step 20
-
What's new: Mixed finite elements. Using block +
+ -
Step 21
-
What's new: The time dependent two-phase flow in +
+ -
Step 23
-
What's new: Finally a "real" time dependent problem, +
+ -
Step 24
-
What's new: A variant of step-23 with absorbing +
+ -
Step 25
-
What's new: The sine-Gordon +
+ + + + + +
Step-1 Creating a grid. A simple way to write it to a file. +
Step-2 Associate degrees of freedom to each vertex and compute the resulting sparsity pattern of matrices. Show that renumbering reduces the bandwidth of matrices significantly, i.e. clusters nonzero entries around the diagonal. - +
Step-3 Actually solve Laplace's problem. Object-orientation. Assembling matrices and vectors. Boundary values. - +
Step-4 This example is programmed in a way that it is independent of the dimension for which we want to solve Laplace's equation; we will solve the equation in 2D and 3D, although the program is exactly the same. Non-constant right hand side function. Non-homogeneous boundary values. - +
Step-5 Computations on successively refined grids. Reading a grid from disk. Some optimizations. Using assertions. Non-constant coefficient in the elliptic operator. Preconditioning the CG solver for the linear system of equations. - +
Step-6 Adaptive local refinement. Handling of hanging nodes. Higher order elements. Catching exceptions in the “main” function. - +
Step-7 Helmholtz equation. Non-homogeneous Neumann boundary conditions and boundary integrals. Verification of correctness of computed solutions. Computing the error between exact and numerical solution and output of the data in tables. Using counted pointers. - +
Step-8 The elastic equations will be solved instead of Laplace's equation. The solution is vector-valued and the equations form a system with as many equations as the dimension of the space in which it is posed. - +
Step-9 Transport equation, assembling the system of equations in parallel using multi-threading, implementing a refinement criterion based on a finite difference approximation of the gradient. -
Step 10
-
What's new: Higher order mappings. Do not +
Step-10 Higher order mappings. Do not solve equations, but rather compute the value of pi to high accuracy. - +
Step-11 Solving a Laplace problem with higher order mappings. Using strange constraints and intermediate representations of sparsity patterns. - +
Step-12 General framework for discontinuous Galerkin methods. Use of Timer class. - +
Step-13 Software design questions and how to write a modular, extensible finite element program. - +
Step-14 Duality based error estimators, more strategies to write a modular, extensible finite element program. - +
Step-15 1d problems, nonlinear solvers, transfering a solution across mesh refinement. - +
Step-16 Based on step 5, a multilevel preconditioner is implemented. - +
Step-17 Using PETSc for linear algebra; running in parallel on clusters of computers linked together by MPI. - +
Step-18 A time dependent problem; using a much simplified version of implementing elasticity; moving meshes; handling large scale output of parallel programs. - +
Step-19 Input parameter file handling. Merging output of a parallel program. - +
Step-20 Mixed finite elements. Using block matrices and block vectors to define more complicated solvers and preconditioners working on the Schur complement. - +
Step-21 The time dependent two-phase flow in porous media. Extensions of mixed Laplace discretizations. More complicated block solvers. Simple time stepping. - +
Step-23 Finally a "real" time dependent problem, the wave equation. - +
Step-24 A variant of step-23 with absorbing boundary conditions, and extracting practically useful data. - +
Step-25 The sine-Gordon soliton equation, which is a nonlinear variant of the time - dependent wave equation covered in step-23 and step-24. - - -
Step 27
-
What's new: hp finite element methods
- + dependent wave equation covered in step-23 and step-24.
Step-27 hp finite element methods
+ + + +

Tutorial programs listed by topics

+ +The existing tutorial programs can be sorted into the following groups sorted +by topic: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Basic techniquesStep-1 Creating a grid. A simple way to write it to a file. +
Step-2 Degrees of freedom. +
Step-3 Solve the Laplace equation. +
Step-4 Dimension independent programming. Non-zero data. +
Step-5 Computing on uniformly refined meshes. +
Step-6 Adaptivity. +
Step-7 Evaluating errors. +
Advanced techniquesStep-9 Multithreading. +
Step-20, + Step-21 Block solvers and preconditioners. +
Step-17, + Step-18, + Step-19 Parallelization via PETSc and MPI. +
Step-19 Input parameter handling. +
Step-10, + Step-11 Higher order mappings. +
Step-6, + Step-9, + Step-14 Error indicators and estimators. +
Step-15 Transfering solutions across mesh refinement +
Step-12 Discontinuous Galerkin methods. +
Step-27 hp finite elements. +
Step-16 Multilevel preconditioners +
Other equationsStep-7 Helmholtz equation. +
Step-8 Elasticity equations. +
Step-18 Quasi-static elasticity equations. +
Step-9 Transport (advection) equations. +
Step-20 Mixed Laplace. +
Step-21 Porous media flow. +
Step-23, + Step-24, + Step-25 The wave equation, in linear and nonlinear variants. +
Vector problemsStep-8 Elasticity equations. +
Step-20 Mixed Laplace. +
Step-21 Mixed Laplace plus an advection equation. +

-- 2.39.5