[cig-commits] commit: Add WARS. Does not do the bottom boundary correctly yet

Mercurial hg at geodynamics.org
Fri Jul 23 13:43:48 PDT 2010


changeset:   298:6f3c3c067c66
tag:         tip
user:        Walter Landry <wlandry at caltech.edu>
date:        Fri Jul 23 12:59:48 2010 -0700
files:       input/examples/wars.xml
description:
Add WARS.  Does not do the bottom boundary correctly yet


diff -r ee497f2a707b -r 6f3c3c067c66 input/examples/wars.xml
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/input/examples/wars.xml	Fri Jul 23 12:59:48 2010 -0700
@@ -0,0 +1,911 @@
+<?xml version="1.0"?>
+<!-- A model of the West Antartica Rift System (WARS) as used in 
+
+  The transition from diffuse to focused extension: Modeled evolution
+                  of the West Antarctic Rift system
+                  Audrey D. Huerta, Dennis L. Harry
+  Earth and Planetary Science Letters 255 (2007) 133 – 147
+-->
+<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
+  <import>
+    <toolbox>Underworld</toolbox>
+  </import>
+  <plugins>
+    <struct>
+      <param name="Type">Underworld_EulerDeform</param>
+      <param name="Context">context</param>
+    </struct>
+    <struct>
+      <param name="Type">Underworld_VTKOutput</param>
+      <param name="Context">context</param>
+    </struct>
+    <struct>
+      <param name="Type">StgFEM_StandardConditionFunctions</param>
+      <param name="Context">context</param>
+    </struct>
+  </plugins>
+  <struct name="components">
+    <struct name="context">
+      <param name="Type">UnderworldContext</param>
+    </struct>
+    <struct name="mesh-linear">
+      <param name="Type">FeMesh</param>
+      <param name="elementType">linear</param>
+    </struct>
+    <struct name="linearMesh-generator">
+      <param name="Type">CartesianGenerator</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="dim">dim</param>
+      <param name="shadowDepth">shadowDepth</param>
+      <param name="regular">False</param>
+      <list name="size">
+        <param>elementResI</param>
+        <param>elementResJ</param>
+        <param>elementResK</param>
+      </list>
+      <list name="minCoord">
+        <param>minX</param>
+        <param>minY</param>
+        <param>minZ</param>
+      </list>
+      <list name="maxCoord">
+        <param>maxX</param>
+        <param>maxY</param>
+        <param>maxZ</param>
+      </list>
+    </struct>
+    <struct name="velocity">
+      <param name="Type">MeshVariable</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="Rank">Vector</param>
+      <param name="DataType">Double</param>
+      <param name="VectorComponentCount">dim</param>
+      <list name="names">
+        <param>vx</param>
+        <param>vy</param>
+        <param>vz</param>
+      </list>
+    </struct>
+    <struct name="velocityBCs">
+      <param name="Type">CompositeVC</param>
+      <param name="Data">mesh-linear</param>
+    </struct>
+    <struct name="velocityICs">
+      <param name="Type">CompositeVC</param>
+      <param name="Data">mesh-linear</param>
+    </struct>
+    <struct name="velocityDofLayout">
+      <param name="Type">DofLayout</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="BaseVariableCount">dim</param>
+      <list name="BaseVariables">
+        <param>vx</param>
+        <param>vy</param>
+        <param>vz</param>
+      </list>
+    </struct>
+    <struct name="VelocityField">
+      <param name="Type">FeVariable</param>
+      <param name="FEMesh">mesh-linear</param>
+      <param name="DofLayout">velocityDofLayout</param>
+      <param name="BC">velocityBCs</param>
+      <param name="IC">velocityICs</param>
+      <param name="LinkedDofInfo">velocityLinkedDofs</param>
+    </struct>
+    <struct name="VelocityMagnitudeField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">Magnitude</param>
+      <param name="FeVariable">VelocityField</param>
+    </struct>
+    <struct name="VelocityGradientsField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">Gradient</param>
+      <param name="FeVariable">VelocityField</param>
+    </struct>
+    <struct name="VelocityGradientsInvariantField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">TensorInvariant</param>
+      <param name="FeVariable">VelocityGradientsField</param>
+    </struct>
+    <struct name="StrainRateField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">TensorSymmetricPart</param>
+      <param name="FeVariable">VelocityGradientsField</param>
+    </struct>
+    <struct name="VorticityField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">TensorAntisymmetricPart</param>
+      <param name="FeVariable">VelocityGradientsField</param>
+    </struct>
+    <struct name="StrainRateInvariantField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">SymmetricTensor_Invariant</param>
+      <param name="FeVariable">StrainRateField</param>
+    </struct>
+    <struct name="pressure">
+      <param name="Type">MeshVariable</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="Rank">Scalar</param>
+      <param name="DataType">Double</param>
+    </struct>
+    <struct name="pressureDofLayout">
+      <param name="Type">DofLayout</param>
+      <param name="mesh">mesh-linear</param>
+      <list name="BaseVariables">
+        <param>pressure</param>
+      </list>
+    </struct>
+    <struct name="PressureField">
+      <param name="Type">FeVariable</param>
+      <param name="FEMesh">mesh-linear</param>
+      <param name="DofLayout">pressureDofLayout</param>
+      <param name="LinkedDofInfo">pressureLinkedDofs</param>
+    </struct>
+    <struct name="StressField">
+      <param name="Type">StressField</param>
+      <param name="StrainRateField">StrainRateField</param>
+      <param name="Context">context</param>
+      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="Mesh">mesh-linear</param>
+      <param name="IC">stressICs</param>
+    </struct> 
+    <struct name="ViscosityField">
+      <param name="Type">ViscosityField</param>
+      <param name="Context">context</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="Mesh">mesh-linear</param>
+      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
+    </struct>
+    <struct name="cellLayout">
+      <param name="Type">SingleCellLayout</param>
+    </struct>
+    <struct name="particleLayout">
+      <param name="Type">GaussParticleLayout</param>
+    </struct>
+    <struct name="gaussSwarm">
+      <param name="Type">IntegrationPointsSwarm</param>
+      <param name="CellLayout">cellLayout</param>
+      <param name="ParticleLayout">particleLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+      <param name="TimeIntegrator">timeIntegrator</param>
+      <param name="IntegrationPointMapper">gaussMapper</param>
+    </struct>
+    <struct name="gaussMapper">
+      <param name="Type">GaussMapper</param>
+      <param name="IntegrationPointsSwarm">gaussSwarm</param>
+      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
+    </struct>
+    <struct name="backgroundLayout">
+      <param name="Type">BackgroundParticleLayout</param>
+    </struct>
+    <struct name="gaussMSwarmMovementHandler">
+      <param name="Type">ParticleMovementHandler</param>
+    </struct>
+    <struct name="gaussMaterialSwarm">
+      <param name="Type">MaterialPointsSwarm</param>
+      <param name="CellLayout">cellLayout</param>
+      <param name="ParticleLayout">backgroundLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+      <list name="ParticleCommHandlers">
+        <param>gaussMSwarmMovementHandler</param>
+      </list>
+    </struct>
+    <struct name="timeIntegrator">
+      <param name="Type">TimeIntegrator</param>
+      <param name="order">1</param>
+      <param name="simultaneous">t</param>
+      <param name="Context">context</param>
+    </struct>
+    <struct name="elementCellLayout">
+      <param name="Type">ElementCellLayout</param>
+      <param name="Mesh">mesh-linear</param>
+    </struct>
+    <struct name="weights">
+      <param name="Type">PCDVC</param>
+      <param name="resolutionX">10</param>
+      <param name="resolutionY">10</param>
+      <param name="resolutionZ">10</param>
+      <param name="lowerT">0.6</param>
+      <param name="upperT">25</param>
+      <param name="maxDeletions">3</param>
+      <param name="maxSplits">3</param>
+      <param name="MaterialPointsSwarm">materialSwarm</param>
+      <param name="Inflow">True</param>
+    </struct>
+    <struct name="localLayout">
+      <param name="Type">MappedParticleLayout</param>
+    </struct>
+    <struct name="picIntegrationPoints">
+      <param name="Type">IntegrationPointsSwarm</param>
+      <param name="CellLayout">elementCellLayout</param>
+      <param name="ParticleLayout">localLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+      <param name="WeightsCalculator">weights</param>
+      <param name="TimeIntegrator">timeIntegrator</param>
+      <param name="IntegrationPointMapper">mapper</param>
+    </struct>
+    <struct name="mapper">
+      <param name="Type">CoincidentMapper</param>
+      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
+      <param name="MaterialPointsSwarm">materialSwarm</param>
+    </struct>
+    <struct name="materialSwarmParticleLayout">
+      <param name="Type">MeshParticleLayout</param>
+      <param name="cellParticleCount">particlesPerCell</param>
+      <param name="mesh">mesh-linear</param>
+    </struct>
+    <struct name="pMovementHandler">
+      <param name="Type">ParticleMovementHandler</param>
+    </struct>
+    <struct name="pShadowSync">
+      <param name="Type">ParticleShadowSync</param>
+    </struct>
+    <struct name="materialSwarm">
+      <param name="Type">MaterialPointsSwarm</param>
+      <param name="CellLayout">elementCellLayout</param>
+      <param name="ParticleLayout">materialSwarmParticleLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+      <list name="ParticleCommHandlers">
+        <param>pMovementHandler</param>
+        <param>pShadowSync</param>
+      </list>
+      <param name="SplittingRoutine">splittingRoutine</param>
+      <param name="RemovalRoutine">removalRoutine</param>
+      <param name="EscapedRoutine">escapedRoutine</param>
+    </struct>
+    <struct name="materialSwarmAdvector">
+      <param name="Type">SwarmAdvector</param>
+      <param name="Swarm">materialSwarm</param>
+      <param name="TimeIntegrator">timeIntegrator</param>
+      <param name="VelocityField">VelocityField</param>
+      <param name="PeriodicBCsManager">periodicBCsManager</param>
+      <param name="allowFallbackToFirstOrder">True</param>
+    </struct>
+    <struct name="solutionVelocity">
+      <param name="Type">SolutionVector</param>
+      <param name="FeVariable">VelocityField</param>
+    </struct>
+    <struct name="solutionPressure">
+      <param name="Type">SolutionVector</param>
+      <param name="FeVariable">PressureField</param>
+    </struct>
+    <struct name="mom_force">
+      <param name="Type">ForceVector</param>
+      <param name="FeVariable">VelocityField</param>
+      <param name="ExtraInfo">context</param>
+    </struct>
+    <struct name="cont_force">
+      <param name="Type">ForceVector</param>
+      <param name="FeVariable">PressureField</param>
+      <param name="ExtraInfo">context</param>
+    </struct>
+    <struct name="k_matrix">
+      <param name="Type">StiffnessMatrix</param>
+      <param name="RowVariable">VelocityField</param>
+      <param name="ColumnVariable">VelocityField</param>
+      <param name="RHS">mom_force</param>
+      <param name="allowZeroElementContributions">False</param>
+    </struct>
+    <struct name="constitutiveMatrix">
+      <param name="Type">ConstitutiveMatrixCartesian</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="StiffnessMatrix">k_matrix</param>
+    </struct>
+    <struct name="g_matrix">
+      <param name="Type">StiffnessMatrix</param>
+      <param name="RowVariable">VelocityField</param>
+      <param name="ColumnVariable">PressureField</param>
+      <param name="RHS">mom_force</param>
+      <param name="transposeRHS">cont_force</param>
+      <param name="allowZeroElementContributions">False</param>
+    </struct>
+    <struct name="gradientStiffnessMatrixTerm">
+      <param name="Type">GradientStiffnessMatrixTerm</param>
+      <param name="Swarm">gaussSwarm</param>
+      <param name="StiffnessMatrix">g_matrix</param>
+    </struct>
+    <struct name="preconditioner">
+      <param name="Type">StiffnessMatrix</param>
+      <param name="RowVariable">PressureField</param>
+      <param name="ColumnVariable">PressureField</param>
+      <param name="RHS">cont_force</param>
+      <param name="allowZeroElementContributions">True</param>
+    </struct>
+    <struct name="preconditionerTerm">
+      <param name="Type">UzawaPreconditionerTerm</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="StiffnessMatrix">preconditioner</param>
+    </struct>
+    <struct name="uzawa">
+      <param name="Type">Stokes_SLE_UzawaSolver</param>
+      <param name="velocitySolver">matrixSolver</param>
+      <param name="Preconditioner">preconditioner</param>
+      <param name="tolerance">linearTolerance</param>
+      <param name="monitor">false</param>
+      <param name="maxIterations">5000</param>
+      <param name="minIterations">1</param>
+    </struct>
+    <struct name="stokesEqn">
+      <param name="Type">Stokes_SLE</param>
+      <param name="SLE_Solver">uzawa</param>
+      <param name="Context">context</param>
+      <param name="StressTensorMatrix">k_matrix</param>
+      <param name="GradientMatrix">g_matrix</param>
+      <param name="DivergenceMatrix"></param>
+      <param name="CompressibilityMatrix">c_matrix</param>
+      <param name="VelocityVector">solutionVelocity</param>
+      <param name="PressureVector">solutionPressure</param>
+      <param name="ForceVector">mom_force</param>
+      <param name="ContinuityForceVector">cont_force</param>
+      <param name="killNonConvergent">false</param>
+      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
+      <param name="nonLinearMinIterations">nonLinearMinIterations</param>
+      <param name="nonLinearTolerance">nonLinearTolerance</param>
+      <param name="makeConvergenceFile">false</param>
+      <param name="isNonLinear">true</param>
+    </struct>
+    <struct name="c_matrix">
+      <param name="Type">StiffnessMatrix</param>
+      <param name="RowVariable">PressureField</param>
+      <param name="ColumnVariable">PressureField</param>
+      <param name="RHS">cont_force</param>
+      <param name="allowZeroElementContributions">True</param>
+    </struct>
+    <struct name="mixedStabiliser">
+      <param name="Type">MixedStabiliserTerm</param>
+      <param name="Swarm">gaussSwarm</param>
+      <param name="picSwarm">picIntegrationPoints</param>
+      <param name="storeVisc">storeViscosity</param>
+      <param name="StiffnessMatrix">c_matrix</param>
+    </struct>
+    <struct name="buoyancyForceTerm">
+      <param name="Type">BuoyancyForceTerm</param>
+      <param name="ForceVector">mom_force</param>
+      <param name="TemperatureField">TemperatureField</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="HydrostaticTerm">hydrostaticTerm</param>
+      <param name="gravity">9.81</param>
+    </struct>
+    <struct name="background">
+      <param name="Type">Everywhere</param>
+    </struct>
+    <struct name="escapedRoutine">
+      <param name="Type">EscapedRoutine</param>
+      <param name="idealParticleCount">0</param>
+    </struct>
+    <struct name="velocityRemesher">
+      <param name="Type">RegularRemesherCmpt</param>
+      <param name="mesh">mesh-linear</param>
+      <list name="remeshDims">
+        <param>0</param>
+        <param>1</param>
+        <param>2</param>
+      </list>
+    </struct>
+    <struct name="storeViscosity">
+      <param name="Type">StoreVisc</param>
+      <param name="MaterialPointsSwarm">materialSwarm</param>
+    </struct>
+    <struct name="storeStress">
+      <param name="Type">StoreStress</param>
+      <param name="MaterialPointsSwarm">materialSwarm</param>
+    </struct>
+
+<!--============== END "BASIC COMPONENTS" =================-->
+    <struct name="hydrostaticTerm">
+      <param name="Type">HydrostaticTerm</param>
+      <param name="upperDensity">2850</param>
+      <param name="upperAlpha">3.1e-5</param>
+      <param name="lowerDensity">3300</param>
+      <param name="lowerAlpha">3.1e-5</param>
+      <param name="height">maxY</param>
+      <param name="T_0">273</param>
+      <param name="linearCoefficient">TemperatureGradient</param>
+      <param name="materialBoundary">crustBottom</param>
+      <param name="gravity">9.81</param>
+    </struct>
+
+    <struct name="backgroundShape">
+      <param name="Type">Everywhere</param>
+    </struct>
+
+   <struct name="boxShape">
+      <param name="Type">Box</param>
+      <param name="startX">minX</param>
+      <param name="endX">maxX</param>
+      <param name="startY">minY</param>
+      <param name="endY">maxY</param>
+      <param name="startZ">minZ</param>
+      <param name="endZ">maxZ</param>
+    </struct>
+
+    <struct name="surfaceAdaptor">
+      <param name="Type">SurfaceAdaptor</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="sourceGenerator">linearMesh-generator</param>
+      <param name="bottomSurfaceType">plateau</param>
+      <param name="bottomX1">EAEnd</param>
+      <param name="bottomX2">WarsStart</param>
+      <param name="bottomX3">maxX</param>
+      <param name="bottomX4">maxX</param>
+      <param name="bottomHeight">WarsHeight</param>
+    </struct>
+
+<!-- ============== Crust  ================  -->
+<!-- The precise shape of the crust is not known, because the width of
+     WARS and the width of the transition from WARS to EA is not
+     given.  We use
+
+     WARS = 360 km
+     transition = 60 km
+
+     For the crustal thickness, we use 39 km everywhere, or a height
+     of 180 km - 39 km = 141 km.
+
+     We also assume that the crust has uniform heating throughout of
+     1.1e-6 W m^-3
+
+     Given the specific heat of 875 J kg^-1 C^-1, that means a heating of
+
+     1.1e-6 W/m^-3 
+     _________________________________   = 4.41102756891e-13 C s^-1
+     875 J kg^-1 C^-1  *  2850 kg m^-3
+
+     The coefficient of thermal expansion alpha = 3.1e-5 C^-1
+
+     Given the thermal conductivity of 2.5 W m^-1 C^-1, then the
+     thermal diffusivity kappa
+
+     kappa =         2.5 W m^-1 C^-1
+             _______________________________  = 1.00250626566e-6 m^2 s^-1
+             2850 kg m^-3 * 875 J kg^-1 C^-1
+
+     For the crust, T_0 = Q/R = 219e3 / 8.31 = 26353.7906137
+
+     A = A'^(1/n) = (5e-18 s-1 Pa^-2.4)^(1/2.4)
+                  = 6.18354466027e-8 s^-1/2.4 Pa^-1
+     
+-->
+
+    <struct name="crustShape">
+      <param name="Type">Box</param>
+      <param name="startX">minX</param>
+      <param name="endX">maxX</param>
+      <param name="startY">crustBottom</param>
+      <param name="endY">maxY</param>
+      <param name="startZ">minZ</param>
+      <param name="endZ">maxZ</param>
+    </struct>
+
+    <struct name="crustViscosity">
+      <param name="Type">NonNewtonian</param>
+      <param name="StrainRateInvariantField">StrainRateInvariantField</param>
+      <param name="TemperatureField">TemperatureField</param>
+      <param name="n">2.4</param>
+      <param name="T_0">26353.7906137</param>
+      <!-- <param name="A">6.18354466027e-8</param> -->
+      <param name="A">13.3220431236</param> <!-- 6.18354466027e-8*(1e20)^(1/2.4) -->
+      <!-- <param name="refStrainRate">1.5e-16</param> -->
+      <param name="refStrainRate">1.5e4</param>
+      <!-- <param name="minViscosity">1.0e-2</param> -->
+      <!-- <param name="maxViscosity">1.0e20</param> -->
+    </struct>
+
+   <struct name="crust">
+     <param name="Type">RheologyMaterial</param>
+     <param name="Shape">crustShape</param>
+     <param name="density">2850</param>
+     <param name="alpha">3.1e-5</param>
+     <!-- <param name="diffusivity">1.0e-6</param> -->
+     <param name="diffusivity">1.0e14</param>
+     <list name="heatingElements">
+       <struct>
+         <!-- <param name="Q">4.41102756891e-13</param> -->
+         <param name="Q">4.41102756891e7</param>
+         <param name="lambda">0.0</param>
+       </struct>
+     </list>
+     <list name="Rheology">
+       <param>crustViscosity</param>
+       <param>yielding</param>
+       <param>storeViscosity</param>
+       <param>storeStress</param>
+     </list>
+   </struct>
+
+
+
+<!-- ============== Mantle  ================  -->
+<!-- 
+     The coefficient of thermal expansion alpha = 3.1e-5 C^-1
+
+     Given the thermal conductivity of 3.4 W m^-1 C^-1, then the
+     thermal diffusivity kappa
+
+     kappa =         3.4 W m^-1 C^-1
+             ________________________________  =  8.24242424242e-7 m^2 s^-1
+             3300 kg m^-3 * 1250 J kg^-1 C^-1
+
+     For the crust, T_0 = Q/R = 498e3 / 8.31 = 59927.7978339
+
+     A = A'^(1/n) = (4e-25 s-1 Pa^-4.5)^(1/4.5)
+                  =  3.78647900946e-6 s^-1/4.5 Pa^-1
+     
+-->
+
+    <struct name="mantleShape">
+      <param name="Type">Intersection</param>
+      <list name="shapes">
+        <param>boxShape</param>
+       <param>!crustShape</param>
+      </list>
+    </struct>
+
+    <struct name="mantleViscosity">
+      <param name="Type">NonNewtonian</param>
+      <param name="StrainRateInvariantField">StrainRateInvariantField</param>
+      <param name="TemperatureField">TemperatureField</param>
+      <param name="n">4.5</param>
+      <param name="T_0">59927.7978339</param>
+      <param name="A">3.78647900946e-6</param>
+      <param name="A">0.105361027689</param>
+      <!-- <param name="refStrainRate">1.5e-16</param> -->
+      <param name="refStrainRate">1.5e4</param>
+      <!-- <param name="minViscosity">1.0e-2</param> -->
+      <!-- <param name="maxViscosity">1.0e20</param> -->
+    </struct>
+
+    <struct name="mantleViscous">
+      <param name="Type">RheologyMaterial</param>
+      <param name="Shape">mantleShape</param>
+      <param name="density">3300</param>
+      <param name="alpha">3.1e-5</param>
+      <!-- <param name="diffusivity">8.24242424242e-7</param> -->
+      <param name="diffusivity">8.24242424242e13</param>
+      <list name="heatingElements">
+        <struct>
+          <param name="Q">0</param>
+          <param name="lambda">0.0</param>
+        </struct>
+      </list>
+      <list name="Rheology">
+        <param>mantleViscosity</param>
+        <param>yielding</param>
+        <param>storeViscosity</param>
+        <param>storeStress</param>
+      </list>
+    </struct>
+
+<!-- ============== Strain Weakening  ================  -->
+
+<!-- In the paper, the yielding relation is s_yield = S + B'z, with no
+     strain weakening.
+
+     To figure out what the cohesion and phi are
+
+    sqrt(J2) = Ap + B
+
+    where
+
+    A=sin(phi)
+    B=cos(phi) * cohesion
+
+    for hydrostatics, p=rho g z
+
+    => Ap = A rho g z = sin(phi) rho g z
+
+    => B' = sin(phi) rho g
+
+    => sin(phi) = B'/(rho g)
+       cohesion = S/cos(phi)
+
+    => cohesion = S/sqrt(1-(B'/(rho g))^2)
+       tan(phi) = (B'/(rho g)) * cohesion/S
+
+    The numbers we have are
+
+    S = 60e6 Pa
+    B'= 11e6 Pa/km = 11e3 Pa/m
+    rho = 2850 (crust)
+    g = 9.81
+
+    => cohesion = 60e6 / sqrt(1-(11e3/(2850 * 9.81))^2)
+                = 6.52634888202e7
+       tan(phi) = 11e3/(2850 * 9.81) * 6.5263e7/6e7
+                = 0.427954752593
+    -->
+
+    <struct name="strainWeakening">
+      <param name="Type">StrainWeakening</param>
+      <param name="TimeIntegrator">timeIntegrator</param>
+      <param name="MaterialPointsSwarm">materialSwarm</param>
+      <param name="initialSofteningStrain">0.0</param>
+      <param name="finalSofteningStrain">0.1</param>
+    </struct>
+    <struct name="yielding">
+      <param name="Type">DruckerPrager</param>
+      <param name="PressureField">PressureField</param>
+      <param name="VelocityGradientsField">VelocityGradientsField</param>
+      <param name="MaterialPointsSwarm">materialSwarm</param>
+      <param name="Context">context</param>
+      <param name="StrainRateField">StrainRateField</param>
+      <param name="StrainWeakening">strainWeakening</param>
+      <param name="cohesion">6.52634888202e7</param>
+      <param name="cohesionAfterSoftening">6.52634888202e7</param>
+      <param name="frictionCoefficient">0.427954752593</param>
+      <param name="frictionCoefficientAfterSoftening">0.427954752593</param>
+      <param name="HydrostaticTerm">hydrostaticTerm</param>
+    </struct>
+
+
+<!-- ============== Stress  BC on bottom =====================  -->
+    <struct name="stressBC">
+      <param name="Type">StressBC</param>
+      <param name="ForceVector">mom_force</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="wall">top</param>
+      <param name="y_type">HydrostaticTerm</param>
+      <param name="y_value">hydrostaticTerm</param>
+    </struct>
+
+<!-- ============== Temperature Components  =====================  -->
+    <struct name="temperature">
+      <param name="Type">MeshVariable</param>
+      <param name="Rank">Scalar</param>
+      <param name="DataType">Double</param>
+      <param name="mesh">mesh-linear</param>
+    </struct>
+    <struct name="temperatureBCs">
+      <param name="Type">CompositeVC</param>
+      <param name="Data">mesh-linear</param>
+    </struct>
+    <struct name="temperatureICs">
+      <param name="Type">CompositeVC</param>
+      <param name="Data">mesh-linear</param>
+    </struct>
+    <struct name="temperatureDofLayout">
+      <param name="Type">DofLayout</param>
+      <param name="mesh">mesh-linear</param>
+      <list name="BaseVariables">
+        <param>temperature</param>
+      </list>
+    </struct>
+    <struct name="TemperatureField">
+      <param name="Type">FeVariable</param>
+      <param name="FEMesh">mesh-linear</param>
+      <param name="DofLayout">temperatureDofLayout</param>
+      <param name="BC">temperatureBCs</param>
+      <param name="IC">temperatureICs</param>
+      <param name="LinkedDofInfo">temperatureLinkedDofs</param>
+    </struct>
+    <struct name="TemperatureGradientsField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">Gradient</param>
+      <param name="FeVariable">TemperatureField</param>
+    </struct>
+
+    <!-- Energy Equation -->
+    <struct name="residual">
+      <param name="Type">ForceVector</param>
+      <param name="FeVariable">TemperatureField</param>
+    </struct>
+    <struct name="massMatrix">
+      <param name="Type">ForceVector</param>
+      <param name="FeVariable">TemperatureField</param>
+    </struct>
+    <struct name="predictorMulticorrector">
+      <param name="Type">AdvDiffMulticorrector</param>
+    </struct>
+    <struct name="EnergyEqn">
+      <param name="Type">AdvectionDiffusionSLE</param>
+      <param name="SLE_Solver">predictorMulticorrector</param>
+      <param name="Context">context</param>
+      <param name="PhiField">TemperatureField</param>
+      <param name="Residual">residual</param>
+      <param name="MassMatrix">massMatrix</param>
+      <param name="courantFactor">0.25</param>
+    </struct>
+    <struct name="lumpedMassMatrixForceTerm">
+      <param name="Type">LumpedMassMatrixForceTerm</param>
+      <param name="Swarm">gaussSwarm</param>
+      <param name="ForceVector">massMatrix</param>
+    </struct>
+    <struct name="defaultResidualForceTerm">
+      <param name="Type">AdvDiffResidualForceTerm</param>
+      <param name="Swarm">gaussSwarm</param>
+      <param name="ForceVector">residual</param>
+      <param name="ExtraInfo">EnergyEqn</param>
+      <param name="VelocityField">VelocityField</param>
+      <param name="defaultDiffusivity">defaultDiffusivity</param>
+      <param name="UpwindXiFunction">Exact</param>
+    </struct>
+    <struct name="internalHeatingTerm">
+      <param name="Type">RadiogenicHeatingTerm</param>
+      <param name="ForceVector">residual</param>
+      <param name="Swarm">picIntegrationPoints</param>
+    </struct>
+
+  </struct>
+
+<!--  ====the end of component section====  -->
+
+<!-- ============== Mesh  ====================  -->
+ <struct name="EulerDeform">
+    <list name="systems">
+      <struct>
+        <param name="mesh">mesh-linear</param>
+        <param name="remesher">velocityRemesher</param>
+        <param name="velocityField">VelocityField</param>
+        <param name="wrapTop">True</param>
+        <param name="wrapBottom">True</param>
+        <list name="fields">
+         <struct>
+           <param name="field">VelocityField</param>
+           <param name="variable">velocity</param>
+         </struct>
+          <struct>
+            <param name="field">PressureField</param>
+            <param name="variable">pressure</param>
+          </struct>
+        </list>
+      </struct>
+    </list>
+  </struct>
+
+ <!-- ============== Velocity BCs ====================  -->
+  <struct name="velocityBCs">
+    <param name="type">CompositeVC</param>
+    <list name="vcList">
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">left</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vx</param>
+            <param name="type">double</param>
+            <param name="value">0</param>
+          </struct>
+          <struct>
+            <param name="name">vy</param>
+            <param name="type">double</param>
+            <param name="value">0</param>
+          </struct>
+        </list>
+      </struct>
+
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">right</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vx</param>
+            <param name="type">double</param>
+            <param name="value">2.21968543886e10</param> <!-- 2.21968543886e-10 = 7 km/Myr.  Scaling of 1e20 -->
+          </struct>
+
+
+          <!-- <struct> -->
+          <!--   <param name="name">vy</param> -->
+          <!--   <param name="type">double</param> -->
+          <!--   <param name="value">0</param> -->
+          <!-- </struct> -->
+
+
+        </list>
+      </struct>
+
+
+      <!-- <struct> -->
+      <!--   <param name="type">WallVC</param> -->
+      <!--   <param name="wall">bottom</param> -->
+      <!--   <list name="variables"> -->
+      <!--     <struct> -->
+      <!--       <param name="name">vy</param> -->
+      <!--       <param name="type">double</param> -->
+      <!--       <param name="value">0</param> -->
+      <!--     </struct> -->
+      <!--   </list> -->
+      <!-- </struct> -->
+
+
+    </list>
+  </struct>
+
+<!-- ============== Temperature BCs ===============  -->
+  <struct name="temperatureBCs">
+    <param name="type">CompositeVC</param>
+    <list name="vcList">
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">top</param>
+        <list name="variables">
+          <struct>
+            <param name="name">temperature</param>
+            <param name="type">double</param>
+            <param name="value">273</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">bottom</param>
+        <list name="variables">
+          <struct>
+            <param name="name">temperature</param>
+            <param name="type">double</param>
+            <param name="value">1573</param>
+          </struct>
+        </list>
+      </struct>
+    </list>
+  </struct>
+
+<!-- ============== Temperature ICs =====================  -->
+  <struct name="temperatureICs">
+    <param name="type">CompositeVC</param>
+    <list name="vcList">
+      <struct>
+        <param name="type">AllNodesVC</param>
+        <list name="variables">
+          <struct>
+            <param name="name">temperature</param>
+            <param name="type">func</param>
+            <param name="value">WarsTemperature</param>
+          </struct>
+        </list>
+      </struct>
+    </list>
+  </struct>
+
+<!-- ================= PARAMETERS ======================= -->
+  <list name="FieldVariablesToCheckpoint">
+    <param>VelocityField</param>
+    <param>PressureField</param>
+  </list>
+  <param name="maxTimeSteps">150</param>
+  <param name="outputEvery">1</param>
+  <param name="dumpEvery">2</param>
+  <param name="outputPath">output_wars</param>
+  <param name="dim">2</param>
+  <param name="shadowDepth">1</param>
+  <param name="minX">0.0f</param>
+  <param name="minY">0.0f</param>
+  <param name="minZ">0.0f</param>
+  <param name="maxX">1500000.0f</param>
+  <param name="maxY">180000.0f</param>
+  <param name="maxZ">2500.0f</param>
+  <param name="elementResI">120</param>
+  <param name="elementResJ">36</param>
+  <param name="elementResK">5</param>
+  <param name="allowUnbalancing">True</param>
+  <param name="buildNodeNeighbourTbl">True</param>
+  <param name="buildElementNeighbourTbl">True</param>
+  <param name="particlesPerCell">30</param>
+  <param name="seed">13</param>
+  <param name="gaussParticlesX">2</param>
+  <param name="gaussParticlesY">2</param>
+  <param name="gaussParticlesZ">2</param>
+  
+  <param name="WarsTTop">273</param>
+  <param name="WarsTBottom">1573</param>
+
+  <param name="EAEnd">1080000</param>
+  <param name="WarsStart">1140000</param>
+  <param name="WarsHeight">30000</param>
+  <param name="crustBottom">141000</param>
+
+  <!-- This implies that the gradient in the EA zone is 1300/180 km.
+       Need to update this each time we change the temperature of the
+       boundary or the height of the box. -->
+  <param name="TemperatureGradient">7.22222222222e-3</param>
+
+  <param name="dtFactor">0.5</param>
+  <param name="linearTolerance">1.0e-5</param>
+  <param name="nonLinearTolerance">1.0e-2</param>
+
+ <param name="journal.info">True</param>
+ <param name="journal.debug">True</param>
+ <param name="journal-level.info">2</param> 
+ <param name="journal-level.debug">2</param>
+</StGermainData>



More information about the CIG-COMMITS mailing list