ABAQUS子程序技术文档-UEL

ABAQUS子程序技术文档

我们将有限元软件(以ABAQUS为例)分割来看,分为:前处理,单元部分,求解器。在这三个模块当中,每个主流商业软件手册中都会注明各个单元的理论采用了哪种理论公式,但是只是提一下用什么方法修正,很多没有介绍具体实现的公式。这也会让许多使用人员感觉在用黑盒子,对于分析问题的本质会造成很大的阻碍。下面我们主要讲解UEL用户子程序的使用方法。

UEL用户子程序开发步骤

用户子程序主要是用来实现特定的材料本构模型和单元算法的有效接口,便于商用软件和求解器之间的交互迭代。

编程语言主要采用Fortran,当然也可以修改子程序接口,使用Matlab或者C++等语言进行实现。

1. UEL的关键输入输出参数

|关键参数名称| 类型 |描述|
RHS输出 第一列是残余力向量;第二列是节点外部载荷增量|
AMATRX 输出 刚度/质量/阻尼矩阵,由LFLAGS决定
SVARS 输入/输出 状态相关变量,大小为NSVARS
ENERGY 输入/输出 单元能量
NDOFEL 输入 单元自由度数量
NRHS 输入 载荷向量个数RHS的列数,非线性算法一般为1
NSVARS 输入 单元状态变量的数量
PROPS 输入 用户定义的单元属性数据,浮点数组
NPROPS 输入 用户定义的单元属性数据的数量
COORDS 输入 单元节点的坐标
MCRD 输入 任意节点用户所需定义的最大坐标数的最大值
NNODE 输入 单元节点数
U, DU 输入 当前增量步单元节点的位移,位移增量
V 输入 相关变量的时间变化率
A 输入 相关变量的加速度
JTYPE 输入 定义单元类型的整型值
TIME 输入 当前分析步时间和时间总量
DTIME 输入 时间增量
KSTEP 输入 当前分析步的数
KINC 输入 当前增量步数
JELEM 输入 用户指派的单元号
PARAMS 输入 和求解过程相关的参数
NDLOAD 输入 作用在当前单元上的热力学力
JDLTYP 输入 用来定义单元分布载荷类型的整型数组
ADLMAG 输入 当前增量步结束时分布载荷相关数组
PREDEF 输入 预定义场变量数组
NPREDF 输入 预定义场变量的数目
LFLAGS 输入 当前求解步的标识数组
MLVARX 输入 当使用多个位移或右手边向量时的量纲参数
DDLMAG 输入 关于分布载荷大小的增量
MDLOAD 输入 单元上热力学力的总数量
PNEWDT 输入 建议的新时间增量与当前使用的时间增量之比
JPROPS 输入 单元中的整型属性值
NJPROP 输入 整型属性值的数量
PERIOD 输入 当前分析步的时间段

2. 基于Fortran的UEL开发步骤

  1. 定义xxx.inp文件
    文本编辑器推荐使用Sublime Text3
    在inp中定义必要的单元参数,网格信息,分析步,输出变量等信息
  2. 编写
    文本编辑器推荐使用微软推出的VS code
    子程序后缀为.for格式
  3. 编译
    采用ABAQUS6.14+Intel Fortran2013+Visual Studio2013的集成开发环境
    其余版本也可匹配集成
    在环境配置完成之后,打开ABAQUS command,输入命令Abaqus make Library=XXX.for,即开始编译,编译过程中的警告和错误都会打印在命令提示框内。(这一步为非必要步骤)
  4. 运行
    一种方式是通过command输入命令行,另一种方式则是GUI方式在创建job时进行选择。
  5. 调试(debug)
    采用在程序中加入特定程序段的方式

3. 小结
UEL开发需要打下坚实的力学基础,熟悉有限元分析过程,掌握一定的算法实现和编程能力。

  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Abaqus是一种常用的有限元分析软件,它允许用户根据需要编写子程序来扩展其功能。Abaqus子程序源码是用于实现用户自定义功能的一段编程代码。 Abaqus子程序源码可以使用Fortran或C++编写。用户可以根据分析需求自己编写子程序,然后将其与Abaqus软件集成在一起,以实现特定的分析目标。子程序主要用于修改Abaqus软件的默认行为或添加新的功能。 Abaqus子程序源码的编写需要一定的编程知识和理解Abaqus系统的数据结构和算法。在子程序中,用户可以通过调用Abaqus提供的API函数来访问和修改系统内部的数据。用户可以根据需要添加计算模型、边界条件、材料模型、求解算法等方面的自定义功能。 编写Abaqus子程序源码的基本步骤包括:定义子程序的输入输出参数、编写子程序的主体代码、编译子程序、将子程序Abaqus软件链接并进行测试。 编写好的子程序可以通过Abaqus的用户界面或命令行界面进行调用和使用。用户可以在Abaqus的分析过程中或预处理环节中调用子程序来完成特定的计算任务。 需要指出的是,编写Abaqus子程序源码需要一定的编程能力和对Abaqus软件的深入了解。同时,编写的子程序需要经过充分的测试和验证,以确保其正确性和稳定性,避免对分析结果产生误导。 总之,Abaqus子程序源码是用于扩展Abaqus软件功能的一段编程代码,用户可以根据自己的需求编写子程序,并将其与Abaqus软件集成,以达到特定的研究或分析目标。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值