[cig-commits] r14251 - in long/3D/Gale/trunk: . src/Underworld/Rheology/src
walter at geodynamics.org
walter at geodynamics.org
Sat Mar 7 19:22:52 PST 2009
Author: walter
Date: 2009-03-07 19:22:52 -0800 (Sat, 07 Mar 2009)
New Revision: 14251
Modified:
long/3D/Gale/trunk/
long/3D/Gale/trunk/src/Underworld/Rheology/src/MohrCoulomb.c
Log:
r2538 at dante: boo | 2009-03-07 19:22:28 -0800
Add the trace of the stress to the pressure in Mohr Coulomb. This is needed since we are using linear elements
Property changes on: long/3D/Gale/trunk
___________________________________________________________________
Name: svk:merge
- 3a629746-de10-0410-b17b-fd6ecaaa963e:/cig:2536
+ 3a629746-de10-0410-b17b-fd6ecaaa963e:/cig:2538
Modified: long/3D/Gale/trunk/src/Underworld/Rheology/src/MohrCoulomb.c
===================================================================
--- long/3D/Gale/trunk/src/Underworld/Rheology/src/MohrCoulomb.c 2009-03-08 01:27:34 UTC (rev 14250)
+++ long/3D/Gale/trunk/src/Underworld/Rheology/src/MohrCoulomb.c 2009-03-08 03:22:52 UTC (rev 14251)
@@ -329,7 +329,7 @@
unsigned inds[3];
Grid* elGrid;
Bool inside_boundary;
-
+ Eigenvector* eigenvectorList = self->currentEigenvectorList;
FeVariable_InterpolateWithinElement( pressureField, lElement_I, xi, &pressure );
cell_I=CellLayout_MapElementIdToCellId(materialPointsSwarm->cellLayout,
@@ -340,6 +340,19 @@
pressure+=HydrostaticTerm_Pressure(self->hydrostaticTerm,coord);
}
+ /* Add the average of the trace, since with linear pressure elements
+ we are not guaranteed to have a stress field with zero stress */
+
+ if(dim==2)
+ {
+ pressure=(eigenvectorList[0].eigenvalue+eigenvectorList[1].eigenvalue)/2;
+ }
+ else
+ {
+ pressure=(eigenvectorList[0].eigenvalue+eigenvectorList[1].eigenvalue
+ +eigenvectorList[2].eigenvalue)/2;
+ }
+
/* Calculate frictional strength. We modify the friction and
cohesion because we have grouped terms from the normal
stresses and moved it to the yield indicator. */
More information about the CIG-COMMITS
mailing list