Você está na página 1de 4

*******************check of unloading or reloading******************

*added ganesh***********reloading***********************************
IF (nustr(n,1).eq.2) THEN
IF (ABS (q(n)).lt.ABS (str(n,1))) THEN
diff = ABS (ABS (str(n,1))-strm(n))
IF (diff.gt.1.e-8) fk(n) = ABS (fref(n)-csig(n))/diff
stifn(n) = stifn(n)*fk(n)/pnormalk(mat(i))
GOTO 283
ENDIF
IF (ABS (q(n)).gt.ABS (str(n,1))) THEN
xx = 3.0
xf = strm(n)/epsp(mat(i))
fk2 = EXP (-0.73*xf*(1.0-EXP (-1.25*xf))) ! from maekawa model==ram
DUMY1 = ABS(FORCE(N,1))/dimen/T(MAT(I))*NPSS(MAT(I))
IF (dumy1.eq.0) dumy1=1.e-9
IF (fref(n).eq.0) fref(n)=1.e-9
fac1 = 1.0+xx*(1.0-exp(-log(xx)*xf))
fk1 = fac1*(dumy1/fref(n))**(1.0-1.0/fac1)*fk2
stifn(n) = stifn(n)*fk1
GOTO 283
ENDIF
IF (ABS (q(n)).eq.ABS (str(n,1)))stifn(n)=stifnorg
GOTO 283
ENDIF
**************ganesh END***********************************************
!
IF(nustr(n,1).eq.2) THEN
!
xx=1.0
!
fac1=1.0
!
xf=strm(n)/epsp(n)
!
fk2=exp(-0.73*xf*(1.0-exp(-1.25*xf)))
!
DUMY1=ABS(FORCE(N,1))/dimen/T(MAT(I))*NPSS(MAT(I))
!
IF(xx.gt.1) fac1=1.0+xx*(1.0-exp(-log(xx)*xf))
!
IF(dumy1.eq.0) dumy1=1.e-9
!
IF(fref(n).eq.0) fref(n)=1.e-9
!c
fk1=fac1*(dumy1/fref(n))**(1.0-1.0/fac1)*fk2
!
stifn(n)=stifn(n)*fk2
!the original value is fk1 instead of fk2
!
!
goto 283
!
ENDIF
***********************************************************************
IF (nustr(n,1).eq.1) THEN
IF (matmodel.eq.1) THEN
stifn1 = tanstIF(pnormalk(mat(i)),ABS(str(n,1)),epsp(n))*
+
t(mat(i))/npss(mat(i))

stifn2 = tanstIF(pnormalk(mat(ii)),ABS(str(n,1)),epsp(n))*
+
t(mat(ii))/npss(mat(ii))
stifn(n) = (stifn1+stifn2)/2.0
IF (str(n,1).lt.-0.95*epsp(n)) THEN
stifn(n) = stifnorg/100.0
ENDIF
ENDIF
ENDIF
ElSEIF (matmodel == 2) THEN

! Material modeling for soil

IF(nustr(n,1).eq.0) THEN
GOTO 283
ENDIF
*******************check of unloading or reloading*********************
*added ganesh***********reloading**************************************
IF (nustr(n,1).eq.2) THEN
c
pause
IF (ABS (q(n)).lt.ABS (str(n,1))) THEN
strnn = ABS (str(n,1) - pstrain(n))/2.0
stifn1 = (2*tanstif1(pnormalk(mat(i)),strnn,epsp(n)) +
+
pstrain(n)*pnormalk(mat(i)))*t(mat(i))/npss(mat(i))
stifn2 = (2*tanstif1(pnormalk(mat(ii)),strnn,epsp(n)) +
+
pstrain(n)*pnormalk(mat(ii)))*t(mat(ii))/npss(mat(ii))
stifn(n) = (stifn1+stifn2)/2.0
diff = ABS (ABS (str(n,1))-strm(n))
IF (diff.gt.1.e-8) fk(n) = ABS (fref(n)-csig(n))/diff
stifn(n) = stifn(n)*fk(n)/pnormalk(mat(i))
c
If (n == 12040)print*, stifn(n),stifs(n)
GOTO 283
ENDIF

+
+

