|||
一位敬爱的师长从英国访学回来,去拜访他,在聊到有限元时他介绍了一本书——,当时并没有在意。直到最近上了博士一年级,准备编程实现水热力多场耦合问题,碰到了一些问题,才突然想起了这本书。读到Program 6.5时被这样一小段程序卡住了:
iterate_on_fnew: DO
CALL vmflow(stress,dsbar,vmfl)
caflow=MATMUL(dee,vmfl)*dlam
ress=stress-(tensor(:,i,iel)+sigma-caflow)
CALL fmacat(vmfl,acat)
acat=acat/dsbar
acatc=MATMUL(dee,acat)
qmat=acatc*dlam
DO k=1,4
qmat(k,k)=qmat(k,k)+one
END DO
CALL invert(qmat)
vmtemp(1,:)=vmfl
vmtemp=MATMUL(vmtemp,qmat)
vmflq=vmtemp(1,:)
top=DOT_PRODUCT(vmflq,ress)
vmtemp=MATMUL(vmtemp,dee)
vmfla=vmtemp(1,:)
bot=DOT_PRODUCT(vmfla,vmfl)
dslam=(fnew-top)/bot
qinvr=MATMUL(qmat,ress)
qinva=MATMUL(MATMUL(qmat,dee),vmfl)
dsigma=-qinvr-qinva*dslam
stress=stress+dsigma
CALL invar(stress,sigm,dsbar,lode_theta)
fnew=dsbar-SQRT(d3)*prop(1,etype(iel))
dlam=dlam+dslam
IF(fnew<ltol)EXIT
END DO iterate_on_fnew
Program 6.5使用8节点四边形单元作弹塑性(von Mises)材料的平面应变承载力分析。 这一段程序位于(荷载步—>迭代步—>单元循环里的)高斯点循环中。我的问题是:
1)本程序是在作屈服函数 $fnew$ 的迭代,目的为了求塑性乘子增量 $\Delta \lambda$ (见附图中的式6.72),从而更新塑性乘子 $\lambda$ ,进而计算单元的一致切线刚度矩阵 $D^{epc}$ (见附图中的式6.74)。我的这样理解对吗?
2)很明显附图中式6.73是由式6.72得到,作者没有明确给出推导,上文红色部分代码貌似在作塑性乘子增量 $\Delta \lambda$ 的计算,但将其还原成公式还是无厘头,请问哪里可以找到资料?
【问题附图】
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-24 09:59
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社