[cig-commits] r5100 - short/3D/PyLith/branches/pylith-0.8/pylith3d/libpylith3d

willic3 at geodynamics.org willic3 at geodynamics.org
Thu Oct 26 12:42:28 PDT 2006


Author: willic3
Date: 2006-10-26 12:42:28 -0700 (Thu, 26 Oct 2006)
New Revision: 5100

Modified:
   short/3D/PyLith/branches/pylith-0.8/pylith3d/libpylith3d/mat_6.f
Log:
Fixed stupid bug when computing current stress estimate.
Fixed problem when I was not transferring current stress estimate
to the necessary temporary variable.
Fixed root-finding tolerance to be a function of the current stress
estimate.  Otherwise, the tolerance was typically too small.



Modified: short/3D/PyLith/branches/pylith-0.8/pylith3d/libpylith3d/mat_6.f
===================================================================
--- short/3D/PyLith/branches/pylith-0.8/pylith3d/libpylith3d/mat_6.f	2006-10-26 19:39:53 UTC (rev 5099)
+++ short/3D/PyLith/branches/pylith-0.8/pylith3d/libpylith3d/mat_6.f	2006-10-26 19:42:28 UTC (rev 5100)
@@ -418,7 +418,8 @@
 c
       do i=1,nstr
         sdevtdt=f1*(epptdt(i)-f2*sdevt(i)+ae*sdev0(i))
-        dstate(i)=sdevtdt+diag(i)*(smeant+smean0)
+        dstate(i)=sdevtdt+diag(i)*(smeantdt+smean0)
+        scur(i)=dstate(i)
         sdevtau=(one-alfap)*sdevt(i)+alfap*sdevtdt
         dstate(i+6)=ee(i)
         dstate(i+12)=deltp*gamtau*sdevtau
@@ -462,7 +463,7 @@
 c
 c...  local variables
 c
-      double precision sefft,sefflo,seffhi
+      double precision sefft,sefflo,seffhi,xacc
 c
 c...  included variable definitions
 c
@@ -477,6 +478,7 @@
       sefft=rpar(7)
       seffhi=max(sefft,stol)
       sefflo=half*seffhi
+      xacc=max(stol*half*(seffhi-sefflo),stol)
 c
 c...  bracket the root
 c
@@ -486,7 +488,7 @@
 c
 c...  compute effective stress
 c
-      sefftdt=rtsafe(esf_6,sefflo,seffhi,stol,rpar,nrpar,ipar,nipar,
+      sefftdt=rtsafe(esf_6,sefflo,seffhi,xacc,rpar,nrpar,ipar,nipar,
      & ierr,errstrng)
       return
       end
@@ -684,7 +686,8 @@
 c
       do i=1,nstr
         sdevtdt=f1*(epptdt(i)-f2*sdevt(i)+ae*sdev0(i))
-        dstate(i)=sdevtdt+diag(i)*(smeant+smean0)
+        dstate(i)=sdevtdt+diag(i)*(smeantdt+smean0)
+        scur(i)=dstate(i)
         sdevtau=(one-alfap)*sdevt(i)+alfap*sdevtdt
         dstate(i+6)=ee(i)
         dstate(i+12)=deltp*gamtau*sdevtau



More information about the cig-commits mailing list