[cig-commits] r4779 -
short/3D/PyLith/branches/pylith-0.8/pylith3d/libpylith3d
willic3 at geodynamics.org
willic3 at geodynamics.org
Tue Oct 10 13:55:57 PDT 2006
Author: willic3
Date: 2006-10-10 13:55:57 -0700 (Tue, 10 Oct 2006)
New Revision: 4779
Modified:
short/3D/PyLith/branches/pylith-0.8/pylith3d/libpylith3d/mat_5.f
Log:
Updated to compute Maxwell time from elastic solution for consistency
with other rheologies. More changes will be needed, primarily in
fixing the calling routines.
Modified: short/3D/PyLith/branches/pylith-0.8/pylith3d/libpylith3d/mat_5.f
===================================================================
--- short/3D/PyLith/branches/pylith-0.8/pylith3d/libpylith3d/mat_5.f 2006-10-10 20:53:24 UTC (rev 4778)
+++ short/3D/PyLith/branches/pylith-0.8/pylith3d/libpylith3d/mat_5.f 2006-10-10 20:55:57 UTC (rev 4779)
@@ -162,13 +162,16 @@
end
c
c
- subroutine elas_strs_5(state,state0,ee,scur,dmat,nstate,nstate0,
- & ierr,errstrng)
+ subroutine elas_strs_5(prop,nprop,state,state0,ee,scur,dmat,tmax,
+ & nstate,nstate0,ierr,errstrng)
c
c... subroutine to compute stresses for the elastic solution. For this
-c material, there are 3 state variables: total stress, total
-c strain, and viscous strain. The current total strain is contained
-c in ee.
+c material, there are 3 sets of state variables: total stress,
+c total strain, and viscous strain. The Maxwell time is computed,
+c even though this is the elastic solution, as an aid in determining
+c the proper time step size for the next step.
+c The current total strain is contained in ee and the computed
+c total stress should be copied to scur.
c
c state(1:6) = Cauchy stress
c state(7:12) = linear strain
@@ -186,17 +189,30 @@
c
c... subroutine arguments
c
- integer nstate,nstate0,ierr
- double precision state(nstate),state0(nstate0),ee(nstr),scur(nstr)
+ integer nprop,nstate,nstate0,ierr
+ double precision prop(nprop),state(nstate),state0(nstate0)
+ double precision ee(nstr),scur(nstr)
double precision dmat(nddmat)
character errstrng*(*)
c
+c... local variables
+c
+ double precision e,pr,vis,rmu
+c
cdebug write(6,*) "Hello from elas_strs_5_f!"
c
call dcopy(nstr,ee,ione,state(7),ione)
call dcopy(nstr,state0,ione,state,ione)
call dspmv("u",nstr,one,dmat,state(7),ione,one,state,ione)
call dcopy(nstr,state,ione,scur,ione)
+c
+c... compute Maxwell time for current stress state
+c
+ e=prop(2)
+ pr=prop(3)
+ vis=prop(4)
+ rmu=half*e/(one+pr)
+ tmax=emhu/rmu
return
end
c
More information about the cig-commits
mailing list