[cig-commits] r1301 - in trunk/aspect: . cookbooks doc doc/manual doc/manual/cookbooks/benchmarks doc/manual/cookbooks/benchmarks/stokes

bangerth at dealii.org bangerth at dealii.org
Sun Oct 21 10:03:18 PDT 2012


Author: bangerth
Date: 2012-10-21 11:03:18 -0600 (Sun, 21 Oct 2012)
New Revision: 1301

Added:
   trunk/aspect/doc/manual/cookbooks/benchmarks/stokes/
   trunk/aspect/doc/manual/cookbooks/benchmarks/stokes/composition.png
   trunk/aspect/doc/manual/cookbooks/benchmarks/stokes/mesh.png
   trunk/aspect/doc/manual/cookbooks/benchmarks/stokes/stokes-density.png
   trunk/aspect/doc/manual/cookbooks/benchmarks/stokes/stokes-velocity.png
   trunk/aspect/doc/manual/cookbooks/benchmarks/stokes/velocity.png
Removed:
   trunk/aspect/doc/manual/cookbooks/benchmarks/stokes-density.png
   trunk/aspect/doc/manual/cookbooks/benchmarks/stokes-velocity.png
Modified:
   trunk/aspect/Makefile
   trunk/aspect/cookbooks/stokes.prm
   trunk/aspect/doc/manual.pdf
   trunk/aspect/doc/manual/manual.tex
Log:
Extend the 'Stokes sphere' cookbook a little bit.

Modified: trunk/aspect/Makefile
===================================================================
--- trunk/aspect/Makefile	2012-10-21 16:39:43 UTC (rev 1300)
+++ trunk/aspect/Makefile	2012-10-21 17:03:18 UTC (rev 1301)
@@ -13,7 +13,7 @@
 target   = lib/$(application-name)
 
 # The `debug-mode' variable works as in the small projects Makefile:
-debug-mode = on
+debug-mode = off
 
 # And so does the following variable. You will have to set it to
 # something reasonable that, for example, includes the location where you

Modified: trunk/aspect/cookbooks/stokes.prm
===================================================================
--- trunk/aspect/cookbooks/stokes.prm	2012-10-21 16:39:43 UTC (rev 1300)
+++ trunk/aspect/cookbooks/stokes.prm	2012-10-21 17:03:18 UTC (rev 1301)
@@ -1,15 +1,26 @@
 ############### Global parameters
+# We use a 3d setup. Since we are only interested
+# in a steady state solution, we set the end time
+# equal to the start time to force a single time
+# step before the program terminates.
 
 set Dimension                              = 3
 
 set Start time                             = 0
-set End time                               = 2e13
+set End time                               = 0
+set Use years in output instead of seconds = false
 
 set Output directory                       = output
-set Use years in output instead of seconds = false
 
+
 ############### Parameters describing the model
+# The setup is a 3d box with edge length 2890000 in which
+# all 6 sides have free slip boundary conditions. Because
+# the temperature plays no role in this model we need not
+# bother to describe temperature boundary conditions or
+# the material parameters that pertain to the temperature.
 
+
 subsection Geometry model
   set Model name = box
 
@@ -23,18 +34,14 @@
 
 subsection Model settings
   set Tangential velocity boundary indicators = 0,1,2,3,4,5
-  set Fixed temperature boundary indicators   = 0,1 
-  set Include shear heating                   = false
 end
 
 
 subsection Material model
   set Model name = simple
 
-    subsection Simple model
+  subsection Simple model
     set Reference density             = 3300
-    set Reference temperature         = 1
-    set Thermal expansion coefficient = 4e-5
     set Viscosity                     = 1e22
   end
 end
@@ -50,29 +57,32 @@
 
 
 ############### Parameters describing the temperature field
+# As above, there is no need to set anything for the
+# temperature boundary conditions.
 
 subsection Boundary temperature model
   set Model name = box
