⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 yieldf.for

📁 有限元计算程序
💻 FOR
字号:
C$DEBUG
C$LARGE
	SUBROUTINE YIELDF(AVECT,DEVIA,LPROP,MMATS,NCRIT,NSTR1,
     .                  PROPS,SINT3,STEFF,THETA,VARJ2)   !(Page 241)
C******************************************************************
C
C**** THIS SUBROUTINE EVALUATES THE FLOW VECTOR
C
C******************************************************************
	DIMENSION AVECT(4),DEVIA(4),PROPS(MMATS,7),
     .          VECA1(4),VECA2(4),VECA3(4)
	IF(STEFF.EQ.0.0) RETURN
	FRICT=PROPS(LPROP,7)
	TANTH=TAN(THETA)
	TANT3=TAN(3.0*THETA)
	SINTH=SIN(THETA)
	COSTH=COS(THETA)
	COST3=COS(3.0*THETA)
	ROOT3=1.73205080757
C
C*** CALCULATE VECTOR A1
C
	VECA1(1)=1.0
	VECA1(2)=1.0
	VECA1(3)=0.0
	VECA1(4)=1.0
C
C*** CALCULATE VECTOR A2
C
	DO 10 ISTR1=1,NSTR1
  10    VECA2(ISTR1)=DEVIA(ISTR1)/(2.0*STEFF)
	VECA2(3)=DEVIA(3)/STEFF
C
C*** CALCULATE VECTOR A3
C
	VECA3(1)=DEVIA(2)*DEVIA(4)+VARJ2/3.0
	VECA3(2)=DEVIA(1)*DEVIA(4)+VARJ2/3.0
	VECA3(3)=-2.0*DEVIA(3)*DEVIA(4)
	VECA3(4)=DEVIA(1)*DEVIA(2)-DEVIA(3)*DEVIA(3)+VARJ2/3.0
	GO TO (1,2,3,4) NCRIT
C
C*** TRESCA
C
   1  CONS1=0.0
	ABTHE=ABS(THETA*57.29577951308)
	IF(ABTHE.LT.29.0) GO TO 20
	CONS2=ROOT3
	CONS3=0.0
	GO TO 40
  20  CONS2=2.0*(COSTH+SINTH*TANT3)
	CONS3=ROOT3*SINTH/(VARJ2*COST3)
	GO TO 40
C
C*** VON MISES
C
   2  CONS1=0.0
	CONS2=ROOT3
	CONS3=0.0
	GO TO 40
C
C*** MOHR-COULOMB
C
   3  CONS1=SIN(FRICT*0.017453292)/3.0
	ABTHE=ABS(THETA*57.29577951308)
	IF(ABTHE.LT.29.0) GO TO 30
	CONS3=0.0
	PLUMI=1.0
	IF(THETA.GT.0.0) PLUMI=-1.0
	CONS2=0.5*(ROOT3+PLUMI*CONS1*ROOT3)
	GO TO 40 
  30  CONS2=COSTH*((1.0+TANTH*TANT3)+CONS1*(TANT3-TANTH)*ROOT3)
	CONS3=(ROOT3*SINTH+3.0*CONS1*COSTH)/(2.0*VARJ2*COST3)
	GO TO 40
C
C*** DRUCKER-PRAGER
C
   4  SNPHI=SIN(FRICT*0.017453292)
	CONS1=2.0*SNPHI/(ROOT3*(3.0-SNPHI))
	CONS2=1.0
	CONS3=0.0
  40  CONTINUE
	DO 50 ISTR1=1,NSTR1
  50  AVECT(ISTR1)=CONS1*VECA1(ISTR1)+CONS2*VECA2(ISTR1)+CONS3*
     .  VECA3(ISTR1)
	RETURN
	END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -