DEFORM二次开发各模块介绍
modoer二次开发之欧阳美创编
Modoer二次开发文档目录结构:Api 整合接口Core 框架核心Data 缓存内容Install 安装数据Static 图片,js位置Templates 模板Uc_uclient ucenter整合客户端Uploads 上传数据Core 框架核心Admin 框架后台代码Helper 框架功能性函数和类库Lang 代码级别的多语言包Lib 框架核心类库Model 框架模型Modules 各个模块核心代码Cache.php 必须要的缓存更新Diex.php 错误提示fense.php 防刷提示Function.php 全局函数库Init.php 系统加载的初始化Loader.php 功能载入类Version.php 版本信息Core/admin 框架后台代码(控制器部分)Admin.inc.php 后台用户管理Announcement.inc.php 公告数据管理Area.inc.php 地区管理Bcastr.inc.php 图片轮换管理Cpheader.inc.php 后台头部Cphome.inc.php 后台首页Cplogin.inc.php 后台登陆Cpmenu.inc.php 后台左侧菜单Database.inc.php 数据库操作Datacall.inc.php 数据调用Hook.inc.php 函数钩子管理(暂未使用)Map.inc.php 函数接口管理(暂未使用)Menu.inc.php 菜单管理Module.inc.php 模型管理Setting.inc.php 核心设置Template.inc.php 模板管理Tools.inc.php 工具管理(缓存更新)Word.inc.php 词语过滤Core/helper 框架功能性函数和类库Cache.php 缓存函数库,用于读取,生成缓存数据,存放于data下Dir.php 目录操作函数Display.php 模板内使用print:modoer 标签时,使用到的标签库Form.php 自动化表单空间生产函数库Json.php json形式生成和解析Passport.php dz6的整合(未使用)Query.php 模板内使用 get:modoer 标签时,用到的标签库Sql.php 复杂SQL操作的函数库,例如创建表,删除表,增加字段,删除字段,以及索引Template.php 模板引擎Validate.php 数据验证类库Core\lang\CH 代码级语言包不同模块组成的语言包文件,例如lang('global_op_succeed'),表示global.php 里的数组索引global_op_succeedCore\lib 框架核心类库Base.php 框架基类Cache.php 缓存类(暂时没有使用,目前使用helper里的cache.php函数库)Chinses.php 编码转换类Database.php 数据库操作子类(继承自mysql.php)Editor.php 编辑器类Images.php 图像处理类Join.php join操作类(暂时没有使用,用函数库里的)Maill.php 邮件发送类Model.php 模型基类Mysql.php mysql操作基类(被database集成)Mysql_result mysql查询结果资源类Rss.php rss生成类upload_file.php 文件上传类upload_image.php 图片上传类(继承自upload_file)Urlrewriter.php URL改写类core\model 框架模型类(业务逻辑),模型被控制器实例化,每个模型都集成model.php这个模型积累,多数模型都对应着至少1个数据表,从名称就可以看出所对应的表,主要也是对数据表的数据操作(读取,删除,编辑,新建)Admin_class后台用户操作模型announcement_class公告操作模型area_class 地区管理模型bcastr_class 图片轮换模型config_class 网站配置模型(包含模块配置)cpuser_class 后台登陆用户操作模型datacall_class 数据调用模型field_class 自定义字段管理模型fielddetail_class 自定义字段显示模型fieldform_class 自定义字段表单生成模型fieldsetting_class 自定义字段编辑模型fieldvalidator_class 自定义字段数据验证模型hook_class 函数钩子模型(未使用)menu_class 菜单管理模型module_class 模块管理模型template_class 模板管理模型word_class 词语过滤管理模型core\modules 模块核心每个模块占一个文件夹,每个模块内的目录结构都是相同的(modoer目录除外)core\modules\模块Admin 模块的后台操作代码Assistant 模块的我的助手内的操作代码Helper 模块自身的函数以及类库Inc 模块被其他模块或框架引用的HOOK代码Install 模块安装数据Model 模块自身的模型类库data\backupdata 数据库备份data\cachefiles 配置缓存data\datacall 数据调用缓存data\js js缓存(暂时没有使用到)data\logs 日志data\templates 前台包括助手在内的模板缓存static\editor 在线编辑器kindeditorstatic\images 图片static\javascript js,各个模块的js最好也放在这里,统计规范==============================================core\modules\articleAjax.php 新闻AJAX操作部分Common.php 新闻模块核心引用文件Detail.php 新闻详细内容页Index.php 新闻首页List.php 新闻列表页Member.php 我的助手管理入口Rss.php RSS聚合文件core\modules\article\admin 新闻模块后台管理代码(控制器)Article.inc.php 新闻数据管理Category.inc.php 新闻分类管理Config.inc.php 新闻模块配置Menus.inc.php 新闻模块的左侧菜单core\modules\article\assistant 新闻模块我的助手代码(控制器)Article.php 处理文章的发布,删除,编辑g_article.php 主题文章管理m_article.php 我发布的文章core\modules\article\helper 新闻模块函数库display.php 模板内使用print:article 标签时,使用到的标签库Form.php 新闻模块的自动化表单空间生产函数库Misc.php 一些杂项类库(未分类的函数库,静态函数)Query.php 模板内使用 get:article 标签时,用到的标签库core\modules\article\inc HOOK代码Cache.php 缓存更新被引用更新模本模块的缓存comment_hook.php 被评论模块应用,用于新闻的评论cphome_hook.php 被后台首页应用,用于模块的数据统计item_delete_hook.php 被主题点评模块内主题被删除引用menu_hook.php 被我的助手左侧菜单引用point_rule.php 被会员管理,积分设置里引用rebuild_hook.php 预留,未使用search_hook.php 被前台头部的搜索功能引用core\modules\article\install 模块安装Config.php 模块初始配置参数Info.php 模块的信息Install_check.php 模块安装前的检测Install.php 模块安装后,进行的逻辑处理Uninstall.php 模块卸载后引用,用于清理残余module_install.sql 模块安装的SQLmodule_uninstall.sql 模块写在的SQLcore\modules\article\model 新闻模块模型article_class.php 新闻数据管理模型category_class.php 新闻分类管理模型==============================================core\modules\cardCommon.php 模块核心引用文件Index.php 模块首页Member.php 助手入口core\modules\card\adminConfig.inc.php 模块配置Menus.inc.php 模块的左侧菜单Apply.inc.php 会员卡申请管理Discount.inc.php 会员折扣数据管理core\modules\card\assistantApply.php 申请表单提交m_apply.php 申请的内容和状态core\modules\card\helperForm.php 模块的自动化表单空间生产函数库Query.php 模板内使用 get:card标签时,用到的标签库core\modules\card\inc内容同新闻模块core\modules\card\install内容同新闻模块core\modules\card\modelapply_class.php 会员卡申请模型discount_class.php 会员折扣模型============================================core\modules\comment 评论模块Common.php 模块核心引用文件list.php 评论列表(ajax引用,显示在各个不同的模块)Member.php 助手入口core\modules\comment\adminConfig.inc.php 模块配置Menus.inc.php 模块的左侧菜单comment_list.inc.php 评论数据管理core\modules\comment\assistantcomment_add.php 提交评论m_comment.php 我发布的评论管理core\modules\comment\helperForm.php 模块的自动化表单空间生产函数库Query.php 模板内使用 get:comment标签时,用到的标签库core\modules\comment\inc内容同新闻模块core\modules\comment\install内容同新闻模块core\modules\comment\modelcomment_class.php 评论操作模型==============================================core\modules\coupon 优惠券模块Common.php 模块核心引用文件Member.php 助手入口Apply.php 申请操作Detail.php 详细内容List.php 列表页面Print.php 打印操作core\modules\coupon\adminConfig.inc.php 模块配置Menus.inc.php 模块的左侧菜单Category.inc.php 分类管理Coupon.inc.php 优惠券数据管理core\modules\coupon\assistantCoupon.php 优惠券的增加删除操作g_coupon.php 主题管理员对自身的优惠券进行管理core\modules\coupon\helperDisplay.php 模板内使用print:coupon标签时,使用到的标签库Form.php 模块的自动化表单空间生产函数库Query.php 模板内使用 get:coupon标签时,用到的标签库core\modules\coupon\inc内容同新闻模块core\modules\coupon\install内容同新闻模块core\modules\coupon\modelcategory_class.php 优惠券分类模型coupon_class.php 优惠券数据管理模型==============================================core\modules\exchange礼品兑换模块Common.php 模块核心引用文件Member.php 助手入口index.php 模块首页Gift.php 礼品内容页core\modules\exchange\adminConfig.inc.php 模块配置Menus.inc.php 模块的左侧菜单Exchange.inc.php 兑换数据管理Gift.inc.php 礼品管理core\modules\exchange\assistantExchange.php 会员兑换操作m_gift.php 我兑换的礼品core\modules\exchange\helperQuery.php 模板内使用 get:coupon标签时,用到的标签库core\modules\exchange\inc内容同新闻模块core\modules\exchange\install内容同新闻模块core\modules\exchange\modelexchange_class.php 兑换逻辑模型gift_class.php 礼品逻辑模型==============================================core\modules\coupon 优惠券模块Common.php 模块核心引用文件Member.php 助手入口Apply.php 申请操作Detail.php 详细内容List.php 列表页面Print.php 打印操作core\modules\coupon\adminConfig.inc.php 模块配置Menus.inc.php 模块的左侧菜单Category.inc.php 分类管理Coupon.inc.php 优惠券数据管理core\modules\coupon\assistantCoupon.php 优惠券的增加删除操作g_coupon.php 主题管理员对自身的优惠券进行管理core\modules\coupon\helperDisplay.php 模板内使用print:coupon标签时,使用到的标签库Form.php 模块的自动化表单空间生产函数库Query.php 模板内使用 get:coupon标签时,用到的标签库core\modules\coupon\inc内容同新闻模块core\modules\coupon\install内容同新闻模块core\modules\coupon\modelcategory_class.php 优惠券分类模型coupon_class.php 优惠券数据管理模型==============================================core\modules\item 主题点评模块Common.php 模块核心引用文件Member.php 助手入口ajax.php AJAX的入口allpic.php 所有主题图片列表detail.php 主题详细内容list.php 主题列表pic.php 指定主题图片reviews.php 点评信息列表rss.php RSS点评聚合search.php 主题搜索tag.php 热门标签和标签搜索top.php 主题排行core\modules\item\adminConfig.inc.php 模块配置Menus.inc.php 模块的左侧菜单category_add.inc.php 分类增加category_edit.inc.php 分类编辑category_list.inc.php 分类列表field_edit.inc.php 自定义字段编辑field_list.inc.php 自定义字段列表field_type.inc.php 自定义字段类型引用(从\core\model\fields\setting里应用框架的,没有则应用模块里的core\modules\item\model\fields\setting)guestbook_check.inc.php 留言审核guestbook_list.inc.php 留言管理model_add.inc.php 模型添加model_edit.inc.php 模型编辑model_list.inc.php 模型列表picture_check.inc.php 图片审核picture_list.inc.php 图片管理respond_check.inc.php 回应审核respond_list.inc.php 回应管理review_check.inc.php 点评审核review_edit.inc.php 点评编辑review_list.inc.php 点评数据列表review_opt.inc.php 点评项管理review_report.inc.php 点评举报管理subject_add.inc.php 主题添加subject_apply.inc.php 主题管理员申请的管理subject_check.inc.php 主题审核subject_edit.inc.php 主题编辑subject_list.inc.php 主题列表数据管理subject_log.inc.php 主题补充管理tag_list.inc.php 标签管理taggroup.inc.php 标签组管理template.inc.php 主题风格管理core\modules\item\ajaxguestbook.php 留言提交(显示ajax翻页)picture.php 图片显示(显示ajax翻页)respond.php 回应部分操作(显示ajax翻页)review.php 点评部分操作(点评ajax翻页,提交,鲜花,举报)subject.php 主题部分操作(搜索,收藏,会员参数,地图补充)core\modules\item\assistantfavorite.php 收藏夹管理g_guestbook.php 主题留言管理g_picture.php 主题图片管理g_subject.php 主题管理m_guestbook.php 我的留言管理m_picture.php 我的图片管理m_respond.php 我的回应管理m_review.php 我的点评管理m_subject.php 我添加的主题列表pic_upload.php 图片上传review_add.php 点评发布review_edit.php 点评编辑subject_add.php 主题添加subject_apply.php 主题管理员申请subject_edit.php 主题编辑core\modules\item\helperDisplay.php 模板内使用 print:item 标签时,使用到的标签库Form.php 模块的自动化表单空间生产函数库Query.php 模板内使用 get:item 标签时,用到的标签库core\modules\item\inc内容同新闻模块domain_hook.php 主题二级/三级目录引用core\modules\item\install内容同新闻模块core\modules\item\modelactivity_class.php 活跃度操作模型category_class.php 分类操作模型favorite_class.php 收藏夹操作模型field_class.php 自定义字段操作模型fielddetail_class.php 自定义字段显示模型(从框架模型里集成)fieldform_class.php 自定义字段表单生成模型(从框架模型里集成)fieldsetting_class.php 自定义字段编辑模型(从框架模型里集成)fieldvalidator_class.php 自定义字段验证模型(从框架模型里集成)flower_class.php 鲜花操作模型guestbook_class.php 留言操作模型itembase_class.php 主题模型基类model_class.php 主题模型管理模型picture_class.php 主题图片模型report_class.php 点评举报模型respond_class.php 回应模型review_class.php 点评模型review_opt_class.php 点评项模型search_class.php 搜索模型subject_class.php 主题模型subjectapply_class.php 主题管理员申请模型subjectlog_class.php 主题补充模型tag_class.php 标签模型taggroup_class.php 标签组模型==============================================core\modules\link 友情链接模块Common.php 模块核心引用文件apply.php 友联申请index.php 友联首页列表core\modules\link\adminConfig.inc.php 模块配置Menus.inc.php 模块的左侧菜单link.inc.php 友联管理core\modules\link\helperForm.php 模块的自动化表单空间生产函数库Query.php 模板内使用 get:link 标签时,用到的标签库core\modules\link\inc内容同新闻模块core\modules\link\install内容同新闻模块core\modules\link\modelmylink_class.php 友情链接逻辑操作模型==============================================core\modules\member 会员模块Common.php 模块核心引用文件ajax.php 注册和登陆AJAX验证index.php 我的助手入口login.php 登陆reg.php 注册core\modules\member\adminConfig.inc.php 模块配置Menus.inc.php 模块的左侧菜单batchpm.inc.php 短信息公告members.inc.php 会员数据管理passport.inc.php 反向整合(非ucenter)point.inc.php 积分设置(自动应用各个模块的inc目录里的积分规则)usergroup.inc.php 会员组管理和权限管理(自动应用各个模块admin/templates/hook_usergroup_save.tpl.php)core\modules\member\assistantface.php 头像设置friend.php 好友管理main.php 助手首页menu.php 助手菜单myset.php 我的设置pm.php 短信息管理和发送core\modules\member\helperForm.php 模块的自动化表单空间生产函数库Query.php 模板内使用 get:member 标签时,用到的标签库core\modules\member\inc内容同新闻模块core\modules\member\install内容同新闻模块core\modules\member\modelfeed_class.php feed事件录入(占位文件,主要使用ucenter里的feed)friend_class.php 好友管理模型member_class.php 会员管理模型membereffect_class.php 会员参数模型message_class.php 短信息模型point_class.php 积分变更模型user_class.php 会员SESSION类usergroup_class.php 会员组模型==============================================core\modules\modoer 框架前台页面ajax.php ajax方式数据调用和验证码检测announcement.php 公告显示js.php js方式数据调用map.php 地图接口显示search.php 搜索(自动引用各个模块的inc里的search_hook.php)seccode.php 显示验证码==============================================core\modules\product 主题产品模块Common.php 模块核心引用文件member.php 我的助手入口文件detail.php 产品内容页list.php 产品列表页core\modules\product\adminConfig.inc.php 模块配置Menus.inc.php 模块的左侧菜单field_edit.inc.php 自定义字段编辑field_list.inc.php 自定义字段列表field_type.inc.php 自定义字段类型引用(从\core\model\fields\setting里应用框架的,没有则应用模块里的core\modules\product\model\fields\setting)model_add.inc.php 新建模型model_edit.inc.php 模型编辑model_list.inc.php 模型列表product_list.inc.php 产品列表core\modules\product\assistantcategory.php 产品分类管理g_product.php 主题产品的管理core\modules\product\helperForm.php 模块的自动化表单空间生产函数库Query.php 模板内使用 get:product 标签时,用到的标签库core\modules\product\inc内容同新闻模块core\modules\product\install内容同新闻模块core\modules\product\modelcategory_class.php 产品分类模型field_class.php 产品自定义字段模型model_class.php 产品模型管理模型product_class.php 产品数据库操作模型==============================================core\modules\product 主题产品模块Common.php 模块核心引用文件member.php 我的助手入口文件detail.php 产品内容页list.php 产品列表页core\modules\product\adminConfig.inc.php 模块配置Menus.inc.php 模块的左侧菜单field_edit.inc.php 自定义字段编辑field_list.inc.php 自定义字段列表field_type.inc.php 自定义字段类型引用(从\core\model\fields\setting里应用框架的,没有则应用模块里的core\modules\product\model\fields\setting)model_add.inc.php 新建模型model_edit.inc.php 模型编辑model_list.inc.php 模型列表product_list.inc.php 产品列表core\modules\product\assistantcategory.php 产品分类管理g_product.php 主题产品的管理core\modules\product\helperForm.php 模块的自动化表单空间生产函数库Query.php 模板内使用 get:link 标签时,用到的标签库core\modules\product\inc内容同新闻模块core\modules\product\install内容同新闻模块core\modules\product\modelcategory_class.php 产品分类模型field_class.php 产品自定义字段模型model_class.php 产品模型管理模型product_class.php 产品数据库操作模型。
DEFORM二次开发各模块介绍
材料本构模型是实现计算机数值模拟的前提条件之一,【关于计算机数值模拟技术的发展介绍】本论文所采用的有限元模拟软件DEFORM-3D进行材料的微观组织模拟介绍,DEFORM-3D 有限元软件是集成了原材料、成形、热处理和机加工为一体的软件,可用于分析各种塑性体积成形过程中金属流动以及材料的应力、应变和温度等物理场量的分布变化情况,同时提供了材料的流动、模具间的填充、成型过程的载荷量、模具所受应力、材料的纤维流向、成型过程的坯料形成、材料的韧性断裂以及金属微观组织结构等信息。
为了实现在金属成形工艺模拟过程中进行微观组织演化的定量预测,所使用的模拟软件必须有包含微观组织变化的本构模型和专门的微观组织演化分析模块。
当前国际上虽然有多个知名商业有限元软件流行,但是它们都不具备微观组织演化的预测功能;或者软件具有微观组织变化的本构模型,但仍需使用者输入材料的参数方可进行,而软件不提供材料的参数;故很多软件都淡化此微观组织演化分析模块。
庆幸的是多数商业软件都为二次开发设置了用户子程序功能,通过编制用户子程序就能实现对微观组织演化的预测功能。
用户自定义本构模型的输入方法在当今的科学研究方向中,新材料的开发占据了一个重要的角色。
不同的材料工作者开发了不同的新材料,得到了不同的本构模型,需要对这种新材料进行模拟,为了满足这种需求,DEFORM提供了两种用户自定义本构模型的输入方法:(1)以函数形式输入本构模型。
DEFORM提供了若干常用本构模型,如图4.6所示。
若用户的本构模型与系统提供的本构模型一致,则可直接输入其相关系数即可;若用户的本构模型在系统中不存在,则可通过二次开发编程的方式将用户的本构模型加入到DEFORM中,然后在图4.6中选择“User routine”并输入所调用的本构模型子程序的编号。
(2)以数据形式输入本构模型。
DEFORM还允许通过输入数据的方式来定义材料的塑性流动行为。
具体方法是根据材料的真应力一真应变曲线,取若干个数据点,逐个输入该材料在某个温度、某个变形速率和某个真应变下的真应力。
(完整word版)DEFORM软件介绍
DEFORM-3D的简介Deform(Design Enviroment for Forming)有限元分析系统是美国SFTC公司开发的一套专门用于金属塑性成形的软件。
通过在计算机上模拟整个加工过程,可减少昂贵的现场试验成本,提高工模具设计效率,降低生产和材料成本,缩短新产品的研究开发周期。
Deform软件是一个高度模块化、集成化的有限元模拟系统,它主要包括前处理器、模拟器、后处理器三大模块。
前处理器:主要包括三个子模块(1)数据输入模块,便于数据的交互式输入。
如:初始速度场、温度场、边界条件、冲头行程及摩擦系数等初始条件;(2)网格的自动划分与自动再划分模块;(3)数据传递模块,当网格重划分后,能够在新旧网格之间实现应力、应变、速度场、边界条件等数据的传递,从而保证计算的连续性。
模拟器:真正的有限元分析过程是在模拟处理器中完成的,Deform运行时,首先通过有限元离散化将平衡方程、本构关系和边界条件转化为非线性方程组,然后通过直接迭代法和Newton-Raphson法进行求解,求解的结果以二进制的形式进行保存,用户可在后处理器中获取所需要的结果后处理器:后处理器用于显示计算结果,结果可以是图形形式,也可以是数字、文字混编形式,获取的结果可为每一步的有限元网格;等效应力、等效应变;速度场、温度场及压力行程曲线等DEFORM软件操作流程(1)导入几何模型在DEFORM-3D软件中,不能直接建立三维几何模型,必须通过其他CAD/CAE软件建模后导入导DEFORM系统中,目前,DEFORM-3D的几何模型接口格式有: ①STL:几乎所有的CAD软件都有这个接口。
它由一系列的三角形拟合曲面而成。
②UNV:是由SDRC公司(现合并到EDS公司)开发的软件IDEAS制作的三维实体造型及有限元网格文件格式,DEFOEM接受其划分的网格。
③PDA:MSC公司的软件Patran的三维实体造型及有限元网格文件格式。
deform使用手册
D E F O R M使用手册(总47页) -CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除DEFORM 2D-HT 使用手册1.几何操作-XYR格式创建新作业设置模拟控制创建新对象图视几何对象保存作业退出DEFORM TM-2D本章使用的图标:对象几何尺寸定义几何尺寸检查动态放大窗口放大动态平移保存文件221.几何输入操作-XYR格式创建新作业注意:正确设置文档(文件夹)结构有利于文件调用,因而,用户最好事先建立作业目录路径。
例如,设定主目录LABS,而在LABS路径下建立目录LAB1、LAB2、LAB3等等。
启动DEFORM程序。
如果是UNIX平台的版本,一开始键入DEFORM2。
如果是PC 平台的版本,在DEFORM目录下单击DEFORM2D。
DEFORM 的主系统窗口如图1-1所示:图 DEFORM TM 2D系统窗口单击Create a New Directory 图标,创建新路径(MESH),完成后单击OK按钮。
双击目录MESH打开该目录。
在文本框Problem ID中设置Problem ID(作业ID)为MESH。
完成以上过程后进入Pre-Processor(前处理)来定义模拟数据。
现在单击Pre-Processor图标,DEFORM TM 2D的前处理窗口如图所示,该窗口包括TOOLS,CONTROL,MESSAGE和DISPLAY窗口。
33图 DEFORM TM 2D前处理窗口设置模拟控制参数单击CONTROL窗口中的Simulation Controls按钮打开SIMULATION CONTROLS窗口(如图。
在文本框Simulation Title中键入模式名称为MESH,在本模拟过程中,我们使用SIMNLATION CONTROLS窗口的缺省设置。
(单位UNITS:英制English,变形Deformation:为ON,对象几何类型:轴对称Axisymmetric)。
Deform详细教程
输入材料的热物理性质,如热导率、比热容、热膨胀系数 等,以便在模拟过程中考虑温度对材料性能的影响。
材料失效准则
根据实际需要,选择适当的材料失效准则,如最大主应力 准则、等效塑性应变准则等,并设置相应的失效参数。
边界条件设置
几何边界条件
定义模型的几何形状、尺寸和边 界类型,如固定边界、自由边界 、对称边界等。
04 Deform软件基本操作
用户界面介绍
主界面
包括菜单栏、工具栏、模型树、属性窗口等,提供全 面的操作功能和视图展示。
图形界面
支持多种图形显示模式,如实体、网格、轮廓等,方 便用户进行模型分析和后处理。
自定义界面
用户可根据个人习惯自定义界面布局,提高工作效率 。
基本操作命令
鼠标操作
通过鼠标左键选择、拖拽、旋转等操作,实现模型的交互操作。
未来发展趋势预测
A
随着计算机技术的不断发展,有限元分析软件 的计算能力和效率将不断提高,使得更大规模 、更复杂的仿真分析成为可能。
人工智能、机器学习等技术的引入,将为 有限元分析提供更强大的数据处理和挖掘 能力,进一步提高分析的精度和效率。
B
C
多物理场耦合分析将成为未来发展的重要方 向,Deform等软件将不断完善多物理场分 析功能,满足更广泛的应用需求。
配置环境变量和启动软件
启动软件 在完成安装和环境变量配置后,可以通过以下方式启动Deform软件 1. 点击桌面或开始菜单中的Deform图标。
配置环境变量和启动软件
2. 在命令行中输入Deform的可执行 文件名并回车。
3. 如果设置了文件关联,可以直接双 击与Deform关联的文件类型来启动 软件并打开相应文件。
deform操作流程
综合性实验实验报告Dform-2D仿真模拟学校:郑州航空工业管理学院院系:机电工程学院专业:材料成型及控制工程学号:姓名:指导教师:一、实验名称:Deform2D仿真模拟二、实验目的1、了解认识DEFORM软件的窗口界面。
2、了解DEFORM界面中功能键的作用。
3、掌握利用DEFORM有限元建模的基本步骤。
利用DEFOR模拟锻造成型过程。
三、实验原理DEFORM是一套基于有限元的工艺仿真系统,用于分析金属成形及其相关工业的各种成形工艺和热处理工艺。
通过在计算机上模拟整个加工过程,帮助工程师和设计人员:设计工具和产品工艺流程,减少昂贵的现场试验成本。
提高工模具设计效率,降低生产和材料成本。
缩短新产品的研究开发周期。
DEFORM-2D(二维)适用于各种常见的UNIX工作站平台(HP,SGI,SUN,DEC,IBM)和Windows-NT微机平台。
可以分析平面应变和轴对称等二维模型。
它包含了最新的有限元分析技术,既适用于生产设计,又方便科学研究。
四、实验步骤1、DEFORM前处理过程(Pre Processer)1)进入DEFORM前处理窗口。
2)了解DEFORM前处理中的常用图标3)设置模拟控制4)增加新对象5)网格生成6)材料的选择7)确立边界条件8)温度设定9)凸模运动参数的设置10)模拟控制设定11)设定对象间的位置关系12)对象间关系“Inter-Object”的设定13)生成数据库14)退出前处理窗口2、DEFORM求解(Simulator Processer)3、DEFORM后处理(Post Processer)1)了解DEFORM后处理中的常用图标。
2)步的选择3)真实应变4)金属流线5)载荷——行程曲线五、实验任务已知条件毛坯尺寸:底面半径10mm,高度20mm毛坯材料:AISI-1025[1800-2200F(1000-1200℃)毛坯温度:1200℃单元数:3000模具尺寸:宽度25,高度30上模压下量10mm,压下速度10mm/s完成如下操作(1)建立DEFORM-2D/Preprocessor圆柱体镦粗模拟分析模型,生成.DB文件。
DEFORM功能介绍
DEFORM系列产品 1.DEFORM-2D(二维) 适用于各种常见的UNIX工作站平台(HP,SGI,SUN,DEC,IBM)和Windows-NT微机平台。
可以分析平面应变和轴对称等二维模型。
它包含了最新的有限元分析技术,既适用于生产设计,又方便科学研究。
2.DEFORM-3D(三维) 适用于各种常见的UNIX工作站平台(HP,SGI,SUN,DEC,IBM)和Windows-NT微机平台。
可以分析复杂的三维材料流动模型。
用它来分析那些不能简化为二维模型的问题尤为理想。
3.DEFORM-PC(微机版) 适用于运行Windows 95,98和NT的微机平台。
可以分析平面应变问题和轴对称问题。
适用于有限元技术刚起步的中小企业。
4.DEFORM-PC Pro(Pro版) 适用于运行Windows 95,98和NT的微机平台。
比DEFORM-PC功能强大,它包含了DEFORM-2D的绝大部分功能。
5.DEFORM-HT(热处理) 附加在DEFORM-2D和DEFORM-3D之上。
除了成形分析之外,DEFORM-HT还能分析热处理过程,包括:硬度、晶相组织分布、扭曲、残余应力、含碳量等。
DEFORM功能 1.成形分析 l冷、温、热锻的成形和热传导耦合分析(DEFORM所有产品)。
l丰富的材料数据库,包括各种钢、铝合金、钛合金和超合金(DEFORM所有产品)。
l用户自定义材料数据库允许用户自行输入材料数据库中没有的材料(DEFORM所有产品)。
l提供材料流动、模具充填、成形载荷、模具应力、纤维流向、缺陷形成和韧性破裂等信息(DEFORM所有产品)。
l刚性、弹性和热粘塑性材料模型,特别适用于大变形成形分析(DEFORM所有产品)。
l弹塑性材料模型适用于分析残余应力和回弹问题(DEFORM-Pro, 2D, 3D)。
l烧结体材料模型适用于分析粉末冶金成形(DEFORM-Pro, 2D, 3D)。
l完整的成形设备模型可以分析液压成形、锤上成形、螺旋压力成形和机械压力成形(DEFORM所有产品)。
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 二次开发
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模拟控制介绍(⼀)DEFORM模拟控制介绍2D模式界⾯3D模式界⾯DEFORM的模拟控制窗⼝可以通过点击来进⾏编辑,其中Main菜单可设定模拟标题,单位系统(国标还是英制),⼏何类型,模拟模式等。
Step和Stop分别⽤来设定时间步和模拟终⽌条件。
Process Conditions可设置环境温度,热对流系数等条件。
下⾯⼀⼀展开讲。
1 Main controls1.1Simulation title和Operation name顾名思议就是给定模拟标题和操作名。
1.2 Operation number在有多个操作的时候给每个操作设定⼀个编号。
⽐如在模拟⼀个坯料出炉然后压缩的实验时,我们需要分两步,第⼀个步是出炉,是⼀个传热过程,第⼆步是压缩,是变形加传热过程,那出炉过程的operation number就是1,第⼆个压缩过程就是2。
1.3 Mesh number此值记录的是初次⽹格划分与当前⽹格划分之间的⽹格重画次数,⼀般不要对此进⾏修改。
1.4 Geometry type这个选项只有在2D模拟时才会出现,⼀般选择轴对称就⾏。
1.4.1 Axisymmetric(对称)当模型是对称的可以⽤此选项,可建⽴⼀半模型进⾏计算。
⽽且模型只能建在第⼀和第四象限1.4.2 Plane strain(平⾯应变)平⾯应变模型假设物体的受⼒和约束,仅仅平⾏于板⾯作⽤,对厚度⽅向发⽣变化。
⼀般⼀个⽅向的尺⼨远远⼤于另两个⽅向的尺⼨,⽐如分析⼀根很长很长的输⽓管所受的压⼒,就可以使⽤此模型,只分析管道截⾯。
注意,平⾯应变问题中,虽然厚度⽅向的应变恒等于0,但应⼒不是。
1.4.3 Torsion(扭转)扭转模型也是周对称模型,主要的应⽤在摩擦焊中1.4.4 Plane stress(平⾯应⼒)与平⾯应变类似,外⼒和约束,仅平⾏于板⾯作⽤,沿厚度⽅向不变化。
厚度⽅向的应⼒为0。
⼀般⼀个⽅向的尺⼨⽐另两个⽅向的尺⼨⼩得多的物体可使⽤此模型。
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-3D软件的概述简介姓名:汪云班级:09材控二班学号:0910121064摘要DEFORM-3D 是一套基于工艺模拟系统的有限元系统(FEM),专门设计用于分析各种金属成形过程中的三维 (3D) 流动,提供极有价值的工艺分析数据,有关成形过程中的材料和温度流动。
DEFORM-3D是模拟3D材料流动的理想工具。
DEFORM-3D强大的模拟引擎能够分析金属成形过程中多个关联对象耦合作用的大变形和热特性。
系统中集成了在任何必要时能够自行触发自动网格重划生成器,生成优化的网格系统。
在要求精度较高的区域,可以划分较细密的网格,从而降低题目的规模,并显著提高计算效率。
DEFORM-3D 图形界面,既强大又灵活。
为用户准备输入数据和观察结果数据提供了有效工具。
关键词:DEFORM-3D软件有限元分析三维流动网格系统有效工具DEFORM诞生的历史背景:1979 年, 美国Battelle Columbus 实验室在美国空军基金的资助下开发了有限元计算成形ALPID (Analysis of Large Plastic Incremental Deformation)。
该程序为刚塑性及刚粘塑性有限元法通用程序, 采用高阶单元, 模具及边界条件的人工描述, 自动产生初始速度场, 并附有绘图程序FEGRA 来自动显示中间变形过程的图形, 能处理常应力摩擦和Coulomb 摩擦。
但其只能分析平面问题和轴对称问题, 并且没有考虑非等温成形的热传导问题和加工设备形式, 也没有网格重划分功能。
随后几年中,AL P ID 的开发人员针对用户提出的种种要求, 逐渐将程序完善, 并采用Mo t if 界面设计工具, 将计算程序发展为商品化分析软件DEFORM (Design Environment for Forming ) , 由美国SFTC 公司推广应用。
DEFORM 系统简介:DEFORM(Design environment for forming) 是由美国Battelle Columbus 实验室在八十年代早期着手开发的一套有限元分析软件。
Deform二次开发步骤
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:温度。
DEFORM软件介绍
DEFORM-3D的简介Deform(Design Enviro ment for Formin g)有限元分析系统是美国S F TC公司开发的一套专门用于金属塑性成形的软件。
通过在计算机上模拟整个加工过程,可减少昂贵的现场试验成本,提高工模具设计效率,降低生产和材料成本,缩短新产品的研究开发周期。
Deform软件是一个高度模块化、集成化的有限元模拟系统,它主要包括前处理器、模拟器、后处理器三大模块。
前处理器:主要包括三个子模块(1)数据输入模块,便于数据的交互式输入。
如:初始速度场、温度场、边界条件、冲头行程及摩擦系数等初始条件;(2)网格的自动划分与自动再划分模块;(3)数据传递模块,当网格重划分后,能够在新旧网格之间实现应力、应变、速度场、边界条件等数据的传递,从而保证计算的连续性。
模拟器:真正的有限元分析过程是在模拟处理器中完成的,Deform运行时,首先通过有限元离散化将平衡方程、本构关系和边界条件转化为非线性方程组,然后通过直接迭代法和Newton-Raphso n法进行求解,求解的结果以二进制的形式进行保存,用户可在后处理器中获取所需要的结果后处理器:后处理器用于显示计算结果,结果可以是图形形式,也可以是数字、文字混编形式,获取的结果可为每一步的有限元网格;等效应力、等效应变;速度场、温度场及压力行程曲线等DEFORM软件操作流程(1)导入几何模型在DEFOR M-3D软件中,不能直接建立三维几何模型,必须通过其他CAD/CAE软件建模后导入导DEFOR M系统中,目前,DEFORM-3D的几何模型接口格式有: ①STL:几乎所有的C A D软件都有这个接口。
它由一系列的三角形拟合曲面而成。
二次开发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详细教程学习教案
实例演示:材料属性与边界条件设置
1
实例背景
假设我们要模拟一个铝合金板的冲压过程, 需要设置铝合金的材料属性和冲压模具的 边界条件。
2
材料属性设置
首先,我们需要在Deform中定义铝合金 的密度、弹性模量、泊松比和屈服强度等 物理和机械属性。这些属性可以通过查找 铝合金的材料手册或实验数据获取,并输 入到软件中进行设置。
热-流耦合分析
研究材料在热流作用下的传热和流 动特性。
优化设计方法与案例分享
形状优化
通过改变结构形状来优化性能, 如减小应力集中、提高刚度等。
拓扑优化
在给定设计空间内寻找最优材料 分布,实现轻量化设计。
参数优化
调整设计参数,如尺寸、角度等, 以优化目标函数。
自定义函数及二次开发简介
自定义函数
用户可编写自己的函数,实现特定功能或改进算 法。
3
边界条件设置
接下来,我们需要设置冲压模具的边界条 件。假设模具是刚性的,我们可以在模具 上选择特定的节点,并指定其位移为零, 以模拟模具的固定不动。同时,我们还需 要在铝合金板上施加压力载荷,以模拟冲 压过程中的力学行为。这些边界条件可以 通过Deform的图形界面或命令行方式进 行设置,确保模拟的准确性。
02
03
通过多个案例的学习,熟悉了 Deform在金属成形、热处理等领 域的应用。
04
未来发展趋势预测
01
随着计算机技术的不断发展, 有限元分析软件的计算效率和 精度将不断提高,使得更复杂 的工程问题得以解决。
02
材料数据库将不断完善,为有 限元分析提供更准确、全面的 材料性能数据。
03
人工智能、机器学习等技术的 引入,将进一步提高有限元分 析的自动化和智能化水平。
Deform模拟软件功能介绍
4、前处理功能操作
5、后处理功能操作
第二节 锻压模拟
一、实验目的 • 熟悉模拟软件Deform的基本操作。 • 认识锻压过程中材料各部位的变形情况。
• 定义工件的对称和传热边界条件
• 定义传热边界条件
• 工件与外界热传导后处理结果
第五节 热模锻成形模拟
一、实验目的
• 熟悉如何模拟变形过程中存在热传导的 过程。
• 认识模拟过程中材料各部位的变形和温 度变化情况。
• 实验内容
• 道钉成形过程属于热模锻成形,在变形过 程中存在热传导现象,本例中为了准确的 模拟其成形过程不仅要模拟其锻造过程, 还要模拟其热传导过程。
第一节 Deform模拟软件功能介绍
1、 Deform-3D有限元分析软件介绍
• Deform(Design Enviroment for Forming) 有限元分析系统是美国SFTC公司开发的一 套专门用于金属塑性成形的软件。通过在 计算机上模拟整个加工过程,可减少昂贵 的现场试验成本,提高工模具设计效率, 降低生产和材料成本,缩短新产品的研究 开发周期。
• 实验内容
• 模型如图所示。工件旋转,刀具径向和轴 向给进,达到层层切削工件表面的目的。 Deform-3D软件专门提供了一个模拟切 削、钻削的平台。
• 下图为该软件模拟中的切削模型,该模型 分别用进给量(Feed)、表面加工速度 (Surface speed)、背吃刀量(Depth of Cut)三个主要参数来描述切削加工过程。
• 三维CAD文件的系统导入和网格划分
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
材料本构模型是实现计算机数值模拟的前提条件之一,【关于计算机数值模拟技术的发展介绍】本论文所采用的有限元模拟软件DEFORM-3D进行材料的微观组织模拟介绍,DEFORM-3D 有限元软件是集成了原材料、成形、热处理和机加工为一体的软件,可用于分析各种塑性体积成形过程中金属流动以及材料的应力、应变和温度等物理场量的分布变化情况,同时提供了材料的流动、模具间的填充、成型过程的载荷量、模具所受应力、材料的纤维流向、成型过程的坯料形成、材料的韧性断裂以及金属微观组织结构等信息。
为了实现在金属成形工艺模拟过程中进行微观组织演化的定量预测,所使用的模拟软件必须有包含微观组织变化的本构模型和专门的微观组织演化分析模块。
当前国际上虽然有多个知名商业有限元软件流行,但是它们都不具备微观组织演化的预测功能;或者软件具有微观组织变化的本构模型,但仍需使用者输入材料的参数方可进行,而软件不提供材料的参数;故很多软件都淡化此微观组织演化分析模块。
庆幸的是多数商业软件都为二次开发设置了用户子程序功能,通过编制用户子程序就能实现对微观组织演化的预测功能。
用户自定义本构模型的输入方法在当今的科学研究方向中,新材料的开发占据了一个重要的角色。
不同的材料工作者开发了不同的新材料,得到了不同的本构模型,需要对这种新材料进行模拟,为了满足这种需求,DEFORM提供了两种用户自定义本构模型的输入方法:(1)以函数形式输入本构模型。
DEFORM提供了若干常用本构模型,如图4.6所示。
若用户的本构模型与系统提供的本构模型一致,则可直接输入其相关系数即可;若用户的本构模型在系统中不存在,则可通过二次开发编程的方式将用户的本构模型加入到DEFORM中,然后在图4.6中选择“User routine”并输入所调用的本构模型子程序的编号。
(2)以数据形式输入本构模型。
DEFORM还允许通过输入数据的方式来定义材料的塑性流动行为。
具体方法是根据材料的真应力一真应变曲线,取若干个数据点,逐个输入该材料在某个温度、某个变形速率和某个真应变下的真应力。
该方法的优点是既不用求取材料的本构模型,也不用进行二次开发编程,就可以定义材料的塑性流动行为,同时,若输入的数据点较多,得到的精度比输入函数形式的本构方程要精确得多。
本论文采用第一种方式,基于windows平台的DEFORM编程接口将求取的本构方程输入到DEFORM中。
文件配置在windows操作系统中,在向DEFORM-3D/-2D中加入用户子程序之前,要对一些文件作相关配置,具体方法如下:1)先C:\DEFORM3D\V6_1\目录下的DEF_SIM.exe文件和C:\DEFORM3D\V6_1\UserRoutine\DEF_SIM\目录下的def_usr.f文件作一个备份;这两个文件是在安装完DEFORM-3D后就会自动生成的文件;因为本文的二次开发将会先对def_usr.f文件进行修改,所以备份原始文件很有必要。
2)打开C:\DEFORM3D\V6_1\UserRoutine\DEF_SIM目录下的DEF_SIM_P4_USR_Absoft70.gui 文件,系统会打开Absoft Developer Tools Interface;同时def_usr.f文件也自动被加载。
点击打开def_usr.f文件并将自己的模型用程序编制后添加进去。
3)将修改后的def_usr.f文件保存,然后执行Absoft Developer Tools Interface的Tools菜单下的Build命令,如果程序编制正确目调试通过的话,系统会生成一个新的DEF_SIM.exe,将新的DEF_SIM.exe文件拷贝到C:\DEFORM3D\V6_1\目录下替换原始的DEF_SIM.exe文件,重新运行DEFORM-3D,系统自动加载新的DEF_SIM.exe文件。
至此,包含新嵌入的模型的二次开发顺利完成。
用户子程序结构用户定义子程序的核心代码都储存在def_usr.f中,有限元主程序通过调用该文件中的子程序,可以计算出用户自定义变量的值,所以关键问题在于该子程序的编写。
在DEFORM软件中,用户可以通过修改DEFORM软件的用户子程序文件def_usr.f中用户自定义模块,扩展和增强DEFORM的现有功能。
为了满足不同模拟目的的需要,def_usr.f 文件中提供了流动应力子程序模块(USRMTR)、物体运动控制模块(USRDSP)、节点变量和单元变量模块(USRUPD)、可以改变所有变量的模块(USRMSH)。
用户可以通过这些模块实现模具运动、材料宏观、观变形行为的研究等。
用户子程序文件def_usr.f的程序结构如下:1.用户定义数据(USRDEF)用户可以在DEFORM-3D的前处理中输入用户子程序中包括的全部参数值。
具体方法:在启动DEFORM-3D后进入前处理模块后,首先点选Total objects按钮,打开SimulationControl窗口,选中billet坯料,然后点选Advanced菜单下的User Defined,在弹出的对话框中有十行可以填充数据,每一行可以写80个字符。
根据用户单元变量定义即可以在子程序中使用定义的变量,同时也可以实现在DEFORM-3D的后处理中查看用户定义的单元变量在变形体中的分布。
使用这些参数进行计算的用户子程序中需要包括下面的说明语句:CHARACTER*IUSRVLCOMMON/IUSR/IUSRVL(10)在def_usr.f中通过以下语句来读取或更新这些参数值:READ(IUSRVL(LINE NUMBER),*)DATA1,DATA2…WRITE(IUSRVL(LINE NUMBER),*)DATA1,DA TA2…其中:IUSRVL是存储这些参数值的数组名(不能更换);DATA1,DATA2…是用户子程序需要读取或写入的用户参数名。
LINE NUMBER是前处理中输入参数值时DATA1,DATA2…所在的行号。
2.流动应力子程序(USRMTR)子程序格式:SUBROUTINE USRMTR(NPTRTN,YS,YPS,FIP,TEPS,EFEPS,TEMP)SUBROUTINE UFLOW1(YS,YPS,FIP,TEPS,EFEPS,TEMP)子程序的变量含义:NPTRTN:应力模型编号;YS:流动应力;YPS:流动应力对等效应变的导数;FIP:流动应力对等效应变速率的导数,TEPS:等效应变;EFEPS:等效应变速率;TEMP:温度。
子程序USRMTR和UFLOW运行时需要输入:应力模型编号、等效应变、等效应变速率、温度。
子程序执行完后将输出:流动应力值、流动应力对等效应变的导数,流动应力对等效应变速率的导数。
这几个变量可以用用户定义变量来计算。
程序中包含的公共块:COMMON/USRCTL/DTK,KOBJ,ISTATUS,KSTEPCOMMON/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,KONPCOMMON/NODCOM/RZN(3),URZN(3),DRZN(3),TEMPN,DTMPN,+USRN1(100),USRN2(100),KNODE子程序功能:USRMTR:传入上级程序计算出的等效应变、等效应变率、温度和用户应力模型编号,调用具有该编号的UFLOW,将等效应变、等效应变率、温度值传入UFLOW,用于计算出的流动应力、流动应力对等效应变的导数和流动应力对等效应变率的导数传回上级程序。
UFLOW:用传入的等效应变、等效应变率、温度和公共块中的用户定义的单元变量(USRE1、USRE2)和节点变量(USRN1、USRN2)计算流动应力、流动应力对等效应变的导数和流动应力对等效应变率的导数,并将这些计算值返回USRMTR。
3.用户定义物体运动控制(USRDSP)子程序格式:SUBROUTINEUSRDSP(NSPD,TIME,PDIS,VX,VY,VZ,STRKX,STRKY,STRKZ,FRZX,FRZY,FRZZ,AVGSRT, SRTMX,UPDV,UPDF,DTIME)SUBROUTINEDIESP1(TIME,PDIS,VX,VY,VZ,STRKX,STRKY,STRKZ,FRZX,FRZY,FRZZ,A VGSRT,SRTMX ,UPDV,UPDF,DTIME)子程序的变量含义:NSPD:用户定义子程序号;TIME:现时模拟时间;PDIS:主动模具位移;VX/VY/VZ:模具速度X/Y/Z方向分量;STRKX/STRKY/STRKZ:现时模具行程X/Y/Z方向分量;FRZX/FRZY/FRZZ:模具力X/Y/Z方向分量;A VGSRT:平均应变率;SRTMX:最大应变率;UPDV:规定方向上要更新的模具速度;UPDF:规定方向上要更新的模具力;DTIME:时间步长。
程序中包含的公共块:COMMON/IUSR/IUSRVL(10)在运行上面两个子程序时,需要输入的变量:用户定义子程序号、现时模拟时间、主动模具位移、模具速度3分量、现时模具行程3分量、模具力3分量、平均应变速率、最大应变速率、当前时间步长。
子程序执行完后输出变量:规定方向上更新后的模具速度、规定方向上更新后的模具力和所要求的时间步长。
子程序的功能:定义模具运动、工件的运动。
运动轨迹可用自定义的函数表达式。
在实际工程问题中,往往会遇到模具或者工件的运动非常复杂的情况,不是简单的直线运动或旋转运动,这就需要用到子程序对模具或者工件的运动进行自定义。
计算过程中,USDSP 根据输入的用户子程序号调用相应的DISP,由DISP根据用户要求更新模具运动参数,然后将更新后的模具运动参数通过USRDSP返回到上级程序中。
4.用户自定义单元变量与节点变量子程序(USRUPD)子程序格式:SUBROUTINE USRUPD程序中包含的公共块:COMMON/IUSR/IUSRVL(10)COMMON/USRCTL/DTK,KOBJ,ISTATUS,KSTEPCOMMON/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,KONPCOMMON/NODCOM/RZN(3),URZN(3),DRZN(3),TEMPN,DTMPN,+USRN1(100),USRN2(100),KNODE子程序功能:计算所有的用户单元变量和用户节点变量。