[cig-commits] r14751 - in long/3D/Gale/trunk: . documentation documentation/images input/cookbook

walter at geodynamics.org walter at geodynamics.org
Sat Apr 18 05:06:04 PDT 2009


Author: walter
Date: 2009-04-18 05:06:03 -0700 (Sat, 18 Apr 2009)
New Revision: 14751

Added:
   long/3D/Gale/trunk/documentation/images/Paraview_non_newtonian.png
Modified:
   long/3D/Gale/trunk/
   long/3D/Gale/trunk/documentation/gale.lyx
   long/3D/Gale/trunk/documentation/images/Paraview_thermal.png
   long/3D/Gale/trunk/input/cookbook/non_newtonian.xml
Log:
 r2663 at dante:  boo | 2009-04-18 05:05:47 -0700
 Update docs and non_newtonian cookbook



Property changes on: long/3D/Gale/trunk
___________________________________________________________________
Name: svk:merge
   - 3a629746-de10-0410-b17b-fd6ecaaa963e:/cig:2662
   + 3a629746-de10-0410-b17b-fd6ecaaa963e:/cig:2663

Modified: long/3D/Gale/trunk/documentation/gale.lyx
===================================================================
--- long/3D/Gale/trunk/documentation/gale.lyx	2009-04-18 12:05:53 UTC (rev 14750)
+++ long/3D/Gale/trunk/documentation/gale.lyx	2009-04-18 12:06:03 UTC (rev 14751)
@@ -1,4 +1,4 @@
-#LyX 1.5.1 created this file. For more info see http://www.lyx.org/
+#LyX 1.5.5 created this file. For more info see http://www.lyx.org/
 \lyxformat 276
 \begin_document
 \begin_header
@@ -600,7 +600,7 @@
 \end_inset
 
  in terms of the rate of strain tensor 
-\begin_inset Formula $D$
+\begin_inset Formula $\dot{\varepsilon}$
 \end_inset
 
 
@@ -608,7 +608,7 @@
 
 \begin_layout Standard
 \begin_inset Formula \begin{equation}
-\tau_{ij}=2\eta D_{ij}\equiv\eta\left(v_{i,j}+v_{j,i}\right),\label{eq:stress strain}\end{equation}
+\tau_{ij}=2\eta\dot{\varepsilon}_{ij}\equiv\eta\left(v_{i,j}+v_{j,i}\right),\label{eq:stress strain}\end{equation}
 
 \end_inset
 
@@ -1250,7 +1250,7 @@
 \begin_inset Formula \begin{equation}
 \begin{array}{ccc}
 \tau_{ij,j}-\delta p_{,i} & = & \delta f_{i}\\
-v_{i,i}+C\delta p & = & D\end{array}.\label{eq:complete numerical stokes}\end{equation}
+v_{i,i}+C\delta p & = & d\end{array}.\label{eq:complete numerical stokes}\end{equation}
 
 \end_inset
 
@@ -6061,6 +6061,11 @@
 \end_layout
 
 \begin_layout Section
+\begin_inset LatexCommand label
+name "sec:Thermal-Convection"
+
+\end_inset
+
 Thermal Convection
 \end_layout
 
@@ -6141,7 +6146,7 @@
 \end_layout
 
 \begin_layout LyX-Code
-          <param name="value">1.0</param>
+          <param name="value">2.0</param>
 \end_layout
 
 \begin_layout LyX-Code
@@ -6185,7 +6190,7 @@
 \end_layout
 
 \begin_layout LyX-Code
-          <param name="value">0.0</param>
+          <param name="value">1.0</param>
 \end_layout
 
 \begin_layout LyX-Code
@@ -6229,7 +6234,7 @@
 \end_layout
 
 \begin_layout LyX-Code
-          <param name="value">0.0</param>
+          <param name="value">1.0</param>
 \end_layout
 
 \begin_layout LyX-Code
@@ -6273,7 +6278,7 @@
 \end_layout
 
 \begin_layout LyX-Code
-          <param name="value">0.0</param>
+          <param name="value">1.0</param>
 \end_layout
 
 \begin_layout LyX-Code
@@ -6317,7 +6322,7 @@
 \end_layout
 
 \begin_layout LyX-Code
-          <param name="value">0.0</param>
+          <param name="value">1.0</param>
 \end_layout
 
 \begin_layout LyX-Code
