第七講 C語言程序設計等參元程序流程圖_第1頁
第七講 C語言程序設計等參元程序流程圖_第2頁
第七講 C語言程序設計等參元程序流程圖_第3頁
第七講 C語言程序設計等參元程序流程圖_第4頁
第七講 C語言程序設計等參元程序流程圖_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、程序需要的主要數(shù)據(jù)程序需要的主要數(shù)據(jù)Struct FE_COORDS / / 定義結(jié)構(gòu)體類型定義結(jié)構(gòu)體類型 int n; /結(jié)點總數(shù)結(jié)點總數(shù) double *x; / x2n;/ x2n;結(jié)點坐標,結(jié)點坐標,xn,yn.xn,yn.; ; 注:前注:前n n個為結(jié)點的個為結(jié)點的x x坐標,后坐標,后n n個為結(jié)點的個為結(jié)點的y y坐標坐標。 struct FE_COORDS F_X ; / / 定義結(jié)構(gòu)體變量定義結(jié)構(gòu)體變量F_XF_X ,來存放結(jié)點信息。設,來存放結(jié)點信息。設為全局變量。為全局變量。 程序需要的主要數(shù)據(jù)程序需要的主要數(shù)據(jù)struct FE_TOPOLOGY / / 定義類型定義

2、類型 long n; / 單元總數(shù)單元總數(shù) long *t; / t4n 單元的節(jié)點編碼單元的節(jié)點編碼;struct FE_TOPOLOGY F_T; ;/ /* * 定義結(jié)構(gòu)體變量定義結(jié)構(gòu)體變量F_TF_T ,來存放單元信息。,來存放單元信息。 可設為可設為 全局變量。全局變量。 如第如第5 5單元的結(jié)點編號為單元的結(jié)點編號為 F_T.t16 F_T.t19.F_T.t16 F_T.t19. * */ /struct FE_PKMATRIX / /定義結(jié)構(gòu)體類型定義結(jié)構(gòu)體類型 int n; / 自由度總數(shù),即總剛方程的階數(shù)自由度總數(shù),即總剛方程的階數(shù) int *i; / in;總剛矩陣的索引

3、數(shù)組,即總剛矩陣的索引數(shù)組,即 主元素主元素在在k中的位置中的位置 double *k; / kin-1+1 變半帶寬一維壓縮存變半帶寬一維壓縮存儲的總剛矩陣儲的總剛矩陣;struct FE_PKMATRIX F_K;/ /* * 定義結(jié)構(gòu)體變量定義結(jié)構(gòu)體變量F_XF_X ,來存放總剛矩陣的信息。,來存放總剛矩陣的信息。 如如* *(F_K.i+i),(F_K.i+i),代表下標為代表下標為i i行主元素在壓縮存儲總剛行主元素在壓縮存儲總剛F_K.kF_K.k中的位置,中的位置, nd=nd=* *(F_X.i+i+1)- (F_X.i+i+1)- * *(F_K.i+i)(F_K.i+i)代

4、表下標為代表下標為i i行行非非0 0元素的個數(shù)。元素的個數(shù)。* */ /struct FE_BOUNDARY /定義結(jié)構(gòu)體類型定義結(jié)構(gòu)體類型int n; / 約束總數(shù)或結(jié)點荷載數(shù)約束總數(shù)或結(jié)點荷載數(shù)int *node; / 約束對應的結(jié)點編號約束對應的結(jié)點編號int *attr; / 約束的方向值;約束的方向值; 1-x方向;方向; / 2-y方向,方向,3轉(zhuǎn)動方向轉(zhuǎn)動方向double *value; /支座沉降值或支座沉降值或 荷載值荷載值;struct FE_BOUNDARY F_U,F_P; / /* * 定義結(jié)構(gòu)體變量定義結(jié)構(gòu)體變量F_U,F_PF_U,F_P ,分別來存放邊界約束,

5、分別來存放邊界約束和結(jié)點荷載的信息。和結(jié)點荷載的信息。* */ /struct FE_STRESS / F_S long n; / 輸出的應力(應變)點總數(shù)輸出的應力(應變)點總數(shù) double *x; / x2n; 相應應力點的坐標相應應力點的坐標 double *s; / s3n ,應力(應變)值,應力(應變)值;struct FE_STRESS F_S; /* 記錄的單元應力(應變)信息,包括每個記錄的單元應力(應變)信息,包括每個應力點的位置坐標和三個應力(應變)值。應力點的位置坐標和三個應力(應變)值。*/double MAT5; / / 定義材料信息定義材料信息double E ;

