Abaqus子程序之Vuhard子程序

1、子程序用途

材料定义包括用户自定义的各向同性硬化或金属塑性的循环硬化的单元的所有材料点将会调用这个子程序。

可用于定义材料的各向同性屈服行为;

可用于在组合硬化模型中定义屈服表面的尺寸;

可以包括依赖于场变量或状态变量的材料行为;和要求相对于适当的独立变量(如应变、应变率和温度)定义屈服应力(或组合硬化模型中的屈服表面尺寸)的导数。

2、要定义的变量

yield(nblock) : 该数组包含材料点处屈服应力(各向同性塑性)或屈服面尺寸(组合硬化)。

dyieldDeqps(nblock,1) : 该数组包含屈服应力或屈服面尺寸相对于(关于)材料点处等效塑性应变的导数。

dyieldDeqps(nblock,2) : 该数组包含屈服应力相对于材料点处等效塑性应变率的导数。

dyieldDtemp(nblock) : 该数组包含屈服应力或屈服表面尺寸相对于材料点温度的导数。该量仅在绝热和完全耦合的温度位移分析中需要。

stateNew(nblock,nstatev) : 该数组包含增量步结束时的材质点处的状态变量。依赖求解状态变量(与求解过程相关的状态变量)中描述了此阵列的分配。

3、传递信息的变量(这些变量存储着信息,abaqus传入子程序给用户使用)

Nblock : 本次调用VUHARD时要处理的材料点数。

jElem(nblock) : 单元编号的数组。

kIntPt : 积分点编号。

kLayer : 层编号(用于复合壳)。

kSecPt : 当前层内的截面点编号。

Lanneal : 指示在退火过程中是否调用程序的标志。lanneal=0表示在正常力学增量期间调用程序。lanneal=1表示这是一个退火过程,如果需要,应重新初始化内部状态变量stateNew。Abaqus/Explicit将在退火过程中自动将应力、拉伸和状态设置为零。

stepTime : 自分析步开始以来的时间值(当前分析步的时间值)。

totalTime : 总时间值。分析步开始时的时间(时刻)由totalTime - stepTime给出。

dt : 时间增量大小。(说明下,value of time , time的翻译)

cmname : 材料名称,左对齐。它以大写字符串的形式传入。一些内部材料模型的名称以“ABQ_”字符串开头。为了避免冲突,“ABQ_”不应用作cmname的前导(前缀)字符串。

Nstatev : 与此材料类型关联的用户定义状态变量的数量(请参见为依赖求解状态变量分配空间)。

Nfieldv : 用户定义的外部场变量的数量。

Nprops : 用户定义材料属性的用户指定数量(cae界面输入的材料属性的数量)

tempOld(nblock) : 增量开始时材料点的温度。

tempNew(nblock) : 增量结束时材料点的温度。

fieldOld(nblock,nfieldv) : 增量开始时材料点处的用户定义的场变量的值。

fieldNew(nblock,nfieldv) : 增量结束时材料点处的用户定义的场变量的值。

stateOld(nblock,nstatev) : 在增量开始时的材料点处的状态变量。

eqps(nblock) : 材料点处的等效塑性应变。

eqpsRate(nblock) : 材料点处的等效塑性应变率。

4、子程序接口

      subroutine vuhard(

C Read only -

     *     nblock,

     *     jElem, kIntPt, kLayer, kSecPt,

     *     lAnneal, stepTime, totalTime, dt, cmname,

     *     nstatev, nfieldv, nprops,

     *     props, tempOld, tempNew, fieldOld, fieldNew,

     *     stateOld,

     *     eqps, eqpsRate,

C Write only -

     *     yield, dyieldDtemp, dyieldDeqps,

     *     stateNew )

C

      include 'vaba_param.inc'

C

      dimension props(nprops), tempOld(nblock), tempNew(nblock),

     1   fieldOld(nblock,nfieldv), fieldNew(nblock,nfieldv),

     2   stateOld(nblock,nstatev), eqps(nblock), eqpsRate(nblock),

     3   yield(nblock), dyieldDtemp(nblock), dyieldDeqps(nblock,2),

     4   stateNew(nblock,nstatev), jElem(nblock)

C

      character*80 cmname

C

      do 100 km = 1,nblock

        用户自定义代码区,主要是定义yield(nblock)。

  100 continue

C

      return

      End

5、案例

   图1 本构公式(方括号左侧有个等号)

     图2参数表达式          

图3 参数表达式 (获取更多资料和学习交流欢迎大家关注公众号冬生亦东生,分享旨在本人复习和交流,没有足够精力在很多地方回复)

图4 源代码 代码太长,公众号力学混子爱AI 回复vuhard子程序

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 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
发出的红包

打赏作者

冬生亦东生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值