@@ -6361,7 +6366,7 @@
 \end_layout
 
 \begin_layout LyX-Code
-          <param name="value">0.0</param>
+          <param name="value">1.0</param>
 \end_layout
 
 \begin_layout LyX-Code
@@ -6427,7 +6432,7 @@
 \end_layout
 
 \begin_layout LyX-Code
-          <param name="value">0.0</param>
+          <param name="value">1.0</param>
 \end_layout
 
 \begin_layout LyX-Code
@@ -6702,6 +6707,186 @@
 
 \end_layout
 
+\begin_layout Section
+\begin_inset LatexCommand label
+name "sec:Power-Law-Creep"
+
+\end_inset
+
+Power Law Creep
+\end_layout
+
+\begin_layout Standard
+A common approximation for the rheology of rocks is power law creep.
+ This example shows how to implement his with the NonNewtonian rheologies.
+\end_layout
+
+\begin_layout Enumerate
+Copy 
+\family typewriter
+mythermal.xml
+\family default
+ to 
+\family typewriter
+mynon_newtonian.xml
+\family default
+.
+\end_layout
+
+\begin_layout Enumerate
+Add the NonNewtonian rheology after NonSphereShape
+\end_layout
+
+\begin_deeper
+\begin_layout LyX-Code
+<struct name="nonNewtonian">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">NonNewtonian</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="StrainRateInvariantField">StrainRateInvariantField</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="n">3.4</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="T_0">1.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="A">1.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="refStrainRate">0.01</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Change
+\end_layout
+
+\begin_deeper
+\begin_layout LyX-Code
+<list name="Rheology">
+\end_layout
+
+\begin_layout LyX-Code
+  <param>backgroundViscosity</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param>storeViscosity</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param>storeStress</param>
+\end_layout
+
+\begin_layout LyX-Code
+</list>
+\end_layout
+
+\begin_layout Standard
+to
+\end_layout
+
+\begin_layout LyX-Code
+<list name="Rheology">
+\end_layout
+
+\begin_layout LyX-Code
+  <param>nonNewtonian</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param>storeViscosity</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param>storeStress</param>
+\end_layout
+
+\begin_layout LyX-Code
+</list>
+\end_layout
+
+\end_deeper
+\begin_layout Standard
+A worked example is in 
+\family typewriter
+non_newtonian.xml
+\family default
+.
+ Figure 
+\begin_inset LatexCommand ref
+reference "fig:Power-Law-Creep"
+
+\end_inset
+
+ shows the temperature and velocity.
+ The differences with the example in Figure 
+\begin_inset LatexCommand ref
+reference "fig:Temperature-and-velocity"
+
+\end_inset
+
+ is mostly because the viscosity is higher everywhere.
+\end_layout
+
+\begin_layout LyX-Code
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Standard
+\align center
+\begin_inset Graphics
+	filename images/Paraview_non_newtonian.png
+	lyxscale 75
+	width 100col%
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Caption
+
+\begin_layout Standard
+\begin_inset LatexCommand label
+name "fig:Power-Law-Creep"
+
+\end_inset
+
+Temperature and velocity for the power-law creep model
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
 \begin_layout Chapter
 Geologic Example
 \end_layout
@@ -12974,6 +13159,11 @@
 \end_layout
 
 \begin_layout Subsubsection
+\begin_inset LatexCommand label
+name "sub:MaterialViscosity"
+
+\end_inset
+
 MaterialViscosity
 \end_layout
 
@@ -13142,6 +13332,388 @@
 
 \end_layout
 
