[cig-commits] r19879 - seismo/3D/FAULT_SOURCE/branches/new_fault_db/src
surendra at geodynamics.org
surendra at geodynamics.org
Mon Mar 26 16:57:04 PDT 2012
Author: surendra
Date: 2012-03-26 16:57:04 -0700 (Mon, 26 Mar 2012)
New Revision: 19879
Modified:
seismo/3D/FAULT_SOURCE/branches/new_fault_db/src/fault_solver.f90
Log:
Added Fload distribution for TPV10x
Modified: seismo/3D/FAULT_SOURCE/branches/new_fault_db/src/fault_solver.f90
===================================================================
--- seismo/3D/FAULT_SOURCE/branches/new_fault_db/src/fault_solver.f90 2012-03-26 22:23:02 UTC (rev 19878)
+++ seismo/3D/FAULT_SOURCE/branches/new_fault_db/src/fault_solver.f90 2012-03-26 23:57:04 UTC (rev 19879)
@@ -548,6 +548,7 @@
real(kind=CUSTOM_REAL) :: b(size(a))
character(len=20) :: shape
real(kind=CUSTOM_REAL) :: val,valh, xc, yc, zc, r, l, lx,ly,lz
+ real(kind=CUSTOM_REAL) :: r1(size(a))
integer :: i
NAMELIST / DIST2D / shape, val,valh, xc, yc, zc, r, l, lx,ly,lz
@@ -570,6 +571,13 @@
select case(shape)
case ('circle')
b = heaviside( r - sqrt((coord(1,:)-xc)**2 + (coord(2,:)-yc)**2 + (coord(3,:)-zc)**2 ) )
+ case ('circle-exp')
+ r1 = sqrt((coord(1,:)-xc)**2 + (coord(2,:)-yc)**2 + (coord(3,:)-zc)**2 )
+ where(r1<r)
+ b =exp (r1**2/(r1**2 - r**2) )
+ elsewhere
+ b =0._CUSTOM_REAL
+ endwhere
case ('ellipse')
b = heaviside( 1e0_CUSTOM_REAL - sqrt( (coord(1,:)-xc)**2/lx**2 + (coord(2,:)-yc)**2/ly**2 + (coord(3,:)-zc)**2/lz**2 ) )
case ('square')
@@ -713,24 +721,24 @@
!WARNING : ad hoc for SCEC benchmark TPV10x
TxExt = 0._CUSTOM_REAL
TLoad = 1.0_CUSTOM_REAL
- DTau0 = 25e6_CUSTOM_REAL
- time = it*bc%dt
- if (time==0._CUSTOM_REAL) then
- GLoad = 0._CUSTOM_REAL
- elseif (time <= TLoad) then
+ !DTau0 = 25e6_CUSTOM_REAL
+ time = it*bc%dt !time will never be zero. it starts from 1
+ if (time <= TLoad) then
GLoad = exp( (time-TLoad)*(time-Tload) / (time*(time-2.0_CUSTOM_REAL*TLoad)) )
else
GLoad = 1.0_CUSTOM_REAL
endif
- TxExt = DTau0 * bc%asp%Fload * GLoad
- T(1,:) = T(1,:) + TxExt
+ TxExt = (bc%asp%AspTx - bc%T0(1,:)) * bc%asp%Fload * GLoad + bc%T0(1,:)
+ !TxExt = DTau0 * bc%asp%Fload * GLoad
+ !T(1,:) = T(1,:) + TxExt
Vf = Vnorm_old
theta_old = bc%rsf%theta
call rsf_update_state(Vf,bc%dt,bc%rsf)
ta = sqrt(bc%T(1,:)**2 + bc%T(2,:)**2)
- tStick = sqrt(T(1,:)**2 + T(2,:)**2)
+ tStick = sqrt((T(1,:) - bc%T0(1,:) +TxExt )**2 + T(2,:)**2)
+ !tStick = sqrt(T(1,:)**2 + T(2,:)**2)
do iNode=1,bc%nglob
call NRsearch(Vf1(iNode),tau1(iNode),bc%rsf%f0(iNode),bc%rsf%V0(iNode),bc%rsf%a(iNode),bc%rsf%b(iNode),-T(3,iNode),log(bc%rsf%theta(iNode)),bc%Z(iNode),ta(iNode),tStick(iNode),ierr)
More information about the CIG-COMMITS
mailing list