IF (ABS (q(n)).gt.ABS (str(n,1))) THEN


strnn = ABS (str(n,1) + pstrain(n))/2.0
stifn1 = (2*tanstif1(pnormalk(mat(i)),strnn,epsp(n)) pstrain(n)*pnormalk(mat(i)))*t(mat(i))/npss(mat(i))
stifn2 = (2*tanstif1(pnormalk(mat(ii)),strnn,epsp(n)) pstrain(n)*pnormalk(mat(ii)))*t(mat(ii))/npss(mat(ii))
stifn(n) = (stifn1+stifn2)/2.0
If (n == 12040)print*, stifn(n),stifs(n)
GOTO 283
ENDIF
IF (ABS (q(n)).eq.ABS (str(n,1))) THEN
stifn(n) = stifnorg

stifs(n) = stifsorg
GOTO 283
ENDIF
ENDIF
IF (nustr(n,1).eq.1) THEN
stifn1 = tanstif1(pnormalk(mat(i)),ABS(str(n,1)),epsp(n))*
+
t(mat(i))/npss(mat(i))
stifn2 = tanstif1(pnormalk(mat(ii)),ABS(str(n,1)),epsp(n))*
+
t(mat(ii))/npss(mat(ii))
stifn(n) = (stifn1+stifn2)/2.0
IF (str(n,1).lt.-0.95*epsp(n)) THEN
stifn(n) = stifnorg/100.0
ENDIF
stifs1 = tanstif1(sheark(mat(i)),ABS(str(n,2)),0.1*epsp(n))*
t(mat(i))/npss(mat(i))
stifs2 = tanstif1(sheark(mat(ii)),ABS(str(n,2)),0.1*epsp(n))*
+
t(mat(ii))/npss(mat(ii))
stifs(n) = (stifs1+stifs2)/2.0
IF (str(n,2).lt.-0.95*0.1*epsp(n)) THEN
stifs(n) = stifsorg/100.0
ENDIF
c
If (n == 12040) THEN
c
print*, stifn(n),stifs(n)
c
pause
c
ENDIF
+

ENDIF
ENDIF
***********************************************************************
282 CONTINUE
283 CONTINUE
IF (ncode(n).eq.0.and.force(n,1).gt.0) stifn(n) = stifnorg
IF (stifn(n).gt.stifnorg) THEN
stifn(n) = stifnorg
stifs(n) = stifsorg
ENDIF
RETURN
END

**************************compressive stress calculation***************


FUNCTION STRESS (E,EPS,EPSP,MATMODEL)
IMPLICIT REAL*8 (A-H,O-Z )
X=EPS/EPSP

a=EXP(-0.73*X*(1.0-EXP(-1.25*X)))
b=E*(EPS-(X-20.0/7.0*(1.0-EXP(-0.35*X)))*EPSP) !maekawa model==ram
IF(MATMODEL.eq.2)then
stress = E*EPS/(1+X)
else
STRESS=a*b
endif
RETURN
END
**************************Geometrical coordinate determination*********
FUNCTION GEOMC (X,Xmin,dimen)
IMPLICIT REAL*8 (A-H,O-Z )
Geomc=int((x-xmin)/dimen*2.0+0.5)+4
RETURN
END
**************************compressive stress calculation***************
FUNCTION TANSTIF(E,EPS,EPSP)
! Modulus, Normal strain,
IMPLICIT REAL*8 (A-H,O-Z )
X = EPS/EPSP
a = EXP(-0.73*X*(1.0-EXP(-1.25*X))) !maekawa model==ram
b = E*(EPS-(X-20.0/7.0*(1.0-EXP(-0.35*X)))*EPSP) !maekawa model==ram
adash = a*(-0.73/epsp*(1.0-EXP(-1.25*X))-0.9125*x*
+
EXP(-1.25*X)/epsp)
bdash = E*20.0/7.0*0.35*EXP(-0.35*X)
tanstif = a*bdash+b*adash
RETURN
END
FUNCTION TANSTIF1(E,EPS,EPSP)
IMPLICIT REAL*8 (A-H,O-Z )
X = EPS/EPSP
tanstif1 = E/(1+X)**2
RETURN
END

Você também pode gostar