[cig-commits] [commit] master: General update of Joey's first version of the cookbook. (44cb47a)

cig_noreply at geodynamics.org cig_noreply at geodynamics.org
Tue Sep 2 06:25:16 PDT 2014


Repository : https://github.com/geodynamics/aspect

On branch  : master
Link       : https://github.com/geodynamics/aspect/compare/873dd16d28505a844f0bd2fbf0739b4f0af46bf9...1f5a0f8d775c6f634a16eb9599891cc7d60571e5

>---------------------------------------------------------------

commit 44cb47a7e107dc00482f0bce8b2a5170b157cd95
Author: Wolfgang Bangerth <bangerth at math.tamu.edu>
Date:   Mon Sep 1 07:33:01 2014 -0500

    General update of Joey's first version of the cookbook.
    
    Minor edits to Joey's version.
    
    Edit the text and make the input files so that they get generated by the script and then included into the text, rather than copy-pasted there.
    
    Some renaming and other minor adjustments.
    
    Add an entry.
    
    Comment on depth and height.


>---------------------------------------------------------------

44cb47a7e107dc00482f0bce8b2a5170b157cd95
 .../free-surface-with-crust.prm}                   |   0
 .../plugin/CMakeLists.txt                          |   0
 .../plugin/simplerwc.cc                            |   4 +-
 .../free-surface-wc.part1.prm                      |   1 +
 .../free-surface-wc.part1.prm.out                  |   1 +
 .../free-surface-wc.part2.prm                      |  17 ++
 .../free-surface-wc.part2.prm.out                  |  17 ++
 .../free_surface_with_crust/plugin/CMakeLists.txt  |  10 -
 .../free_surface_with_crust/plugin/simplerwc.cc    | 213 ---------------------
 .../free_surface_with_crust/plugin/simplerwc.h     | 109 -----------
 doc/manual/manual.tex                              | 123 ++++++------
 doc/modules/changes.h                              |   6 +
 12 files changed, 99 insertions(+), 402 deletions(-)

