integer加1_利用Abaqus UEL开发自定义单元1
1. 简介
在Abaqus/Standard模块中,用户可以利用子程序UEL来开发自定义单元,用以实现一些通过Abaqus内置单元无法实现的功能。如果编写恰当,用户自定义单元可以正常使用Abaqus/Standard的大部分功能,并且在用户子程序UEL中可以编写多个自定义单元,这些单元可以同时使用。
相比于开发完整的有限元程序,使用Abaqus来开发单元的优势是非常明显的:首先,Abaqus提供了大量的结构单元、分析程序以及前处理工具,这些功能可以与Abaqus UEL配合使用;其次,Abaqus中可以完成自定义单元的部分后处理工作;并且,开发子程序的效率也远高于开发完整的有限元程序。
尽管用户子程序UEL为在Abaqus中进行有限元分析提供了非常强大和灵活的工具,但由于开发自定义单元需要较高的数学和力学理论基础,加之前、后处理过程不便,因此相比于诸如UMAT之类的子程序,可供参考的资料非常少。恰好笔者在完成毕设的过程中需要使用到用户子程序UEL进行结构单元的开发,因此借由此机会和大家分享一些子程序UEL的开发经验以及存在的问题,希望可以帮助到有这方面需求的同学。
为了理解用户子程序UEL的工作流程,必须熟悉有限元分析求解的整个过程。因此,本文以最为简单的杆单元为例,介绍杆结构的有限元分析流程,随后利用子程序UEL开发自定义杆单元,并验证计算结果的准确性。
(为了便于排版,部分内容采用图片格式)
附录1:自定杆单元UEL用户子程序
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 程序用于定义2节点杆单元 CC 单元节点数:2 节点自由度数:1 单元自由度数:2×1=2 CC 材料参数: (1)弹性模量E (2)截面积AREA CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC SUBROUTINE UEL(RHS,AMATRX,SVARS,ENERGY,NDOFEL,NRHS,NSVARS, 1 PROPS,NPROPS,COORDS,MCRD,NNODE,U,DU,V,A,JTYPE,TIME,DTIME, 2 KSTEP,KINC,JELEM,PARAMS,NDLOAD,JDLTYP,ADLMAG,PREDEF,NPREDF, 3 LFLAGS,MLVARX,DDLMAG,MDLOAD,PNEWDT,JPROPS,NJPROP,PERIOD)C INCLUDE 'ABA_PARAM.INC'C DIMENSION RHS(MLVARX,*),AMATRX(NDOFEL,NDOFEL),PROPS(*), 1 SVARS(*),ENERGY(8),COORDS(MCRD,NNODE),U(NDOFEL), 2 DU(MLVARX,*),V(NDOFEL),A(NDOFEL),TIME(2),PARAMS(*), 3 JDLTYP(MDLOAD,*),ADLMAG(MDLOAD,*),DDLMAG(MDLOAD,*), 4 PREDEF(2,NPREDF,NNODE),LFLAGS(*),JPROPS(*)CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C 子程序主要变量说明 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 需要更新的变量CC AMATRX:单元的刚度矩阵 所有非零元素都必须定义C RHS:单元刚度方程中的右端向量 变量中包含有残余载荷(不平衡力)向量C SVARS:求解状态变量 状态变量的个数由NSVARS确定(可以不更新)C ENERGY:用户自定义单元的能量 共有8个分量(可以不更新)C 传入模型的信息变量(不可修改)C C NNODE:自定义单元的节点个数C JTYPE:单元类型 UnC NDOFEL:自定义单元的自由度个数C JELEM:用户指定的自定义单元号C NSVARS:用户自定义状态变量的个数C PROPS:单元材料参数实数数组 包含有NPROPS个实数参数C JPROPS:单元材料参数整数数组 包含有NJPROPS个整数参数C COORDS:坐标数组 COORDS(K1,K2)为第K2个节点的第K1个坐标C U:单元计算中的自由度(本单元中为位移)C DU:位移的增量值CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 变量定义及声明 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC REAL::L !杆单元长度 REAL::E !材料弹性模量 REAL::AREA !杆单元截面积 REAL::EPS !单元应变 REAL::SIGMA !单元应力 INTEGER::I,J !循环索引 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 定义刚度矩阵及右端矢量 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 获取材料参数 E=PROPS(1) AREA=PROPS(2)C 通过单元节点坐标计算杆单元长度C 节点坐标COORDS(K1,K2)表示当前单元第K2个节点第K1个坐标 L=ABS(COORDS(1,2)-COORDS(1,1)) C 构造刚度矩阵AMATRX AMATRX(1,1)=E*AREA/L AMATRX(1,2)=-1*E*AREA/L AMATRX(2,1)=-1*E*AREA/L AMATRX(2,2)=E*AREA/LC 构造右端矢量RHSC RHS=-K・U DO I=1,NDOFEL !NDOFEL为单元的自由度数 本单元中为2 RHS(I,1)=0 !初始化右端矢量 DO J=1,NDOFEL RHS(I,1)=RHS(I,1)-AMATRX(I,J)*U(J) !按照矩阵相乘的公式计算RHS END DO END DO CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 计算单元应力和应变 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 计算单元应变 EPS=(U(2)-U(1))/LC 计算单元应力 SIGMA=E*EPSC 将计算结果储存置状态变量 SVARS(1)=EPS SVARS(2)=SIGMA RETURN END
附录2:UEL用户子程序简介
integer加1_利用Abaqus UEL开发自定义单元1相关推荐
- vuejs 指令封装 button 加载效果_这些Vue自定义指令,让你的项目开发爽到爆
受 AngularJS 的启发,Vue 内置了一些非常有用的指令(比如v-html 和 v-once等),每个指令都有自身的用途.完整的指令列表可以在这里查看. 这还没完,更棒的是可以开发自定义指令. ...
- Android开发自定义View
Android中View组件的作用类似于Swing变成中的JPanel,它只是一个空白的矩形区域,View组件中没有任何内容.对于Android应用的其他UI组件来说,它们都继承了View组件,然后在 ...
- ABAQUS UEL
这里写自定义目录标题 ABAQUS UEL 用户子程序UEL: Variable that can be updated Variables passed in for information ABA ...
- 在ABAQUS中开发材料模型(UMAT)的通用框架:基于Fortran的大变形本构行为的3D实现方法
前言 随着计算力的增强,有限元方法(FEM)已经成为研究和开发新的材料行为模型的重要手段.ABAQUS作为一款广泛使用的有限元分析软件,其提供的用户材料子程序(User Material Subrou ...
- 【基础】利用 hexo + Gitpage 开发自己的博客
原文作者:cherry 原文地址:[基础]利用 hexo + Gitpage 开发自己的博客 进入程序员这个坑之后就开始自己在网上扒资料,然而资料太多,情况太复杂,主要是看见别人的博客,感觉好高大上, ...
- 吴恩达 NIPS 2016:利用深度学习开发人工智能应用的基本要点(含唯一的中文版PPT)...
雷锋网按:为了方便读者学习和收藏,雷锋网(公众号:雷锋网)特地把吴恩达教授在NIPS 2016大会中的PPT做为中文版,由三川和亚峰联合编译并制作. 今日,在第 30 届神经信息处理系统大会(NIPS ...
- 利用Docker构建开发环境
最近接触PAAS相关的知识,在研发过程中开始使用Docker搭建了自己完整的开发环境,感觉生活在PAAS时代的程序员真是幸福,本文会简要介绍下Docker是什么,如何利用Docker来搭建自己的开发环 ...
- 利用函数BAPI_PR_CREATE开发采购申请批导
项目中,期初采购申请批导也是必须的,下面代码是利用BAPI BAPI_PR_CREATE开发的采购申请批导函数,批导结果会保存在txt文本文件中,分享一下,希望对用到的兄弟有帮助. *& ...
- 【Android开发】用户界面设计-开发自定义的View
效果图: Android中,所有的UI界面都是由View类和ViewGroup类及其子类组合而成的.View是所有UI组件的基类(父类),为ViewGroup类是容纳这些UI组件的容器,其本身也是Vi ...
最新文章
- 3个月转行数据分析师,你需要掌握这些内容
- 关于WebView加载URL时显示一片空白的问题
- python集合属性方法运算_python对象及运算 序列小结 集合
- 阿里云云客服平台正式商业化
- one microblog from 任志强
- Java EE 7中包含哪些JSR?
- Linux 下 NFS服务的搭建
- UINavigationViewController的backBarButtonItem设置技巧
- 简单梳理帆软报表即决策系统的登录步骤 一
- php选中文本区域,php – 将新行更改为文本区域
- iOS项目之wifi局域网传输文件到iPhone的简单实现
- php 判断来源 微信客户端_常见WebShell客户端的流量特征及检测思路
- 广东计算机科学导论考试试卷,计算机科学导论试题A答案
- 用友适合套打的打印机所有型号和问题
- PhotoShop - 建立剪切蒙版
- vm安装android,Vmware虚拟机安装安卓4.0系统教程
- 微机 —— 可编程并行接口芯片8255A 应用
- 如何生成一个APP_ID
- 线程上下文切换扫盲文
- android 华为mate 获取定位权限,【严重安全问题】开启了定位权限,但是软件还是没权限...
热门文章
- Mysql数据库大表归档操作
- windows mysql提示:1045 access denied for user 'root'@'localhost' using password yes 解决方案
- oracle 加载数据戽_走进大数据丨 ETL - Load(数据加载)
- mysql进阶(十五) mysql批量删除大量数据
- 启动rabbitmq,提示ERROR: node with name rabbit already running on localhost(亲测)
- css3中的多列布局columns详解
- Golang中GOPATH在Goland的理解
- promise使用promise进行封装授权登录接口
- PHP跳转方法:Header() + location.href
- PHP的postman请求的五种数据样式