文档详情

有限元C++程序.doc

发布:2017-11-25约1.68万字共15页下载文档
文本预览下载声明
#include iostream.h #include fstream.h #include iomanip.h #include math.h class Q8 { public: int NN, NF, NE, KU, KV, KRX, KRY, KQ, LK; int JEW[9], JLL[17], JE[9][501], JD[3006], KPQ[3][50], JRX[50], JRY[50], JU[50], JV[50]; double H[3+1], D[3+1], U[3007], FF[17], FS[6][6][9], FC[6][6][9], FA[6][6][9], B[5][17], C[5][17], XO[1504], YO[1504], X[50],Y[50],SK[5000], PQ[5][50], RX[50], RY[50], US[50], VS[50],EK[137]; double PO, EO, RU, XC, XA, YC, YA, YN, QQ, VY, RPM; public: /** * calculate */ void calculate() { NF = NN + NN; //NN-节点个数 NF-节点位移(载荷)个数 //弹性矩阵[D] if(D[0]==0){ D[1] = EO / (1.0 - PO * PO); D[2] = D[1] * PO; D[3] = D[1] * (1.0 - PO) / 2; } if(D[0]==2){ D[1] = EO * (1.0 - PO) / (1.0 + PO) / (1.0 - PO - PO); D[2] = D[1] * PO / (1.0 - PO); D[3] = D[1] * (1.0 - PO - PO) / (1.0 - PO) / 2; } SKDD(); NCNA(); VY = RU * (3.1415926 * RPM / 30) / 9.80; if(H[0]==2){ H[1]=1; H[2]=1; H[3]=1; } if(H[0]==3){ H[1] = 5.0 / 9.0; H[2] = 8.0 / 9.0; H[3] = H[1]; } //初始化矩阵 for(int i=0;i=NF;i++){ U[i]=0; } for (i = 0; i =LK; i++) { SK[i]=0; } for (i = 1; i = NE; i++) { int m, l1, l2; for (int j = 1; j = 8; j++) { m = JE[j][i]; l1 = j + j; l2 = l1 - 1; JLL[l2] = m + m - 1; JLL[l1] = m + m; } FEKP(i); SKKE(); } RIGHT(); for (i = 1; i = KU; i++) { FIXD(2 * JU[i] - 1, US[i]); } if (KV != 0) { for (int j = 1; j =KV; j++) { FIXD(2 * JV[j], VS[j]); } } solve(); } /** * XYCA */ void XYCA(int i, int j,int n) { double R, S, F, D; int L; XC = 0; XA = 0; YC = 0; YA = 0; YN = 0;
显示全部
相似文档