[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