这是我根据 上的一些教程和手头教材总结的一个平面杆系有限元C++程序的框架,其中各部分模块的实现在我前面几篇文章中已经讨论过了,此处仅列出整个程序的总体思路。欢迎各位同学批评指正!
1 适用范围的确定
不同的有限元单元的模型对应着不同的刚度矩阵,不同的刚度矩阵会组装出不同的刚度方程,故程序能够组装出怎样的刚度方程,就决定了程序的适用范围。本程序的适用范围为平面框架结构的有限元计算,包括平面桁架、平面刚架及其组合。
2 程序输入
本程序不包含前处理模块,整个前处理( 格划分、边界条件、初始条件等)都是人工完成的,需要把前处理好的信息做成一个输入文档,然后用cin把数据读入程序中的各种结构体内(如,单元结构体pElem、节点结构体pNode、载荷结构体pLoad等等)。输入文档示例如下:
4 2 3 1 2 1
//总控数据:节点总数;受约束节点总数;单元总数;材料种类总数;截面种类总数;载荷总数。
1 0.0 6.0
1 0.0 0.0
1 12.0 0.0
1 12.0 6.0
//节点数据:节点类型 ;节点 x 坐标;节点 y 坐标。
0 -1 -1 -1
3 -1 -1 -1
//受约束节点数据:受约束节点 ;x 向约束情况;y 向约束情况;转角向约束情况。
1 1 0 0 0
1 1 2 1 0
1 2 3 0 0
//单元数据:单元类型 ;杆件单元始端节点 ;杆件单元终端节点 ;单元截面索引 ;单元材料索引
1.0 0.3 0.0001
//材料数据:弹性模量;泊松比;线膨胀系数。
0.5 0.0417 1.0
0.63 0.083 1.26
//截面数据:截面面积;截面惯性矩;截面高度。
2 1 -1.0 0 0 6.0 0.0 0.0
//载荷数据:载荷类型 ;载荷方向;载荷值;载荷作用的单元 ;载荷作用的节点 ;载荷位置或分布长
//度;梁上表面温度变化值;梁下表面温度变化值。
3 C++程序设计框图
4 程序输出
从上面的框图可知,程序计算结果为(全局、局部)节点力和节点位移,存储在对应的数组中(全局节点力存储在pLoadVect[]中,局部节点力存储在daEndInterForce[]中,节点位移存储在pDisp[]中),可以按照需要输出计算结果,本程序用cout输出文档形式的结果。进一步可以把计算结果导入到其他后处理软件中生成更加直观的图表。输出文档示例如下:
总控数据:
节点总数: 4
受约束节点数: 2
单元总数: 3
材料总数: 1
截面种类总数: 2
荷载总数: 1
======================================================
节点数据:
节点类型: X Y
1 0 6
1 0 0
1 12 0
1 12 6
受约束节点数据:
受约束节点 : X向特征数 Y向特征数 R向特征数
0 -1 -1 -1
3 -1 -1 -1
单元数据:
单元类型:始端节点 :终端节点 : 截面类型 材料索引
1 1 0 0 0
1 1 2 1 0
1 2 3 0 0
材料数据:
弹性模量: 泊松比 线胀系数
1 0.3 0.0001
截面几何特征:
横截面积 惯性矩 横截面高
0.5 0.0417 1
0.63 0.083 1.26
载荷数据:
载荷类型 载荷方向 载荷值 作用的单元 作用的节点 作用位置 温度T0 温度T1
2 1 -1 0 0 6 0 0
===============节 点 位 移=================
节点 x方向 Y方向 R方向
0 0.00e+000 0.00e+000 0.00e+000
1 8.47e+002 -5.13e+000 2.86e+001
2 8.24e+002 5.13e+000 9.67e+001
3 0.00e+000 0.00e+000 0.00e+000
==================杆 端 内 力 ==============================
单元 始端轴力 始端剪力 始端弯矩 终端轴力 终端剪力 终端弯矩
0 -0.427 1.236 -2.093 0.427 4.764 -8.491
1 1.236 0.427 2.093 -1.236 -0.427 3.036
2 0.427 -1.236 -3.036 -0.427 1.236 -4.380
=========================== 支 座 反 力 =====================================
支座节点 X向反力 Y向反力 R向反力
0 -4.764 0.427 -8.491
3 -1.236 -0.427 -4.380
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!