diff --git a/cookbooks/free_surface_with_crust/free_surface_wc.prm b/cookbooks/free-surface-with-crust/free-surface-with-crust.prm
similarity index 100%
rename from cookbooks/free_surface_with_crust/free_surface_wc.prm
rename to cookbooks/free-surface-with-crust/free-surface-with-crust.prm
diff --git a/cookbooks/free_surface_with_crust/plugin/CMakeLists.txt b/cookbooks/free-surface-with-crust/plugin/CMakeLists.txt
similarity index 100%
rename from cookbooks/free_surface_with_crust/plugin/CMakeLists.txt
rename to cookbooks/free-surface-with-crust/plugin/CMakeLists.txt
diff --git a/cookbooks/free_surface_with_crust/plugin/simplerwc.cc b/cookbooks/free-surface-with-crust/plugin/simplerwc.cc
similarity index 99%
rename from cookbooks/free_surface_with_crust/plugin/simplerwc.cc
rename to cookbooks/free-surface-with-crust/plugin/simplerwc.cc
index 03d2269..7a108a4 100644
--- a/cookbooks/free_surface_with_crust/plugin/simplerwc.cc
+++ b/cookbooks/free-surface-with-crust/plugin/simplerwc.cc
@@ -178,11 +178,9 @@ namespace aspect
     SimplerWC<dim>::
     evaluate(const typename Interface<dim>::MaterialModelInputs &in, typename Interface<dim>::MaterialModelOutputs &out ) const
     {
-      
-      double z;
       for (unsigned int i=0; i<in.position.size(); ++i)
         { 
-          z = in.position[i][1];
+          const double z = in.position[i][1];
 	  if (z>jump_height)
 	    out.viscosities[i] = eta_U;
 	  else
diff --git a/doc/manual/cookbooks/free_surface_with_crust/free-surface-wc.part1.prm b/doc/manual/cookbooks/free_surface_with_crust/free-surface-wc.part1.prm
new file mode 100644
index 0000000..d6e242d
--- /dev/null
+++ b/doc/manual/cookbooks/free_surface_with_crust/free-surface-wc.part1.prm
@@ -0,0 +1 @@
+set Additional shared libraries            = ./plugin/libsimplerwc.so
diff --git a/doc/manual/cookbooks/free_surface_with_crust/free-surface-wc.part1.prm.out b/doc/manual/cookbooks/free_surface_with_crust/free-surface-wc.part1.prm.out
new file mode 100644
index 0000000..8de42d9
--- /dev/null
+++ b/doc/manual/cookbooks/free_surface_with_crust/free-surface-wc.part1.prm.out
@@ -0,0 +1 @@
+set %%\hyperref[parameters:Additional shared libraries]{Additional shared libraries}%            = ./plugin/libsimplerwc.so%% \index[prmindex]{Additional shared libraries} \index[prmindexfull]{Additional shared libraries} %
diff --git a/doc/manual/cookbooks/free_surface_with_crust/free-surface-wc.part2.prm b/doc/manual/cookbooks/free_surface_with_crust/free-surface-wc.part2.prm
new file mode 100644
index 0000000..72b8ea3
--- /dev/null
+++ b/doc/manual/cookbooks/free_surface_with_crust/free-surface-wc.part2.prm
@@ -0,0 +1,17 @@
+subsection Material model
+  set Model name = simpler with crust
+  subsection Simpler with crust model
+    set Reference density             = 3300
+    set Reference specific heat       = 1250
+    set Reference temperature         = 0.0
+    set Thermal conductivity          = 1.0 # low thermal conductivity for a sharp blob
+    set Thermal expansion coefficient = 4e-5
+  
+    # Parameters added for this cookbook:
+    # The box is 200km high and has its origin set at the bottom left corner.
+    # Setting the jump height to 170km creates a 30km thick crust
+    set Lower viscosity               = 1e20
+    set Upper viscosity               = 1e23
+    set Jump height                   = 170e3
+  end
+end
\ No newline at end of file
diff --git a/doc/manual/cookbooks/free_surface_with_crust/free-surface-wc.part2.prm.out b/doc/manual/cookbooks/free_surface_with_crust/free-surface-wc.part2.prm.out
new file mode 100644
index 0000000..35bfa55
--- /dev/null
+++ b/doc/manual/cookbooks/free_surface_with_crust/free-surface-wc.part2.prm.out
@@ -0,0 +1,17 @@
+subsection %%\hyperref[parameters:Material_20model]{Material model}%
+  set %%\hyperref[parameters:Material model/Model name]{Model name}% = simpler with crust%% \index[prmindex]{Model name} \index[prmindexfull]{Material model!Model name} %
+  subsection %%\hyperref[parameters:Material_20model/Simpler_20with_20crust_20model]{Simpler with crust model}%
+    set %%\hyperref[parameters:Material model/Simpler with crust model/Reference density]{Reference density}%             = 3300%% \index[prmindex]{Reference density} \index[prmindexfull]{Material model!Simpler with crust model!Reference density} %
+    set %%\hyperref[parameters:Material model/Simpler with crust model/Reference specific heat]{Reference specific heat}%       = 1250%% \index[prmindex]{Reference specific heat} \index[prmindexfull]{Material model!Simpler with crust model!Reference specific heat} %
+    set %%\hyperref[parameters:Material model/Simpler with crust model/Reference temperature]{Reference temperature}%         = 0.0%% \index[prmindex]{Reference temperature} \index[prmindexfull]{Material model!Simpler with crust model!Reference temperature} %
+    set %%\hyperref[parameters:Material model/Simpler with crust model/Thermal conductivity]{Thermal conductivity}%          = 1.0 # low thermal conductivity for a sharp blob%% \index[prmindex]{Thermal conductivity} \index[prmindexfull]{Material model!Simpler with crust model!Thermal conductivity} %
+    set %%\hyperref[parameters:Material model/Simpler with crust model/Thermal expansion coefficient]{Thermal expansion coefficient}% = 4e-5%% \index[prmindex]{Thermal expansion coefficient} \index[prmindexfull]{Material model!Simpler with crust model!Thermal expansion coefficient} %
+  
+    # Parameters added for this cookbook:
+    # The box is 200km high and has its origin set at the bottom left corner.
+    # Setting the jump height to 170km creates a 30km thick crust
+    set %%\hyperref[parameters:Material model/Simpler with crust model/Lower viscosity]{Lower viscosity}%               = 1e20%% \index[prmindex]{Lower viscosity} \index[prmindexfull]{Material model!Simpler with crust model!Lower viscosity} %
+    set %%\hyperref[parameters:Material model/Simpler with crust model/Upper viscosity]{Upper viscosity}%               = 1e23%% \index[prmindex]{Upper viscosity} \index[prmindexfull]{Material model!Simpler with crust model!Upper viscosity} %
+    set %%\hyperref[parameters:Material model/Simpler with crust model/Jump height]{Jump height}%                   = 170e3%% \index[prmindex]{Jump height} \index[prmindexfull]{Material model!Simpler with crust model!Jump height} %
+  end
+end
\ No newline at end of file
diff --git a/doc/manual/cookbooks/free_surface_with_crust/plugin/CMakeLists.txt b/doc/manual/cookbooks/free_surface_with_crust/plugin/CMakeLists.txt
deleted file mode 100644
index 42447a9..0000000
--- a/doc/manual/cookbooks/free_surface_with_crust/plugin/CMakeLists.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-CMAKE_MINIMUM_REQUIRED(VERSION 2.8.8)
-
-FIND_PACKAGE(Aspect REQUIRED HINTS ${ASPECT_DIR} ../ ../../ $ENV{ASPECT_DIR})
-DEAL_II_INITIALIZE_CACHED_VARIABLES()
-
-SET(TARGET "simplerwc")
-PROJECT(${TARGET})
-
-ADD_LIBRARY(${TARGET} SHARED simplerwc.cc)
-ASPECT_SETUP_PLUGIN(${TARGET})
diff --git a/doc/manual/cookbooks/free_surface_with_crust/plugin/simplerwc.cc b/doc/manual/cookbooks/free_surface_with_crust/plugin/simplerwc.cc
deleted file mode 100644
index 3f05335..0000000
--- a/doc/manual/cookbooks/free_surface_with_crust/plugin/simplerwc.cc
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
-  Copyright (C) 2011 - 2014 by the authors of the ASPECT code.
-
-  This file is part of ASPECT.
-
-  ASPECT is free software; you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation; either version 2, or (at your option)
-  any later version.
-
-  ASPECT is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
-
-  You should have received a copy of the GNU General Public License
-  along with ASPECT; see the file doc/COPYING.  If not see
-  <http://www.gnu.org/licenses/>.
-*/
-
-
-#include "./simplerwc.h"
-#include <deal.II/base/parameter_handler.h>
-#include <iostream>
-#include <cmath>
-
-using namespace dealii;
-
-namespace aspect
-{
-  namespace MaterialModel
-  {
-
-
-
-    
-    
-    template <int dim>
-    bool
-    Simplerwc<dim>::
-    viscosity_depends_on (const NonlinearDependence::Dependence dependence) const
-    {
-      return false;
-    }
-
-
-    template <int dim>
-    bool
-    Simplerwc<dim>::
-    density_depends_on (const NonlinearDependence::Dependence dependence) const
-    {
-      return false;
-    }
-
-    template <int dim>
-    bool
-    Simplerwc<dim>::
-    compressibility_depends_on (const NonlinearDependence::Dependence) const
-    {
-      return false;
-    }
-
-    template <int dim>
-    bool
-    Simplerwc<dim>::
-    specific_heat_depends_on (const NonlinearDependence::Dependence) const
-    {
-      return false;
-    }
-
-    template <int dim>
-    bool
-    Simplerwc<dim>::
-    thermal_conductivity_depends_on (const NonlinearDependence::Dependence dependence) const
-    {
-      return false;
-    }
-
-
-    template <int dim>
-    bool
-    Simplerwc<dim>::
-    is_compressible () const
-    {
-      return false;
-    }
-
-    template <int dim>
-    double
-    Simplerwc<dim>::
-    reference_viscosity () const
-    {
-      return eta_L;
-    }
- 
-        
-
-    template <int dim>
-    double
-    Simplerwc<dim>::
-    reference_density () const
-    {
-      return reference_rho;
-    }
-
-    template <int dim>
-    void
-    Simplerwc<dim>::
-    evaluate(const typename Interface<dim>::MaterialModelInputs &in, typename Interface<dim>::MaterialModelOutputs &out ) const
-    {
-      
-      double z;
-      for (unsigned int i=0; i<in.position.size(); ++i)
-        { 
-          z = in.position[i][1];
-          out.viscosities[i] = (z>jump_height) ?  eta_U: eta_L ;
-                     
-          out.densities[i] = reference_rho * (1.0 - thermal_alpha * (in.temperature[i] - reference_T));
-          out.thermal_expansion_coefficients[i] = thermal_alpha;
-          out.specific_heat[i] = reference_specific_heat;
-          out.thermal_conductivities[i] = k_value;
-          out.compressibilities[i] = 0.0;
-        }
-    }
-
-
-    template <int dim>
-    void
-   Simplerwc<dim>::declare_parameters (ParameterHandler &prm)
-    {
-      prm.enter_subsection("Material model");
-      {
-        prm.enter_subsection("Simplerwc model");
-        {
-          prm.declare_entry ("Reference density", "3300",
-                             Patterns::Double (0),
-                             "Reference density $\\rho_0$. Units: $kg/m^3$.");
-          prm.declare_entry ("Reference temperature", "293",
-                             Patterns::Double (0),
-                             "The reference temperature $T_0$. The reference temperature is used "
-                             "in the density formula. Units: $K$.");
-          prm.declare_entry ("Lower viscosity", "5e24",
-                             Patterns::Double (0),
-                             "The value of the viscosity $\\eta$L. Units: $kg/m/s$.");
-          prm.declare_entry ("Upper viscosity", "5e24",
-                             Patterns::Double (0),
-	                     "The value of the viscosity in the top section $\\eta$U. Units: $kg/m/s$.");
-          prm.declare_entry ("Jump height", "100000",
-                              Patterns::Double (0),
-                              "The height at which the viscosity changes. Units: m.");
-          prm.declare_entry ("Thermal conductivity", "4.7",
-                             Patterns::Double (0),
-                             "The value of the thermal conductivity $k$. "
-                             "Units: $W/m/K$.");
-          prm.declare_entry ("Reference specific heat", "1250",
-                             Patterns::Double (0),
-                             "The value of the specific heat $cp$. "
-                             "Units: $J/kg/K$.");
-          prm.declare_entry ("Thermal expansion coefficient", "2e-5",
-                             Patterns::Double (0),
-                             "The value of the thermal expansion coefficient $\\beta$. "
-                             "Units: $1/K$.");
-
-        }
-        prm.leave_subsection();
-      }
-      prm.leave_subsection();
-    }
-
-
-
-    template <int dim>
-    void
-    Simplerwc<dim>::parse_parameters (ParameterHandler &prm)
-    {
-      prm.enter_subsection("Material model");
-      {
-        prm.enter_subsection("Simplerwc model");
-        {
-          reference_rho              = prm.get_double ("Reference density");
-          reference_T                = prm.get_double ("Reference temperature");
-          eta_L                      = prm.get_double ("Lower viscosity");
-          eta_U                      = prm.get_double ("Upper viscosity");
-          jump_height                 = prm.get_double ("Jump height"); 
-          k_value                    = prm.get_double ("Thermal conductivity");
-          reference_specific_heat    = prm.get_double ("Reference specific heat");
-          thermal_alpha              = prm.get_double ("Thermal expansion coefficient");
-        }
-        prm.leave_subsection();
-      }
-      prm.leave_subsection();
-    }
-  }
-}
-
-// explicit instantiations
-namespace aspect
-{
-  namespace MaterialModel
-  {
-    ASPECT_REGISTER_MATERIAL_MODEL(Simplerwc,
-                                   "simplerwc",
-                                   "A material model that has constant values "
-                                   "except for density, which depends linearly on temperature: "
-                                   "\\begin{align}"
-                                   "  \\rho(p,T) &= \\left(1-\\alpha (T-T_0)\\right)\\rho_0."
-                                   "\\end{align}"
-                                   "\n\n"
-                                   "\\note{This material model fills the role the ``simple'' material "
-                                   "model was originally intended to fill, before the latter acquired "
-                                   "all sorts of complicated temperature and compositional dependencies.}")
-  }
-}
diff --git a/doc/manual/cookbooks/free_surface_with_crust/plugin/simplerwc.h b/doc/manual/cookbooks/free_surface_with_crust/plugin/simplerwc.h
deleted file mode 100644
index 53a214b..0000000
--- a/doc/manual/cookbooks/free_surface_with_crust/plugin/simplerwc.h
+++ /dev/null
@@ -1,109 +0,0 @@
- /*
-  Copyright (C) 2011, 2012 by the authors of the ASPECT code.
-
-  This file is part of ASPECT.
-
-  ASPECT is free software; you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation; either version 2, or (at your option)
-  any later version.
-
-  ASPECT is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
-
-  You should have received a copy of the GNU General Public License
-  along with ASPECT; see the file doc/COPYING.  If not see
-  <http://www.gnu.org/licenses/>.
- */
-
-
-#ifndef __aspect__model_simplerwc_h
-#define __aspect__model_simplerwc_h
-
-#include <aspect/material_model/interface.h>
-#include <aspect/simulator_access.h>
-
-namespace aspect
-{
-  namespace MaterialModel
-  {
-    using namespace dealii;
-
-    /**
-     * A material model that consists of globally constant values for all
-     * material parameters except the density, which depends linearly on the
-     * temperature. The model is considered incompressible.
-     *
-     * This material model implements what the "Simple" model was originally
-     * intended to do, before it got too complicated.
-     *
-     * @ingroup MaterialModels
-     */
-    template <int dim>
-    class Simplerwc : public Interface<dim>
-    {
-      public:
-
-        virtual bool
-        viscosity_depends_on (const NonlinearDependence::Dependence dependence) const;
-
-        virtual bool
-        density_depends_on (const NonlinearDependence::Dependence dependence) const;
-
-        virtual bool
-        compressibility_depends_on (const NonlinearDependence::Dependence dependence) const;
-
-        virtual bool
-        specific_heat_depends_on (const NonlinearDependence::Dependence dependence) const;
-
-        virtual bool
-        thermal_conductivity_depends_on (const NonlinearDependence::Dependence dependence) const;
-
-        virtual bool is_compressible () const;
-
-        virtual double reference_viscosity () const;
-
-        virtual double reference_density () const;
-
-        virtual void evaluate(const typename Interface<dim>::MaterialModelInputs &in,
-                              typename Interface<dim>::MaterialModelOutputs &out) const;
-
-
-        /**
-         * @name Functions used in dealing with run-time parameters
-         * @{
-         */
-        /**
-         * Declare the parameters this class takes through input files.
-         */
-        static
-        void
-        declare_parameters (ParameterHandler &prm);
-
-        /**
-         * Read the parameters this class declares from the parameter file.
-         */
-        virtual
-        void
-        parse_parameters (ParameterHandler &prm);
-        /**
-         * @}
-         */
-
-      private:
-        double reference_rho;
-        double reference_T;
-        double eta_L;
-        double eta_U;
-        double jump_height;
-        double thermal_alpha;
-        double reference_specific_heat;
-        double k_value;
-    };
-
-  }
-}
-
-#endif
diff --git a/doc/manual/manual.tex b/doc/manual/manual.tex
index 72e2cb5..9afa447 100644
--- a/doc/manual/manual.tex
+++ b/doc/manual/manual.tex
@@ -4177,13 +4177,16 @@ After running the cookbook, you may modify it in a number of ways:
 \end{figure}
 
 
-\subsubsection{Using a free surface with a crust}\mbox{}\\
+\subsubsection{Using a free surface in a model with a crust}
 \label{sec:cookbooks-freesurfaceWC}
+
 \textit{This section was contributed by William Durkin}.
-This cookbook is a modification of the previous example that explores changes in the way topography develops when a 
-highly viscous crust is added.  One thing to note is that the origin of this model is at the bottom left corner of a 500x200 km box.
-In this cookbook, the material changes from low viscosity mantle to high viscosity crust at $z = \texttt{jump height}$, or $z_j$. The piecewise viscosity function is defined as
 
+This cookbook is a modification of the previous example that explores changes in the way topography develops when a 
+highly viscous crust is added.  
+In this cookbook, we use a material model in which the material changes from low
+viscosity mantle to high viscosity crust at $z = z_j = \texttt{jump height}$,
+i.e., the piecewise viscosity function is defined as
 \begin{align*}
   \eta(z) = \left\{
     \begin{matrix}
@@ -4192,23 +4195,27 @@ In this cookbook, the material changes from low viscosity mantle to high viscosi
     \end{matrix}
   \right.
 \end{align*}
-
-where $\eta_U$ and $\eta_L$ are the viscosities of the upper and lower layers, respectively. This viscosity model can be implimented by creating a plugin from a modified \texttt{simpler} material model. The most important change is the conditional statement at the section of Simpler.cc that assigns viscosity values:\\
-
+where $\eta_U$ and $\eta_L$ are the viscosities of the upper and lower layers,
+respectively. This viscosity model can be implemented by creating a plugin that
+is a small modification of the \texttt{simpler} material model (from which it
+is otherwise simply copied). We call this material model ``SimplerWC'' to
+indicate that it resembles the ``simpler'' model \textit{w}ith a \textit{c}rust.
+In particular, what is necessary is an evaluation function that looks like this:
 \begin{lstlisting}[frame=single,language=C++] 
-    
-template <int dim>
+    template <int dim>
     void
-    Simplerwc<dim>::
+    SimplerWC<dim>::
     evaluate(const typename Interface<dim>::MaterialModelInputs &in, 
               typename Interface<dim>::MaterialModelOutputs &out ) const
     {
-      
-      double z;
       for (unsigned int i=0; i<in.position.size(); ++i)
         { 
-          z = in.position[i][1];
-          out.viscosities[i] = (z>jump_depth) ?  eta_U: eta_L ;
+          const double z = in.position[i][1];
+
+	  if (z>jump_height)
+	    out.viscosities[i] = eta_U;
+	  else
+	    out.viscosities[i] = eta_L;
                      
           out.densities[i] = reference_rho*(1.0-thermal_alpha*(in.temperature[i]-reference_T));
           out.thermal_expansion_coefficients[i] = thermal_alpha;
@@ -4218,71 +4225,53 @@ template <int dim>
         }
     }
 \end{lstlisting}
+Additional changes make the new parameters \texttt{Jump height}, \texttt{Lower
+viscosity}, and \texttt{Upper viscosity} available to the input parameter file,
+and corresponding variables available in the class and used in the code snippet
+above. The entire code can be found in
+\url{cookbooks/free-surface-with-crust/plugin/simplerwc.cc}. Refer to
+Section~\ref{sec:plugins} for more information about writing and running
+plugins.
+
+The following changes are necessary compared to the input file from the
+cookbook shown in Section~\ref{sec:cookbooks-freesurface} to include a crust:
+\begin{itemize}
+  \item Load the plugin implementing the new material model:
+  \lstinputlisting[language=prmfile]{cookbooks/free_surface_with_crust/free-surface-wc.part1.prm.out}
+  
+  \item Declare values for the new parameters:
+  \lstinputlisting[language=prmfile]{cookbooks/free_surface_with_crust/free-surface-wc.part2.prm.out}
+  Note that the height of the interface at 170km is interpreted in the
+  coordinate system in which the box geometry of this cookbook lives. The box
+  has dimensions $500\text{km}\times 200\text{km}$, so an interface height of
+  170km implies a depth of 30km.
+\end{itemize}
 
-\mbox{}\\
-Additional changes make the new parameters \texttt{Jump Depth}, \texttt{Lower Viscosity}, and \texttt{Upper Viscosity}
-available to the prm file. The entire code is found in \url{cookbooks/free_surface_with_crust/plugin/simplerwc.cc}  . Refer to section~\ref{sec:plugins} for instructions on how to do this.\\
-
-The following changes modify cookbook~\ref{sec:cookbooks-freesurface} to include a crust.\\ \\
-1) Load the plugin and declare global parameters:
-
-\begin{lstlisting}[frame=single,language=prmfile]
-set Additional shared libraries            = ./plugin/libsimplerwc.so 
-
-set Dimension = 2
-set CFL number                             = 0.1
-set End time                               = 1e8
-set Output directory                       = output/
-
-subsection Checkpointing
-  set Steps between checkpoint = 50
-end
-
-\end{lstlisting}
-
-\mbox{}\\
-2) Declare values for the new parameters:
-
-\begin{lstlisting}[frame=single,language=prmfile]
-subsection Material model
-  set Model name = simplerwc
-  subsection Simplerwc model
-    set Reference density             = 3300
-    set Reference specific heat       = 1250
-    set Reference temperature         = 0.0
-    set Thermal conductivity          = 1.0 # low thermal conductivity for a sharp blob
-    set Thermal expansion coefficient = 4e-5
-  
-    #Parameters added for this cookbook:
-    # The box is 200km high and has its origin set at the bottom left corner.
-    # Setting the jump height to 170km creates a 30km thick crust
-    set Lower viscosity               =1.e20
-    set Upper viscosity               =1.e23
-    set Jump height                    =170.e3
- 
-  end
-end
-\end{lstlisting}
-\mbox{}\\
+The entire script is located in
+\url{cookbooks/free-surface-with-crust/free-surface-with-crust.prm}.
 
-The entire script is located in \url{cookbooks/free_surface_with_crust/free_surface_wc.prm}\\ \\
-Results\\
-The crust is 30km thick and 1000 times as viscous as the lower layer. Figure~\ref{fig:freesurfaceWC} shows that
-adding a crust to the model causes the maximum topography to both decrease and occur at a later time.
+Running this input file yields a
+crust that is 30km thick and 1000 times as viscous as the lower layer.
+Figure~\ref{fig:freesurfaceWC} shows that adding a crust to the model causes the maximum topography to both decrease and occur at a later time.
 Heat flows through the system primarily by advection until the temperature anomaly reaches the base of the
-crustal layer (Fig~\ref{fig:freesurfaceWC}). The crust's high viscosity reduces the temperature anomaly's velocity substantially,
-causing it to affect the surface topography at a later time. Just as in cookbook \ref{sec:cookbooks-freesurface}, the topography
-returns to zero after a large amount of time.
+crustal layer (approximately at the time for which Fig~\ref{fig:freesurfaceWC}
+shows the temperature profile).
+The crust's high viscosity reduces the temperature anomaly's velocity
+substantially, causing it to affect the surface topography at a later time. Just
+as the cookbook shown in Section~\ref{sec:cookbooks-freesurface}, the
+topography returns to zero after some time.
 
 \begin{figure}
   \centering
   \includegraphics[height=0.25\textwidth]{cookbooks/free_surface_with_crust/free-surfaceWC.png}
   \hfill
   \includegraphics[height=0.25\textwidth]{cookbooks/free_surface_with_crust/Topography.png}
-  \caption{\it The effects adding a viscous crust has on the surface topography. The thermal anomaly spreads horizontally as it collides with the highly viscous crust (left). The addition of a crustal layer both dampens and delays the appearance of the topographic maximum and minimum (right). }
+  \caption{\it Adding a viscous crust to a model with surface topography. The
+  thermal anomaly spreads horizontally as it collides with the highly viscous crust (left). The addition of a crustal layer both dampens and delays the appearance of the topographic maximum and minimum (right). }
   \label{fig:freesurfaceWC}
 \end{figure}
 
+
 \subsection{Geophysical setups}
 \label{sec:cookbooks-geophysical}
 
diff --git a/doc/modules/changes.h b/doc/modules/changes.h
index 1368236..6941d7c 100644
--- a/doc/modules/changes.h
+++ b/doc/modules/changes.h
@@ -7,6 +7,12 @@
  *
  * <ol>
  * <li> New: There is now a new section in the manual that documents running
+ * a free surface computation with a crust as a stagnant lid overlying a
+ * convecting mantle.
+ * <br>
+ * (William Durkin IV, Wolfgang Bangerth, 2014/09/01)
+ *
+ * <li> New: There is now a new section in the manual that documents running
  * the benchmarks proposed by Davies et al.
  * <br>
  * (William Durkin IV, Wolfgang Bangerth, 2014/08/29)



More information about the CIG-COMMITS mailing list