-
-  subsection Box
-    set Bottom temperature = 1
-    set Left temperature   = 1
-    set Right temperature  = 1
-    set Top temperature    = 1
-    set Front temperature  = 1
-    set Back temperature   = 1
-  end
 end
 
 subsection Initial conditions
   set Model name = function
 
   subsection Function
-    set Function expression = 1
+    set Function expression = 0
   end
 end
 
 ############### Parameters describing the compositional field
+# This, however, is the more important part: We need to describe
+# the compositional field and its influence on the density
+# function. The following blocks say that we want to 
+# advect a single compositional field and that we give it an
+# initial value that is zero outside a sphere of radius
+# r=200000m and centered at the point (p,p,p) with
+# p=1445000 (which is half the diameter of the box) and one inside.
+# The last block re-opens the material model and sets the
+# density differential per unit change in compositional field to
+# 100.
 
 subsection Compositional fields
   set Number of fields = 1
@@ -82,30 +92,47 @@
   set Model name = function
 
   subsection Function
-    set Variable names = x,y,z
-    set Function expression = if(sqrt((x-1445000)*(x-1445000)+(y-1445000)*(y-1445000)+(z-1445000)*(z-1445000)) > 200000,0,1)
+    set Variable names      = x,y,z
+    set Function constants  = r=200000,p=1445000
+    set Function expression = if(sqrt((x-p)*(x-p)+(y-p)*(y-p)+(z-p)*(z-p)) > r, 0, 1)
   end
 end
 
+subsection Material model
+  subsection Simple model
+    set Density differential for compositional field 1 = 100
+  end
+end
+
+
+
+
 ############### Parameters describing the discretization
+# The following parameters describe how often we want to refine
+# the mesh globally and adaptively, what fraction of cells should
+# be refined in each adaptive refinement step, and what refinement
+# indicator to use when refining the mesh adaptively. 
 
 subsection Mesh refinement
-  set Initial adaptive refinement        = 6
-  set Initial global refinement          = 5
+  set Initial adaptive refinement        = 4
+  set Initial global refinement          = 4
   set Refinement fraction                = 0.2
   set Strategy                           = Velocity
 end
 
 
 ############### Parameters describing the what to do with the solution
+# The final section allows us to choose which postprocessors to
+# run at the end of each time step. We select to generate graphical
+# output that will consist of the primary variables (velocity, pressure,
+# temperature and the compositional fields) as well as the density and
+# viscosity. We also select to compute some statistics about the
+# velocity field.
 
 subsection Postprocess
-  set List of postprocessors = visualization
+  set List of postprocessors = visualization, velocity statistics
 
   subsection Visualization
-    set Number of grouped files       = 0
-    set Output format                 = vtu
-    set Time between graphical output = 1e6   
     set List of output variables = density, viscosity
   end
 end

Added: trunk/aspect/doc/manual/cookbooks/benchmarks/stokes/composition.png
===================================================================
(Binary files differ)


Property changes on: trunk/aspect/doc/manual/cookbooks/benchmarks/stokes/composition.png
___________________________________________________________________
Added: svn:mime-type
   + image/png

Added: trunk/aspect/doc/manual/cookbooks/benchmarks/stokes/mesh.png
===================================================================
(Binary files differ)


Property changes on: trunk/aspect/doc/manual/cookbooks/benchmarks/stokes/mesh.png
___________________________________________________________________
Added: svn:mime-type
   + image/png

Copied: trunk/aspect/doc/manual/cookbooks/benchmarks/stokes/stokes-density.png (from rev 1298, trunk/aspect/doc/manual/cookbooks/benchmarks/stokes-density.png)
===================================================================
(Binary files differ)

Copied: trunk/aspect/doc/manual/cookbooks/benchmarks/stokes/stokes-velocity.png (from rev 1298, trunk/aspect/doc/manual/cookbooks/benchmarks/stokes-velocity.png)
===================================================================
(Binary files differ)

Added: trunk/aspect/doc/manual/cookbooks/benchmarks/stokes/velocity.png
===================================================================
(Binary files differ)


