C语言程序设计刚架程序流程.ppt_第1页
C语言程序设计刚架程序流程.ppt_第2页
C语言程序设计刚架程序流程.ppt_第3页
C语言程序设计刚架程序流程.ppt_第4页
C语言程序设计刚架程序流程.ppt_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程序需要的主要数据,struct ND_COORD / 定义结构体类型 int n; /结点总数 float *x; / 结点坐标 ; / *x相当于 x2n; xn,yn.前n个为结点的x坐标,后n个为结点的y坐标。 struct ND_COORD F_X; / 定义结构体变量F_X ,来存放结点信息。可设为全局变量。 如*(F_X.x+i), *(F_X.x+n+i),代表结点i的x,y坐标。,程序需要的主要数据,struct FE_INFO / 定义结构体类型 int n; / 单元总数 int *t; / t2n 单元的节点编码 int *b; / bn 单元的截面编码 ; struct FE_INFO F_T; /* 定义结构体变量F_T ,来存放单元信息。可设为全局变量。 如第5单元的结点分别为F_T.t8,F_T.t9,截面编号为F_T.b4 */,struct FE_PKMATRIX /定义结构体类型 int n; / 自由度总数,即总刚方程的阶数 int *i; / in;总刚矩阵的索引数组,即 主元素在k中的位置 float *k; / kin-1+1 变半带宽一维压缩存储的总刚矩阵 ; struct FE_PKMATRIX F_K; /* 定义结构体变量F_X ,来存放总刚矩阵的信息。 如*(F_K.i+i),代表下标为i行主元素在压缩存储总刚F_K.k中的位置, nd=*(F_X.i+i+1)- *(F_K.i+i)代表下标为i行非0元素的个数。,struct FE_BOUNDARY /定义结构体类型 int n; / 约束总数或结点荷载数 int *node; / 约束对应的结点编号 int *attr; / 约束的方向值; 1-x方向; / 2-y方向,3转动方向 double *value; /沉降值或 荷载值 ; struct FE_BOUNDARY F_U,F_P; /* 定义结构体变量F_U,F_P ,分别来存放边界约束和结点荷载的信息。 */,struct FE_LOAD / 定义结构体类型 int n; / 非结点荷载总数 int *e; / en,荷载作用的单元编号 int *attr; /attrn, 荷载类型编号 double *f; /f3n,常数c,a,G。 ; struct FE_LOAD F_F; /* 定义结构体变量F_F ,来存放单元非结点荷载的信息。 */,struct FE_AREA_INTER / 定义结构体类型 int n; / 截面類型數 double *A; / 截面面积 double *I; / 截面惯性矩。 ; struct FE_AREA_INTER F_AI; /* 定义结构体变量F_AI ,来存放各类截面面积和惯性矩。 */,平面刚架静力计算程序流程图,平面刚架静力计算程序流程图,程序模块设计,int Readdata_2(char *file) 读取平面刚架有限元分析需要的所有数据,如结点信息、单元信息、截面信息、边界支座信息、荷载信息、材料信息等; 在此函数中定义全局变量F_X,F_T,F_U,F_P,F_AI,F_F,E0,并从文件中读取相应的数据。 函数所需参数:*file为数据文件名。 成功读取数据,函数的返回值为0,数据文件不存在,返回-1;内存出错,返回1。,int Kindex_2( ),建立采用2结点梁单元计算平面刚架的变带宽一维压缩存储的总刚矩阵的索引数组F_K.i,即 总刚矩阵的主元素kii被压缩存储后,在F_K.k中的位置。 记录总刚信息的结构体变量F_K在此定义,并计算出总刚矩阵F_K.k元素的个数,并为之分配存储单元; 函数需要的数据:结点信息F_X,单元信息F_T,均为全局变量; 返回总刚矩阵的最大半带宽值,如果内存出错,则返回0。,void Ekbeam_2( ),计算平面刚架变带宽一维压缩存储的总刚度矩阵F_K.k; 所需数据:结点信息F_X, 单元信息F_T,截面信息F_AI, 材料信息E0,总刚信息F_K,均为全局变量; 需调用的函数: void E_Proporty(int nb, float *x,double *d),计算截面相应的参数 d4 ,即杆长l,抗拉刚度EA/l、抗弯刚度EI/l、杆与整体坐标的夹角; void Ek1002(double *d, double *ek),计算2结点梁单元的单元坐标表示的单元刚度矩阵 ek6*6; void Coorchang(double arf, double *ek),把单元局部坐标的单元刚度ek66矩阵转换到整体坐标下;,void P_load_2(float *p),计算刚架总的荷载向量 *p ; 所需数据:结点信息F_X, 单元信息F_T,荷载信息F_P,F_F,均为全局变量; 需调用的函数: void P_Unode(int id,double *lap,double *d,double *ep),计算单元非结点荷载引起的等效结点荷载; void E_Proporty(int nb, float *x,double *d),计算截面相应的参数 d4 ,即杆长l,抗拉刚度EA/l、抗弯刚度EI/l、杆与整体坐标的夹角; void P_Guduan(int id,double *lap,double *pe);计算单元固定力向量;,void BoundProcess(struct FE_BOUNDARY u,float *p),根据边界条件修改刚度方程,主元素乘大数法 (主元素置1法 ); * u: 记录边界支座条件的结构体变量; *p: 结构总的的荷载向量,高斯法解方程组,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-总刚矩阵索引数组; jn-总刚方程的阶数 pjn-荷载向量,函数返回时,存放结点位移,void Ele_Force(float *force,float *p),计算所

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论