[cig-commits] r13478 - in long/3D/Gale/trunk: . input/examples src/Gale/Utils/src

walter at geodynamics.org walter at geodynamics.org
Tue Dec 9 12:43:56 PST 2008


Author: walter
Date: 2008-12-09 12:43:56 -0800 (Tue, 09 Dec 2008)
New Revision: 13478

Modified:
   long/3D/Gale/trunk/
   long/3D/Gale/trunk/input/examples/tibet.xml
   long/3D/Gale/trunk/src/Gale/Utils/src/MixedStabiliserTerm.c
Log:
 r2398 at dante:  boo | 2008-12-08 15:53:12 -0800
 Hard coded version of MixedStabiliserTerm and tibet.xml that seems to mostly work



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

Modified: long/3D/Gale/trunk/input/examples/tibet.xml
===================================================================
--- long/3D/Gale/trunk/input/examples/tibet.xml	2008-12-09 20:43:52 UTC (rev 13477)
+++ long/3D/Gale/trunk/input/examples/tibet.xml	2008-12-09 20:43:56 UTC (rev 13478)
@@ -103,6 +103,10 @@
       <param name="Rank">Scalar</param>
       <param name="DataType">Double</param>
     </struct>
+    <struct name="pressureBCs">
+      <param name="Type">CompositeVC</param>
+      <param name="Data">mesh-linear</param>
+    </struct>
     <struct name="pressureDofLayout">
       <param name="Type">DofLayout</param>
       <param name="mesh">mesh-linear</param>
@@ -319,11 +323,20 @@
       <param name="storeVisc">storeViscosity</param>
       <param name="StiffnessMatrix">c_matrix</param>
     </struct>
+<!--     <struct name="hydrostaticCorrection"> -->
+<!--       <param name="Type">HydrostaticCorrection</param> -->
+<!--       <param name="ForceVector">cont_force</param> -->
+<!--       <param name="Swarm">gaussSwarm</param> -->
+<!--       <param name="picSwarm">picIntegrationPoints</param> -->
+<!--       <param name="storeVisc">storeViscosity</param> -->
+<!--       <param name="force_type">func</param> -->
+<!--       <param name="force_value">PressureProfile</param> -->
+<!--     </struct> -->
 
     <struct name="buoyancyForceTerm">
       <param name="Type">BuoyancyForceTerm</param>
       <param name="ForceVector">mom_force</param>
-      <param name="TemperatureField">TemperatureField</param>
+<!--       <param name="TemperatureField">TemperatureField</param> -->
       <param name="Swarm">picIntegrationPoints</param>
       <param name="gravity">9.81</param>
     </struct>
@@ -360,8 +373,7 @@
 <!--       <param name="Swarm">picIntegrationPoints</param> -->
 <!--       <param name="wall">bottom</param> -->
 <!--       <param name="y_type">double</param> -->
-      <!-- This number is just adding up rho*g*h at the edge -->
-<!--        <param name="y_value">3080340000</param> -->
+<!--        <param name="y_value">3237300000</param> -->
 <!--     </struct> -->
 
     <struct name="surfaceAdaptor">
@@ -456,6 +468,7 @@
     <struct name="crustViscous">
       <param name="Type">RheologyMaterial</param>
       <param name="Shape">crustShape</param>
+<!--       <param name="density">3300</param> -->
       <param name="density">2800</param>
       <param name="alpha">3.0e-5</param>
       <param name="diffusivity">1.0e-6</param>
@@ -672,6 +685,11 @@
             <param name="type">double</param>
             <param name="value">0.0</param>
           </struct>
+<!--           <struct> -->
+<!--             <param name="name">vy</param> -->
+<!--             <param name="type">double</param> -->
+<!--             <param name="value">0.0</param> -->
+<!--           </struct> -->
         </list>
       </struct>
       <struct>
@@ -682,13 +700,19 @@
             <param name="name">vx</param>
             <param name="type">double</param>
             <!-- 1 cm/yr -->
-            <param name="value">3.17097919838e17</param>
-<!--             <param name="value">3.17097919838e16</param> -->
+<!--             <param name="value">0</param> -->
+            <param name="value">3.17097919838e16</param>
 <!--             <param name="value">3.17097919838e-10</param> -->
           </struct>
+<!--           <struct> -->
+<!--             <param name="name">vy</param> -->
+<!--             <param name="type">double</param> -->
+<!--             <param name="value">0.0</param> -->
+<!--           </struct> -->
         </list>
       </struct>
 
+
       <struct>
         <param name="type">WallVC</param>
         <param name="wall">bottom</param>
@@ -701,10 +725,28 @@
         </list>
       </struct>
 
+
     </list>
   </struct>
 
+  <struct name="pressureBCs">
+    <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">pressure</param>
+            <param name="type">double</param>
+            <param name="value">0</param>
+          </struct>
+        </list>
+      </struct>
+    </list>
+  </struct>
 
+
   <struct name="temperatureBCs">
     <param name="type">CompositeVC</param>
     <list name="vcList">
@@ -810,6 +852,10 @@
 <!--   <param name="checkpointEvery">1</param> -->
   <param name="dtFactor">1.0</param>
 
+<!--   <param name="SimpleShearCentreY">100000</param> -->
+<!--   <param name="SimpleShearFactor">-31547.8105236</param> -->
+  <param name="SimpleShearCentreY">101510.391518</param>
+  <param name="SimpleShearFactor">-31078.4049316</param>
   <param name="journal.info">True</param>
   <param name="journal.debug">True</param>
   <param name="journal-level.info">2</param>

Modified: long/3D/Gale/trunk/src/Gale/Utils/src/MixedStabiliserTerm.c
===================================================================
--- long/3D/Gale/trunk/src/Gale/Utils/src/MixedStabiliserTerm.c	2008-12-09 20:43:52 UTC (rev 13477)
+++ long/3D/Gale/trunk/src/Gale/Utils/src/MixedStabiliserTerm.c	2008-12-09 20:43:56 UTC (rev 13478)
@@ -263,11 +263,33 @@
    /* Adjust the calculated mass matrix by the 'special operator'. The
       nElNodes term comes from an averaging operator applied twice. */
 
-   for( ii = 0; ii < nElNodes; ii++ ) {
+   for( ii = 0; ii < nElNodes; ii++ )
       for( jj = 0; jj < nElNodes; jj++ )
         localElStiffMat[ii][jj] -= cellArea/(nElNodes*nElNodes);
+
+   /* Apply a correction factor to account for when the pressure is
+      largely hydrostatic */
+
+   {
+     double viscosity=1/viscFac;
+     double velocity=1.0e16;
+     double length=1.0e5;
+     double gravity=9.81;
+     double density=3300;
+
+     double *coord, pressure, temp_factor;
+     unsigned nInc, *inc;
+     Mesh_GetIncidence(mesh,nDims,elementIndex,MT_VERTEX,&nInc,&inc);
+     
+     coord=Mesh_GetVertex( mesh, inc[0] );
+     pressure=(length-coord[1])*gravity*density;
+     temp_factor=viscosity*velocity/(length*pressure)*1000;
+
+     if(temp_factor<1  && temp_factor>0)
+       viscFac*=temp_factor;
    }
 
+
    /* Apply the viscosity factor and negate the calculated value. */
    for( ii = 0; ii < nElNodes; ii++ ) {
       for( jj = 0; jj < nElNodes; jj++ )



More information about the CIG-COMMITS mailing list