Deform 二次开发步骤

合集下载

DEFORM二次开发各模块介绍

DEFORM二次开发各模块介绍

材料本构模型是实现计算机数值模拟的前提条件之一,【关于计算机数值模拟技术的发展介绍】本论文所采用的有限元模拟软件DEFORM-3D进行材料的微观组织模拟介绍,DEFORM-3D 有限元软件是集成了原材料、成形、热处理和机加工为一体的软件,可用于分析各种塑性体积成形过程中金属流动以及材料的应力、应变和温度等物理场量的分布变化情况,同时提供了材料的流动、模具间的填充、成型过程的载荷量、模具所受应力、材料的纤维流向、成型过程的坯料形成、材料的韧性断裂以及金属微观组织结构等信息。

为了实现在金属成形工艺模拟过程中进行微观组织演化的定量预测,所使用的模拟软件必须有包含微观组织变化的本构模型和专门的微观组织演化分析模块。

当前国际上虽然有多个知名商业有限元软件流行,但是它们都不具备微观组织演化的预测功能;或者软件具有微观组织变化的本构模型,但仍需使用者输入材料的参数方可进行,而软件不提供材料的参数;故很多软件都淡化此微观组织演化分析模块。

庆幸的是多数商业软件都为二次开发设置了用户子程序功能,通过编制用户子程序就能实现对微观组织演化的预测功能。

用户自定义本构模型的输入方法在当今的科学研究方向中,新材料的开发占据了一个重要的角色。

不同的材料工作者开发了不同的新材料,得到了不同的本构模型,需要对这种新材料进行模拟,为了满足这种需求,DEFORM提供了两种用户自定义本构模型的输入方法:(1)以函数形式输入本构模型。

DEFORM提供了若干常用本构模型,如图4.6所示。

若用户的本构模型与系统提供的本构模型一致,则可直接输入其相关系数即可;若用户的本构模型在系统中不存在,则可通过二次开发编程的方式将用户的本构模型加入到DEFORM中,然后在图4.6中选择“User routine”并输入所调用的本构模型子程序的编号。

(2)以数据形式输入本构模型。

DEFORM还允许通过输入数据的方式来定义材料的塑性流动行为。

具体方法是根据材料的真应力一真应变曲线,取若干个数据点,逐个输入该材料在某个温度、某个变形速率和某个真应变下的真应力。

Deform详细教程

Deform详细教程
材料热物理性质
输入材料的热物理性质,如热导率、比热容、热膨胀系数 等,以便在模拟过程中考虑温度对材料性能的影响。
材料失效准则
根据实际需要,选择适当的材料失效准则,如最大主应力 准则、等效塑性应变准则等,并设置相应的失效参数。
边界条件设置
几何边界条件
定义模型的几何形状、尺寸和边 界类型,如固定边界、自由边界 、对称边界等。
04 Deform软件基本操作
用户界面介绍
主界面
包括菜单栏、工具栏、模型树、属性窗口等,提供全 面的操作功能和视图展示。
图形界面
支持多种图形显示模式,如实体、网格、轮廓等,方 便用户进行模型分析和后处理。
自定义界面
用户可根据个人习惯自定义界面布局,提高工作效率 。
基本操作命令
鼠标操作
通过鼠标左键选择、拖拽、旋转等操作,实现模型的交互操作。
未来发展趋势预测
A
随着计算机技术的不断发展,有限元分析软件 的计算能力和效率将不断提高,使得更大规模 、更复杂的仿真分析成为可能。
人工智能、机器学习等技术的引入,将为 有限元分析提供更强大的数据处理和挖掘 能力,进一步提高分析的精度和效率。
B
C
多物理场耦合分析将成为未来发展的重要方 向,Deform等软件将不断完善多物理场分 析功能,满足更广泛的应用需求。
配置环境变量和启动软件
启动软件 在完成安装和环境变量配置后,可以通过以下方式启动Deform软件 1. 点击桌面或开始菜单中的Deform图标。
配置环境变量和启动软件
2. 在命令行中输入Deform的可执行 文件名并回车。
3. 如果设置了文件关联,可以直接双 击与Deform关联的文件类型来启动 软件并打开相应文件。

DEFORM基本操作指南

DEFORM基本操作指南
场试验成本;
2、提高模具设计效率,降低生产和材料成 本;
3、缩短新产品得研究开发周期。
DEFORM-3DD就E是F一O套R基M于-工3D艺模简拟介系统得有限元
系统(FEM),专门设计用于分析各种金属成形过程中得三 维(3D)流动,提供极有价值得工艺分析数据,及有关成形 过程中得材料和温度得流动。
DEFORM-3D可以应用于金属成形得冷加工、热加工等 工
UG软件建模完成后可以直接以、stl格式形 式文件导出。
二、网格划分
DEFORM软件就是有限元系统(FEM),所 以必须对所分析得工件进行网格划分。
在DEFORM-3D中,如果用其自身带得网格 剖分程序,只能划分四面体单元,这主要就是为了 考虑网格重划分时得方便和快捷。但就是她也接
收 外部程序所生成得六面体(砖块)网格。网格划 分可以控制网格得密度,使网格得数量进一步减 少,但不至于在变形剧烈得部位产生严重得网格 畸变。
二、导入毛坯几何文件
1、在前处理得物体操作窗口中点击按钮
(Geometry) ,然后再选

(Import Geometry),选择在CAD中或其她CAE软件
中得造型文件。(本例中选择安装目录下DEFORM3D\V6、1\Labs得
Block_Billet、STL。)
2、在DEFORM3D v6、1得版
温度得方式为在物体窗口中选中物体Workpiece,点击General按钮,然
后点击按钮
在弹出得输入物体温度窗口中,输入所需
温度。)
七、设置材料
对于那些非刚性材料和考虑 传热影响得刚体(Rigid)材料, 必须按需要设置材料得属性。
1、在物体列表窗口中选择Workpiec
2、在前处理控制窗口中,点击

基于DEFORM3D二次开发的塑性成形过程组织演化模拟

基于DEFORM3D二次开发的塑性成形过程组织演化模拟

与微观耦合 ! 不具 备 微 观 组 织 演 化 的 模 拟 和 预 测 功
!! 引 ! 言
高温成形过 程 中 ! 金 属 将 发 生 动 态 和 静 态 再 结 晶 ! 产生新的晶 粒 " 这 种 微 观 组 织 的 演 变 在 很 大 程 度上决定 了 产 品 的 宏 观 力 学 性 能
’ !! "(
能 ! 或者只具有 简 单 的 预 测 能 力 ! 其 模 型 并 不 一 定 适合于所 考 察 的 问 题 " 本 文 通 过 对 ] C _ 7 > ? O ] 二次 开发 ! 将适合于材 料 的 组 织 模 型 与 成 形 的 热 力 耦 合 计算结合 ! 模拟热成形过程中的组织演化 "
"利用热加工
" -! 如果等 效 应 变 大 于 临 界 应 变 " 则 开 始 计 算 动 态 再结晶过程 # 当动态再结晶分数 F ## 9 W $ 时"则 直
接转为晶粒长大 的 有 关 计 算 ! 把 静 态 再 结 晶 模 型 与 热传导有限元耦合 " 可以分析卸载后的静态再结晶 ! ] C _ 7 > ? O ] 是由 / 0 2 公司开发的一个体积成 形有限元工艺模 拟 专 用 商 业 软 件 " 其 用 户 定 义 子 程 序的代码储存在 M C __ : Z > 9 _中 " 有 限 元 主 程 序 通 过 调用该文件中的 子 程 序 " 可 以 计 算 出 用 户 自 定 义 变 量的值 ! 所以关 键 问 题 在 于 该 子 程 序 的 编 写 ! 其 中 ( / )P/ E 子程序包含了 有 限 元 计 算 中 所 有 的 变 量 ! 通过这个用户 子 程 序 " 可 以 修 改 所 有 这 些 变 量 ! 该 子程序申明如下 $ / ( R ) ’(0 1 * 4 % ( / )P/ E ) F" ] ) F" () F" 0 4P." ] 0 S 万方数据 " " " " " P. ) F + ) F R 4 / 0 / 4 4 . / 0 4 . /"

Deform-3d热处理模拟操作全解

Deform-3d热处理模拟操作全解

Deform-3d热处理模拟操作热处理工艺在机械制造中占有十分重要的地位。

随着机械制造现代化和热处理质量管理现代化的发展,对热处理工艺提出了更高的要求。

热处理工艺过程由于受到加热方式、冷却方式、加热温度、冷却温度、加热时间、冷却时间等影响,金属内部的组织也会发生不同的变化,因此是个十分复杂的过程,同时工艺参数的差异,也会造成热处理加工对象硬度过高过低、硬度不均匀等现象。

Deform-3d软件提供一种热处理模拟模块,可以帮助热处理工艺员,通过有限元数值模拟来获得正确的热处理参数,从而来指导热处理生产实际。

减少批量报废的质量事故发生。

热处理模拟,涉及到热应力变形、热扩散和相变等方面,因此计算很复杂,软件采用牛顿迭代法,即牛顿-拉夫逊法进行求解。

它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。

多数方程不存在求根公式,因此求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要。

方法使用函数f(x)的泰勒级数的前面几项来寻找方程f(x) = 0的根。

牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程f(x) = 0的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根等。

但由于目前Deform-3d软件的材料库只带有45钢、15NiCr13和GCr15等三种材料模型,而且受到相变模型的局限,因此只能做淬火和渗碳淬火分析,更多分析需要进行二次开发。

本例以45钢热处理淬火工艺的模拟过程为例,通过应用Deform-3d 热处理模块,让读者基本了解热处理工艺过程有限元模拟的基本方法与步骤。

1 、问题设置点击“文档”(File)或“新问题”(New problem),创建新问题。