6、 / 材料彈性模量材料彈性模量double v; / 泊松比泊松比double t; / 厚度厚度double px; / x方向的容重方向的容重double py; / y方向的容重方向的容重形 成 總 剛 矩 陣 的 索 引 數(shù) 組Solvc1 Solvc2解 方 程 得 節(jié) 點 位 移 向 量根 據(jù) 邊 界 條 件 修 改 剛 度方 程Readdata_4Zuv2d形 成 整 體 荷 載 向 量P_Load_4Ekm2d_4Kindex_4集 成 總 剛 矩 陣開 始讀 入 數(shù) 據(jù)計 算 單 元 剛 度 矩 陣Pbd2002計 算 單 元 的 重 力 荷 載Ek2002平面剛架靜力計算程

7、序流程圖平面剛架靜力計算程序流程圖單元循環(huán)單元循環(huán)單元循環(huán)單元循環(huán)平面剛架靜力計算程序流程圖平面剛架靜力計算程序流程圖計算各單元應變Savestr輸出各單元應變輸出節(jié)點位移結(jié)束Stn2d_4Saveuv計算各單元應變Str2002計算單元應力Stn2002計算各單元應力Savestr輸出各單元應變Str2d_4單元循環(huán)單元循環(huán)單元循環(huán)單元循環(huán)程序模塊設計程序模塊設計short Readdata_4(char *file)讀取平面四結(jié)點等參元分析需要的所有數(shù)讀取平面四結(jié)點等參元分析需要的所有數(shù)據(jù),如結(jié)點信息、單元信息、截面信息、據(jù),如結(jié)點信息、單元信息、截面信息、邊界支座信息、荷載信息、材料信息

8、等;邊界支座信息、荷載信息、材料信息等;在此函數(shù)中定義全局變量在此函數(shù)中定義全局變量F_X,F(xiàn)_T,F(xiàn)_U,F(xiàn)_P,MAT,并從文件中讀取相應的數(shù)據(jù)。,并從文件中讀取相應的數(shù)據(jù)。函數(shù)所需參數(shù):函數(shù)所需參數(shù):*file為數(shù)據(jù)文件名。為數(shù)據(jù)文件名。成功讀取數(shù)據(jù),函數(shù)的返回值為成功讀取數(shù)據(jù),函數(shù)的返回值為0,數(shù)據(jù),數(shù)據(jù)文件不存在,返回文件不存在,返回-1;內(nèi)存出錯,返回;內(nèi)存出錯,返回1。short Kindex_4( ) 建立采用建立采用4結(jié)點等參元計算平面問題的變帶寬一結(jié)點等參元計算平面問題的變帶寬一維壓縮存儲的總剛矩陣的索引數(shù)組維壓縮存儲的總剛矩陣的索引數(shù)組F_K.i,即,即 總剛矩陣的主元素

9、總剛矩陣的主元素kii被壓縮存儲后,在被壓縮存儲后,在F_K.k中的位置。中的位置。 定義存儲總剛信息的結(jié)構(gòu)體變量定義存儲總剛信息的結(jié)構(gòu)體變量F_K,并計算,并計算出總剛矩陣出總剛矩陣F_K.k元素的個數(shù),并為之分配存元素的個數(shù),并為之分配存儲單元;儲單元; 函數(shù)需要的數(shù)據(jù):結(jié)點信息函數(shù)需要的數(shù)據(jù):結(jié)點信息F_X,單元信息,單元信息F_T,均為全局變量;均為全局變量; 返回總剛矩陣的最大半帶寬值,如果內(nèi)存出錯,返回總剛矩陣的最大半帶寬值,如果內(nèi)存出錯,則返回則返回0。void Ekm2d_4( ) 計算變帶寬一維壓縮存儲的總剛度矩陣計算變帶寬一維壓縮存儲的總剛度矩陣F_K.k; 所需數(shù)據(jù):結(jié)點

