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子程序
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删