在弹出的图框中,选择“热处理导向”(heat treatment wizard),见图1。

sgniht图1 设置新问题2、初始化设置完成问题设置后,进入前处理设置界面。

首先修改公英制,将默认的英制t h i ng si nt he i rb ei n ga re go od fo rs (English )修改成公制(SI ),同时选中“形变”(Deformation )、“扩散”(Diffusion)和“相变”(Phase transformation),见图2。

deform2D手册_下

deform2D手册_下

11.热传导问题二次计算主要纲目:11.1打开旧问题11.2加载数据库11.3设置模拟控制和边界条件11.4写数据库11.5继续模拟11.6后处理11.6.1点轨迹捕捉11.7退出DEFORM/2D本章使用的图标阴影等值线图测量工具图标放大窗口11.热传导问题二次计算11.1打开-问题转向目录HTX并,键入DEFORM2,按回车运行DEFORM -2D,系统,单击Pre-Processor按钮进入前处理。

11.2加载数据库要对一个老问题继续进行模拟,应选择已有数据库中的最后一步作为重新计算模拟的第一步。

Pre-Processor打开如下选择提示对话框。

在上面信息窗口中,单击OK按钮加载数据库。

接着显示步数列表窗口。

由于240步是数据库中的最后一步,所以点选240,单击OK按钮,把从该步起的数据输入到前处理中。

图11.1 - Select Database Step 窗口11.3设置模拟控制参数和边界条件单击Simulation Controls按钮,打开SIMULATION CONTROLS窗口。

接着单击Stopping Step按钮,程序会自动设置Starting Step Number(NSTART)为-240,设置Number of Simulation Steps (NSTEP)为60,Step Increment to Save (STPINC)为4,改变Time per Step (DTMAX)为1秒。

完成后单击OK按钮。

单击Processing Conditions按钮,打开其窗口,设置Environment Temperature(ENVTMP) 为68,并单击OK按钮,最后单击OK按钮退出SIMULA TION CONTROLS窗口。

重新设置工件的边界条件来模拟在空气中冷确的过程,这时工件的所有表面均暴露在环境中[前例中仅部分与环境有热交换],故而需初始化边界条件来重新设置(图11.2)。

DEFORM-3D_v6.1基本操作指南

DEFORM-3D_v6.1基本操作指南

在模拟控制窗口中的main选项下可以设臵: 1、单位制 1)、SI:国际单位制 2)、English:英制 注:deform软件允许用户调入模型后再设臵单位。
2、设置模拟方式
主要有1)、拉格朗日增量模拟方式; 2)、稳态机加工模拟方式; 3)、稳态挤压加工模拟方式; 注:一般模拟问题应该选择增量模拟方式,如果用户模 拟的是车削或拉伸过程,并且使用欧拉求解方法,则 选用稳态模拟方式。 注:求解方式的设定在 菜单下设置。典型的模 拟一般在默认的情况下便可计算的很好。
实例操作一——锻压模拟
1.双击桌面DEFORM-3D图标,进入DEFORM-3D的主窗口。 2.File— New Problem或在主窗口点击如图所示按钮 。 3.在接着弹出的窗口中默认进入普通前处理(Deform 3D-preprocessor)。 4.接下来在弹出的窗口中用第四个选 项“Other Place”,选择工作目录 然后点击“Next”。 5.在下一个窗口中输入题目的名称 (Problem name)BLOCK点击Finish。
前处理操作窗口由图形显示窗口、物体参数输入窗口、 物体显示及选
图形显示窗口 物体参数输入窗口
一、设置模拟控制方式及模拟名称 1.点击按钮 进入模拟控制参数设臵窗口。 2.在Simulation Title一栏中把标题改为BLOCK。 3.设臵Units为English,勾选Deformation选项。 4.点击OK按钮,返回到前处理操作窗口。
.stl格式文件的生成
Pore软件建模完成后以.stl格式保存副本, 然后 将“偏差控制”中的“弦高”和 “角度控制”两个参数设为“0”后便可生 成。 UG软件建模完成后可以直接以.stl格式形式 文件导出。
二、网格划分

Deform 二次开发步骤

Deform 二次开发步骤

微观组织模拟:模拟步骤Deform3D二次开发步骤为了在金属成形工艺模拟过程中进行微观组织演化的定量预测,所使用的模拟软件必须有包含微观组织变化的本构模型和专门的微观组织演化分析模块。

当前国际上虽然有多个知名商业软件流行,但是它们都不具备微观组织演化的预测功能。

庆幸的是多数商业软件都为二次开发设置了用户子程序功能,通过用户子程序,用户就能根据自己的需要增加自己的微观组织预测功能。

为了使DEFORM3D软件具有微观组织演化预测功能,本研究尝试将包含动态再结晶的热刚一粘塑性材料本构模型植入到DEFORM3D中,并在模拟结果中能够显示晶粒度等用户变量在变形体内的分布。

在研究出具体开发步骤前,必须要对Defom 中的程序有所深入了解。

一、DEFORM3D二次开发基础理论1、用户子程序结构本研究的DEFORM3D二次开发涉及到的子程序有:USRMSH、USRMTR、UFLOW、USRUPD(含USR和CHAZHI)。

(1)可以改变几乎所有变量的子程序(USRMSH)子程序功能:该子程序包含了有限元计算中所有的全局变量,通过这个用户子程序,可以修改所有这些变量。

但这些全局变量的改变将直接影响有限元的计算,处理不当就会使整个程序不能正常进行。

在DEF0RM3D子程序功能中,所有的用户变量必须在USRUPD子程序中定义。

本文的用户子程序中共定义了18个用户单元变量。

各用户变量的含义如列表所示。

该子程序用于某些必要数据的获取和存储流程图如下图所示:USRMSH子程序流程图(2)流动应力子程序(USRMTR、UFLOW)SUBROUTINEUSRMTR(NPTRTN,YS,YPS,FIP,TEPS,EFEPS,TEMP) SUBROUTINEUFLOW(YS,YPS,FIP,TEPS,EFEPS,TEMP)子程序的变量含义:NPTRTN:应力模型编号;YS:流动应力;YPS:流动应力对等效应变的导数;FIP:流动应力对等效应变速率的导数;TEPS:等效应变;EFEPS:等效应变;TEMP:温度。

proe二次开发教程

proe二次开发教程

proe二次开发教程——手把手教你如何二次开发本实例是针对proe4.0在VS2005环境下的开发,对于vs2003以上版本的开发本例均适用,本例从开始的打开vs2005软件开始讲解,一步不漏,并加入适当的解释和必要的说明,相信照着做完之后应该没有不成功的了!注:软件安装注意事项:proe的安装目录不能有空格,比如:“D:\Program Files\proeWildfire 4.0”是不对的,运行的时候会出错,要把路径中的空格去掉,如“D:\proeWildfire4.0”一、配置相关信息:打开VS2005,选择工具——》选项,在“项目和解决方案”中选择“VC++目录”,在“显示一下内容的目录”中选择“包含文件”,加入以下文件:D:\proeWildfire4.0\protoolkit\includesD:\proeWildfire4.0\protoolkit\protk_appls\includesD:\proeWildfire4.0\prodevelop\includes在“显示一下内容的目录”中选择“库文件”,加入以下文件:D:\proeWildfire4.0\protoolkit\i486_nt\objD:\proeWildfire4.0\prodevelop\i486_nt\obj注:这是开始前的环境配置,一次配置之后永久生效,以后再新建项目就不需要再配置了二、新建项目,进行项目设置:文件——》新建——》项目:选择MFC DLL 模板,输入项目名称:确定后点完成,项目生成后选择项目——》属性,进行属性设置:在test(本例的项目名称)属性页中选择配置属性——》连接器——》输入,在附加依赖项里加入:wsock32.libmpr.libpsapi.libprotk_dllmd.lib注:对于不同的环境附加依赖项是不同的,以上是VS2005版本的开发软件附加依赖项,如果是VC++6.0则是“protk_dll.lib protoolkit.lib mpr.lib wsock32.lib ”,同时还要加入忽略库“msvcrt.lib”,还要选择“强制输出”,否则程序会因为一些警告终止编译。

deform 二次开发

deform 二次开发

DEFORM二次开发的一点小心得!前一段时间闲着没事,看了DEFORM的help文件.和众位兄弟交流一下.||仿真|设计|有限元|虚拟仪器1d8S"Q!x0~9m!~.Q5U6{9^ 用户子程序实现过程:第一步:所需文件准备:把DEF_SIM目录下的def_usr.f ,DEF_SIM_USR_ABsoft70.gui , DEF_SIM_P4_USR_ABsoft70.gui ,DEF_SIM_P4_USR_LIB.lib , DEF_SIM_USR_LIB.lib和lib目录下的所有.lib 文件拷到工作目录下。

备份DEF_SIM.exe ,DEF_SIM_P4.exe两个文件。

第二步:编写源程序。

对于新手可以使用模版自带的子程序,对于材料流动应力子程序模版里头本身就自带有一个,所以可以不需要自己编写。

(我就利用过自带的作过模拟,把前面的常数设置为10和100分别模拟)仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fl uent,CFD,CAE,CAD,CAM(k/b8|0^9b)y第三步:用absoft7.0或以上版本打开DEF_SIM_USR_ABsoft70.gui 文档,指定好library files,用工作目录下的lib文件来替换原来默认的lib 文件,上述做完后直接点build就ok了,自动生成了DEF_SIM.exe。

重复上面的过程打开DEF_SIM_P4_USR_ABsoft70.gui 文档生成DEF_SIM_P4.exe。

第三步:用生成的DEF_SIM.exe ,DEF_SIM_P4.exe替换原来的这两个文件。

第四步,运行模型。

对于流动应力子程序,只要在material那里选择子程序就ok了。

仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fl uent8]0P&E B,L+{&Z W%?/b注:3D中必须是DEF_SIM.exe,而DEF_SIM—P4.exe不好!(我也不知道原因,师兄是这么说的!)8]$M*q)v3V;V仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fl uent,CFD,CAE,CAD,CAM#d1I1k6D0F&n"r4j还有一个问题,关于DEFORM的text运行模式.在安装目录下面,有如下几个需要了解的文件:<1>DEF_PRE.EXE;<2>DEF_ARM_DEF_PRE.EXE这是前处理,DOS界面输入前处理参数设置,记录每次设置时的操作,按一定格式记录在记事本上面,这个很重要,二次开发可能需要这个文件.具体参见help.DEF_ARM_ 这是运行命令.具体格式见help.SimWe仿真论坛5O+[7_:v$x7~;?,i6e3q下面是关键:通过fortran子程序调用DEFORM.具体如下.我用的是visual fortran6.6.仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fl uent,CFD,CAE,CAD,CAM b/O#G3N!D3G1_:c7x5}9v'Eresult=system('E:\DEFORM3D\V5_0\DEF_PRE.EXE')(启动前处理,弹出DEF_PRE.EXE界面)3A;}%^5}/q3Iresult=system('E:\DEFORM3D\V5_0\DEF_PRE.EXE<INI.TXT')(迚行前处理参数设置,INI.TXT是记录每次设置时的操作命令流),譬如一个简单的操作命令流:5Y+M3d$x;C<CR>"m%e'o&V2O!b%l2SimWe仿真论坛4j-v-M-a(l9A1仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fl uent/c*W(t2h!~ @$N GXXXX.KEY (key文件,需要copy到你的子程序目录下)<CR>E||仿真|设计|有限元|虚拟仪器+P(E;u'r5H8r%}7仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fl uent,CFD,CAE,CAD,CAM0u'n*V&U.w,S'C2仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fl uent,CFD,CAE,CAD,CAM!K*i4n8l0jXXXX.DB(生成DB文件)||仿真|设计|有限元|虚拟仪器$e(W'V%d.G*T-n<CR>E:z;P'_/`9E RY<CR>result=system('E:\DEFORM3D\V5_0\DEF_ARM_ XXXX B')(运行DB文件,XXXX为文件名,B表示batch模式运行)仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fl uent,CFD,CAE,CAD,CAM B&d5~0X1@1D)J.\*~注意运行过程中,有可能生成临时文件,如FOR003等,会影响模拟迚行,可通过fortran命令open和write操作清除.以上可以实现一些特殊的操作.如运动子程序等.上述即是我的一点小体会.很多我也不是很懂,自己的课题也不是DEFORM二次开发,也不专长编程.呵呵,希望对大家有所帮助!仿真分析,有限元,模拟,Re:请问能不能帖个自己二次开发加本构方程的例子这是我尝试过的关于流动应力的二次开发,希望能给没有做过二次开发的朋友一点经验~~~现在要好好研究二次开发和有限元软件的核心机制了~~~4S"]!F$i7W"E$S+u)e共同迚步~~~!E,]*w"f6y/W'u+Y(s-e+N9|.Bprogram USRMTRreal YS,TEPS,EFEPS,TEM仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fl uent,CFD,CAE,CAD,CAM%[,L9o#s(`(|)D1Hread (*,*,*)TEPS,EFEPS,TEM 仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fl uent,CFD,CAE,CAD,CAM$P#]2R3L;T!z"m)F4[YS=123.5237-1.238956*TEM+3.8584*LOG10(EFEPS)+6.7852*TEPS-1.29*TEM*TEPS+52.895*LOG10(EFEPS)*TEPS+0.00088442*TEM*TE M"^/}-p&S!r7?"t'L/@Print *,YSENDSimWe仿真论坛&u%B;c f(k0f'G.m$A6r相信看了这个程序后,大家对二次开发肯定有个初步的了解了~||仿真|设计|有限元|虚拟仪器(`5Q4n0s;H3u8O7e5T呵~用户子程序具体实现心得结合论坛上各位大虾的经验和自带帮助,前段时间动手试了一下用户子程序的实现过程,现将自己的一些体会与大家共享,相信对做二次开发的新手有用用户子程序实现过程:第一步:所需文件准备:把DEF_SIM目录下的def_usr.f ,DEF_SIM_USR_ABsoft70.gui , DEF_SIM_P4_USR_ABsoft70.gui ,DEF_SIM_P4_USR_LIB.lib , DEF_SIM_USR_LIB.lib和lib目录下的所有.lib 文件拷到工作目录下。

DEFORM二次开发帮助文件

DEFORM二次开发帮助文件

