平面应力应变有限元软件开发软件工程.doc
文本预览下载声明
“平面应力/应变有限元软件开发”基本要求:
以文件的形式输入有限元分析数据
采用三角形单元
能够各种分析平面问题
输出单元的变形,应变,应力
有限元的求解步骤:
离散化,划分网格,准备数据
计算单元刚度矩阵
3. 组装总体刚度矩阵
4. 将载荷移置到节点上,并形成载荷向量{R}
[K] {δ} = {R}
5. 边界条件处理
6. 求解线性方程组以得到节点的位移分量
7. 计算单元应变,单元应力
数据流图:0层
图1
图2
图2.1
结构图:
1. 区分有效(逻辑)输入、有效(逻辑)输出和中心变换部分
2. 进行一级分解,设计系统模块结构的顶层和第一层
3. 进行二级分解,设计输入、中心变换、输出部分的中、下层模块
详细设计:
例如:
模块名称:计算D矩阵(DMATRIX)
输入:(1)问题类型IPLNAX(1—平面应力 2—平面应变)
(2)杨氏模量YOUNG
(3)泊松比POISSON
输出:D矩阵 D(4,4)
公式:
平面应力问题
μ—泊松比 E—弹性模量
平面应变:E→ E/(1-μ2) ,μ →μ/(1-μ)
程序设计:
void CalDMatrix(int iplnax, double young, double poisson, double d[3][3])
{
int i,j;
for(i=0; i3; i++)
for(j=0; j3; j++)
d[i][j] = 0.0;
double u,e;
u = poisson;
e = young;
if(iplnax == 2)
{
e = e / ( 1 – u*u);
u = u / (1 – u);
}
d[0][0] = 1; d[1][1] = 1; d[2][2]=(1-u)/2;
d[0][1] = u; d[1][0] =u;
double dd;
dd = e / (1 – u*u)
for(i=0; i3; i++)
for(j=0; j3; j++)
d[i][j] = dd * d[i][j];
}
读入有限元输入数据 1
有限元分析计算 2
输出限元结果 3
输出文件
输入文件
读入有限元数据 .1
总体刚度矩阵 .1
检验数据 .2
边界条件的处理 .2
求解方程组的解,得到各个节点的位移 .3
计算单元的应变、应力 .4
输入文件
输出文件
输出限元结果 3
有限元分析计算 2
读入有限元输入数据 1
平面应力/应变有限元分析主模块
有限元数据输入模块
有限元结果输出模块
有限元分析模块
有限元分析
有限元结果输出
有限元数据输入
平面应力/应变有限元分析主模块
读入控制参数、网格单元数据、材料参数:
计算半带宽、确定数组大小
输出节点位移,单元应变,单元应力
计算单元应变,应力
检验
总体刚度矩阵合成
边界条件处理
方程组求解
单元刚度矩阵
B矩阵
D矩阵
计算半带宽,数组大小 .3
组装整体刚度矩阵 .2
单元刚度矩阵 .1
显示全部