




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、有限元編程的c+實(shí)現(xiàn)算例 1. #include<stdio.h> 2. #include<math.h> 3. 4. 5. #define ne 3
2、; /單元數(shù) 6. #define nj 4 &
3、#160; /節(jié)點(diǎn)數(shù) 7. #define n
4、z 6
5、60; /支撐數(shù) 8. #define npj 0
6、0; /節(jié)點(diǎn)載荷數(shù) 9. #define npf 1
7、60; /非節(jié)點(diǎn)載荷數(shù) 10. #define nj3 12
8、; /節(jié)點(diǎn)位移總數(shù) 11. #define dd 6
9、60; /半帶寬 12. #define e0 2.1E8
10、 /彈性模量 13. #define a0 0.008
11、160; /截面積 14. #define i0 1.22E-4
12、60; /單元慣性距 15. #define pi 3.141592654
13、0; 16. 17. 18. int jmne+13=0,0,0,0,1,2,0,2,3,0,4,3;
14、 /*gghjghg*/ 19. double gcne+1=0.0,1.0,2.0,1.0;
15、 20. double gjne+1=0.0,90.0,0.0,90.0; 21. double mjne+1=0.0,a0,a0,a0; 22. double gxne+1=0.0,i0,i0,i0; 23. int zcnz+1=0,1,2,3,10,11,12;
16、; 24. double pjnpj+13=0.0,0.0,0.0; 25. double pfnpf+15=0,0,0,0,0,0,-20,1.0,2.0,2.0; 26. double kznj3+1dd+1,pnj3+1; 27. double pe7,f7,f07,t77; 28. double ke77,kd77; 29. 30.
17、60; 31. /*kz整體剛度矩陣 32. /*ke整體坐標(biāo)下的單元?jiǎng)偠染仃?#160; 33. /*kd局部坐標(biāo)下的單位剛度矩陣 34. /*t坐標(biāo)變換矩陣 35. 36. /*這是函數(shù)聲明 37. void jdugd(int); 38. void zb(int);
18、; 39. void gdnl(int); 40. void dugd(int); 41. 42. 43. /*主程序開(kāi)始 44. void main() 45. 46. int i,j,k,e,dh,h,ii,jj,hz,al,bl,m,l,dl,zl,z,j0;
19、160; 47. double cl,wy7; 48. int im,in,jn; 49. 50. /* 51. /<功能:形成矩陣P> 52. /* 53. 54. if(npj>0) 55.
20、; 56. for(i=1;i<=npj;i+) 57.
21、160; /把節(jié)點(diǎn)載荷送入P 58. j=pji2;
22、60; 59. pj=pji1; 60. 61. 62. if(npf&
23、gt;0) 63. 64. for(i=1;i<=npf;i+) 65.
24、0; /求固端反力F0 66. hz=i; 67.
25、60; gdnl(hz); 68. e=(int)pfhz3; 69. zb(e);
26、0; /求單元號(hào)碼 70. for(j=1;j<=6
27、;j+) /求坐標(biāo)變換矩陣T 71.
28、60; 72. pej=0.0; 73. for(k=1;k<=6;k+) &
29、#160; /求等效節(jié)點(diǎn)載荷 74. 75.
30、; pej=pej-tkj*f0k; 76. 77. 78. &
31、#160; al=jme1; 79. bl=jme2; 80. p3*al-2=p3*al-2+pe1;
32、 /將等效節(jié)點(diǎn)載荷送到P中 81. p3*al-1=p3*al-1+pe2; 82. p3*al=p3*al+pe3; 83.
33、 p3*bl-2=p3*bl-2+pe4; 84. p3*bl-1=p3*bl-1+pe5; 85. p3*bl=p3*bl+pe6; 86.
34、60; 87. 88. 89. 90. /* 91. /<功能:生成整體剛度矩陣kz> 92. for(e=1;e<=ne;e+)
35、60; /按單元循環(huán) 93. 94. dugd(e);
36、 /求整體坐標(biāo)系中的單元?jiǎng)偠染仃噆e 95.
37、for(i=1;i<=2;i+) /對(duì)行碼循環(huán) 96.
38、0; 97. for(ii=1;ii<=3;ii+) 98. 99. h=3*(i-1)+ii;
39、; /元素在ke中的行碼 100.
40、dh=3*(jmei-1)+ii; /該元素在KZ中的行碼 101. for(j=1;j<=2;j+)
41、 102. 103. for(jj=1;jj<=3;jj+)
42、160; /對(duì)列碼循環(huán) 104. 105.
43、160; l=3*(j-1)+jj; /元素在ke中的列碼 106.
44、160; zl=3*(jmej-1)+jj; /該元素在KZ中的行碼 107.
45、60; dl=zl-dh+1; /該元素在KZ*中的行碼 108.
46、60; if(dl>0) 109. kzdhdl=kzdhdl+kehl; /剛度集成
47、160; 110. 111. 112.
48、60; 113. 114. 115. 116. /*引入邊界條件* 117. for(i=1;i<=nz;i+)
49、0; /按支撐循環(huán) 118. 119. z=zci;
50、60; /支撐對(duì)應(yīng)的位移數(shù) 120. kzzl=1.0;
51、160; /第一列置1 121. for(j=2;j<=dd;j+)
52、; 122. 123. kzzj=0.0;
53、160; /行置0 124. 125. if(z!=1) 126. 127.
54、160; if(z>dd) 128. j0=dd; 129. else if(z<=dd) 130.
55、0; j0=z; /列(45度斜線(xiàn))置0 131
56、. for(j=2;j<=j0;j+) 132. kzz-j+1j=0.0; 133. 134. p
57、z=0.0; /P置0 135.
58、160; 136. 137. 138. 139. 140. for(k=1;k<=nj3-1;k+) 141. 142. if(nj3>k+dd-1) &
59、#160; /求最大行碼 143. im=k+d
60、d-1; 144. else if(nj3<=k+dd-1) 145. im=nj3; 146. in=k+1; 147. for(i=in;i<=im;i
61、+) 148. 149. l=i-k+1; 150. cl=kzkl/kzk1; &
62、#160; /修改KZ 151. jn=dd-l+1; 152. for(j=1;j<=jn;j+)
63、 153. 154. m=j+i-k; 155. kzij=kzij-cl*kzkm
64、; 156. 157. pi=pi-cl*pk;
65、; /修改P 158. 159. 160. 161. 162. 163. 164. pnj3=pnj3/kznj31
66、; /求最后一個(gè)位移分量 165. for(i=nj3-1;i>=1;i-) 166.
67、167. if(dd>nj3-i+1) 168. j0=nj3-i+1; 169. else j0=dd;
68、0; /求最大列碼j0 170. for(j=2;j<=j0;j+) 171.
69、0; 172. h=j+i-1; 173. pi=pi-kzij*ph; 174. 175. pi=pi/kzi1;
70、160; /求其他位移分量 176. 177. printf("n");&
71、#160; 178. printf("_n"); 179. printf("NJ U
72、60; V CETA n"); /輸出位移 180. for(i=1;i<=nj;i+) 181.
73、60; 182. printf(" %-5d %14.11f %14.11f %14.11fn",i,p3*i-2,p3*i-1,p3*i); 183. 184.
74、60; printf("_n"); 185. /*根據(jù)E的值輸出相應(yīng)E單元的N,Q,M(A,B)的結(jié)果* 186. printf("E N
75、 Q M n"); 187. /*計(jì)算軸力N,剪力Q,彎矩M* 188. &
76、#160; for(e=1;e<=ne;e+) /按單元循環(huán) 189.
77、0; 190. jdugd(e);
78、 /求局部單元?jiǎng)偠染仃噆d 191. zb(e);
79、; /求坐標(biāo)變換矩陣T 192. for(i=1;i<=2;i+) 193. 194. &
80、#160; for(ii=1;ii<=3;ii+) 195. 196. h=
81、3*(i-1)+ii; 197. dh=3*(jmei-1)+ii; /給出整體坐標(biāo)下單元節(jié)點(diǎn)位移 198.
82、 wyh=pdh; 199. 200.
83、160; 201. for(i=1;i<=6;i+) 202. 203. fi=0.0; 204.
84、160; for(j=1;j<=6;j+) 205. 206. &
85、#160; for(k=1;k<=6;k+) /求由節(jié)點(diǎn)位移引起的單元節(jié)點(diǎn)力 207.
86、160; 208. fi=fi+kdij*tjk*wyk; 209. &
87、#160; 210. 211. 212. if(npf>0) 213.&
88、#160; 214. for(i=1;i<=npf;i+)
89、60; /按非節(jié)點(diǎn)載荷數(shù)循環(huán) 215. if(pfi3=e)
90、 /找到荷載所在的單元 216. 217. hz=i; &
91、#160; 218. gdnl(hz);
92、; /求固端反力 219. for(j=1;j<=6;j+) /將固端反力累加
93、; 220. 221. &
94、#160; fj=fj+f0j; 222. 223.
95、160; 224. 225. printf("%-3d(A) %9.5f %9.5f
96、 %9.5fn",e,f1,f2,f3); /輸出單元A(i)端內(nèi)力 226. printf(" (B) %9.5f %9.5f
97、0; %9.5fn",f4,f5,f6); /輸出單元B(i)端內(nèi)力 227. 228. return; 229. 230. /*主程序結(jié)束*
98、 231. 232. /* 233. /<功能:將非節(jié)點(diǎn)載荷下的桿端力計(jì)算出來(lái)存入f0> 234. /* 235. 236. void gdnl(int hz) 237. 238. int ind,e;
99、; 239. double g,c,l0,d; 240. 241. 242. g=pfhz1;
100、160; /載荷值 243. c=pfhz2; &
101、#160; /載荷位置 244. e=(int)pfhz3;
102、 /作用單元 245. ind=(int)pfhz4;
103、60; /載荷類(lèi)型 246. l0=gce;
104、160; /桿長(zhǎng) 247. d=l0-c; 248. if(ind=1) 249. 250. f01=0.0; 251.
105、; f02=-(g*c*(2-2*c*c/(l0*l0)+(c*c*c)/(l0*l0*l0)/2; /均布載荷的固端反力 252. f03=-(g*c*c)*(6-8*c/l0+3*c*c/(l0*l0)/12; 253.
106、160; f04=0.0; 254. f05=-g*c-f02; 255. f06=(g*c*c*c)*(4-3*c/l0)/(12*l0); 256. 257.
107、160; else 258. 259. if(ind=2)
108、 /橫向集中力的固端反力 260. 261. f01=0.0; 262.
109、; f02=(-(g*d*d)*(l0+2*c)/(l0*l0*l0); 263. f03=-(g*c*d*d)/(l0*l0); 264. f04=0.0;
110、; 265. f05=(-g*c*c*(l0+2*d)/(l0*l0*l0); 266. f06=(g*c*c*d)/(l0*l0); 267.
111、 268. else 269. 270. f01=-(g*d/l0);
112、; /縱向集中力的固端反力 271. f02=0.0; 272.
113、0; f03=0.0; 273. f04=-g*c/l0; 274. f05=0.0; 275.
114、 f06=0.0; 276. 277. 278. 279. 280. /* 281. /<功能:構(gòu)成坐標(biāo)變換矩陣>
115、 282. /* 283. void zb(int e) 284. 285. double ceta,co,si; 286. int i,j; 287. ceta=(gje*pi)/180;
116、 /角度變弧度 288. co=cos(ceta); 289. si=sin(ceta); 290.
117、0; t11=co; /計(jì)算T右上角元素 291.
118、; t12=si; 292. t21=-si; 293. t22=co; 294. t33=1.0; 295. for(i=1;i<=3;i+) 296.
119、160; 297. for(j=1;j<=3;j+) /計(jì)算T的左下角元素 298.
120、0; 299. ti+3j+3=tij; 300. 301. 302. 30
121、3. 304. 305. 306. /* 307. /<計(jì)算局部坐標(biāo)下單元?jiǎng)偠染仃噆d> 308. /* 309. void jdugd(int e) 310. 311. dou
122、ble A0,l0,j0; 312. int i; 313. int j; 314. 315. 316. A0=mje;
123、 /面積 317. l0=gce; &
124、#160; /桿長(zhǎng) 318. j0=gxe;
125、160; /慣性鉅 319. 320. 321. for(i=0;i<=6;i+) 322. for(j=0;j<=6;j+)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 錢(qián)塘醫(yī)派經(jīng)典著作研讀
- 14-02拉普拉斯變換的性質(zhì)章節(jié)課件
- 2025年高等數(shù)學(xué)基礎(chǔ)知識(shí)水平考核試卷及答案
- 《高等數(shù)學(xué)》上冊(cè)課件05-02微積分基本公式
- 現(xiàn)代科技概論與知識(shí)產(chǎn)權(quán)第9章
- 腫瘤科護(hù)理年度工作總結(jié)
- 化學(xué)反應(yīng)的表示 教學(xué)課件 初中化學(xué)魯教版五四制八年級(jí)全一冊(cè)
- 2025年工業(yè)設(shè)計(jì)師考試試卷及答案
- 2025年園林景觀(guān)設(shè)計(jì)師考試試題及答案
- Unit 1 Asia Comic strip&Welcome to the unit課件 牛津譯林版九年級(jí)英語(yǔ)下冊(cè)
- 藍(lán)莓可行性研究報(bào)告
- 山東省汽車(chē)維修工時(shí)定額(T-SDAMTIA 0001-2023)
- 綜合布線(xiàn)設(shè)計(jì)與施工 第4版 課件全套 第1-13章 網(wǎng)絡(luò)綜合布線(xiàn)概述-網(wǎng)絡(luò)綜合布線(xiàn)實(shí)訓(xùn)
- 小學(xué)語(yǔ)文-“實(shí)用性閱讀與交流”學(xué)習(xí)任務(wù)群設(shè)計(jì)與實(shí)施例談
- 移動(dòng)破碎施工方案
- 國(guó)開(kāi)(山東)地域文化(本)形成性考核1-3答案
- 厚皮甜瓜設(shè)施栽培技術(shù)規(guī)程
- 駐足思考瞬間整理思路并有力表達(dá)完整版
- 成都市青羊區(qū)2023年數(shù)學(xué)四下期末教學(xué)質(zhì)量檢測(cè)試題含解析
- TSGR0003-2023年《簡(jiǎn)單壓力容器安全技術(shù)監(jiān)察規(guī)程》
- 2023年山東濟(jì)南市婦幼保健院招考聘用勞務(wù)派遣人員筆試題庫(kù)含答案解析
評(píng)論
0/150
提交評(píng)論