Deform二次开发步骤
DEFORM二次开发各模块介绍
材料本构模型是实现计算机数值模拟的前提条件之一,【关于计算机数值模拟技术的发展介绍】本论文所采用的有限元模拟软件DEFORM-3D进行材料的微观组织模拟介绍,DEFORM-3D 有限元软件是集成了原材料、成形、热处理和机加工为一体的软件,可用于分析各种塑性体积成形过程中金属流动以及材料的应力、应变和温度等物理场量的分布变化情况,同时提供了材料的流动、模具间的填充、成型过程的载荷量、模具所受应力、材料的纤维流向、成型过程的坯料形成、材料的韧性断裂以及金属微观组织结构等信息。
为了实现在金属成形工艺模拟过程中进行微观组织演化的定量预测,所使用的模拟软件必须有包含微观组织变化的本构模型和专门的微观组织演化分析模块。
当前国际上虽然有多个知名商业有限元软件流行,但是它们都不具备微观组织演化的预测功能;或者软件具有微观组织变化的本构模型,但仍需使用者输入材料的参数方可进行,而软件不提供材料的参数;故很多软件都淡化此微观组织演化分析模块。
庆幸的是多数商业软件都为二次开发设置了用户子程序功能,通过编制用户子程序就能实现对微观组织演化的预测功能。
用户自定义本构模型的输入方法在当今的科学研究方向中,新材料的开发占据了一个重要的角色。
不同的材料工作者开发了不同的新材料,得到了不同的本构模型,需要对这种新材料进行模拟,为了满足这种需求,DEFORM提供了两种用户自定义本构模型的输入方法:(1)以函数形式输入本构模型。
DEFORM提供了若干常用本构模型,如图4.6所示。
若用户的本构模型与系统提供的本构模型一致,则可直接输入其相关系数即可;若用户的本构模型在系统中不存在,则可通过二次开发编程的方式将用户的本构模型加入到DEFORM中,然后在图4.6中选择“User routine”并输入所调用的本构模型子程序的编号。
(2)以数据形式输入本构模型。
DEFORM还允许通过输入数据的方式来定义材料的塑性流动行为。
具体方法是根据材料的真应力一真应变曲线,取若干个数据点,逐个输入该材料在某个温度、某个变形速率和某个真应变下的真应力。
Deform详细教程
输入材料的热物理性质,如热导率、比热容、热膨胀系数 等,以便在模拟过程中考虑温度对材料性能的影响。
材料失效准则
根据实际需要,选择适当的材料失效准则,如最大主应力 准则、等效塑性应变准则等,并设置相应的失效参数。
边界条件设置
几何边界条件
定义模型的几何形状、尺寸和边 界类型,如固定边界、自由边界 、对称边界等。
04 Deform软件基本操作
用户界面介绍
主界面
包括菜单栏、工具栏、模型树、属性窗口等,提供全 面的操作功能和视图展示。
图形界面
支持多种图形显示模式,如实体、网格、轮廓等,方 便用户进行模型分析和后处理。
自定义界面
用户可根据个人习惯自定义界面布局,提高工作效率 。
基本操作命令
鼠标操作
通过鼠标左键选择、拖拽、旋转等操作,实现模型的交互操作。
未来发展趋势预测
A
随着计算机技术的不断发展,有限元分析软件 的计算能力和效率将不断提高,使得更大规模 、更复杂的仿真分析成为可能。
人工智能、机器学习等技术的引入,将为 有限元分析提供更强大的数据处理和挖掘 能力,进一步提高分析的精度和效率。
B
C
多物理场耦合分析将成为未来发展的重要方 向,Deform等软件将不断完善多物理场分 析功能,满足更广泛的应用需求。
配置环境变量和启动软件
启动软件 在完成安装和环境变量配置后,可以通过以下方式启动Deform软件 1. 点击桌面或开始菜单中的Deform图标。
配置环境变量和启动软件
2. 在命令行中输入Deform的可执行 文件名并回车。
3. 如果设置了文件关联,可以直接双 击与Deform关联的文件类型来启动 软件并打开相应文件。
基于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软件提供一种热处理模拟模块,可以帮助热处理工艺员,通过有限元数值模拟来获得正确的热处理参数,从而来指导热处理生产实际。
减少批量报废的质量事故发生。
热处理模拟,涉及到热应力变形、热扩散和相变等方面,因此计算很复杂,软件采用牛顿迭代法,即牛顿-拉夫逊法进行求解。
它是牛顿在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。
DEFORM二次开发的一点小心得!
DEFORM二次开发的一点小心得!前一段时间闲着没事,看了DEFORM的help文件.和众位兄弟交流一下.用户子程序实现过程:第一步:所需文件准备:把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分别模拟)第三步:用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 了。
注:3D中必须是DEF_SIM.exe,而DEF_SIM— P4.exe不好!(我也不知道原因,师兄是这么说的!).还有一个问题,关于DEFORM的text运行模式.在安装目录下面,有如下几个需要了解的文件:<1>DEF_PRE.EXE;<2>DEF_ARM_DEF_PRE.EXE这是前处理,DOS界面输入前处理参数设置,记录每次设置时的操作,按一定格式记录在记事本上面,这个很重要,二次开发可能需要这个文件.具体参见help.DEF_ARM_ 这是运行命令.具体格式见help.下面是关键:通过fortran子程序调用DEFORM.具体如下.我用的是visual fortran6.6.result=system('E:\DEFORM3D\V5_0\DEF_PRE.EXE') (启动前处理,弹出DEF_PRE.EXE界面)result=system('E:\DEFORM3D\V5_0\DEF_PRE.EXE<INI.TXT') (进行前处理参数设置,INI.TXT是记录每次设置时的操作命令流),譬如一个简单的操作命令流:<CR>21XXXX.KEY (key文件,需要copy到你的子程序目录下)<CR>E72XXXX.DB (生成DB文件)<CR>EY<CR>result=system('E:\DEFORM3D\V5_0\DEF_ARM_ XXXX B') (运行DB文件,XXXX为文件名,B表示batch模式运行)注意运行过程中,有可能生成临时文件,如FOR003等,会影响模拟进行,可通过fortran命令open和write操作清除.以上可以实现一些特殊的操作.如运动子程序等.上述即是我的一点小体会.很多我也不是很懂,自己的课题也不是DEFORM二次开发,也不专长编程.呵呵,希望对大家有所帮助!Re:请问能不能帖个自己二次开发加本构方程的例子这是我尝试过的关于流动应力的二次开发,希望能给没有做过二次开发的朋友一点经验~~~现在要好好研究二次开发和有限元软件的核心机制了~~~共同进步~~~program USRMTRreal YS,TEPS,EFEPS,TEMread (*,*,*)TEPS,EFEPS,TEMYS=123.5237-1.238956*TEM+3.8584*LOG10(EFEPS)+6.7852*TEPS-1.29*TEM*TEPS+52.895* LOG10(EFEPS)*TEPS+0.00088442*TEM*TEMPrint *,YSEND相信看了这个程序后,大家对二次开发肯定有个初步的了解了~呵~用户子程序具体实现心得结合论坛上各位大虾的经验和自带帮助,前段时间动手试了一下用户子程序的实现过程,现将自己的一些体会与大家共享,相信对做二次开发的新手有用用户子程序实现过程:第一步:所需文件准备:把DEF_S IM目录下的def_usr.f , DEF_S IM_USR_ABsoft70.gui ,DEF_SIM_P4_USR_ABsoft70.gui , DEF_S IM_P4_USR_LIB.lib , DEF_S IM_USR_LIB.lib和lib目录下的所有.lib文件拷到工作目录下。
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 二次开发步骤
微观组织模拟:模拟步骤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二次开发教程——手把手教你如何二次开发本实例是针对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二次开发帮助文件
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-3D进⾏材料的微观组织模拟介绍,DEFORM-3D 有限元软件是集成了原材料、成形、热处理和机加⼯为⼀体的软件,可⽤于分析各种塑性体积成形过程中⾦属流动以及材料的应⼒、应变和温度等物理场量的分布变化情况,同时提供了材料的流动、模具间的填充、成型过程的载荷量、模具所受应⼒、材料的纤维流向、成型过程的坯料形成、材料的韧性断裂以及⾦属微观组织结构等信息。
为了实现在⾦属成形⼯艺模拟过程中进⾏微观组织演化的定量预测,所使⽤的模拟软件必须有包含微观组织变化的本构模型和专门的微观组织演化分析模块。
当前国际上虽然有多个知名商业有限元软件流⾏,但是它们都不具备微观组织演化的预测功能;或者软件具有微观组织变化的本构模型,但仍需使⽤者输⼊材料的参数⽅可进⾏,⽽软件不提供材料的参数;故很多软件都淡化此微观组织演化分析模块。
庆幸的是多数商业软件都为⼆次开发设置了⽤户⼦程序功能,通过编制⽤户⼦程序就能实现对微观组织演化的预测功能。
⽤户⾃定义本构模型的输⼊⽅法在当今的科学研究⽅向中,新材料的开发占据了⼀个重要的⾓⾊。
不同的材料⼯作者开发了不同的新材料,得到了不同的本构模型,需要对这种新材料进⾏模拟,为了满⾜这种需求,DEFORM提供了两种⽤户⾃定义本构模型的输⼊⽅法:(1)以函数形式输⼊本构模型。
DEFORM提供了若⼲常⽤本构模型,如图4.6所⽰。
若⽤户的本构模型与系统提供的本构模型⼀致,则可直接输⼊其相关系数即可;若⽤户的本构模型在系统中不存在,则可通过⼆次开发编程的⽅式将⽤户的本构模型加⼊到DEFORM中,然后在图4.6中选择“User routine”并输⼊所调⽤的本构模型⼦程序的编号。
(2)以数据形式输⼊本构模型。
DEFORM还允许通过输⼊数据的⽅式来定义材料的塑性流动⾏为。
二次开方法和关键
Pro/ENGINEER 的二次开发方法Pro/e提供的二次开发方法有很多如表族(Family Table),用户定义特征(UDF),Pro/Program, J-Link, Pro/toolkit,Rand公司开发的Automation Gateway等,在不同的应用场合,它们各有其优点。
根据模架的结构特点,先用较为合适Pro/ENGINEER 的二次开发方法。
2各种方法的简介2.1 族表(Family Table)Family Table 称为族表,通过族表可以方便的管理具有相同或相近结构的零件,特别适用于标准零件的管理。
族表通过建立通用零件为父零件,然后在其基础上对各参数加以控制生成派生零件。
整个族表通过电子表格来管理,所以又被称为表格驱动。
2.1.1标准模架库建立的过程(1)标准模架库的命,名组织标准模架库的使用是通过调用实体造型文件中的Instantiate(实例)来实现的,使用中必须遵循一定命名规则才能正确调用标准件库中所需的实例。
为此,把标准模架库的根目录建立在Pro/ENGINEER的安装目录下,按照模架的类型分别建立相应的子目录如Back pillar sets(后导柱模架)Center pillar sets(中间导柱模架)Diagonal pillar sets(对角导柱模架)等。
路径为<Pro/ENGINEER>\STDLIB\Back pillar sets。
Back pillar set 的下面又细分为各种型号的模架。
如图所示(2)建立模板利用Pro/e的实体造型功能,为标准模架所需的各个标准零件造型,如上模座、下模座、导柱、导套等,并存入到相应的子目录。
(3)装配模架利用步骤,所设计的标准零件,建立标准模架的装配图,存入到相应的子目录。
此装配图将作为通用组件,用来生成一系列标准模架。
(4)利用Pro/Program对模架的装配模板进行参数化编程2.1.2在装配模板中编程时,主要用到的语句有三种:①INPUT…END INPUT语句对于所设计零件的某些关键性尺寸或可以弹性化改变的尺寸,Pro/ENGINEER都会分别给它们一个变量如d0,d1等。
二次开发自定义模型使用教程
二次开发自定义模型使用教程在织梦系统中有内容模型这个概念,不同内容模型可以用来构建不同内容形式的站点,在系统中自带了以下几种模型:普通文章、图集、软件、商品、分类信息、专题。
通过系统自带的模型,我们可以用来构建不同类型的站点,例如:使用图集可以做一个图片站,用软件模型构建一个软件下载站点。
当然以上随系统附带的模型被称为系统模型,用户可以自己定义一些模型,比如图书、音乐专辑等,自定义了这些模型才可以构建更多内容形式的站点,本篇将讲述如何使用系统的自定义模型管理功能来实现内容模型的构建。
我们首先登录系统后台,点击[核心]-[内容模型管理],进入内容模型管理界面,如下图所示:这里我们介绍几个相关参数的概念:·ID号用于区分模型的唯一ID,一般常规模型的ID都是大于0的,比如普通文章、软件等,如果使用了单表模型,ID一般需要小于-1,例如这里的分类信息模型;·频道名称用于识别频道类型的标识;·识别id系统用于识别的id,这个关系到模板方面;·附加表系统内容附加表项;·模型类型分为系统类型和自动类型,系统类型为固化在系统中的内容模型,自动类型为用户可创建的内容模型类型;接下来我们开始介绍如何使用自定义模型管理来创建一个自己的模型,并且用于建设不同内容类型的网站中去。
这里我们介绍一些周边的内容,几个要用到的概念:·字段在数据库中,表的列称为字段,织梦系统也是如此,但更恰当的说法,存储某个内容信息单元,称为字段,例如标题、来源、作者等都是一个字段;·内容系统主表程序将一些公用字段存储在系统主表dede_archives,例如:标题、关键词、缩略图等,主表具体字段可以查询织梦帮助中心()的有关二次开发手册数据表部分的内容;·附加表不同内容模型对应不同的附加表,通常以dede_addon[识别ID]命名,附加表中存放的都是详细内容的相关字段(非公用),例如:文章内容(dede_addonarticle)、软件类型(dede_addonsoft)、图片集合(dede_addonimage)等;·单表独立模型存储时候不用到“主表+附加表”的结构形式,直接使用单个数据表进行存储内容数据,这样脱离主从表,减少主表数据服在开销,可以从很大程度上解决数据负载问题;明白了以上几个概念我们可以来学习如何来自己创建一个内容模型了。
二次开发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
2024版Deform详细教程(苍松书苑)
Deform详细教程(苍松书苑)•引言•Deform 软件概述•Deform 软件安装与配置•Deform 软件基本操作•建模与网格划分技术•材料属性定义及数据库管理•模拟计算过程控制与结果分析•高级功能应用与拓展目录引言教程目的和背景教程目的背景介绍苍松书苑介绍苍松书苑概述教程特色学习资源Deform软件概述直观的图形界面提供友好的图形界面,方便用户进行模型建立、结果查看等操作。
用户可以根据实际工艺需求,自定义工艺参数和边界条件。
丰富的材料数据库内置大量金属材料的物理和力学性能数据,方便用户进行模拟分析。
强大的模拟功能形工艺的模拟,包括锻造、轧高精度分析软件功能和特点机械制造领域金属成形领域航空航天领域科研与教育领域汽车制造领域应用领域和范围Deform软件安装与配置系统要求和硬件配置Windows内存至少处理器显卡硬盘空间Intel 或AMD 多核处理器,推荐Intel i5或更高系统要求和硬件配置1. 下载软件访问Deform官方网站或授权下载站点,下载最新版本的Deform安装程序。
0203双击下载的安装程序,开始安装向导。
阅读并同意软件许可协议。
2. 运行安装程序01020304013. 选择安装目录选择合适的安装目录,建议安装在非系统盘符下。
4. 等待安装完成安装程序将自动完成软件的安装过程,包括复制文件、创建快捷方式等。
01 02 034. 保存配置完成配置后,点击“保存”或“应用”按钮,使配置生效。
Deform软件基本操作用户界面介绍主界面图形界面命令行界面基本操作命令模型创建与编辑提供丰富的建模工具,支持模型的创建、修改和编辑,包括基本几何体、复杂曲面等。
材料定义与属性设置允许用户定义材料并设置其物理和机械属性,如弹性模量、泊松比、屈服强度等。
网格划分与控制提供灵活的网格划分工具,支持网格的自动生成、手动调整和局部加密等操作。
文件管理和数据导入导文件格式支持数据导入数据导出建模与网格划分技术几何建模曲面建模实体建模030201建模方法介绍网格划分原则及技巧网格类型选择根据模型特点和求解需求,选择合适的网格类型,如四面体网格、六面体网格、混合网格等。
DEFORM-2D操作指南
图 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 保存问题
本章使用图标
对象几何尺寸
缩放窗口
检查几何尺寸
动态再结晶二次开发
于临界应变,则开始计算动态再结晶过程;当动态再结晶分数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所示
DEFORM基本操作指南
.stl格式文件的生成
Pore软件建模完成后以.stl格式保存副本,然后 将“偏差控制”中的“弦高”和“角度控制”两个参数设为“0”后便可生成。 UG软件建模完成后可以直接以.stl格式形式文件导出。
二、网格划分
DEFORM软件是有限元系统 FEM ,所 以必须对所分析的工件进行网格划分。 在DEFORM-3D中,如果用其自身带的网格 剖分程序,只能划分四面体单元,这主要是为了 考虑网格重划分时的方便和快捷。但是它也接收 外部程序所生成的六面体 砖块 网格。网格划 分可以控制网格的密度,使网格的数量进一步减 少,但不至于在变形剧烈的部位产生严重的网格 畸变。
五、模拟参数的定义
这里定义的参数,主要是为了进行有效的数值 模拟。因为成形分析是一个连续的过程,分许多时 间步来计算,所以需要用户定义一些基本的参数: 1、总步数:决定了模拟的总时间和行程。 2、步长:有两种选择,可以用时间或每步的行程。 3、主模具:选择主运动模具。 4、存储步长:决定每多少步存一次,不要太小, 否则文件太大。
Excellent handout training template
DEFORM基本操作指南
DEFORM系列软件是由美国的科学成形技术公司 Science Forming Technology Corporation 开发的。该系列软件主要应用于金属塑性加工、热处理等工艺数值模拟。目前,DEFORM软件己经成为国际上流行的金属加工数值模拟的软件之一。主要软件产品有: DEFORM-2D 二维 DEFORM-3D 二维 DEFORM-HT 热处理 DEFORM-PC 微机版 DEFORM-F2 2D简化版本 DEFORM-F3 3D简化版本
金属塑性成形的前处理
DEFORM-3D软件的模块结构是由前处理器、模拟处理器、后处理器三大模块组成。 前处理是有限元分析的主要步骤,它所占用的操作时间占到用户操作时间的80%,有很多定义都是在前处理阶段进行的。前处理主要包括 步骤 : 1、几何模型建立或导入 2、网格划分 3、材料定义 4、物体的接触和摩擦定义 5、模拟参数的设定 6、数据库文件的生成
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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所示。
文件名包含的函数Usr_mtr.f USRMTR UFLOW1 UFLOW2 UFLOW3Usr_upd.fUSRUPD CHAZHI USR CONTOUR COLUMFOUsr_msh.f USRMSH表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所示。
图10(9)定义接触打开菜单【Input】中的【inter-object】,弹出图11对话框,点击Yes。
弹出对话框图12。
图11图 12选中条目1,点击【Edit】,设置摩擦系数为0.12,如图13所示。
图 13点击【Close】,再点击【Generate】生成接触面。
用同样方法设置另一个接触面。
(10)定义“用户自定义变量”打开菜单【Input】中的【Simulation Controls】,选择【Advanced】中的【User Defined】,输入编号为1-6的用户变量。
其具体意义如表2所示。
表2用户变量编号对应的变量含义值1 ISE1 被调用次数02 DEFEPSE 应变率增量0.1或其他3 KSTEP 当前步数04RM1RK1GAMARMDROU0ROU1ROU2m1K1(N/m2)γ(J/m2)ρ0ρ1ρ20.170700.649760.86E31.58784E6-0.387845RLIDRMBEITAARM2RK2Ii/Idm3βiam2K2(N/m2)42.37E69.47E122.9690.19730.277466 IR 网格重新划分次数这部分用户自定义变量涉及到具体材料的相关参数。