+\begin_layout Subsubsection
+\begin_inset LatexCommand label
+name "sub:Arrhenius"
+
+\end_inset
+
+Arrhenius
+\end_layout
+
+\begin_layout Standard
+This is another temperature dependent viscosity
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \[
+eta=eta0*\exp\left(\left(activationEnergy+activationVolume*(height-y)\right)/\left(T+referenceTemperature\right)\right).\]
+
+\end_inset
+
+ Note that 
+\begin_inset Formula $height$
+\end_inset
+
+ is the height of the column, not the overall maximum height of the material.
+ Also, 
+\begin_inset Formula $height$
+\end_inset
+
+ does not consider material boundaries.
+ So if you have an air layer, you may get surprising results.
+\end_layout
+
+\begin_layout Standard
+\noindent
+\align center
+\begin_inset VSpace defskip
+\end_inset
+
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="5" columns="2">
+<features>
+<column alignment="center" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" rightline="true" width="0">
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+Defaults
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+eta0
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+1
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+activationEnergy
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+0
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+activationVolume
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+0
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+referenceTemperature
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+1
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsubsection
+\begin_inset LatexCommand label
+name "sub:NonNewtonian"
+
+\end_inset
+
+NonNewtonian
+\end_layout
+
+\begin_layout Standard
+This is a strain rate dependent rheology.
+ It assumes that the material obeys the relation 
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \[
+\dot{\varepsilon}=\left(A\tau\right)^{n}\exp\left(-T_{0}/T\right),\]
+
+\end_inset
+
+ where 
+\begin_inset Formula $\dot{\varepsilon}$
+\end_inset
+
+ is the strain rate, 
+\begin_inset Formula $\tau$
+\end_inset
+
+ is the stress, and 
+\begin_inset Formula $A$
+\end_inset
+
+ , 
+\begin_inset Formula $T_{0}$
+\end_inset
+
+, and 
+\begin_inset Formula $n$
+\end_inset
+
+ are constants.
+ Using 
+\begin_inset Formula \[
+\tau=2\eta\dot{\varepsilon},\]
+
+\end_inset
+
+ we can write the viscosity as
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \[
+\eta=\frac{\dot{\varepsilon}^{\frac{1}{n}-1}\exp\left(T_{0}/nT\right)}{2A}.\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+When setting the viscosity for the first solve, the strain rate has not
+ been calculated yet.
+ So you must supply a reference strain rate for that first step.
+ Gale uses this viscosity to find a solution and thus a new strain rate.
+ Gale then iterates until the strain rate converges.
+ 
+\end_layout
+
+\begin_layout Standard
+You may also set maximum and minimum values for the resulting viscosity.
+\end_layout
+
+\begin_layout Standard
+\noindent
+\align center
+\begin_inset VSpace defskip
+\end_inset
+
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="7" columns="2">
+<features>
+<column alignment="center" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" rightline="true" width="0">
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+Defaults
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+n
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+1
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+T_0
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+0
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+A
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+1
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+refStrainRate
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+-
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+minViscosity
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+-
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+maxViscosity
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+-
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
 \begin_layout Subsection
 Yielding
 \end_layout
@@ -15184,6 +15756,19 @@
 </struct>
 \end_layout
 
+\begin_layout Standard
+Note that you must not have a separate 
+\family typewriter
+StressBC
+\family default
+ for each direction of the normal stress (x,y,z).
+ 
+\family typewriter
+StressBC
+\family default
+ will automatically apply the proper force in all directions.
+\end_layout
+
 \begin_layout Subsection
 Kinetic Friction Boundary Conditions
 \end_layout
@@ -17145,22 +17730,48 @@
 \begin_inset Formula \[
 f(x,y,z)=\left\{ \begin{array}{cc}
 T_{0} & y>maxY\\
-T_{0}+A\left(maxY-y\right)+B\left(1-\exp\left(-C\left(maxY-y\right)\right)\right) & y<maxY\end{array}\right.,\]
+T_{0}+A\left(maxY-y\right)+B\left(1-\exp\left(-C\left(maxY-y\right)\right)\right) & y<maxY,H_{0}<0\\
+\min\left(T_{m},T_{0}+\frac{\left(T_{m}-T_{0}\right)}{H}\left(maxY-y\right)+B\left(1-\exp\left(-C\left(maxY-y\right)\right)\right)\right) & y<maxY,H_{0}>0\end{array}\right.,\]
 
 \end_inset
 
- where 
+ where
+\end_layout
+
+\begin_layout Description
+\begin_inset Formula \[
+H=\min\left(H_{m},H_{o}+2dH\left|x-x_{c}\right|/\left(maxX-minX\right)\right),\]
+
+\end_inset
+
+ and
+\end_layout
+
+\begin_layout Description
 \begin_inset Formula \begin{eqnarray*}
 T_{0} & \equiv & TemperatureProfileTop,\\
 A & \equiv & TemperatureLinearCoefficient,\\
 B & \equiv & TemperatureExponentialCoefficient1,\\
-C & \equiv & TemperatureExponentialCoefficient2.\end{eqnarray*}
+C & \equiv & TemperatureExponentialCoefficient2,\\
+T_{m} & \equiv & TemperatureProfileMax,\\
+H_{0} & \equiv & TemperatureProfileH0,\\
+H_{m} & \equiv & TemperatureProfileHm,\\
+dH & \equiv & TemperatureProfiledH,\\
+x_{c} & \equiv & ExtensionCentreX.\end{eqnarray*}
 
 \end_inset
 
 
 \end_layout
 
+\begin_layout Standard
+Note that the default value for 
+\begin_inset Formula $H_{m}$
+\end_inset
+
+ is -1, which implies no variation in the x direction.
+\end_layout
+
 \begin_layout Section
 Verbosity Options
 \end_layout

Added: long/3D/Gale/trunk/documentation/images/Paraview_non_newtonian.png
===================================================================
(Binary files differ)


Property changes on: long/3D/Gale/trunk/documentation/images/Paraview_non_newtonian.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: long/3D/Gale/trunk/documentation/images/Paraview_thermal.png
===================================================================
(Binary files differ)

Modified: long/3D/Gale/trunk/input/cookbook/non_newtonian.xml
===================================================================
--- long/3D/Gale/trunk/input/cookbook/non_newtonian.xml	2009-04-18 12:05:53 UTC (rev 14750)
+++ long/3D/Gale/trunk/input/cookbook/non_newtonian.xml	2009-04-18 12:06:03 UTC (rev 14751)
@@ -378,18 +378,13 @@
       </list>
     </struct>
 
-    <struct name="arrhenius">
-      <param name="Type">Arrhenius</param>
-      <param name="TemperatureField">TemperatureField</param>
-      <param name="eta0">1</param>
-      <param name="activationEnergy">1</param>
-      <param name="activationVolume">0.</param>
-      <param name="referenceTemperature">1</param>
-    </struct>
     <struct name="nonNewtonian">
       <param name="Type">NonNewtonian</param>
       <param name="StrainRateInvariantField">StrainRateInvariantField</param>
-      <param name="stressExponent">3.4</param>
+      <param name="TemperatureField">TemperatureField</param>
+      <param name="n">3.4</param>
+      <param name="T_0">1.0</param>
+      <param name="A">1.0</param>
       <param name="refStrainRate">0.01</param>
     </struct>
 
@@ -406,7 +401,6 @@
         </struct>
       </list>
       <list name="Rheology">
-        <param>arrhenius</param>
         <param>nonNewtonian</param>
         <param>storeViscosity</param>
         <param>storeStress</param>
@@ -637,7 +631,7 @@
           <struct>
             <param name="name">temperature</param>
             <param name="type">double</param>
-            <param name="value">1.0</param>
+            <param name="value">2.0</param>
           </struct>
         </list>
       </struct>
@@ -648,7 +642,7 @@
           <struct>
             <param name="name">temperature</param>
             <param name="type">double</param>
-            <param name="value">0.0</param>
+            <param name="value">1.0</param>
           </struct>
         </list>
       </struct>
@@ -659,7 +653,7 @@
           <struct>
             <param name="name">temperature</param>
             <param name="type">double</param>
-            <param name="value">0.0</param>
+            <param name="value">1.0</param>
           </struct>
         </list>
       </struct>
@@ -670,7 +664,7 @@
           <struct>
             <param name="name">temperature</param>
             <param name="type">double</param>
-            <param name="value">0.0</param>
+            <param name="value">1.0</param>
           </struct>
         </list>
       </struct>
@@ -681,7 +675,7 @@
           <struct>
             <param name="name">temperature</param>
             <param name="type">double</param>
-            <param name="value">0.0</param>
+            <param name="value">1.0</param>
           </struct>
         </list>
       </struct> 
@@ -692,7 +686,7 @@
           <struct>
             <param name="name">temperature</param>
             <param name="type">double</param>
-            <param name="value">0.0</param>
+            <param name="value">1.0</param>
           </struct>
         </list>
       </struct> 
@@ -708,7 +702,7 @@
           <struct>
             <param name="name">temperature</param>
             <param name="type">double</param>
-            <param name="value">0.0</param>
+            <param name="value">1.0</param>
           </struct>
         </list>
       </struct> 



More information about the CIG-COMMITS mailing list