Running the program produces graphics of two grids (grid-1.eps and grid-2.eps). They look like this:
-<TABLE WIDTH="60%" ALIGN="center">
+<table width="60%" align="center">
<tr>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-1.grid-1.png" alt="">
</td>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-1.grid-2r2.png" alt="">
</td>
</tr>
there are changes from Dirichlet to Neumann data in the two upper
corners, so there is need for refinement there as well:
-<TABLE WIDTH="60%" ALIGN="center">
+<table width="60%" align="center">
<tr>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-22.2d.mesh-0.png" alt="">
</td>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-22.2d.mesh-1.png" alt="">
</td>
</tr>
<tr>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-22.2d.mesh-2.png" alt="">
</td>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-22.2d.mesh-3.png" alt="">
</td>
</tr>
<tr>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-22.2d.mesh-4.png" alt="">
</td>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-22.2d.mesh-5.png" alt="">
</td>
</tr>
As for the graphical output, the grids generated during the solution
look as follow:
-<TABLE WIDTH="60%" ALIGN="center">
+<table width="60%" align="center">
<tr>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-22.3d.mesh-0.png" alt="">
</td>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-22.3d.mesh-1.png" alt="">
</td>
</tr>
<tr>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-22.3d.mesh-2.png" alt="">
</td>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-22.3d.mesh-3.png" alt="">
</td>
</tr>
<tr>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-22.3d.mesh-4.png" alt="">
</td>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-22.3d.mesh-5.png" alt="">
</td>
</tr>
top_right);
@endcode
then we get images where the fault line is curved:
-<TABLE WIDTH="60%" ALIGN="center">
+<table width="60%" align="center">
<tr>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-22.3d-extension.png" alt="">
</td>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-22.3d-grid-extension.png" alt="">
</td>
</tr>
In the experiment, a single small strong absorber was embedded in
weaker absorbing tissue:
-<TABLE WIDTH="100%">
+<table width="100%">
<tr>
<td>
<img src="https://www.dealii.org/images/steps/developer/step-24.one.png" alt="">
Experimental data and our simulated data are compared in the following two
figures:
-<TABLE WIDTH="100%">
+<table width="100%">
<tr>
<td>
<img src="https://www.dealii.org/images/steps/developer/step-24.multi.png" alt="">
bandwidth filter that matches the actual behavior of detectors (left) and by
choosing a finer mesh (right):
-<TABLE WIDTH="100%">
+<table width="100%">
<tr>
<td>
<img src="https://www.dealii.org/images/steps/developer/step-24.multi_sf.png" alt="">
@endcode
to get the result at the right:
-<TABLE WIDTH="60%" ALIGN="center">
+<table width="60%" align="center">
<tr>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-3.solution-1.png" alt="">
</td>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-3.solution-2.png" alt="">
</td>
</tr>
refinement steps for both the isotropic (left) and anisotropic refinement
algorithms (right).
-<TABLE WIDTH="60%" ALIGN="center">
+<table width="60%" align="center">
<tr>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-30.sol-1.iso.png" alt="">
</td>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-30.sol-1.aniso.png" alt="">
</td>
</tr>
<tr>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-30.sol-5.iso.png" alt="">
</td>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-30.sol-5.aniso.png" alt="">
</td>
</tr>
pictures look best if one makes the individual surfaces slightly transparent
so that it is possible to see through them and see what's behind.
-<TABLE WIDTH="60%" ALIGN="center">
+<table width="60%" align="center">
<tr>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-4.solution-3d.png" alt="">
</td>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-4.contours-3d.png" alt="">
</td>
</tr>
program on only 16 processors. Here are a mesh, along with its
partitioning onto the 16 processors, and the corresponding solution:
-<TABLE WIDTH="100%">
+<table width="100%">
<tr>
<td>
<img src="https://www.dealii.org/images/steps/developer/step-40.mesh.png" alt="">
data of runs on even larger numbers of processors, and a lot
more interpretation can be found in the final version of the paper):
-<TABLE WIDTH="100%">
+<table width="100%">
<tr>
<td>
<img src="https://www.dealii.org/images/steps/developer/step-40.strong2.png" alt="">
be solved within a reasonable time on a machine of a particular size. We show
this in the following two graphs for 256 and 4096 processors:
-<TABLE WIDTH="100%">
+<table width="100%">
<tr>
<td>
<img src="https://www.dealii.org/images/steps/developer/step-40.256.png" alt="">
The results are easily visualized:
-<TABLE WIDTH="60%" ALIGN="center">
+<table width="60%" align="center">
<tr valign="top">
<td valign="top" align="center">
<img src="https://www.dealii.org/images/steps/developer/step-46.velocity-magnitude.png" alt="">
The results can also be visualized and yield some good pictures:
-<TABLE WIDTH="60%" ALIGN="center">
+<table width="60%" align="center">
<tr valign="top">
<td valign="top" align="center">
<img src="https://www.dealii.org/images/steps/developer/step-46.3d.velocity.png" alt="">
In the function <code>grid_5()</code> of the current program, we perturb the y
coordinate of a mesh with a sine curve:
-<TABLE WIDTH="60%" ALIGN="center">
+<table width="60%" align="center">
<tr>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-49.grid-5a.png" alt=""> regular input mesh
</td>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-49.grid-5.png" alt=""> output mesh
</td>
</tr>
-</TABLE>
+</table>
Similarly, we can transform a regularly refined
unit square to a wall-adapted mesh in y direction using the formula
$(x,y) \mapsto (x,\tanh(2 y)/\tanh(2))$. This is done in <code>grid_6()</code>
of this tutorial:
-<TABLE WIDTH="60%" ALIGN="center">
+<table width="60%" align="center">
<tr>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-49.grid-6a.png" alt=""> regular input mesh
</td>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-49.grid-6.png" alt=""> wall-adapted output mesh
</td>
</tr>
-</TABLE>
+</table>
Finally, the function GridTools::distort_random allows you to move vertices in the
mesh (optionally ignoring boundary nodes) by a random amount. This is
demonstrated in <code>grid_7()</code> and the result is as follows:
-<TABLE WIDTH="60%" ALIGN="center">
+<table width="60%" align="center">
<tr>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-49.grid-7a.png" alt=""> regular input mesh
</td>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-49.grid-7.png" alt=""> perturbed output mesh
</td>
</tr>
-</TABLE>
+</table>
This function is primarily intended to negate some of the superconvergence
effects one gets when studying convergence on regular meshes, as well as to
<table width="80%" align="center">
<tr>
- <td ALIGN="center"><img src="https://www.dealii.org/images/steps/developer/step-49.grid-2a.png" alt="" height="200px">input mesh 1</td>
- <td ALIGN="center"><img src="https://www.dealii.org/images/steps/developer/step-49.grid-2b.png" alt="" height="200px">input mesh 2</td>
- <td ALIGN="center"><img src="https://www.dealii.org/images/steps/developer/step-49.grid-2.png" alt="" height="200px">merged mesh</td>
+ <td align="center"><img src="https://www.dealii.org/images/steps/developer/step-49.grid-2a.png" alt="" height="200px">input mesh 1</td>
+ <td align="center"><img src="https://www.dealii.org/images/steps/developer/step-49.grid-2b.png" alt="" height="200px">input mesh 2</td>
+ <td align="center"><img src="https://www.dealii.org/images/steps/developer/step-49.grid-2.png" alt="" height="200px">merged mesh</td>
</tr>
</table>
such meshes. Here, we create a box with a cylindrical hole that is not exactly
centered by moving the top vertices upwards:
-<TABLE WIDTH="60%" ALIGN="center">
+<table width="60%" align="center">
<tr>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-49.grid-3a.png" alt="" height="200px"> input mesh
</td>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-49.grid-3.png" alt="" height="200px"> top vertices moved upwards
</td>
</tr>
mesh, generated for example with Gmsh, that is read in from a
<code>.msh</code> file as described above. This is the output from grid_4():
-<TABLE WIDTH="60%" ALIGN="center">
+<table width="60%" align="center">
<tr>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-49.grid-4base.png" alt=""> input mesh
</td>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-49.grid-4.png" alt=""> extruded output mesh
</td>
</tr>
-<TABLE WIDTH="100%">
+<table width="100%">
<tr>
<td>
<img src="https://www.dealii.org/images/steps/developer/step-5.solution-0.png" alt="">
solution from the coarse mesh is interpolated to the fine mesh to be used as an
initial guess.
-<TABLE ALIGN="center">
+<table align="center">
<tr>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-57.Re400_Mesh0.png" width="232px" alt="">
</td>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-57.Re400_Mesh1.png" width="232px" alt="">
</td>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-57.Re400_Mesh2.png" width="232px" alt="">
</td>
</tr>
<tr>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-57.Re400_Mesh3.png" width="232px" alt="">
</td>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-57.Re400_Mesh4.png" width="232px" alt="">
</td>
</tr>
The sequence of generated grids looks like this:
-<TABLE ALIGN="center">
+<table align="center">
<tr>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-57.Re7500_Mesh0.png" width="232px" alt="">
</td>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-57.Re7500_Mesh1.png" width="232px" alt="">
</td>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-57.Re7500_Mesh2.png" width="232px" alt="">
</td>
</tr>
<tr>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-57.Re7500_Mesh3.png" width="232px" alt="">
</td>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-57.Re7500_Mesh4.png" width="232px" alt="">
</td>
</tr>
discussed, for example, in step-12) and get the
following results (left: iterations; right: CPU time):
-<TABLE WIDTH="60%" ALIGN="center">
+<table width="60%" align="center">
<tr>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-6.q2.dofs_vs_iterations.png" alt="">
</td>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-6.q2.dofs_vs_time.png" alt="">
</td>
</tr>
bi-quadratic one as set in the constructor of this program, but a
bi-linear one. If one makes this change, the results are as follows:
-<TABLE WIDTH="60%" ALIGN="center">
+<table width="60%" align="center">
<tr>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-6.q1.dofs_vs_iterations.png" alt="">
</td>
- <td ALIGN="center">
+ <td align="center">
<img src="https://www.dealii.org/images/steps/developer/step-6.q1.dofs_vs_time.png" alt="">
</td>
</tr>
output files that the program wrote to disk. The first two pictures show
the $x$- and $y$-displacements as scalar components:
-<TABLE WIDTH="100%">
+<table width="100%">
<tr>
<td>
<img src="https://www.dealii.org/images/steps/developer/step-8.x.png" alt="">