Chapter 6: User RoutinesThis chapter explains the various user routines available in the DEFORM system for both the FEM engine and the post-processor. Examples on how to use each type of routine, how to compile the code, and how to run the modified FEM engine and post-processor are also covered.In FEM engine user defined routines can be used for many different purposes during a simulation. Currently user routines exist for flow stress definition, movement control, calculation of user nodal values (USRNOD), calculation of user element values (USRELM), damage models and many other specialized needs. In thepost-processor, user defined post-processing routines can be used to calculate field variables using the steps stored in the database. To implement the user routines user must have a FORTRAN compiler installed on the system where DEFORM system is running.User-Defined FEM RoutinesUser-Defined FEM Routines are FORTRAN subroutines in which the user can change internal routines within the DEFORM FEM engine to achieve very specialized functions within DEFORM. These subroutines can then be compiled and linked to provide object code to generate a custom built FEM engine. The user subroutines are grouped in to different fortran source files based on their functionality. These are text files containing all the available FORTRAN subroutines including all the common blocks with all the variables explained in comments. To compile this file, run the script file DEF_ (on unix), select the routine (fem or user defined post) you would like build, and select the platform (like hp, linux etc..) for which you would like to build for. At this point, the FORTRAN files will be compiled and liked to the object code named DEF_SIM.OBJ (on unix). This will then generate a new FEM engine, named DEF_SIM.EXE. As shown in Figure 6.1.b a similar structure has been provided for PC environment as well. This whole process is shown in Figure 6.1 for unix and PC environments.Currently user routines exist for flow stress definition, movement control, calculation of nodal values (USRNOD), calculation of element values (USRELM), and for other models. For example, there are many different methods for a user to control the movement of a rigid body within DEFORM, e.g. constant velocity, mechanical press, hammer press movement, speed as a function of time. However, there are some cases where a slightly more specialized movement control is required, such as movement based on variation of state variables of the workpiece. This can be performed using user-routines since these variables are available when the movement of the rigid die is calculated.Figure 6.1a: Description on how to compile/link a new FEM engine on UNIXFigure 6.1b: Description on how to compile/link a new FEM engine on PCOptions for compiling on Linux Kernels and unix machines(use the command 'uname -a' in the command window to get these details)The user routine compilation script DEF_ needs two arguments, first argument requires themachine/operating system name and the second argument requires output type (1 for user defined FEM engine, 2 for user defined post processor shared library and 3 for user defined microstructure post processor librarySupported machine and operating system details are listed herecentos4_32bit_linux for Centos 4.7 (kernel # 2.6.9-100, x86-64, to build 32 bit FEM using 64 bit Absoft f90v10.0)1.centos4_64bit_linux for Centos 4.7 (kernel #2.6.9-100, x86-64, to build 64 bit FEM using 64 bit Absoftf90 v10.0)2.centos5_32bit_linux for Centos 5.6 (kernel # 2.6.18-238, x86-64, to build 32 bit FEM using 64 bitAbsoft f90 v11.0)3.centos5_64bit_linux for Centos 5.6 (kernel # 2.6.18-238, x86-64, to build 64 bit FEM using 64 bitAbsoft f90 v11.0)4.suse11_32bit_linux for Suse11 (kernel # 2.6.32-36, x86-64, to build 32 bit FEM using 64 bit Absoft f90v11.0)5.suse11_64bit_linux for Suse11 (kernel # 2.6.32-36, x86-64, to build 64 bit FEM using 64 bit Absoft f90v11.0)6.suse92_32bit_linux for Suse 9.2 (Kernel # 2.6.8-24, i686, to build 32 bit FEM using 32 bit Absoft f90v9.0)7.hpxc_linux for HPXC (Kernel # 2.6.9-42 Xcsmp, x86-64, to build 32 bit FEM using 64 bit Absoft f90v10.0)8.hpi for HP-XC 11.23 Itanium to build 32 bit FEM using HP/FORTRAN S7009.hp11 for HP-UX 11.00 to build 32 FEM using HP/FORTRAN S700 B.11.01.20(Suse11 system support is on Suse Enterprise Linux Desktop operating system)If user is using any other variations of the kernels, delay in support response may happen and not guaranteed.If user is evaluating kernels different from the above list, please note that compatibility can become an issue. Please contact SFTC for advise.It is important to work on a local copy of these user routine folders that user has full permission to operate on.How to use the user defined FEM engine on PCWhile the user FEM engine can be built in a local copy of the DEF_SIM folder (copied from the installation folder say .c:\Program Files\SFTC\DEFORM\v10.2\3d\UserRoutine\DEF_SIM) the resulting user fem engine(DEF_SIM.exe and DEF_SIM_64.exe) can be copied to the 3d install folder c:\ProgramFiles\SFTC\DEFORM\v10.2\3d after backing up the original files. There after any model run by any user from main DEFORM page will run using this updated local FEM engine.NOTE:If build fails with this message,"LINK: fatal error LINK1561: entry point must be defined"LINK failed.This means left over object files in the folder 'Release' are not compatible with current building mode.For example if user first build a 32 bit user defined 3D fem engine, subsequent building of the 64 bit 3D fem engine must first clean up the contents of previous 32 bit object files and vice versa.This is normal behavior .. user needs to clean left over files from previous build ...one way to over come this issue is,For example, after building 32 bit user defined 3D fem engine, to build 64 bit user defined 3D fem engine user needs to open the 64 bit build script with 'atools' extension in Absoft Developers Tools, and from the pull down'Build' menu first select 'Clean' which would clean the contents of 'Release' folder, and then use the 'Build' option to complete the build procedure.How to use the user defined FEM engine on Linux/UnixWhile the user FEM engine can be built in a local copy of the USR folder (copied from the installation foldersay .$DEFORM3_DIR/USR) the resulting user fem engine (DEF_SIM.exe and DEF_SIM_64.exe) can be copied to the 3d install folder $DEFORM3_DIR/EXE after backing up the original files. There after any model run by any user from main DEFORM page will run using this updated local FEM engine.Summary of subroutines and calling structure of user-defined FEM routinesHere is a list of the different subroutines available to the user. With each, routine is a brief description of its purpose and the frequency of it being used by DEFORM.1. USRRATDescription: This routine allows the user to define a routine to calculate incubation time and change of volume.This routine is called in the transformation algorithm. This routine is called after each converged step. (available in usr_tranfkine.f file)2. INCUBTDescription: This routine is added for convenience to complement USRRAT. This routine is called whenever INCUBT is called. (available in usr_tranfkine.f file)3. USRMTRDescription: This routine allows the user to calculate flow stress of a material. This routine is called at the beginning of each iteration. (available in usr_mtr.f file)4. UFLOW#Description: This routine is one of the many flow stress calculation routines. This routine allows the user to store many different flow stress routines in the DEF_USR.FOR and specify which routine is called in thePre-Processor. (available in usr_mtr.f file). This routine is called each time USRMTR is called.5. USRDSPDescription: This routine allows the user to calculate the die speed of a rigid object that has movement defined as a user model. This routine is called at the beginning of each step. (available in usr_dsp.f file)6. DIESP#Description: This routine is called by USRDSP as a means of segregating movement routines in the same manner as the flow stress functions. This routine is called whenever USRDSP is called. (available in usr_dsp.f file)7. USPMThis subroutine allows the user to specify parameters for densification of a porous material model. This routine is called before stiffness matrix generation which means it's called at the beginning of each iteration. (available in usr_pm.f file)8. USRUPDDescription: This is the user defined nodal and element variable subroutine. This routine allows the user to calculate special state variables and store them for each node and element. These variables can be viewed in the Post-Processor or be used during the simulation in flow stress calculation. User Nodal variables are updated only at the end of a converged step. User Element variables are updated at the beginning of each iteration and at the end of a converged step. The purpose for this is that the most current user element variable can be fed into the user-defined flow stress routine. (available in usr_upd.f file)9. USRCRPDescription: This routine is used to define creep rate and its derivative as a routine. This routine is available for only elasto-plastic materials. This is called upon the beginning of each iteration. (available in usr_crp.f file)10. USRMSHDescription: This routine is used as a general purpose routine that has access to many internal variables within DEFORM. This routine is advocated when other routines cannot satisfy the needs of the user. This routine is called at the beginning and end of each step. (available in usr_msh.f file)11. USRDMGDescription: This routine allows the user to define a special damage model as a FORTRAN routine. This routine is called at the end of each step once per element. (available in usr_dmg.f file)12. USERWEARDescription: This routine allows the user to define a special wear model as a FORTRAN routine. This routine is called at the end of each converged step once per element. (available in usr_wear.f file)13. USR_TRNF_KINEDescription: This routine allows the user to define a transformation as a FORTRAN routine. This routine is called at the end of each converged step once per element. (available in usr_tranfkine.f file)User-Defined Post-Processing RoutinesIn the post-processor, user defined post-processing routines can be used to calculate field variables using the steps stored in the database. The manner in which these values are computed is based on creating a shared library file to compute variables based on the variables stored in the database. To implement user-defined post-processing variables,The file in the USR (UNIX) or UserRoutine (Windows) subdirectory of DEFORM-3D should be copied to a local directory and the file PSTUSR.FOR or pstusr3.f can be edited. The manner in which to edit this file is discussed in a later section of this document.After editing, this file can be compiled and linked as a shared object file (UNIX/LINUX) or a dynamically-linked library (Windows).This shared library can be called by going to the User Variable tracking window seen below. To select the library, click on the library tab and select the library that was built. After this, go back to the tracking window and press the Track Data button.After the data has been tracked, go to the State Variables window and select the USR tab and then the state variables can be plotted to User Variables.Note: User-defined Post-Processor routines can only use data that was saved in the database. If a very coarse step increment was made, variables having a cumulative effect can have considerable error.6.1. User defined FEM routinesThis section contains a description of the different FEM user routines available in the current release of DEFORM-3D. The skeletal code for user routines is stored in different fortran files (see Figure 6.1) which has the FORTRAN functions that the FEM engine calls if a user routine is to be used. The user routines calculates the specified values and returns output values.User defined data (USRDEF)The user defined data (USRDEF) field in the pre-processor can be used to stored data that can be used to specify parameters for the user-routines. This data can be defined in the Simulation Controls, Advanced Controls menu as shown in Figure 6.2. In the user-routines the following code lets the user access the USRDEF values common block through the variable IUSRVL. This data can be accessed from any type of user routines. This data is defined for a given model, not specific to an object or object type.CHARACTER*80 IUSRVLCOMMON /IUSR/ IUSRVL(10)To read and write data to the USRDEF variable the following sections of code can be used.C TO READ DATA (10 RESERVED LINES)CREAD(IUSRVL(LINE NUMBER),*) DATA1,DATA2,DATA3...CC TO WRITE DATA (10 RESERVED LINES)CWRITE(IUSRVL(LINE NUMBER),*) NEWDATA1, NEWDATA2, NEWDATA3 ...Figure 6.2: IUSRVL data definition from simulation controlsUser defined flow stress routines (USRMTR)If the flow stress models in DEFORM are not applicable for a process, a user defined flow stress can be calculated during the simulation. The flow stress can be a function of strain, strain rate, temperature, user node and user element variables. The flow stress subroutine should return the following information :YS = FLOW STRESSYPS = DERIVATIVE OF FLOW STRESS W.R.T. TEPSFIP = DERIVATIVE OF FLOW STRESS W.R.T. EFEPSwhereTEPS = EFFECTIVE STRAINEFEPS = EFFECTIVE STRAIN RATEA maximum of 100 flow stress routines can be defined in this program. In the pre-processor Material Properties the flow stress (FSTRES) type selected should be Advanced and the routine number to be used should be specified for each material group which uses the user routine. (see Figure 6.3) This routine number (NPTRTN)is passed to the user defined flow stress subroutine USRMTR to control branching to the specified UFLOW module.Figure 6.3a: Defining user defined flow stress routine information in PreprocessorFigure 6.3b: Defining user defined flow stress routine number in PreprocessorExamples of using the user defined flow stress subroutine are given below :1. The flow stress depends on the strain rate sensitivity index (PEM) and on the effective strain rate (EFEPS).PEM = 0.1YS = 10. * (EFEPS)**PEMFIP = 10. * PEM * (EFEPS)**(PEM-1.)YPS = 0.2. The flow stress depends on the strain index (PEN), strain rate sensitivity index (PEM), theeffective strain (STRAIN) and the effective strain rate (EFEPS). The value of effective strain can bethe element strain or from a user defined state variable. In the example given below the effective straincomes from a user defined state variable which stores the current strain. This example also illustratesthe concept of using the user defined state variables to calculate flow stress.STRAIN = USRE1(1)IF (STRAIN.LE.0.) STRAIN = 1.E-5PEN = 0.15PEM = 0.1YS = 10. * STRAIN**PEN* (EFEPS)**PEMFIP = 10. * STRAIN**PEN* PEM * (EFEPS)**(PEM-1.)YPS = 10. * PEN * STRAIN**(PEN-1.) * (EFEPS)**PEMThe UFLOW routine is called 5 or 9 times per iteration for each element (tet or brick, respectively).The calling sequence for a single element is:1. Guess the velocity of each node in the element2. At each integation point (4 or 8 for tet or brick) calculate the strain rate.3. Evaluate the flow stress at each integration point using the following values∙Strain rate at integration point∙Temperature at integration point at the beginning of the step∙Strain = Strain at beginning of step + (Strain Rate * Time Step)4. Evaluate the flow stress at the center of the element using the following values∙Strain rate at the center of the element∙Temperature at the center of the element at the beginning of the step∙Strain = Strain at the beginning of the stepThis sequence is repeated for each element. The stiffness matrix is generated and solved using these values. The solution yields a velocity correction vector, (which gives the velocity error norm) and the difference between internal and boundary forces (which gives the force error norm). When these two values have converged, the step data is written to the database, and temperature and microstructure calculations are performed, then the process is repeated from step 1.User has access to a range of nodal and elemental data in addition to user defined variables. Comments provided in the routines explains all the variables and their meaning. Some of these are indicated here.C INPUT :CC NPTRTN = FLOW STRESS NUMBERC TEPS = EFFECTIVE STRAINC EFEPS = EFFECTIVE STRAIN RATEC TEMP = TEMPERATUREC ALSO VARIABLES IN /ELMCOM/CC OUTPUT :CC YS = FLOW STRESSC YPS = DERIVATIVE OF FLOW STRESS W.R.T. TEPSC FIP = DERIVATIVE OF FLOW STRESS W.R.T. EFEPSCCOMMON /USRCTL/ DTK,KOBJ,ISTATUS,KSTEPCC COMMON /USRCTL/C DTK : TIME INCREMENTC KOBJ : OBJECT NUMBERC KSTEP : Step Number (N)C ISTATUS: 0 - the begain of the stepC 1 - the end of the stepCCOMMON /ELMCOM/ RZE(3,8),URZE(3,8),STSE(6),EPSE(6),EFEPSE,EFSTSE,+ TEPSE,RDTYE,TEMPE(8),USRE1(100),USRE2(100),+ DTMPE(8),NODEE(8),KELE,KONPCC COMMON /ELMCOM/C RZE : NODAL POINT COORDINATES (four corner nodes)C URZE : NODAL POINT VELOCITY (four corner nodes)C STSE : STRESS TENSORC EPSE : STRAIN RATE TENSORC EFEPSE : EFFECTIVE STRAIN RATEC EFSTSE : EFFECTIVE STRESSC TEPSE : TOTAL EFFECTIVE STRAINC TEMPE : FOUR NODAL TEMPERATUREC RDTYE : RELATIVE DENSITYC USRD1 : USER DEFINED STATE VARIABLES (INPUT: AT the Beginning of STEP N) C USRD2 : USER DEFINED STATE VARIABLES (OUTPUT: At the End of the STEP N) C NODEE : CONNECTIVITY OF THE ELEMENTC KELE : ELEMENT NUMBERC KONP : NODE NUMBER PER ELEMENTCC WHEN (ISTATUS.EQ. 1) --> USRE2/USRN2 should be updated hereC KELE > 0 --> Element data is activeC KNODE > 0 --> Node Data is activeUser defined movement control (USRDSP)DEFORM supports user definition of the die movement for machines which cannot be controlled using the movement mechanisms given in the DEFORM system. The die speed routines are functions which are called from the USRDSP subroutine based on the function number specified in the Object, Movement controls window as shown in Figure 6.4Figure 6.4: User defined die speed settings in Preprocessor.The die movement can be a function of the following variables :C INPUTCC TIME = THE SIMULATED PROCESS TIMEC PDIS = PRIMARY DIE DISPLACEMENTC VX,VY,VZ = DIE SPEED IN X, Y & Z DIRECTIONS, RESPECTIVELYC STRKX,STRKY,STRKZ = CURRENT DIE STROKE IN X, Y & Z DIRECTIONS,C RESPECTIVELYC FRZX,FRZY,FRZZ = DIE FORCE IN X, Y & Z DIRECTIONS, RESPECTIVELYC AVGSRT = AVERAGE STRAIN RATEC SRTMX = MAXIMUM STRAIN RATEC OUTPUTCC UPDV = THE UPDATED DIE SPEED IN THE SPECIFIED DIRECTIONC UPDF = THE UPDATED DIE FORCE IN THE SPECIFIED DIRECTIONCC DTIME = CURRENT TIME STEP (I/O)The output that the user has to provide from the user routine is :UPDV = THE UPDATED DIE SPEED IN THE SPECIFIED DIRECTIONUPDF = THE UPDATED DIE FORCE IN THE SPECIFIED DIRECTIONDTIME = DESIRED TIME STEPTo use the values for AVGSRT, STRMX the primary workpiece has to be specified as the object whose average and max strain rate are required. This is the keyword PDIE(2) in Simulation Controls, Advanced Controls in the pre-processor.Examples of using the user defined die movement subroutine is given below :Example Case #1The die speed routine in DIESP1 controls the speed based on a user specified value for the average strain rate. The value of the average strain rate is specified using the USRDEF fields.CC THE DIE SPEED OF THIS ROUTINE IS DETERMINED BY:CC WHERE SR IS THE APPROXIMATED STRAIN RATE DURINGC AN UPSETTING PROCESSC HI IS THE INITIAL BILLET HEIGHT.READ(IUSRVL(1),*) HISTRK = STRKX*STRKX + STRKY*STRKYSTRK = DSQRT(STRK)CC FIND the Current HeightCWRITE(6,*) TMPMXHJ = HI - STRKUPDV = AVGSRT * HJThe goal of this routine is to define a die velocity by the following equation:where:V = Output die velocitye = Average strain rateH initial = Initial billet heightS = Current die displacementAt the beginning of this code, a variable is fetched from our USRDEF fields, the initial height of thebillet.READ(IUSRVL(1),*) HIThe die displacement can be computed by the following equation:The stroke is computed by the following code:STRK = STRKX*STRKX + STRKY*STRKYSTRK = DSQRT(STRK)Example Case #2In the case of a screwpress, the rotational energy is converted to translational motion to form apart. The process ends when the energy stored in the flywheel runs out or when the clutch on the drivemechanism is disengaged. Each step, the amount of energy may change due to energy being consumed by deforming the workpiece. The total energy is an intial condition and the change in the current energy needs to be computed each step by,where:E O = Energy after previous stepE I = Energy at current stepDE = Change in energy over previous stepThe change in energy can simply be calculated by the following equation,where:DE = Change in energy over previous stepF I = Die force over previous stepd I = Distance traveled over previous steph = The efficiency of the process.Based on the current energy, the translational speed of the die can first be computed bycalculating the rotational speed of the flywheel,where:w = Rotational speed of the flywheel.E O = Energy of current step.I = Moment of inertiaUsing the rotational speed, the translational speed can be simply determined by considering how the spindle shaft is threaded,where:V O = The output translational velocity of the die.w = Rotational speed of the flywheel.d = diameter of the spindleq t = pitch angle of the spindle threadsThis can be implemented in the following code:DATA ENERGY/ 10000.0/eff = 0.2MI = 10PI = 3.14159diam = 1.0;pitch = 0.1;C This calculates the change in the energy between stepse_change = (FRZY * STRKY) / effC This updates the energy valueENERGY = ENERGY - e_changeC This makes sure that the energy doesn't go negativeif(ENERGY.LT.0) THENENERGY = 0.0endifC This computes the rotational speed based on the current energyrot_spd = SQRT((2*ENERGY)/MI)C This converts angular speed to rotations per secondrot_spd = rot_spd / (2 * PI)C This calculates the tranlational velocity of the screw pressV_out = rot_spd * PI * diam * sin(pitch);C This updates the valueUPDV = V_outUser defined node and element value (USRUPD)The user can implement subroutines which can calculate nodal and elemental values (up to 100) during the simulation for each node/element of the objects in the simulation. The inputs are all state variables and the outputs are the values for USRNOD, and USRELM. The variables can also be used in the flow stress routines to model flow stress as a function of new state variables.The advantage of using these variables instead of doing the same procedure using user defined post-processing is that these values are calculated for each step in the database whereas user defined post-processing is only for the steps that are stored in the database.Data that is passed to the user variable subroutine are stored in COMMON blocks as detailed below :CCOMMON /USRCTL/ DTK,KOBJ,ISTATUS,KSTEPC DTK : TIME INCREMENTC KOBJ : OBJECT NUMBERC KSTEP : Step Number (N)C ISTATUS: 0 - the begain of the stepC 1 - the end of the stepCCOMMON /ELMCOM/ RZE(3,8),URZE(3,8),STSE(6),EPSE(6),EFEPSE,EFSTSE,+ TEPSE,RDTYE,TEMPE(8),USRE1(100),USRE2(100),+ DTMPE(8),NODEE(8),KELE,KONPC RZE : NODAL POINT COORDINATES (KONP corner nodes)C URZE : NODAL POINT VELOCITIES (KONP corner nodes)C STSE : STRESS COMPONENTSC EPSE : STRAIN RATE COMPONENTSC EFEPSE : EFFECTIVE STRAIN RATEC EFSTSE : EFFECTIVE STRESSC TEPSE : TOTAL EFFECTIVE STRAINC TEMPE : NODAL TEMPERATURESC USRE1 : USER ELEMENT VARIABLES (INPUT: AT the Beginning of STEP N)C USRE2 : USER ELEMENT STATE VARIABLES (OUTPUT: At the End of the STEP N) C NODEE : CONNECTIVITIES OF THE ELEMENTC KELE : ELEMENT NUMBERC KONP : NODES PER ELEMENTCCOMMON /ELMCOM3/ TEPS_NE(8),EFEPS_NE(8),DAMG_NE(8),STS_NE(6,8)C TEPS_NE : Nodal eff. strain of the surrounding nodesC EFEPS_NE : Nodal eff. strain rate of the surrounding nodesC DAMG_NE : Nodal damage factor of the surrounding nodesC STS_NE : Nodal stress components of the surrounding nodesCCOMMON /NODCOM/ RZN(3),URZN(3),DRZN(3),TEMPN,DTMPN,USRN1(100),+ USRN2(100),KNODEC RZN : Nodal Point CoordinatesC URZN : Nodal Point VelocitiesC DRZN : Nodal Point DisplacementC TEMPN : Nodal Point TemperatureC DTMPN : Nodal Point Temperature increment from last step to current stepC USRN1 : User Nodal Variables (Input: At the beginning of Step N)C USRN2 : User Nodal Variables (Output: At the end of Step N)C KNODE : Node NumberCCOMMON /NODCOM3/ EFEPS_NN,TEPS_NN,DAMG_NN,STS_NN(6),IELMNOD(3)C EFEPS_NN : Nodal effective strain rateC TEPS_NN : Nodal effective strainC DAMG_NN : Nodal damage factorC STS_NN : Nodal stress componentsC IELMNOD(1) = 0: Damage factor, Element definitionC > 0: ditto, Node+element definitionC IELMNOD(2) = 0: Eff. strain rate and strain, Element definitionC > 0: ditto, Node+element definitionC IELMNOD(3) = 0: Stress components (El-plastic): Element definitionC > 0: ditto, Node+element definitionCC COMMON /ELMCOM3/CC WHEN (ISTATUS.EQ. 1) --> USRE2/USRN2 should be updated here or in USRMSH.C Note:C If a user chooses to update USRE2/USRN2 in SUB. USRMSH, he/she should alsoC copy all of USRE1/USRN1 to USRE2/USRN2 here. When NUSRVE or NUSRND areC greater than 2, more line should be added below.CC KELE > 0 --> Element data is activeC KNODE > 0 --> Node Data is activeCC THE FOLLOWING EXAMPLES ARE:C TO STORE THE MAX PRICIPAL STRESS IN USRE2(1), ANDC TO STORE THE STRAIN ENERGY IN USRE2(2).CC At present NUSRVE and NUSRND are not passed into this routine. However,C if User Nodal and/or Elemental Variables are in use and NUSRVE or NUSRNDC are greater than 2, USRE1(3..NUSRVE) and/or USRN1(3..NUSRND) should be copiedC to USRE2(3..NUSRVE) and/or USRN2(3..NUSRND) below in the appropriate places.CThe variable USRN1 stores the nodal variables at the beginning of the step (the current value). After computing a new value for the user defined variables the results should be stored in USRN2 at the end of each step. For the element variables, USRE1 stores the values at the beginning of the step and the updated value must be stored in USRE2.If the variables are not being calculated, then the value stored in USRN1 and USRE1 must be copied to USRN2 and USRE2 respectively.Examples of using the user defined nodal and element variables are given below :1. The maximum principal stress is stored in the second user element value (USRE(2)) and the first element variable is not defined.IF (ISTATUS.EQ.1.AND.KELE.GT.0) THENUSRE2(1)=USRE1(1)CALL USR_MAXPRN(STSE,PRNSTS)IF (USRE2(1).LT.PRNSTS) USRE2(1) = PRNSTSENDIF2. In this example the average cooling rate (F/min) from 1300 F to 600 F is calculated and theresult stored in the second user nodal variable (USRN2(2)). Here CURTIM is the current time in thesimulation which can be accessed from the COMMON block CLOK.COMMON /USER_DATA/ AMAX_TEMP, AMIN_TEMP, ADIF_TEMPDATA AMAX_TEMP, AMIN_TEMP, ADIF_TEMP$ / 1300, 600, 700 /。

DEFORM二次开发各模块介绍

DEFORM二次开发各模块介绍

DEFORM⼆次开发各模块介绍材料本构模型是实现计算机数值模拟的前提条件之⼀,【关于计算机数值模拟技术的发展介绍】本论⽂所采⽤的有限元模拟软件DEFORM-3D进⾏材料的微观组织模拟介绍,DEFORM-3D 有限元软件是集成了原材料、成形、热处理和机加⼯为⼀体的软件,可⽤于分析各种塑性体积成形过程中⾦属流动以及材料的应⼒、应变和温度等物理场量的分布变化情况,同时提供了材料的流动、模具间的填充、成型过程的载荷量、模具所受应⼒、材料的纤维流向、成型过程的坯料形成、材料的韧性断裂以及⾦属微观组织结构等信息。

为了实现在⾦属成形⼯艺模拟过程中进⾏微观组织演化的定量预测,所使⽤的模拟软件必须有包含微观组织变化的本构模型和专门的微观组织演化分析模块。

当前国际上虽然有多个知名商业有限元软件流⾏,但是它们都不具备微观组织演化的预测功能;或者软件具有微观组织变化的本构模型,但仍需使⽤者输⼊材料的参数⽅可进⾏,⽽软件不提供材料的参数;故很多软件都淡化此微观组织演化分析模块。

庆幸的是多数商业软件都为⼆次开发设置了⽤户⼦程序功能,通过编制⽤户⼦程序就能实现对微观组织演化的预测功能。

⽤户⾃定义本构模型的输⼊⽅法在当今的科学研究⽅向中,新材料的开发占据了⼀个重要的⾓⾊。

不同的材料⼯作者开发了不同的新材料,得到了不同的本构模型,需要对这种新材料进⾏模拟,为了满⾜这种需求,DEFORM提供了两种⽤户⾃定义本构模型的输⼊⽅法:(1)以函数形式输⼊本构模型。

DEFORM提供了若⼲常⽤本构模型,如图4.6所⽰。

若⽤户的本构模型与系统提供的本构模型⼀致,则可直接输⼊其相关系数即可;若⽤户的本构模型在系统中不存在,则可通过⼆次开发编程的⽅式将⽤户的本构模型加⼊到DEFORM中,然后在图4.6中选择“User routine”并输⼊所调⽤的本构模型⼦程序的编号。

(2)以数据形式输⼊本构模型。

DEFORM还允许通过输⼊数据的⽅式来定义材料的塑性流动⾏为。

2024版年度Deform培训教程

2024版年度Deform培训教程

Deform培训教程•引言•Deform软件概述•建模与网格划分目录•材料属性与边界条件设置•模拟计算与结果分析•高级功能与应用技巧•总结与展望01引言培训目的和背景培训目的提高学员对Deform软件的理解和应用能力,掌握基本的分析方法和技巧,培养解决实际问题的能力。

培训背景随着计算机技术的不断发展,数值模拟技术在材料加工领域的应用越来越广泛。

Deform作为一款专业的金属成形模拟软件,已经成为该领域不可或缺的工具之一。

通过本次培训,学员可以深入了解Deform软件的功能和应用,提高自己的专业素养和竞争力。

培训内容Deform软件的基本操作和功能介绍;金属成形过程中的物理和数学模型;常用的分析方法和技巧;实际案例分析和讨论。

培训安排介绍Deform 软件的基本操作和功能,包括前处理、求解和后处理等;第一天第二天第三天讲解金属成形过程中的物理和数学模型,包括弹塑性力学、热力学和摩擦学等;介绍常用的分析方法和技巧,包括网格划分、边界条件设置、材料参数设置等;030201第四天进行实际案例分析和讨论,包括锻造、轧制、挤压等典型工艺过程的模拟和分析;第五天总结和答疑,对培训过程中遇到的问题进行解答和讨论。

02 Deform软件概述DEFORM 软件提供了全面的有限元分析功能,可以对金属成形过程中的应力、应变、温度等物理量进行准确计算。

强大的有限元分析能力软件内置了多种材料的数据库,用户可以根据需要选择合适的材料模型进行模拟。

丰富的材料数据库DEFORM 软件采用了直观的图形界面设计,使得用户可以更加方便地进行模型建立、结果查看等操作。

直观的图形界面软件提供了多种求解器供用户选择,可以根据不同的模拟需求选择最合适的求解器。

多种求解器选择软件功能和特点软件界面和操作流程软件界面DEFORM软件的界面主要包括菜单栏、工具栏、模型树、属性窗口、图形窗口等部分,用户可以通过这些界面元素进行各种操作。

操作流程使用DEFORM软件进行模拟分析的主要流程包括建立模型、设置边界条件、划分网格、选择求解器、运行模拟、查看结果等步骤。

二次开发deform

二次开发deform
读入初始温度场,计算初始速度场,计算
分量、平均应变速率、最大应变速率、当前时间步长。子程序执行完后输出
变量:规定方向上更新后的模具速度、规定方向上更新后的模具力和所要求
的时间步长。 子程序的功能.
定义模具运动、工件的 运动 。 运动轨迹可用自定义的函数表达式。
在实际工程问题 中,往往会遇到模具或者工件的运动非常 复杂的情况 ,不
是简单的直线运动或旋转运动 , 这就需要用到子程序对模具或者工件的 运动
传入 四LοW , 用于计算 出的 流动应 力 、流动应力对等效应变的导数和 流动应
力对等效应变率 的 导数传回上级程序。 UFLOW : 用传入 的 等效应变、等效应变率 、 温度和公共块中的用户定义
的单元变量<USRE I 、 U SRE2) 和节点变量<USRNL . U S阳也〉计算流动应
31
型、物体运动控制 , 可以 计 算单元变量 、 计算节点变量 ,可 以定义损伤模型:

,
在用户定义后处理子程序中,还可以计算已经存储下来 的 变量值.
以下说明如何在 DEFORM 中插入包括动态再结晶过程的热刚-粘塑性本构 模型,并在模拟结果中能够显示晶粒度等用户变量在变形体内的分布。
3.2. 1 文件配置 在 UNlX 操作系统中,在向 DEFORM3 D/2D 中加入用户子程序之前 , 要对 一 些文件作相关配置,具体方法如下.
COMMON IUSRCTLI DTK ,KOBJ ,ISTATUS ,KSTEP COMMONÆLMCOMIRZE (3, 8 ) ,URZE (3, 8 ) ,STSE ( 6 ) ,EPSE ( 6) ,
+ EFEPSE,EFSTSE ,TEPSE ,RDTYE ,TEMPE ( 8 ) ,USREI ( 100 ) , + USRE2 ( 100 ) , DTMPE ( 8 ) ,NODEE ( 8 ) ,KELE ,KONP

DEFORM-2D操作指南

DEFORM-2D操作指南
2
图 1.3 - Simulation Controls 窗口 1.3 创建新对象
选择 Control 窗口中的 Objects 按钮,打开 Objects 窗口,在本窗口中为所定的 对象设置数据,在这儿无需创建新对象。因为已有一缺省对象 object#1。
图 1.4 - Objects 窗口 把对象 1 的 Object name 设为 BILLET,Object Type(对象类型)为 Plastic(塑性),
图 2.1 - IGES File Selection 窗口
图 2.2 - IGES File Input 窗口
7
图 2.3 - Object #1 in the Display 窗口
图 2.4 - IGES 窗口 单击 IGES TRANSLATOR 窗口中的 OK 按钮,来输入所选择的曲线。Geometry 窗口中 的表列出了组成几何图形的一系列点。 Check Geometry 窗口中有 “if you want to check geometry”(你是否想检查几 何图形)的查询信息,单击 Yes 按钮,如果一切正确,会有信息 “The object geometry is legal”,的提示框出现,单击 OK 按钮,现在单击 Geometry 窗口中的 OK 按钮,Display 窗口会显示已输入的圆柱形 BILLET。 2.3.2 对象 2 单击 OBJECTS 窗口中的 Add Objects 按钮创建新对象 object#2。一标有 object#2
9
3.几何尺寸输入-几何修正
3.1 打开-旧问题 3.2 设置模拟控制 3.3 创建新对象 3.4 保存问题
本章使用图标
对象几何尺寸
缩放窗口
检查几何尺寸

Deform-3d热处理模拟操作全解

Deform-3d热处理模拟操作全解

Deform-3d热处理模拟操作热处理工艺在机械制造中占有十分重要的地位。

随着机械制造现代化和热处理质量管理现代化的发展,对热处理工艺提出了更高的要求。

热处理工艺过程由于受到加热方式、冷却方式、加热温度、冷却温度、加热时间、冷却时间等影响,金属内部的组织也会发生不同的变化,因此是个十分复杂的过程,同时工艺参数的差异,也会造成热处理加工对象硬度过高过低、硬度不均匀等现象。

Deform-3d软件提供一种热处理模拟模块,可以帮助热处理工艺员,通过有限元数值模拟来获得正确的热处理参数,从而来指导热处理生产实际。

减少批量报废的质量事故发生。

热处理模拟,涉及到热应力变形、热扩散和相变等方面,因此计算很复杂,软件采用牛顿迭代法,即牛顿-拉夫逊法进行求解。

它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。

多数方程不存在求根公式,因此求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要。

方法使用函数f(x)的泰勒级数的前面几项来寻找方程f(x) = 0的根。

牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程f(x) = 0的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根等。

但由于目前Deform-3d软件的材料库只带有45钢、15NiCr13和GCr15等三种材料模型,而且受到相变模型的局限,因此只能做淬火和渗碳淬火分析,更多分析需要进行二次开发。

本例以45钢热处理淬火工艺的模拟过程为例,通过应用Deform-3d 热处理模块,让读者基本了解热处理工艺过程有限元模拟的基本方法与步骤。

1 、问题设置点击“文档”(File)或“新问题”(New problem),创建新问题。

在弹出的图框中,选择“热处理导向”(heat treatment wizard),见图1。

sgniht图1 设置新问题2、初始化设置完成问题设置后,进入前处理设置界面。

首先修改公英制,将默认的英制t h i ng si nt he i rb ei n ga re go od fo rs (English )修改成公制(SI ),同时选中“形变”(Deformation )、“扩散”(Diffusion)和“相变”(Phase transformation),见图2。

2024版Deform详细教程学习教案

2024版Deform详细教程学习教案

实例演示:材料属性与边界条件设置
1
实例背景
假设我们要模拟一个铝合金板的冲压过程, 需要设置铝合金的材料属性和冲压模具的 边界条件。
2
材料属性设置
首先,我们需要在Deform中定义铝合金 的密度、弹性模量、泊松比和屈服强度等 物理和机械属性。这些属性可以通过查找 铝合金的材料手册或实验数据获取,并输 入到软件中进行设置。
热-流耦合分析
研究材料在热流作用下的传热和流 动特性。
优化设计方法与案例分享
形状优化
通过改变结构形状来优化性能, 如减小应力集中、提高刚度等。
拓扑优化
在给定设计空间内寻找最优材料 分布,实现轻量化设计。
参数优化
调整设计参数,如尺寸、角度等, 以优化目标函数。
自定义函数及二次开发简介
自定义函数
用户可编写自己的函数,实现特定功能或改进算 法。
3
边界条件设置
接下来,我们需要设置冲压模具的边界条 件。假设模具是刚性的,我们可以在模具 上选择特定的节点,并指定其位移为零, 以模拟模具的固定不动。同时,我们还需 要在铝合金板上施加压力载荷,以模拟冲 压过程中的力学行为。这些边界条件可以 通过Deform的图形界面或命令行方式进 行设置,确保模拟的准确性。
02
03
通过多个案例的学习,熟悉了 Deform在金属成形、热处理等领 域的应用。
04
未来发展趋势预测
01
随着计算机技术的不断发展, 有限元分析软件的计算效率和 精度将不断提高,使得更复杂 的工程问题得以解决。
02
材料数据库将不断完善,为有 限元分析提供更准确、全面的 材料性能数据。
03
人工智能、机器学习等技术的 引入,将进一步提高有限元分 析的自动化和智能化水平。

动态再结晶二次开发

动态再结晶二次开发

于临界应变,则开始计算动态再结晶过程;当动态再结晶分数X>0.95 时,则直接转为晶粒长大的有关计算。
把静态再结晶模型与热传导有限元耦合,可以分析卸载后的静态再结晶。
Deform3D是由SFTC公司开发的一个体积成形有限元工艺模拟专用商业软件,其用户定义子程序的代码储存 在def_usr.f中,有限元主程序通过调用该文件中的子程序,可以计算出用户自定义变量的值。所以关键问题 在于该子程序的编写。其中USRMSH子程序包含了有限元计算中所有的变量。通过这个用户子程序,可以修改所 有这些变量。该子程序申明如下:
fzmfzmfz 加博友
关注他
最新日志 【引用】deform的再结晶
关注 登录 创建博客 博主推荐 不要版面费的期刊名称 材料类期刊
首页推荐
古龙笔下楚留香原型是谁 年轻人打架还不如去做爱 男孩偷开车发生连环车祸 中国经济十年超美属做梦 性奴案获救女子该当何罪 地方官暴力截访身不由己
更多>>
(2)静态再结晶模型
================================================= 引言 高温成形过程中,金属将发生动态和静态再结晶,产生新的晶粒这种微观组织的演变在很大程度上决定了产品的宏观力学性能 [1,2]利用热加工过程控制晶 粒大小,细化微观组织,是提高产品力学性能的重要手段因此,研究材料在热成形过程中宏观力 学行为和微观组织的变化,揭示其相互之间的关系,并依据优化工 艺参数、设计塑性成形工艺和锻后冷却方案,这对解决目 前的工艺问题,提高产品质量是很有意义的,同时也是变形过程全面模拟的前沿课题[3] 有限元数值模拟技术是随着物理模拟设备的完善以及计算机技术的发展而发展起来的鉴于有限元法是目前唯一能对塑性加工过 程给出全面且较为精确数值解的分析方法,本文对材料组织性能所进行的数值模拟均采用该分析方法 数值模拟软件是求解塑性加工问题的一个基本工具现在市场上已有许多成熟的用于金属塑性加工的商业软件如 DEFORM, MSC.MARC,MSC.SUPERFORM,Dynaform等,但这些软件都只进行宏观变形和温度的分析计算,没有考虑宏观与微观耦 合,不具备微观组织演化的模拟和预测功能,或者只具有简单的预测能力,其模型并不一定适合于所考察的问题本文通过对 Deform3D二次开发,将适合于 材料的组织模型与成形的热力耦合计算结合,模拟热成形过程中的组织演化 1 模型建立 材料在热塑性变形中除了应力和应变的变化外,还要发生复杂的微观组织变化,即动态再结晶、静态再结晶、晶粒生长等研究 表明,再结晶的晶粒尺寸和再结晶晶粒百分比,除了和原始晶粒尺寸与微量元素含量有关外,主要取决于变形及冷却过程的温 度、应变和应变速率 由于热成形过程的复杂性,很难进行现场测试,而在实验室进行研究,只能得到简单条件下的显微组织与宏观热力参数间的定 量关系图1给出了用有限元模拟材料热变形过程中微观组织演化的计算流程 在实验室通过热力模拟试验,可以获得材料的准经验数学模型,其经验模型大都是通过试验数据回归获得Avrami形式的数学 模型在对有限元软件开发过程中,将组织模型离散,在每一迭代步中计算,其计算过程如图2所示

二次开发需求流程

二次开发需求流程

Secondary Development Requirement ProcessThe secondary development requirement process is a structured approach to identify, analyze, and implement changes or extensions to an existing software system. Here is an outline of the general steps involved:1. Requirement Gathering:Gather the requirements from stakeholders and users. This involves understanding their needs, challenges, and desired outcomes from the secondary development.2. Requirements Analysis:Analyze the gathered requirements to understand their impact on the existing system. Identify any potential conflicts, dependencies, or complexities that may arise.3. Requirements Documentation:Document the requirements in a clear and detailed manner. This documentation should include a description of the requirements, their priority, any constraints or assumptions, and any related information.4. Design and Planning:Develop a design plan for the secondary development. This plan should outline the approach to be taken, the estimated timeline, the resources required, and any potential risks.5. Development and Testing:Implement the required changes or extensions to the existing system. This involves programming, integrating new features, and modifying existing components. Conduct thorough testing to ensure that the changes work as expected and don't introduce any new issues.6. User Feedback and Validation:Collect feedback from users and stakeholders on the implemented changes. Validate that the system meets their expectations and resolves the identified requirements.7. Deployment and Support:Deploy the updated system to production, following any necessary deployment procedures. Provide support and maintenance to address any issues that arise post-deployment.8. Monitoring and Iteration:Continuously monitor the system's performance and user feedback. Iterate on the secondary development as needed to address any issues or further improve the system.It's important to note that the specific steps may vary depending on the software system, the organization's processes, and the complexity of the secondary development requirements. It's crucial to involve relevant stakeholders, maintain clear communication, and iterate as needed throughout the process.二次开发需求流程是一个结构化的方法,用于识别、分析和实现现有软件系统中的更改或扩展。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

微观组织模拟:模拟步骤Deform 3D二次开发步骤为了在金属成形工艺模拟过程中进行微观组织演化的定量预测,所使用的模拟软件必须有包含微观组织变化的本构模型和专门的微观组织演化分析模块。

当前国际上虽然有多个知名商业软件流行,但是它们都不具备微观组织演化的预测功能。

庆幸的是多数商业软件都为二次开发设置了用户子程序功能,通过用户子程序,用户就能根据自己的需要增加自己的微观组织预测功能。

为了使DEFORM3D软件具有微观组织演化预测功能,本研究尝试将包含动态再结晶的热刚—粘塑性材料本构模型植入到DEFORM3D中,并在模拟结果中能够显示晶粒度等用户变量在变形体内的分布。

在研究出具体开发步骤前,必须要对Defom中的程序有所深入了解。

一、DEFORM3D二次开发基础理论1、用户子程序结构本研究的DEFORM3D二次开发涉及到的子程序有:USRMSH、USRMTR、UFLOW、USRUPD(含USR和CHAZHI)。

(1)可以改变几乎所有变量的子程序(USRMSH)子程序功能:该子程序包含了有限元计算中所有的全局变量,通过这个用户子程序,可以修改所有这些变量。

但这些全局变量的改变将直接影响有限元的计算,处理不当就会使整个程序不能正常进行。

在DEFORM3D子程序功能中,所有的用户变量必须在USRUPD子程序中定义。

本文的用户子程序中共定义了18个用户单元变量。

各用户变量的含义如列表所示。

该子程序用于某些必要数据的获取和存储流程图如下图所示:(2)流动应力子程序(USRMTR、UFLOW)SUBROUTINE USRMTR(NPTRTN,YS,YPS,FIP,TEPS,EFEPS,TEMP)SUBROUTINE UFLOW(YS,YPS,FIP,TEPS,EFEPS,TEMP)子程序的变量含义:NPTRTN:应力模型编号;YS:流动应力;YPS:流动应力对等效应变的导数;FIP:流动应力对等效应变速率的导数;TEPS:等效应变;EFEPS:等效应变;TEMP:温度。

子程序USRMTR和UFLOW运行时需要输入:应力模型编号、等效应变、等效应变速率、温度。

子程序执行完后将输出:流动应力值、流动应力对等效应变的导数,流动应力对等效应变速率的导数。

这几个变量可以用用户定义变量来计算。

子程序功能:USRMTR:传入上级程序计算出的等效应变、等效应变率、温度和用户应力模型编号,调用具有该编号的UFLOW,将等效应变、等效应变率、温度值传入UFLOW,用于计算出的流动应力、流动应力对等效应变的导数和流动应力对等效应变率的导数传回上级程序。

UFLOW:用传入的等效应变、等效应变率、温度和公共块中的用户定义的单元变量(USRE1、USRE2)和节点变量(USRN1、USRN2)计算流动应力、流动应力对等效应变的导数和流动应力对等效应变率的导数,并将这些计算值返回USRMTR。

(3)用户定义节点和单元变量(USRUPD)子程序格式:SUBROUTINE USRUPD子程序功能:计算所有的用户单元变量和用户节点变量。

在应力模型中可以使用这个子程序中定义的变量。

(4)USR子程序该子程序被USRUPD调用,它是计算材料本构模型的主体程序,具体功能是:计算流动应力、再结晶体积分数、平均晶粒度、未再结晶晶粒度、再结晶晶粒度、晶粒度差等与本构模型相关的用户自定义单元变量,并将这些变量值传到USRUPD子程序中。

该子程序的计算需要用到存储在IUSRVL数组中的热刚-粘塑性本构模型中的所有参数。

子程序中读取语句如下:READ(IUSRVL (4),*)RM1,RK1,GAMA,RMD,ROU0,ROU1,ROU2 READ(IUSRVL (5),*)RLID,RM,BEITA,A,RM2,RK2(5)CHAZHI子程序变形体网格重划后,存储在用户构造的数据文件中的建立在网格重划前单元上的变量数据必须通过插值方法转换到网格重划以后的新单元之上,不然有限元计算将不能正确进行。

因此,网格重划必须进行必要的数据转换。

为进行插值计算,需要存储网格重划前、后的单元节点信息,包括:网格重划前的单元总数、节点总数、每一时间步的节点坐标、单元节点号;网格重划后的单元总数、节点总数、节点坐标、单元节点号。

CHAZHI子程序的流程图如下图所示。

CHAZHI子程序流程图2、用户定义子程序的核心代码用户定义子程序的核心代码都储存在DEF_USR.FOR中,有限元主程序通过调用该文件中的子程序,可以计算出用户自定义变量的值。

所以关键问题在于该子程序的编写。

DEF_USR.FOR文件中的子程序有USRMSH、USRUPD 和UFLOW三个用户子程序。

下图为DEF_USR.FOR文件中子程序之间的先后调用顺序关系。

3、动态再结晶过程分析子程序的编制该子程序是在有限元模拟程序中用于计算流动应力和平均晶粒度等单元变量的,它在有限元模拟程序中的位置如流程图中加粗字体所示。

该子程序在有限元计算中的位置本研究的一个重要内容就是将公式所组成的“热刚—粘塑性本构模型”以用户子程序的方式加入到DEFORM3D中,并将该模型中的一些变量(如再结晶体积分数等)定义成用户自定义单元变量,以便从DEFORM3D的后处理中可以查看这些变量在变形体内的分布情况。

具体开发步骤如下所述。

二、开发步骤1、开发运行环境安装用虚拟光驱加载Absoft8.0.iso文件,安装Absoft 8.0编译器,安装界面如图1~图2所示。

图1 安装界面一,点击【Install Products】图2 安装界面二,顺次安装每个条目,【IMSL Libraries】可以略过。

2、安装Deform3D V6、植入子程序(1)安装Deform3D V6软件(2)植入子程序:打开Deform3D V6安装目录,如“D:\DEFORM3D”,进入子目录“V6_1\UserRoutine\DEF_SIM”中。

此时可见文件如图3所示。

图3双击打开文件“DEF_SIM_USR_Absoft75.gui”,如图4所示。

图4 DEF_SIM_USR_Absoft75在此处,我们用到的文件为:usr_mtr.f、usr_upd.f、usr_msh.f。

源文件中的各个函数在工程中文件分布情况如表1所示。

将“源代码.pdf”中的代码拷贝到对应的文件中,并保存。

点击工具栏中的图标进行编译,在同一目录中生成“DEF_SIM.exe”。

将“DEF_SIM.exe”拷贝到Deform安装目录下的“V6_1”目录下,如“D:\DEFORM3D\V6_1”,此时提示该文件已经存在,覆盖即可。

当然,最好在覆盖之前,先将原有的“DEF_SIM.exe”备份一下。

经验显示:应将原“DEF_SIM.exe”文件剪切走,然后将新生成“DEF_SIM.exe”文件拷入。

此时就已经完成了准备工作,下面开始用Deform来调用自定义的模型来进行仿真模拟。

具体步骤如下:3、二次开发嵌入子程序后的仿真流程(1)新建问题打开Deform-3D,点击左上角,新建问题。

点击两次【next】,出现问题名称,如图5所示,为新建问题对话框,在新建问题名称处根据个人意愿输入,例如:输入“A”。

点击【Finish】,进入前处理环境。

图5 新建问题对话框(2)模拟控制输入选择菜单【Input】中的【Simulation Controls】,在【Main】栏更改单位制为SI,如图6所示为模拟控制输入对话框。

点击【OK】按钮。

图6模拟控制输入对话框(3)添加坯料在右边数结构中选中【[PDie] Workpiece】,并在中选择【Import Geo…】,选择Deform安装目录下“\V6_1\LABS\”中的Block_Billet.STL。

点击,划分网格,点击【Generate Mesh】生成网格。

(4)添加上模点击,添加模型,并在中选择【Import Geo…】,选择Deform安装目录下“\V6_1\LABS\”中的Block_TopDie.STL。

在中的【Constant Value】定义运行速度,如图7所示。

图7(5)添加下模点击,添加模型,并在中选择【Import Geo…】,选择Deform 安装目录下“\V6_1\LABS\”中的Block_BottomDie.STL。

(6)定义材料(关键点——应力应变本构方程)选择菜单【Input】中的【Material】,选择【load from lab】,选择合适的材料。

然后在【Plastic】中的【Flow Stress】下拉菜单中选择“User routine”.如图8所示。

图8点击,选择流动应力子函数,这里将与定义的UFLOW1、UFLOW2…对应起来,如:选择填写数字“1”,表示对应UFLOW1。

点击【Close】。

在右边数结构中选中【[PDie] Workpiece】,在【General】中的【Material】中点击,选择刚才定义的材料。

(7)定义单元数据打开【Advanced】中的Element Data,出现对话框,选择“User”,对话框中可以定义“Variable Name”和对应的“Value”。

如图9所示。

在此定义并输入18个用户单元变量和相应的初始值。

图9(8)定义步骤打开菜单【Input】中的【Simulation Controls】,选择【Step】,设置步骤信息如图10所示。

(9)定义接触打开菜单【Input】中的【inter-object】,弹出图11对话框,点击Yes。

弹出对话框图12。

图11图 12选中条目1,点击【Edit】,设置摩擦系数为0.12,如图13所示。

点击【Close】,再点击【Generate】生成接触面。

用同样方法设置另一个接触面。

(10)定义“用户自定义变量”打开菜单【Input】中的【Simulation Controls】,选择【Advanced】中的【User Defined】,输入编号为1-6的用户变量。

其具体意义如表2所示。

这部分用户自定义变量涉及到具体材料的相关参数。

注:表中数据为26CrZNi4MoV材料的相关值,在此作为范例。

(11)生成数据库点击,弹出窗口,然后点击【Check】,检查无误,点击【Generate】生成数据库。

打开菜单【File】中的【Save as】,另存为 A.KEY,生成供程序调用的文件。

(12)仿真退出前处理环境,点击【Run】开始仿真。

(13)后处理通过后处理,可以获得:在不同变形条件下,再结晶体积分数、平均晶粒度、未再结晶晶粒度、再结晶晶粒度、等效应变、等效应力、等效应变速率、最大晶粒度差等变量分布的数值模拟结果。

这些后处理的结果,与图9的输入变量有对应关系,可以在后处理对话框中找到对应的图谱。

相关文档
最新文档