Property changes on: trunk/aspect/doc/manual/cookbooks/benchmarks/stokes/velocity.png
___________________________________________________________________
Added: svn:mime-type
   + image/png

Deleted: trunk/aspect/doc/manual/cookbooks/benchmarks/stokes-density.png
===================================================================
(Binary files differ)

Deleted: trunk/aspect/doc/manual/cookbooks/benchmarks/stokes-velocity.png
===================================================================
(Binary files differ)

Modified: trunk/aspect/doc/manual/manual.tex
===================================================================
--- trunk/aspect/doc/manual/manual.tex	2012-10-21 16:39:43 UTC (rev 1300)
+++ trunk/aspect/doc/manual/manual.tex	2012-10-21 17:03:18 UTC (rev 1301)
@@ -67,13 +67,22 @@
   \\[1cm]
   {\large
     Wolfgang Bangerth\\
-    Thomas Geenen\\
-    Timo Heister\\
-    Martin Kronbichler\\
+    Timo Heister\\[24pt]
   }
 \end{centering}
+{\parindent0pt
+ \large
+    with contributions by:\\
+    Markus B{\"u}rg,
+    Juliane Dannberg,
+    Ren{\'e} Ga{\ss}m{\"o}ller,
+    Thomas Geenen,
+    Eric Heien,
+    Martin Kronbichler
+}
 
 
+
 \pagebreak
 
 \tableofcontents
@@ -3290,187 +3299,215 @@
 \subsubsection{The ``Stokes' law'' benchmark}
 \label{sec:benchmark-stokes_law}
 
-Stokes' law was derived by George Gabriel Stokes in 1851 and describes the frictional force 
-a sphere experiences in a laminar flowing viscous medium. A setup for testing this
-law is a sphere with the radius r falling in a highly viscous fluid with lower density. Due to its 
-higher density the sphere is accelerated by the gravitational force. While 
-the frictional force increases with the velocity of the falling particle, 
-the buoyancy force remains constant. Thus, at some time the forces will 
+\textit{This section was contributed by Juliane Dannberg.}
+
+Stokes' law was derived by George Gabriel Stokes in 1851 and describes the frictional force
+a sphere with a density different than the surrounding fluid experiences in a
+laminar flowing viscous medium.
+A setup for testing this law is a sphere with the radius $r$ falling in a highly
+viscous fluid with lower density. Due to its higher density the sphere is
+accelerated by the gravitational force. While
+the frictional force increases with the velocity of the falling particle,
+the buoyancy force remains constant. Thus, after some time the forces will
 be balanced and the settling velocity of the sphere $v_s$ will remain constant:
 
 \begin{align}
   \label{eq:stokes-law}
-  \underbrace{6 \pi \, \eta \, r \, v_s}_{\text{frictional force}} = 
-  \underbrace{4/3 \pi \, r^3 \, \Delta\rho \, g}_{\text{buoyancy force}}
+  \underbrace{6 \pi \, \eta \, r \, v_s}_{\text{frictional force}} =
+  \underbrace{4/3 \pi \, r^3 \, \Delta\rho \, g,}_{\text{buoyancy force}}
 \end{align}
-
-\begin{align*}
-  \eta \quad &\text{dynamic viscosity of the fluid}\\
-  \Delta\rho \quad &\text{density difference between sphere and fluid}\\
-  g \quad &\text{gravitational acceleration}
-\end{align*}
-
-The resulting settling velocity is given by:
+where $\eta$ is the dynamic viscosity of the fluid, $\Delta\rho$ is the
+density difference between sphere and fluid and $g$ the gravitational
+acceleration. The resulting settling velocity is then given by
 \begin{align}
   \label{eq:stokes-velo}
   v_s = \frac{2}{9} \frac{\Delta\rho \, r^2 \, g}{\eta}.
 \end{align}
-
 Because we do not take into account inertia in our numerical computation,
-the falling particle will reach the constant settling velocity right after 
+the falling particle will reach the constant settling velocity right after
 the first timestep.
+
 For the setup of this benchmark, we chose the following parameters:
 \begin{align*}
   \label{eq:stokes-parameters}
   r &= 200 \, \text{km}\\
   \Delta\rho &= 100 \, \text{kg}/\text{m}^3\\
   \eta &= 10^{22} \, \text{Pa s}\\
-  g &= 9.81 \, \text{m}/\text{s}^2\\
-  \vspace{1mm}
-  \text{resulting }  v_s &= 8.72 \cdot 10^{-10} \, \text{m}/\text{s}
+  g &= 9.81 \, \text{m}/\text{s}^2.
 \end{align*}
+With these values, the exact value of sinking velocity is $v_s =
+8.72 \cdot 10^{-10} \, \text{m}/\text{s}$.
 
-\begin{figure}
-  \begin{center}
-    \includegraphics[width=0.55\textwidth]{cookbooks/benchmarks/stokes-velocity}
-    \hfill
-    \includegraphics[width=0.44\textwidth]{cookbooks/benchmarks/stokes-density}
-    \caption{Stokes benchmark. Both figures show only a 2D slice of the
-      three-dimensional model. 
-      Left: The compositional field and overlaid to it some velocity vectors.
-      The composition is 1 inside a sphere with the radius of 200 km and 0
-      outside of this sphere. As the velocity vectors show, the sphere sinks
-      in the viscous medium. 
-      Right: The density distribution of the model. The compositional density 
-      contrast of 100 kg$/\text{m}^3$ leads to a higher density inside of the
-      sphere.}
-    \label{fig:solcx}
-  \end{center}
-\end{figure}
+To run this benchmark, we need to set up an input file that describes the
+situation. In principle, what we need to do is to describe a spherical object
+with a density that is larger than the surrounding material. There are multiple
+ways of doing this. For example, we could simply set the initial temperature of
+the material in the sphere to a lower value, yielding a higher density with any
+of the common material models. Or, we could use \aspect{}'s facilities to advect
+along what are called ``compositional fields'' and make the density dependent on
+these fields.
 
-To run this benchmark, you can use the following input file:
+We will go with the second approach and tell \aspect{} to advect a single
+compositional field. The initial conditions for this field will be zero outside
+the sphere and one inside. We then need to also tell the material model to
+increase the density by $\Delta\rho=100 kg\, m^{-3}$ times the concentration of
+the compositional field. This can be done, like everything else, from the input
+file. 
 
-\begin{lstlisting}[frame=single,language=prmfile]
+All of this setup is then described by the following input file.
+(You can find the input file to run this cookbook example in
+\url{cookbooks/stokes.prm}. For your first runs you will probably want to
+reduce the number of mesh refinement steps to make things run more quickly.)
+
+\begin{lstlisting}[frame=single,language=prmfile,escapechar=\%]
 ############### Global parameters
+# We use a 3d setup. Since we are only interested
+# in a steady state solution, we set the end time
+# equal to the start time to force a single time
+# step before the program terminates.
 
-set Dimension                              = 3
+set Dimension                              = 3 % \index[prmindex]{Dimension} \index[prmindexfull]{Dimension} %
 
-set Start time                             = 0
-set End time                               = 2e13
+set Start time                             = 0 % \index[prmindex]{Start time} \index[prmindexfull]{Start time} %
+set End time                               = 0 % \index[prmindex]{End time} \index[prmindexfull]{End time} %
+set Use years in output instead of seconds = false % \index[prmindex]{Use years in output instead of seconds} \index[prmindexfull]{Use years in output instead of seconds} %
 
-set Output directory                       = output
-set Use years in output instead of seconds = false
+set Output directory                       = output % \index[prmindex]{Output directory} \index[prmindexfull]{Output directory} %
 
+
 ############### Parameters describing the model
+# The setup is a 3d box with edge length 2890000 in which
+# all 6 sides have free slip boundary conditions. Because
+# the temperature plays no role in this model we need not
+# bother to describe temperature boundary conditions or
+# the material parameters that pertain to the temperature.
 
+
 subsection Geometry model
-  set Model name = box
+  set Model name = box % \index[prmindex]{Model name} \index[prmindexfull]{Geometry model!Model name} %
 
   subsection Box
-    set X extent  = 2890000
-    set Y extent  = 2890000
-    set Z extent  = 2890000
+    set X extent  = 2890000 % \index[prmindex]{X extent} \index[prmindexfull]{Geometry model!Box!X extent} %
+    set Y extent  = 2890000 % \index[prmindex]{Y extent} \index[prmindexfull]{Geometry model!Box!Y extent} %
+    set Z extent  = 2890000 % \index[prmindex]{Z extent} \index[prmindexfull]{Geometry model!Box!Z extent} %
   end
 end
 
 
 subsection Model settings
-  set Tangential velocity boundary indicators = 0,1,2,3,4,5
-  set Fixed temperature boundary indicators   = 0,1 
-  set Include shear heating                   = false
+  set Tangential velocity boundary indicators = 0,1,2,3,4,5 % \index[prmindex]{Tangential velocity boundary indicators} \index[prmindexfull]{Model settings!Tangential velocity boundary indicators} %
 end
 
 
 subsection Material model
-  set Model name = simple
+  set Model name = simple % \index[prmindex]{Model name} \index[prmindexfull]{Material model!Model name} %
 
-    subsection Simple model
-    set Reference density             = 3300
-    set Reference temperature         = 1
-    set Thermal expansion coefficient = 4e-5
-    set Viscosity                     = 1e22
+  subsection Simple model
+    set Reference density             = 3300 % \index[prmindex]{Reference density} \index[prmindexfull]{Material model!Simple model!Reference density} %
+    set Viscosity                     = 1e22 % \index[prmindex]{Viscosity} \index[prmindexfull]{Material model!Simple model!Viscosity} %
   end
 end
 
 
 subsection Gravity model
-  set Model name = vertical
+  set Model name = vertical % \index[prmindex]{Model name} \index[prmindexfull]{Gravity model!Model name} %
 
   subsection Vertical
-    set Magnitude = 9.81
+    set Magnitude = 9.81 % \index[prmindex]{Magnitude} \index[prmindexfull]{Gravity model!Vertical!Magnitude} %
   end
 end
 
 
 ############### Parameters describing the temperature field
+# As above, there is no need to set anything for the
+# temperature boundary conditions.
 
 subsection Boundary temperature model
-  set Model name = box
-
-  subsection Box
-    set Bottom temperature = 1
-    set Left temperature   = 1
-    set Right temperature  = 1
-    set Top temperature    = 1
-    set Front temperature  = 1
-    set Back temperature   = 1
-  end
+  set Model name = box % \index[prmindex]{Model name} \index[prmindexfull]{Boundary temperature model!Model name} %
 end
 
 subsection Initial conditions
-  set Model name = function
+  set Model name = function % \index[prmindex]{Model name} \index[prmindexfull]{Initial conditions!Model name} %
 
   subsection Function
-    set Function expression = 1
+    set Function expression = 0 % \index[prmindex]{Function expression} \index[prmindexfull]{Initial conditions!Function!Function expression} %
   end
 end
 
 ############### Parameters describing the compositional field
+# This, however, is the more important part: We need to describe
+# the compositional field and its influence on the density
+# function. The following blocks say that we want to 
+# advect a single compositional field and that we give it an
+# initial value that is zero outside a sphere of radius
+# r=200000m and centered at the point (p,p,p) with
+# p=1445000 (which is half the diameter of the box) and one inside.
+# The last block re-opens the material model and sets the
+# density differential per unit change in compositional field to
+# 100.
 
 subsection Compositional fields
-  set Number of fields = 1
+  set Number of fields = 1 % \index[prmindex]{Number of fields} \index[prmindexfull]{Compositional fields!Number of fields} %
 end 
 
 subsection Compositional initial conditions
-  set Model name = function
+  set Model name = function % \index[prmindex]{Model name} \index[prmindexfull]{Compositional initial conditions!Model name} %
 
   subsection Function
-    set Variable names = x,y,z
-    set Function expression = if(sqrt((x-1445000)*(x-1445000)+(y-1445000)*(y-1445000)
-                              +(z-1445000)*(z-1445000)) > 200000,0,1)
+    set Variable names      = x,y,z % \index[prmindex]{Variable names} \index[prmindexfull]{Compositional initial conditions!Function!Variable names} %
+    set Function constants  = r=200000,p=1445000 % \index[prmindex]{Function constants} \index[prmindexfull]{Compositional initial conditions!Function!Function constants} %
+    set Function expression = if(sqrt((x-p)*(x-p)+(y-p)*(y-p)+(z-p)*(z-p)) > r, 0, 1) % \index[prmindex]{Function expression} \index[prmindexfull]{Compositional initial conditions!Function!Function expression} %
   end
 end
 
+subsection Material model
+  subsection Simple model
+    set Density differential for compositional field 1 = 100 % \index[prmindex]{Density differential for compositional field 1} \index[prmindexfull]{Material model!Simple model!Density differential for compositional field 1} %
+  end
+end
+
+
+
+
 ############### Parameters describing the discretization
+# The following parameters describe how often we want to refine
+# the mesh globally and adaptively, what fraction of cells should
+# be refined in each adaptive refinement step, and what refinement
+# indicator to use when refining the mesh adaptively. 
 
 subsection Mesh refinement
-  set Initial adaptive refinement        = 6
-  set Initial global refinement          = 5
-  set Refinement fraction                = 0.2
-  set Strategy                           = Velocity
+  set Initial adaptive refinement        = 4 % \index[prmindex]{Initial adaptive refinement} \index[prmindexfull]{Mesh refinement!Initial adaptive refinement} %
+  set Initial global refinement          = 4 % \index[prmindex]{Initial global refinement} \index[prmindexfull]{Mesh refinement!Initial global refinement} %
+  set Refinement fraction                = 0.2 % \index[prmindex]{Refinement fraction} \index[prmindexfull]{Mesh refinement!Refinement fraction} %
+  set Strategy                           = Velocity % \index[prmindex]{Strategy} \index[prmindexfull]{Mesh refinement!Strategy} %
 end
 
 
 ############### Parameters describing the what to do with the solution
+# The final section allows us to choose which postprocessors to
+# run at the end of each time step. We select to generate graphical
+# output that will consist of the primary variables (velocity, pressure,
+# temperature and the compositional fields) as well as the density and
+# viscosity. We also select to compute some statistics about the
+# velocity field.
 
 subsection Postprocess
-  set List of postprocessors = visualization
+  set List of postprocessors = visualization, velocity statistics % \index[prmindex]{List of postprocessors} \index[prmindexfull]{Postprocess!List of postprocessors} %
 
   subsection Visualization
-    set Number of grouped files       = 0
-    set Output format                 = vtu
-    set Time between graphical output = 1e6   
-    set List of output variables = density, viscosity
+    set List of output variables = density, viscosity % \index[prmindex]{List of output variables} \index[prmindexfull]{Postprocess!Visualization!List of output variables} %
   end
 end
 \end{lstlisting}
 
-\vspace{5mm}
-
-Finally, we want to know the settling velocity of the sphere in our numerical 
-model. You can visualize the output in different ways, one of it being ParaView. 
-Here you can calculate the average velocity of the sphere using the filters
-
+Usig this input file, let us try to evaluate the results of the current
+computations for the settling velocity of the sphere. You can visualize the output in different
+ways, one of it being ParaView and shown in
+Fig.~\ref{fig:stokes-falling-sphere-2d} (an alternative is to use Visit as
+described in Section~\ref{sec:viz}; 3d images of this simulation using Visit
+are shown in Fig.~\ref{fig:stokes-falling-sphere-3d}).
+Here, Paraview has the advantage that you can calculate the average velocity
+of the sphere using the following filters:
 \begin{enumerate}
  \item Threshold (Scalars: C\_1, Lower Threshold 0.5, Upper Threshold 1),
  \item Integrate Variables,
@@ -3478,17 +3515,58 @@
  \item Calculator (use the formula sqrt(velocity\_x\textasciicircum2+
        velocity\_y\textasciicircum2+velocity\_z\textasciicircum2)/Volume).
 \end{enumerate}
-
-If you now look at 
-the Calculator object in the Spreadsheet View, you can see the average sinking 
+If you then look at
+the Calculator object in the Spreadsheet View, you can see the average sinking
 velocity of the sphere in the column ``Result'' and compare it to the theoretical
-value ($v_s = 8.72 \cdot 10^{-10} \, \text{m}/\text{s}$). 
-In this case, this value should be about 8.865 $\cdot 10^{-10} \, \text{m}/\text{s}$.
-The difference between the analytical and the numerical solution can be explained by
-different points: In our case the sphere is viscous and not rigid, as in Stokes'
-law, and we have a finite box instead of an infinite medium. 
+value $v_s = 8.72 \cdot 10^{-10} \, \text{m}/\text{s}$.
+In this case, the numerical result is 8.865 $\cdot 10^{-10} \,
+\text{m}/\text{s}$ when you add a few more refinement steps to actually resolve
+the 3d flow field adequately. The ``velocity statistics'' postprocessor we have
+selected above also provides us with a maximal velocity that is on the same
+order of magnitude. The difference between the analytical and the numerical
+values can be explained by different at least the following three points:
+(i) In our case the sphere is viscous and not rigid as assumed in Stokes' initial model, leading to
+a velocity field that varies inside the sphere rather than being constant.
+(ii) Stokes' law is derived using an infinite domain but we have a finite box
+instead. (iii) The mesh may not yet fine enough to provide a fully converges
+solution. Nevertheless, the fact that we get a result that is accurate to less
+than 2\% is a good indication that \aspect{} implements the equations correctly.
 
+\begin{figure}
+  \begin{center}
+    \includegraphics[width=0.55\textwidth]{cookbooks/benchmarks/stokes/stokes-velocity}
+    \hfill
+    \includegraphics[width=0.44\textwidth]{cookbooks/benchmarks/stokes/stokes-density}
+  \end{center}
+  \caption{Stokes benchmark. Both figures show only a 2D slice of the
+      three-dimensional model.
+      Left: The compositional field and overlaid to it some velocity vectors.
+      The composition is 1 inside a sphere with the radius of 200 km and 0
+      outside of this sphere. As the velocity vectors show, the sphere sinks
+      in the viscous medium.
+      Right: The density distribution of the model. The compositional density
+      contrast of 100 kg$/\text{m}^3$ leads to a higher density inside of the
+      sphere.}
+  \label{fig:stokes-falling-sphere-2d}
+\end{figure}
 
+\begin{figure}
+  \begin{center}
+    \includegraphics[width=0.3\textwidth]{cookbooks/benchmarks/stokes/composition}
+    \hfill
+    \includegraphics[width=0.3\textwidth]{cookbooks/benchmarks/stokes/mesh}
+    \hfill
+    \includegraphics[width=0.3\textwidth]{cookbooks/benchmarks/stokes/velocity}
+  \end{center}
+  \caption{Stokes benchmark. Three-dimensional views of the compositional field
+  (left), the adaptively refined mesh (center) and the resulting velocity field
+  (right).}
+  \label{fig:stokes-falling-sphere-3d}
+\end{figure}
+
+
+
+
 \section{Extending \aspect}
 \label{sec:extending}
 

Modified: trunk/aspect/doc/manual.pdf
===================================================================
(Binary files differ)



More information about the CIG-COMMITS mailing list