Civil Engineering Reference
In-Depth Information
km=km+MATMUL(MATMUL(TRANSPOSE(bee),dee),bee)*det*weights(i)
!-----------------------update the Gauss Point stresses-------------------
tensor(:,i,iel)=tensor(:,i,iel)+sigma-elso; stress=tensor(:,i,iel)
eload=MATMUL(stress,bee); dload=dload+eload*det*weights(i)
END DO gauss_pts_2
!-----------------------compute the total bodyloads vector----------------
bdylds(g)=bdylds(g)+bload; bdylds(0)=zero; ddylds(g)=ddylds(g)+dload
ddylds(0)=zero; CALL fsparv(kv,km,g,kdiag)
END DO elements_3; CALL sparin(kv,kdiag); tloads=SUM(bdylds)
IF(iters==1)converged=.FALSE.
IF(iters/=1.AND.tloads<ltol)converged=.TRUE.; totd=totd+loads
IF(converged.OR.iters==limit)EXIT
END DO plastic_iters; totd=totd+loads
WRITE(11,'(I5,2E12.4,I5)')iy,ptot,totd(nf(2,no(1))),iters
IF(iters==limit)EXIT
END DO load_increments
CALL dismsh(totd,nf,0.05_iwp,g_coord,g_num,13)
CALL vecmsh(totd,nf,0.05_iwp,0.1_iwp,g_coord,g_num,14)
STOP
END PROGRAM p65
New scalar reals:
bot
holds several dot products
plastic multiplier
λ
dlam
λ
ff
holds a value of the yield function
fftol
tolerance on yield function
fstiff
holds a value of the yield function
ltol
tolerance on
tloads
top
holds a dot product
tloads
holds the sum of
bdylds
plastic multiplier increment
dslam
New dynamic real arrays:
acat
used in development of (6.74)
acatc
used in development of (6.74)
caflow
used in development of (6.74)
daatd
used in development of (6.74)
ddylds
global body loads
dl
holds plastic multiplier
λ
for all Gauss points
dload
element body loads
dsigma
stress increment
qinva
used in development of (6.74)
qinvr
used in development of (6.74)
qmat
used in development of (6.74)
ress
used in development of (6.74)
rmat
used in development of (6.74)
vmfl
von Mises “flow” vector
vmfla
used in development of (6.74)
vmflq
used in development of (6.74)
vmtemp
used in development of (6.74)