10、信息所需數(shù)據(jù):結(jié)點信息F_X, 單元信息單元信息F_T,截面信息,截面信息F_AI, 材料信息材料信息MAT,總剛索引信息,總剛索引信息F_K,均為全,均為全局變量;局變量; 需調(diào)用的函數(shù):需調(diào)用的函數(shù): void Evdt2d (double *d),計算彈性矩陣,計算彈性矩陣 d5 ; void Ek2002(double * xy,double *d, double *ek),計算計算4結(jié)點等參元的單元剛度矩陣結(jié)點等參元的單元剛度矩陣 ek8*8;void P_load_4(float *p) 計算結(jié)構(gòu)總的荷載向量計算結(jié)構(gòu)總的荷載向量 *p ; 所需數(shù)據(jù):結(jié)點信息所需數(shù)據(jù):結(jié)點信息F_X

11、, 單元信息單元信息F_T,荷載信息荷載信息F_P, 結(jié)構(gòu)自重,均為全局變量;結(jié)構(gòu)自重,均為全局變量; 需調(diào)用的函數(shù):需調(diào)用的函數(shù): void Pbd2002(double *xy, double *pxy, double * ep) ,計算單元自重引起的等效結(jié)點,計算單元自重引起的等效結(jié)點荷載;荷載;void void Zuv2d (struct (struct FE_BOUNDARY u,float FE_BOUNDARY u,float * *p)p) 根據(jù)邊界條件修改剛度方程,主元素乘大根據(jù)邊界條件修改剛度方程,主元素乘大數(shù)法數(shù)法 (主元素置主元素置1法法 );); * u: 記錄邊界

12、支座條件的結(jié)構(gòu)體變量;記錄邊界支座條件的結(jié)構(gòu)體變量; *p: 結(jié)構(gòu)總的的荷載向量結(jié)構(gòu)總的的荷載向量高斯法解方程組高斯法解方程組 int Solvc1(long *n, float *ak, long jn) ; Solvc1: 總剛矩陣三角分解總剛矩陣三角分解. ak=LU (Uji=Lij/Lii); 正確返回正確返回1;當主元素;當主元素 if kii = 0,返回,返回-i; void Solvc2(float *p, long *n, float *ak, int jn) Solvc2: 回代求解回代求解. ak 一維壓縮存儲的總剛矩陣一維壓縮存儲的總剛矩陣F_K.k. njn-總剛矩

13、陣索引數(shù)組;總剛矩陣索引數(shù)組; jn-總剛方程的階數(shù)總剛方程的階數(shù) pjn-荷載向量荷載向量,函數(shù)返回時,存放結(jié)點位移函數(shù)返回時,存放結(jié)點位移void Str2d_4(double *w,struct FE_STRESS *s) 計算所有單元高斯點的應力向量計算所有單元高斯點的應力向量F_S ; 所需數(shù)據(jù):結(jié)點位移信息所需數(shù)據(jù):結(jié)點位移信息*w, 單元信息單元信息F_T,節(jié)點信息節(jié)點信息,F_X,均為全局變量;,均為全局變量;*s,所有單,所有單元高斯點的應力向量;元高斯點的應力向量; 調(diào)用函數(shù):調(diào)用函數(shù): void Str2002(double *xu,double *d,double *p,double *sr) ,計算,計算4節(jié)點等參元節(jié)點等參元的單元高斯點應力向量的單元高斯點應力向量 。8. void Stn2d_4(double *w,struct FE_STRESS *s) 計算所有單元高斯點的應變向量計算所有單元高斯點的應變

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論