




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
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)下的單元剛度矩陣 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. /*主程序開始 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; /求單元號碼 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)系中的單元剛度矩陣ke 95.
37、for(i=1;i<=2;i+) /對行碼循環(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; /對列碼循環(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; /支撐對應(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度斜線)置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、; /求最后一個位移分量 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. /*計算軸力N,剪力Q,彎矩M* 188. &
76、#160; for(e=1;e<=ne;e+) /按單元循環(huán) 189.
77、0; 190. jdugd(e);
78、 /求局部單元剛度矩陣kd 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)載荷下的桿端力計算出來存入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; /載荷類型 246. l0=gce;
104、160; /桿長 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; /計算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+) /計算T的左下角元素 298.
120、0; 299. ti+3j+3=tij; 300. 301. 302. 30
121、3. 304. 305. 306. /* 307. /<計算局部坐標(biāo)下單元剛度矩陣kd> 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; /桿長 318. j0=gxe;
125、160; /慣性鉅 319. 320. 321. for(i=0;i<=6;i+) 322. for(j=0;j<=6;j+)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 跨國企業(yè)知識產(chǎn)權(quán)侵權(quán)行為的國際追責(zé)
- 音樂教育中PBL教學(xué)法的實(shí)施策略及效果分析
- 浙江國企招聘2024嘉興南湖新豐鎮(zhèn)下屬國資公司招聘3人筆試參考題庫附帶答案詳解
- 質(zhì)量管理體系認(rèn)證的挑戰(zhàn)與機(jī)遇
- 科學(xué)實(shí)驗(yàn)的精確測量與數(shù)據(jù)分析
- 質(zhì)量管理水泥企業(yè)的核心競爭力
- 軟件界面設(shè)計中色彩運(yùn)用的技巧
- 遠(yuǎn)程辦公環(huán)境下的語言教育培訓(xùn)模式
- 糧食采購合同范本
- 資產(chǎn)托管與保管服務(wù)的數(shù)字化進(jìn)程
- 婦幼健康信息平臺共享數(shù)據(jù)集應(yīng)用規(guī)范第1部分孕產(chǎn)婦保健
- 輸液港的輸液與維護(hù)
- 非洲豬瘟病毒基因IⅡ型重組毒株、基因I型弱毒株和基因Ⅱ型毒株鑒別三重?zé)晒釶CR檢測方法
- 2024解析:第十四章內(nèi)能的利用-講核心(解析版)
- 各類應(yīng)急風(fēng)險預(yù)案的防范
- 醫(yī)科大學(xué)2024年12月五官科護(hù)理學(xué)作業(yè)考核試題答卷
- 火鍋店新產(chǎn)品研發(fā)方案
- 2024年基金應(yīng)知應(yīng)會考試題庫
- 2024年河北省公務(wù)員錄用考試《行測》試題及答案解析
- 科學(xué)四年級下冊第一單元第4課《車來了》課件
- 海信入職在線測評真題
評論
0/150
提交評論