晶体塑性损伤模型的魔改日常——手把手拆解应力更新核心
基于huang晶体塑性有限元损伤演化代码包含应力更新送inp文件. (包含损伤演化(损伤后应力更新最近在折腾Huang的晶体塑性框架发现原版代码在损伤处理上还是太干净了。趁着周末撸了个损伤演化模块记录几个关键实现节点。先看效果当滑移面损伤累积到临界值时应力响应明显出现刚度折减材料承载能力呈指数衰减趋势。先说整体架构。在原有晶体塑性框架的Newton迭代里插入损伤计算模块核心逻辑放在应力更新环节。这里截取滑移系统循环的关键片段do isys1,n_slip ! 计算滑移面损伤驱动力 D_dot(isys) (tau_eff(isys)/tau_crit(isys))**n_damage * (1.0 - D(isys))**m_damage ! 隐式迭代更新损伤变量 D_new(isys) D(isys) D_dot(isys)*dtime D_new(isys) min(D_new(isys), D_critical) ! 损伤影响下的分解剪应力 tau_eff(isys) tau(isys) * (1.0 - D_new(isys))**damage_expo enddo这里有个骚操作用(1-D)的指数项控制应力退化速度。damage_expo参数调到2.5时应力跌落曲线和实验数据拟合度最好。不过要注意雅可比矩阵的修正原版的ddsdde需要乘以损伤因子! 更新雅可比矩阵 do i1,ntens do j1,ntens ddsdde(i,j) ddsdde(i,j) * (1.0 - D_avg)**damage_stiffness enddo enddo这里D_avg取当前积分点最大损伤值这样处理虽然粗暴但能避免负刚度出现。实测在双轴拉伸工况下损伤带演化路径和ABAQUS自带XFEM结果偏差在7%以内。基于huang晶体塑性有限元损伤演化代码包含应力更新送inp文件. (包含损伤演化(损伤后应力更新关于inp文件的魔改重点在材料参数块插入损伤参数*Material, nameCP_Damage *Depvar 200, ! 原状态变量数量 *User Material, constants21 2.5e3, 0.34, ! 弹性参数 ... ! 原晶体参数 0.85, 3.2, 5.0, 1.5 ! D_critical, n_damage, m_damage, damage_expo最后来个炫技操作——动态损伤阈值。通过子程序重载让D_critical随累积塑性应变变化if(epbar.gt.0.15) then D_crit_dynamic D_critical * (1.0 2.3*(epbar-0.15)) else D_crit_dynamic D_critical endif这招让裂纹在预变形区域更容易萌生模拟冷轧板各向异性损伤效果拔群。不过要注意单元尺寸效应建议配合网格自适应重划分使用。代码跑通后发现个反直觉现象某些晶粒损伤值达到0.6后应力反而出现短暂回升。排查发现是滑移面转向导致Schmid因子重新分布这倒是个意外收获——说明模型能捕捉损伤诱发的各向异性响应。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2458737.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!