Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
DOF DISPL
1 -0.241359368543755 E -02
2 -0.231827484256329 E -02
3 -0.389221210940746 E -05
....
NODAL STRESS & STRAIN BASED ON ENERGY - BASED MEAN
DEFORMATION ELEMENT : 1
IN
EPSX EPSY GAMMAXY EPSZ EPS1
0.370 E -04 -0.182 E -04 -0.137 E -03 0.000 E +00 0.149 E -03
EPS2 THETA
-0.130 E -03 0.146 E +03
STRESS ELEMENT : 1
IN
SIGX SIGY TAUXY SIGZ SIG1
0.101 E +04 -0.495 E +03 -0.186 E +04 0.000 E +00 0.226 E +04
SIG2 THETA
Computational Structural Analysis 53
B.3. Plotting the results B. User manual
-0.175 E +04 0.146 E +03
ENERGY ELEMENT : 1
IN
VOLUME ENERGY ENERGY % E %
SUM
0.217 E -03 0.327 E -04 0.00224 0.00224
......
MEAN NODAL DEFORMATIONS
NODE EPSX EPSY GAMMAXY
1 0.261 E -04 -0.226 E -03 -0.381 E -04
2 0.243 E -04 -0.254 E -03 -0.363 E -04
3 0.133 E -04 -0.192 E -03 -0.536 E -04
....
MEAN NODAL STRESSES
NODE SIGX SIGY TAUXY
1 0.71001 E +03 -0.61475 E +04 -0.51915 E +03
2 0.66203 E +03 -0.69180 E +04 -0.49363 E +03
3 0.36194 E +03 -0.52348 E +04 -0.72923 E +03
....
ENERGY STORED THE STRUCTURE
IN
TOT VOL TOT EN TOT EN %
0.242 E +01 0.146 E +01 0.100 E +03
After printing the nodal displacements and identifying the maximum and the minimum, the code
writes the strains, stresses and energy in each element. Then the mean nodal values of these
quantities are reported, obtained through the mean rule decided by the user. Finally, a summary
line with the total volume and strain energy is reported.
B.3 Plotting the results
The results, in terms of deformed shape and internal forces diagrams are plotted by the MATLAB
algorithm in Appendix D. The data is taken by the code from the file PLOT.DAT.
54 Computational Structural Analysis
C
Structural analysis code
! STRESS 2 D ALGORITHM
1 !
2 MODULE GLOBALVAR
3 IMPLICIT DOUBLE PRECISION (A -H ,O - Z )
4 INTEGER :: ICODE
5 ! MESH
6 INTEGER :: IMESH , IDMESH
7 ! GEOMET
8 INTEGER :: NNODE , NELE , NTYPE
9 REAL (2) , DIMENSION (: ,:) , ALLOCATABLE , SAVE :: COORD , CTYPE
10 INTEGER , DIMENSION (:) , ALLOCATABLE , SAVE :: ITYPE
11 INTEGER , DIMENSION (: ,:) , ALLOCATABLE , SAVE :: IN
12 ! SCODE
13 INTEGER :: NDOF
14 INTEGER , DIMENSION (: ,:) , ALLOCATABLE , SAVE :: IDOF
15 ! LOADS
16 REAL (2) , DIMENSION (: ,:) , ALLOCATABLE , SAVE :: ELOADS
17 REAL (2) , DIMENSION (:) , ALLOCATABLE , SAVE :: VLOADS , THERM
18 ! ASSEMB
19 REAL (2) , DIMENSION (6 ,6):: ST
20 REAL (2) , DIMENSION (6):: EQFG
21 REAL (2) , DIMENSION (: ,:) , ALLOCATABLE , SAVE :: VK
22 ! SOLVE
23 REAL (2) , DIMENSION (:) , ALLOCATABLE , SAVE :: VDISP
24 ! STRESS
25 REAL (2) , DIMENSION (: ,:) , ALLOCATABLE , SAVE :: SIGNOD , EPSNOD
26 REAL (2) , DIMENSION (:) , ALLOCATABLE , SAVE :: SUMWEIGHT
27 INTEGER :: IMEAN
28 END MODULE GLOBALVAR
29
30 PROGRAM FRAME
31 USE GLOBALVAR
32 CHARACTER :: TITLE , REC
33 OPEN (9 , FILE = " TEMPORARY . txt " , STATUS = " UNKNOWN " )
34 OPEN (11 , FILE = " INPUTmesh . txt " , STATUS = " UNKNOWN " )
35 OPEN (12 , FILE = " OUTPUTmesh . txt " , STATUS = " UNKNOWN " )
36 READ (11 ,*) TITLE
37 READ (11 ,*) REC
38 READ (11 ,*) ICODE
39 IF ( ICODE <0. OR . ICODE >1) THEN
40 WRITE (12 , ’ (" WRONG ␣ NUMBER ␣ FOR ␣ TYPE ␣ OF ␣ ANALYSIS ") ’)
41 STOP
42 ELSE
43 IF ( ICODE ==0) THEN
44 WRITE (12 , ’ ("**** ␣ PLAIN ␣ STRESS ␣ ANALYSIS ␣ ****") ’)
45 ELSE
46 WRITE (12 , ’ ("**** ␣ PLAIN ␣ STRAIN ␣ ANALYSIS ␣ ****") ’)
47 END IF
48 END IF
49 READ (11 ,*) REC
50 READ (11 ,*) IMESH
51 IF ( IMESH ==1) THEN
52 READ (11 ,*) REC
53 READ (11 ,*) IDMESH
54 WRITE (12 , ’ (/) ’)
55 WRITE (12 , ’ ("**** ␣ AUTOGENERATED - MESH ␣ TYPE " , I2 ," ␣ ****") ’) IDMESH
56 CALL MESH
57 ELSE
58 WRITE (12 , ’ (/) ’)
59 WRITE (12 , ’ ("**** ␣ USER ␣ INPUT - MESH ␣ ****") ’)
60 END IF
61 CALL GEOMET
62 CALL SCODE
63 CALL LOADS
64 CALL ASSEMB
65 CALL SOLVE
66 CALL STRESS2D
67 CALL PLOT2D
68 CLOSE (9)
69 CLOSE (11)
70 CLOSE (12)
71 END PROGRAM FRAME
72
73 ! SUBROUTINE GEOMET
74 SUBROUTINE GEOMET
75 USE GLOBALVAR
76 INTEGER :: IDNODE , IDTYPE , IDELE ,I , J
77 CHARACTER :: REC
78 ! READING / WRITING NODES
79 WRITE (12 , ’ (/) ’)
80 WRITE (12 , ’( T1 ,"**** ␣ GEOMETRY ␣ ****" ,/) ’)
81 IF ( IMESH ==0) THEN
82 READ (11 ,*) REC
83 READ (11 ,*) NNODE
84 END IF
85 WRITE (12 , ’ (2 X ," NUMBER ␣ OF ␣ NODES ␣ =" , I4 ,/) ’) NNODE
86
Computational Structural Analysis 55
C. Structural analysis code
WRITE (12 ,101) ’ NODE ’ , ’ COORD ␣ X ’ , ’ COORD ␣ Y ’
87 IF ( IMESH ==0) THEN
88 ALLOCATE ( COORD ( NNODE ,2))
89 END IF
90 DO I =1 , NNODE
91 IF ( IMESH ==0) THEN
92 READ (11 ,*) IDNODE , COORD ( IDNODE ,:)
93 WRITE (12 ,102) IDNODE , COORD ( IDNODE ,:)
94 ELSE
95 WRITE (12 ,102) I , COORD (I ,:)
96 END IF
97 END DO
98 READ (11 ,*) REC
99 READ (11 ,*) NTYPE
100 WRITE (12 , ’ (/) ’)
101 WRITE (12 , ’ (2 X ," NUMBER ␣ OF ␣ TYPES ␣ =" , I2 ,/) ’) NTYPE
102 WRITE (12 , ’ (2 X , A10 ,5(4 X , A10 )) ’) ’ TYPE ’ , ’ YOUNG ’ , ’ POISSON ’ , ’ ALPHA ’ , ’ SELFWEIGHT ’ , ’ THICKNESS ’
103 ALLOCATE ( CTYPE ( NTYPE ,5))
104 DO I =1 , NTYPE
105 READ (11 ,*) IDTYPE , CTYPE ( IDTYPE ,:)
106 WRITE (12 , ’ (2 X , I10 ,5(4 X , E10 .4)) ’) IDTYPE , CTYPE ( IDTYPE ,:)
107 END DO
108 IF ( IMESH ==0) THEN
109 READ (11 ,*) REC
110 READ (11 ,*) NELE
111 ALLOCATE ( IN ( NELE ,3))
112 ALLOCATE ( ITYPE ( NELE ))
113 END IF
114 ALLOCATE ( THERM ( NELE ))
115 WRITE (12 , ’ (/) ’)
116 WRITE (12 , ’ (2 X ," NUMBER ␣ OF ␣ ELEMENTS ␣ =" , I4 ,/) ’) NELE
117 WRITE (12 , ’ (2 X , A10 ,4(4 X , A10 )) ’) ’ ELEMENT ’ , ’1 ST ␣ NODE ’ , ’2 ND ␣ NODE ’ , ’3 RD ␣ NODE ’ , ’ TYPE ’
118 DO I =1 , NELE
119 IF ( IMESH ==0) THEN
120 READ (11 ,*) IDELE ,( IN ( IDELE , J ) , J =1 ,3) , ITYPE ( IDELE )
121 WRITE (12 , ’ (2 X , I10 ,4(4 X , I10 )) ’) IDELE ,( IN ( IDELE , J ) , J =1 ,3) , ITYPE ( IDELE )
122 ELSE
123 WRITE (12 , ’ (2 X , I10 ,4(4 X , I10 )) ’)I ,( IN (I , J ) , J =1 ,3) , ITYPE ( I )
124 END IF
125 END DO
126 RETURN
127 !
128 ! FORMAT LIST
129 101 FORMAT (2 X , A10 ,4 X , A10 ,4 X , A10 )
130 102 FORMAT (2 X , I10 ,4 X , F10 .5 ,4 X , F10 .5)
131 103 FORMAT (2 X , A10 ,4 X , A10 ,4 X , A10 ,4 X , A10 ,4 X , A10 )
132 104 FORMAT (2 X , I10 ,4 X , F10 .5 ,4 X , F10 .5 ,4 X , F10 .5 ,4 X , F10 .5)
133 105 FORMAT (2 X , I10 ,3 X , F11 .1 ,4 X , F10 .5 ,4 X , F10 .6 ,4 X , F10 .5)
134 106 FORMAT (2 X , I10 ,4 X , I10 ,4 X , I10 ,4 X , I10 ,4 X , I10 )
135 END SUBROUTINE GEOMET
136
137 SUBROUTINE MESH
138 USE GLOBALVAR
139 INTEGER :: I ,J , IND , IND1 , IND2 , NINTX , NINTY , NSUB (2) , NX , NY
140 CHARACTER :: REC
141 INTEGER , DIMENSION (:) , ALLOCATABLE , SAVE :: NSUBX , NSUBY , NNODEX , NNODEY
142 REAL (2) , DIMENSION (:) , ALLOCATABLE , SAVE :: DX , DY
143 INTEGER , DIMENSION (: ,:) , ALLOCATABLE , SAVE :: TYPEL
144 REAL (2):: X0 , Y0 , WIDTH
145 READ (11 ,*) REC
146 READ (11 ,*) X0 , Y0
147 READ (11 ,*) REC
148 READ (11 ,*) NINTX , NINTY
149 ALLOCATE ( DX ( NINTX ))
150 ALLOCATE ( DY ( NINTY ))
151 ALLOCATE ( NNODEX ( NINTX ))
152 ALLOCATE ( NNODEY ( NINTY ))
153 ALLOCATE ( NSUBX ( NINTX ))
154 ALLOCATE ( NSUBY ( NINTY ))
155 ALLOCATE ( TYPEL ( NINTX , NINTY ))
156 NSUB (:)=0
157 NX =1
158 NY =1
159 DO I =1 , NINTX
160 READ (11 ,*) WIDTH , NSUBX ( I ) , TYPEL (I ,:)
161 DX ( I )= WIDTH / NSUBX ( I )
162 NNODEX ( I )= NSUBX ( I )
163 NX = NX + NNODEX ( I )
164 NNODEX ( I )= NNODEX ( I )+1
165 NSUB (1)= NSUB (1)+ NSUBX ( I )
166 END DO
167 DO I =1 , NINTY
168 READ (11 ,*) WIDTH , NSUBY ( I )
169 DY ( I )= WIDTH / NSUBY ( I )
170 NNODEY ( I )= NSUBY ( I )
171 NY = NY + NNODEY ( I )
172 NNODEY ( I )= NNODEY ( I )+1
173 NSUB (2)= NSUB (2)+ NSUBY ( I )
174 END DO
175 NNODE = NX * NY
176 NELE =2.* NSUB (1)* NSUB (2)
177 ALLOCATE ( COORD ( NNODE ,2))
178 ALLOCATE ( ITYPE ( NELE ))
179 IND =0
180 DO I =1 , NINTY
181 DO K =1 , NSUBY ( I )/2
182 DO J =1 , NINTX
183 ITYPE ( IND +1: IND + NSUBX ( J )*4)= TYPEL (J , I )
184 IND = IND + NSUBX ( J )*4
185 END DO
186 END DO
187 END DO
188 COORD =0.
189 IND =0
190 K =1
191 L =1
192 XX =0.
193 YY =0.
194 DO K =1 , NINTX
195 IF ( K ==1) THEN
196 M =1
197 ELSE
198 M =2
199 END IF
200 DO I =M , NNODEX ( K )
201 DO L =1 , NINTY
202
56 Computational Structural Analysis
C. Structural analysis code IF ( L ==1) THEN
203 N =1
204 ELSE
205 N =2
206 END IF
207 DO J =N , NNODEY ( L )
208 IND = IND +1
209 COORDY = Y0 + YY +( J -1)* DY ( L )
210 COORDX = X0 + XX +( I -1)* DX ( K )
211 COORD ( IND ,1)= COORDX
212 COORD ( IND ,2)= COORDY
213 END DO
214 YY = COORDY - Y0
215 END DO
216 YY =0.
217 END DO
218 XX = COORDX - X0
219 END DO
220 NBLOCKX = NSUB (1)/2
221 NBLOCKY = NSUB (2)/2
222 NTRIANGBLOCK =8
223 IND =1
224 IND1 =1
225 IND2 = IND1
226 ALLOCATE ( IN ( NELE ,3))
227 IN (: ,:)=0
228 IF ( IDMESH ==1) THEN
229 DO I =1 , NBLOCKY
230 DO J =1 , NBLOCKX
231 IN ( IND ,1)= IND1
232 IN ( IND ,2)= IND1 + NY
233 IN ( IND ,3)= IND1 + NY +1
234 IN ( IND +1 ,1)= IND1 + NY
235 IN ( IND +1 ,2)= IND1 +2* NY
236 IN ( IND +1 ,3)= IND1 + NY +1
237 IN ( IND +2 ,1)= IND1 +2* NY
238 IN ( IND +2 ,2)= IND1 +2* NY +1
239 IN ( IND +2 ,3)= IND1 + NY +1
240 IN ( IND +3 ,1)= IND1 +2* NY +1
241 IN ( IND +3 ,2)= IND1 +2* NY +2
242 IN ( IND +3 ,3)= IND1 + NY +1
243 IN ( IND +4 ,1)= IND1 +2* NY +2
244 IN ( IND +4 ,2)= IND1 + NY +2
245 IN ( IND +4 ,3)= IND1 + NY +1
246 IN ( IND +5 ,1)= IND1 + NY +2
247 IN ( IND +5 ,2)= IND1 +2
248 IN ( IND +5 ,3)= IND1 + NY +1
249 IN ( IND +6 ,1)= IND1 +2
250 IN ( IND +6 ,2)= IND1 +1
251 IN ( IND +6 ,3)= IND1 + NY +1
252 IN ( IND +7 ,1)= IND1 +1
253 IN ( IND +7 ,2)= IND1
254 IN ( IND +7 ,3)= IND1 + NY +1
255 IND = IND + NTRIANGBLOCK
256 IND1 = IND2 +(2* J )* NY
257 END DO
258 IND2 = IND2 +2
259 I