370 likes | 529 Views
FEPG 中级培训 之 程序、数据和技巧. 讲师:. 本讲内容. FEPG 的元件程序介绍 FEPG 文件与 FORTRAN 文件 前后处理和数据结构 简单高级技巧. 有限元分析的过程. 几何造型和网格剖分. 单元计算 矩阵和向量的合成 代数方程组求解. 计算结果输出及其图形显示. FEPG 的五个元件程序. START BFT ---- B oundary F orce T ime E ---- E quation, E lement SOLV ---- SOLVE U. START 元件程序的功能. Start
E N D
FEPG中级培训 之 程序、数据和技巧 讲师:
本讲内容 • FEPG的元件程序介绍 • FEPG文件与FORTRAN文件 • 前后处理和数据结构 • 简单高级技巧
有限元分析的过程 几何造型和网格剖分 单元计算 矩阵和向量的合成 代数方程组求解 计算结果输出及其图形显示
FEPG的五个元件程序 • START • BFT ---- Boundary Force Time • E ---- Equation, Element • SOLV ---- SOLVE • U
START元件程序的功能 • Start • 给出每个节点的各个自由度与将来要形成的代数方程组的变量(即方程号)的对应关系。也就是说,哪个节点的那个自由度对应于方程组的哪个变量。 • 给出解的初值
BFT元件程序的功能 • BFT • 给出每一时刻解的边值,即指定位移和指定载荷 • 步长累加,更新计算时间 • 生成保存计算结果的命令文件post.bat
E 元件程序的功能 • E • 计算单元刚度矩阵、单元质量矩阵、单元载荷向量。并把他们由节点各自由度表示转换成由代数方程组的变量表示 • 处理边界约束条件,形成代数方程组的右端项
U元件程序的功能 • U • 把求解器求出的位移转化为各节点自由度的位移 • 其它后处理计算
新建FEPG项目的准备工作 • 方程表达式文件 • PDE/VDE文件 • FBC 文件(可选) • 算法文件 • NFE 文件 • GIO 文件 • GCN 文件
有限元文件与FOR程序 FEPG解决用户问题的主体程序流程
FEPG系统的前处理流程 • FEPG界面点击preproc,进入FEPG.GID界面 • 根据求解区域造型 • GID界面内, Data Problem type, 选择 fepg • Data->Condition, 赋边界条件,初值条件,材料数据等 • 进入Meshing菜单,选择结构或非结构网格,并进行划分 • Calculate Calculate • 退出GID,并保存。
数据结构的规定:PRE文件 • PRE文件是前处理的数据文件,由他给出有限元的数据结构 • 通过PRE文件,FEPG系统生成与前后处理子系统接口的接口文件 • PRE文件要求给出求解坐标系名称,物理场名称,场的单元类型名称,单元的材料参数等
PRE文件介绍 • Pre文件用来给出有限元问题的所有输入数据信息 • Pre文件由系统根据gcn, gio, pde文件自动生成,但内容常需要修改 • 第一段给出坐标系以及各个物理场的总体信息 • 第二段给出各个物理场的单元类型信息及单元的材料参数名。关键字 element • 第三段信息给出各个物理场单元的材料参数值。关键字 matedata • 段落之间用#分隔
FEPG的输入数据结构 节点坐标数据 coor0文件 节点规格数据 id0文件 节点指定位移和节点载荷数据 disp0文件 节点初始位移数据 disp1文件 节点初始速度数据 disp2文件 输入数据 节点初始加速度数据 disp3文件 第1种材料单元节点信息数据 第1种材料单元材料性质数据 elem0文件 单元信息表格 第n种材料单元节点信息数据 第n种材料单元材料性质数据
一个正方形物体长为1,导热系数是0.044。上下绝热,左边温度维持在0,右边维持在100,求温度分布。一个正方形物体长为1,导热系数是0.044。上下绝热,左边温度维持在0,右边维持在100,求温度分布。 从一个例子说起 0 100 绝热 • 该问题的偏微分方程如下 其中热传导系数 k=0.044;内热源密度q =0
COOR0 • 坐标数据 • 二进制文件 • 结构 • 举例 网格节点总数 节点的坐标个数 每个节点的坐标值 9 2 x1 y1 x2 y2 ……
ID0 • 每个节点上自由度的ID -1: 有约束,针对第一类边界条件 0 : 节点上没有自由度 1 : 节点上有载荷 • 结构 • 举例 节点总数 每个节点上的自由度个数 每个节点上自由度的ID 9 1 -1 -1 -1 1 1 1 -1 -1 -1
DISP0 • 依赖于 ID0 -1: 给出指定的第一类边值 0 : 0 1 : 给出指定的载荷值 • 结构 • 举例 节点总数 每个节点上的自由度个数 节点自由度对应的指定位移或载荷 9 1 0 0 0 0 0 0 100.0 100.0 100.0
DISP1, DISP2, DISP3 • 给出节点自由度对应的初值 • 分别为位移、速度、加速度 • 结构 • 举例 节点总数 每个节点的自由度个数 每节点自由度对应的初值 9 1 0 0 0 0 0 0 0 0 0
ELEM0 • 每个单元的单元信息 • 节点编号 • 材料数据
ELEM0 — 结构 单元总数 每单元节点数+1 组成每个单元的节点的编号 材料的编号 …… 材料种类总数 材料参数的个数 材料参数值
ELEM0 – 举例 4 5 5 4 1 2 1 8 7 4 5 1 9 8 5 6 1 6 5 3 2 1 1 2 0.044 0.0
FEPG系统的后处理 • 后处理就是计算结果的显示 • 必须填写%1.pos文件,然后FEPG.GID根据pos文件的规定读入计算结果并绘制相应的各种图形 • 有了正确的pos文件后,fepg界面内点击postproc进入FEPG.GID界面。然后点击GID的postprocess,读入计算结果并显示图形
POS文件的编写 • pos文件主要用于后处理结果显示,其内容为 • 第一行的数表示显示结果的步数,后面各行表示读取结果文件中的那些内容,unod为存放结果的文件名,u v w表示此结果文件中的自由度名称,1 2 3表示三个自由度的结果都读取,如果只需要读取某一个自由度的结果,则只需写上此自由度的序号即可,如只要显示w自由度的结果,则只需写3即可。 100 unodu v w 1 2 3 unodbsxx syy szz sxy syz szx 1 2 3 unodb sxx syy szz sxy syz szx 4 5 6
run菜单 • 分local和server两种选择 • Local • del, dir, prt • Server • upload, gio, pde, ges, vde
几个重要的说明:客户端配置服务器及连接服务器几个重要的说明:客户端配置服务器及连接服务器 • 进入客户端时,首先需检查服务器地址及端口是否配置正确 • 编写文件及生成程序时,请注意保持与服务端的网络连接。如果中间意外断开,请点击 File->retrieve
实现两种材料的方法 I • Step 1:生成程序 • Step 2: 修改.pre文件的matedata段 • Step 3: 进入FEPG.GID进行前处理
实现两种材料的方法 II • Step 1:编写基本文件pde nfe gcn gio • Step 2: 生成pre文件 genpre %1 • Step 3: 修改.pre文件的matedata段 • Step 4: 生成程序 • Step 5: 进入FEPG.GID进行前处理
注意事项 • 把不同的材料施加到正确的区域上去 • PDE文件中如果有imate指定的材料号,那么GID附加材料时一定要注意对应 • 如果pre文件未增加材料,则GID中不可出现大于1的材料编号
实现两种单元的方法 • Step 1: 编写基本文件pde nfe gcn gio • Step 2: 生成pre文件 genpre %1 • Step 3: 修改pre文件 • Step 4: 生成程序 gio %1 • Step 5: 进入前处理 • GID中赋材料时要注意赋给与其相应的单元上 • PDE文件中SHAP行必须采用参数化形式
实现两种单元的方法 • PRE文件中需要修改下面几个地方 • 单元类型的数目 • 单元子程序名称,节点数目 • MATEDATA段材料参数
实现瞬变边界 • Step 1: 生成程序 • Step 2: 修改bft.for中的bound函数 • Step 3: 点击右键或在命令行执行 fl32 bft.for
实现瞬态边界: bound函数 real*8 function bound(r,t,j,nf) implicit real*8 (a-h,o-z) dimension r(2) distance=r(1)-1.0d0 if(dabs(distance).lt.1.0d-5) bound=100*t cbound=t*t+r(1)*r(1)+r(2)*r(2) c write(*,*) 'bound =',bound return end r:坐标 t:当前时间 j:自由度的序号 nf:gcn文件中bft后的场序号
实例:动态边界的热固耦合 • 两种(以上)单元 • 如 : 三角形+四边形 • 瞬态边界 • 两种材料