- When I tried to do a max angle of 155 degrees, the command didn't drive the remesh, even 100 degrees, the remesh can't happens, and the maxium to start the remesh is 90 degree.
- This structure is a plane, 100*100 elements, and each element is a 1*1 square, when I use the same material for all the elements, it can converge without remesh, but if I choose to use 2 different materials, the non-linear process can't converge.
Do you have any idea about why this problem happens?
The code is shown below:
FINISH
/CLEAR
*do,fid,1,1
/PREP7
!=== Define material 1
ET,1,PLANE182
MP,EX,1,2000
MP,PRXY,1,0.3
!==== Define material 2
ET,2,PLANE182
MP,EX,2,1000
MP,PRXY,2,0.3
/PREP7
NDELE,ALL
EDELE,ALL
DDELE,ALL,ALL
NUMCMP,ALL
!NLADAPTIVE,ALL,ADD,MESH,SKEWNESS,0.9
*set,ntb
*set,etb
filename=strcat('nodes',chrval(fid))
fext='dat'
/INQUIRE,rows1,LINES,%filename%,%fext%
*DIM,ntb,ARRAY,rows1,4
*VREAD,ntb,%filename%,%fext%,,JIK,4,rows1
(4F6.0) !* read 4 real numbers with maximum 6 digits, use 6 if number is 10000
filename=strcat('elements',chrval(fid))
/INQUIRE,rows2,LINES,%filename%,%fext%
*DIM,etb,ARRAY,rows2,5
*VREAD,etb,%filename%,%fext%,,JIK,5,rows2
(5F6.0)
*do,i,1,rows1
n,ntb(i,1),ntb(i,2),ntb(i,3),ntb(i,4)
*enddo
*do,i,1,rows2
e,etb(i,1),etb(i,2),etb(i,3),etb(i,4)
*enddo
!=== Define element group 1
k=0
nElements=1
*do,i,1,rows2
nElements=nElements+1
*if,etb(i,5),eq,1,then
k=k+1
*endif
*enddo
*status,k
*status,nElements
ESEL,S,elem,,1,k
MPCHG,1,ALL
CM,MATRIX,ELEM
ESEL,S,ELEM,,k+1,nElements
MPCHG,2,ALL
CM,FILLER,ELEM
/SOL
ANTYPE,0,NEW
NLGEOM,1
NSUBST,1000,2000,10
AUTOTS,-1.0
ALLSEL,ALL
NSEL,S,LOC,X,0
D,ALL,UX,0
NSEL,S,LOC,Y,0
D,ALL,UY,0
NSEL,S,LOC,Y,100
CP,NEXT,UY,ALL
ALLSEL,ALL
filename=strcat('nlist',chrval(fid))
/INQUIRE,rows3,LINES,%filename%,%fext%
*DIM,ctb,ARRAY,rows3,3
*VREAD,ctb,%filename%,%fext%,,JIK,3,rows3
(3F6.0)
!=== couple top and bottom nodes for UX
*do,i,1,rows3
CP,NEXT,UX,ctb(i,2),ctb(i,3)
*enddo
*do,i,1,1 !* loop over three displacements
/SOL
u=100*i
NSEL,S,LOC,X,100
D,ALL,UX,u
ANTYPE,0
NLGEOM,1
!AUTOTS,ON
!DTIME,0.01,0.00001,0.1
!ARCLEN,ON
NSUBST,1000,2000,10
NLADAPTIVE,ALL,ADD,MESH,SHAPE,155
NLMESH,BDRA,50
!CUTCONTROL,DSPLIMIT,10e7
ALLSEL,ALL
SOLVE
FINISH
/POST1
PLDISP,1
NSEL,S,LOC,X,0
set,LAST
fsum
*get,fsum,FSUM,0,ITEM,Fx
force=fsum
filename=strcat('res',chrval(fid))
*if,i,eq,1,then
*cfopen,%filename%,txt,,
*else
*cfopen,%filename%,txt,,APPEND
*endif
*vwrite,u,force
(G16.8,G16.8)
*cfclose
tempname=strcat(chrval(fid),'-')
tempname=strcat(tempname,chrval(i))
filename=strcat('nodal_stress_x',tempname)
*cfopen,%filename%,txt,,
*do,xid,1,rows1
*set,strx
*GET,strx, node,xid,s,X
*vwrite,strx
(G16.8)
*enddo
*cfclose
filename=strcat('nodal_stress_y',tempname)
*cfopen,%filename%,txt,,
*do,xid,1,rows1
*set,stry
*GET,stry, node,xid,s,Y
*vwrite,stry
(G16.8)
*enddo
*cfclose
filename=strcat('nodal_stress_xy',tempname)
*cfopen,%filename%,txt,,
*do,xid,1,rows1
*set,strxy
*GET,strxy, node,xid,s,XY
*vwrite,strxy
(G16.8)
*enddo
*cfclose
FINISH
*enddo
/CLEAR
*enddo !* end of outer loop