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相关推荐

  1. vuejs 指令封装 button 加载效果_这些Vue自定义指令,让你的项目开发爽到爆

    受 AngularJS 的启发,Vue 内置了一些非常有用的指令(比如v-html 和 v-once等),每个指令都有自身的用途.完整的指令列表可以在这里查看. 这还没完,更棒的是可以开发自定义指令. ...

  2. Android开发自定义View

    Android中View组件的作用类似于Swing变成中的JPanel,它只是一个空白的矩形区域,View组件中没有任何内容.对于Android应用的其他UI组件来说,它们都继承了View组件,然后在 ...

  3. ABAQUS UEL

    这里写自定义目录标题 ABAQUS UEL 用户子程序UEL: Variable that can be updated Variables passed in for information ABA ...

  4. 在ABAQUS中开发材料模型(UMAT)的通用框架:基于Fortran的大变形本构行为的3D实现方法

    前言 随着计算力的增强,有限元方法(FEM)已经成为研究和开发新的材料行为模型的重要手段.ABAQUS作为一款广泛使用的有限元分析软件,其提供的用户材料子程序(User Material Subrou ...

  5. 【基础】利用 hexo + Gitpage 开发自己的博客

    原文作者:cherry 原文地址:[基础]利用 hexo + Gitpage 开发自己的博客 进入程序员这个坑之后就开始自己在网上扒资料,然而资料太多,情况太复杂,主要是看见别人的博客,感觉好高大上, ...

  6. 吴恩达 NIPS 2016:利用深度学习开发人工智能应用的基本要点(含唯一的中文版PPT)...

    雷锋网按:为了方便读者学习和收藏,雷锋网(公众号:雷锋网)特地把吴恩达教授在NIPS 2016大会中的PPT做为中文版,由三川和亚峰联合编译并制作. 今日,在第 30 届神经信息处理系统大会(NIPS ...

  7. 利用Docker构建开发环境

    最近接触PAAS相关的知识,在研发过程中开始使用Docker搭建了自己完整的开发环境,感觉生活在PAAS时代的程序员真是幸福,本文会简要介绍下Docker是什么,如何利用Docker来搭建自己的开发环 ...

  8. 利用函数BAPI_PR_CREATE开发采购申请批导

    项目中,期初采购申请批导也是必须的,下面代码是利用BAPI    BAPI_PR_CREATE开发的采购申请批导函数,批导结果会保存在txt文本文件中,分享一下,希望对用到的兄弟有帮助. *& ...

  9. 【Android开发】用户界面设计-开发自定义的View

    效果图: Android中,所有的UI界面都是由View类和ViewGroup类及其子类组合而成的.View是所有UI组件的基类(父类),为ViewGroup类是容纳这些UI组件的容器,其本身也是Vi ...

最新文章

  1. 3个月转行数据分析师,你需要掌握这些内容
  2. 关于WebView加载URL时显示一片空白的问题
  3. python集合属性方法运算_python对象及运算 序列小结 集合
  4. 阿里云云客服平台正式商业化
  5. one microblog from 任志强
  6. Java EE 7中包含哪些JSR?
  7. Linux 下 NFS服务的搭建
  8. UINavigationViewController的backBarButtonItem设置技巧
  9. 简单梳理帆软报表即决策系统的登录步骤 一
  10. php选中文本区域,php – 将新行更改为文本区域
  11. iOS项目之wifi局域网传输文件到iPhone的简单实现
  12. php 判断来源 微信客户端_常见WebShell客户端的流量特征及检测思路
  13. 广东计算机科学导论考试试卷,计算机科学导论试题A答案
  14. 用友适合套打的打印机所有型号和问题
  15. PhotoShop - 建立剪切蒙版
  16. vm安装android,Vmware虚拟机安装安卓4.0系统教程
  17. 微机 —— 可编程并行接口芯片8255A 应用
  18. 如何生成一个APP_ID
  19. 线程上下文切换扫盲文
  20. android 华为mate 获取定位权限,【严重安全问题】开启了定位权限,但是软件还是没权限...

热门文章

  1. Mysql数据库大表归档操作
  2. windows mysql提示:1045 access denied for user 'root'@'localhost' using password yes 解决方案
  3. oracle 加载数据戽_走进大数据丨 ETL - Load(数据加载)
  4. mysql进阶(十五) mysql批量删除大量数据
  5. 启动rabbitmq,提示ERROR: node with name rabbit already running on localhost(亲测)
  6. css3中的多列布局columns详解
  7. Golang中GOPATH在Goland的理解
  8. promise使用promise进行封装授权登录接口
  9. PHP跳转方法:Header() + location.href
  10. PHP的postman请求的五种数据样式