1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158
|
SUBROUTINE FAILUR (FTHR,ULTSTN,STRESL,FINDEX)
C
C THIS ROUTINE COMPUTES THE FAILURE INDEX OF A LAYER
C IN A LAMINATED COMPOSITE ELEMENT USING ONE OF THE
C FOLLOWING FIVE FAILURE THEORIES CURRENTLY AVAILABLE
C
C 1. HILL
C 2. HOFFMAN
C 3. TSAI-WU
C 4. MAX STRESS
C 5. MAX STRAIN
C
C DEFINITIONS
C -----------
C XT = ULTIMATE UNIAXIAL TENSILE STRENGTH IN THE FIBER
C DIRECTION
C XC = ULTIMATE UNIAXIAL COMPRESSIVE STRENGTH IN THE
C FIBER DIRECTION
C YT = ULTIMATE UNIAXIAL TENSILE STRENGTH PERPENDICULAR TO
C THE FIBER DIRECTION
C YC = ULTIMATE UNIAXIAL COMPRESSIVE STRENGTH PERPENDICULAR
C TO THE FIBER DIRECTION
C S = ULTIMATE PLANAR SHEAR STRENGTH UNDER PURE SHEAR
C LOADING
C SIMILARILY FOR THE ULTIMATE STRAINS
C
DIMENSION ULTSTN(6),STRESL(3)
INTEGER FTHR
COMMON /SYSTEM/ IBUF,NOUT
C
C**** CHECK FOR ZERO STRENGTH VALUES
C
DO 10 I = 1,5
10 IF (ULTSTN(I) .EQ. 0.0) GO TO 90
C
C**** ULTIMATE STRENGTH VALUES
C
XT = ULTSTN(1)
XC = ULTSTN(2)
YT = ULTSTN(3)
YC = ULTSTN(4)
S = ULTSTN(5)
F12 = ULTSTN(6)
C
C**** LAYER STRESSES
C
SIG1 = STRESL(1)
SIG2 = STRESL(2)
TAU12 = STRESL(3)
C
C**** LAYER STRAINS
C
EPS1 = STRESL(1)
EPS2 = STRESL(2)
GAMA = STRESL(3)
C
C
GO TO (20,30,40,60,70), FTHR
C
C H I L L F A I L U R E T H E O R Y
C ====================================
C
20 X = XT
IF (SIG1 .LT. 0.0) X = XC
C
Y = YT
IF (SIG2 .LT. 0.0) Y = YC
C
XX = XT
IF ((SIG1*SIG2) .LT. 0.0) XX = XC
C
FINDEX = ( SIG1*SIG1 )/( X*X )
FINDEX = FINDEX + ( SIG2*SIG2 )/( Y*Y )
FINDEX = FINDEX - ( SIG1*SIG2 )/( XX*XX )
FINDEX = FINDEX + ( TAU12*TAU12 )/( S*S )
GO TO 80
C
C
C H O F F M A N F A I L U R E T H E O R Y
C =========================================
C
30 FINDEX = ( 1.0/XT - 1.0/XC )*SIG1
FINDEX = FINDEX + ( 1.0/YT - 1.0/YC )*SIG2
FINDEX = FINDEX + ( SIG1*SIG1 )/( XT*XC )
FINDEX = FINDEX + ( SIG2*SIG2 )/( YT*YC )
FINDEX = FINDEX + ( TAU12*TAU12 )/( S*S )
FINDEX = FINDEX - ( SIG1*SIG2 )/( XT*XC )
GO TO 80
C
C
C T S A I-W U F A I L U R E T H E O R Y
C =======================================
C
C**** CHECK STABILITY CRITERIA FOR THE INTERACTION TERM F12
40 IF (F12 .EQ. 0.0) GO TO 50
C
CRIT = ( 1.0/(XT*XC) )*( 1.0/(YT*YC) ) - ( F12*F12 )
IF (CRIT .GT. 0.0) GO TO 50
C
C**** IF STABILITY CRITERIA IS VIOLATED THEN SET THE
C F12 THE INTERACTION TERM TO ZERO
C
F12 = 0.0
C
C
50 FINDEX = ( 1.0/XT - 1.0/XC )*SIG1
FINDEX = FINDEX + ( 1.0/YT - 1.0/YC )*SIG2
FINDEX = FINDEX + ( SIG1*SIG1 )/( XT*XC )
FINDEX = FINDEX + ( SIG2*SIG2 )/( YT*YC )
FINDEX = FINDEX + ( TAU12*TAU12 )/( S*S )
IF (F12 .EQ. 0.0) GO TO 80
FINDEX = FINDEX + ( 2.0*F12*SIG1*SIG2 )
GO TO 80
C
C
C M A X S T R E S S F A I L U R E T H E O R Y
C ==============================================
C
60 FI1 = SIG1/XT
IF (SIG1 .LT. 0.0) FI1 = SIG1/XC
C
FI2 = SIG2/YT
IF (SIG2 .LT. 0.0) FI2 = SIG2/YC
C
FI12 = ABS(TAU12)/S
C
FINDEX = FI1
IF (FI2 .GT. FINDEX) FINDEX = FI2
IF (FI12 .GT. FINDEX) FINDEX = FI12
GO TO 80
C
C
C M A X S T R A I N F A I L U R E T H E O R Y
C ==============================================
C
70 FI1 = EPS1/XT
IF (EPS1 .LT. 0.0) FI1 = EPS1/XC
C
FI2 = EPS2/YT
IF (EPS2 .LT. 0.0) FI2 = EPS2/YC
C
FI12 = ABS(GAMA)/S
C
FINDEX = FI1
IF (FI2 .GT. FINDEX) FINDEX = FI2
IF (FI12 .GT. FINDEX) FINDEX = FI12
C
80 CONTINUE
C
RETURN
C
C
C NON-FATAL ERROR
C
C
90 FINDEX = 0.0
RETURN
END
|