Materials

Materials

Topics related to Granta Design and more.

cannot converge for 2 materials fiber composites for large displacement

    • Yunpeng Wu
      Subscriber

      I'm trying to do a 2 materials fiber composites for large displacement. The version is APDL 2021 R1.

      Here is the link for elements and nodes.

      https://drive.google.com/drive/folders/1vGF3F-EF8pqMliSi8pbBQfw_230DUfUS?usp=sharing

      It can converge with displacement 10 or 20 or 30, but can't converge for large displacement like 150 or 200. Can you help me to check why this happens?

       

      Here are the APDL code. it can run with nodes and elements

      FINISH
      /CLEAR

      *do,fid,3,3


      /PREP7  

      !*=========================
      !* unit sets: (N, mm, MPa) or (uN, um, MPa)
      !* we use (uN, um, MPa)

      !*==== Define material 1
      ET,1,SOLID285
      MP,EX,1,1000    !* Young's modulus, unit: MPa
      MP,NUXY,1,0.3

      !*==== Define material 2
      ET,2,SOLID285   
      !!TB,HYPE,2,1,5,MOON  
      !!TBTEMP,0
      !!TBDATA,,-1.4516,1.8669,1.5083,-4.3864,3.8062,0

      TB,HYPER,2,,3,OGDEN    !3 parameter Ogden model
      TBDATA,1,-9.19      !Define mu1 (MPa)
      TBDATA,2,2.74       !Define a1
      TBDATA,3,-8.61      !Define mu2 (MPa)
      TBDATA,4,-5.55      !Define a2
      TBDATA,5,6.92       !Define mu3 (MPa)
      TBDATA,6,1.31       !Define a3
      TBDATA,7,1E-5       !Define d1=2/K, K is the bulk modulus

       


      /PREP7  


      SHPP, OFF

      NDELE,ALL
      EDELE,ALL
      DDELE,ALL,ALL 
      NUMCMP,ALL

      *set,ntb
      *set,etb

      NLMESH,SRAT,2


      filename=strcat('nodes',chrval(fid))
      fext='dat'

      /INQUIRE,rows1,LINES,%filename%,%fext%
      *DIM,ntb,ARRAY,rows1,4
      *VREAD,ntb,%filename%,%fext%,,JIK,4,rows1
      (4F15.0)             !* read in 4 Float numbers using width=15
                           !* width=15 should be >= the actual widith of the numbers

      filename=strcat('elements',chrval(fid))

      /INQUIRE,rows2,LINES,%filename%,%fext%
      *DIM,etb,ARRAY,rows2,5
      *VREAD,etb,%filename%,%fext%,,JIK,5,rows2
      (5F10.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,2),etb(i,3),etb(i,4),etb(i,5) !*4 node numbers
      *enddo

      !*=== next block: read in model info, number of nodes, elements etc
      filename=strcat('model_info',chrval(fid))
      /INQUIRE,rows3,LINES,%filename%,%fext%
      *DIM,infotb,ARRAY,rows3,1
      *VREAD,infotb,%filename%,%fext%,,JIK,1,rows3
      (F10.0)

      !*=== get number of nodes, elements etc
      n_polymer=infotb(3,1)
      n_elements=infotb(2,1)
      n_fiber=n_elements - n_polymer

      !*=== next two blocks assign materials to fiber and polymer groups
      ESEL,S,ELEM,,1,n_fiber
      MPCHG,1,ALL
      CM,FILLER,ELEM

      ESEL,S,elem,,n_fiber+1,n_elements
      MPCHG,2,ALL
      CM,MATRIX,ELEM

       

       

      /SOL


      ALLSEL,ALL

      NSEL,S,LOC,X,0
      D,ALL,UX,0

      NSEL,S,LOC,Y,0
      D,ALL,UY,0

      NSEL,S,LOC,Z,0
      D,ALL,UZ,0


      *do,i,1,3     !* loop over three displacements

      /SOL
      u=50*i

      NSEL,S,LOC,X,100
      D,ALL,UX,u

       

      ANTYPE,0
      NLGEOM,ON
      AUTOTS,ON   
      NSUBST,100,5000,20
      NLMESH,SRAT,2

       


      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
      *GET,strx,node,xid,s,X
      *vwrite,strx
      (G16.8)
      *enddo
      *cfclose

      tempname=strcat(chrval(fid),'_')
      tempname=strcat(tempname,chrval(i))
      filename=strcat('nodal_stress_y',tempname)
      *cfopen,%filename%,txt,,
      *do,xid,1,rows1
      *GET,strx,node,xid,s,Y
      *vwrite,strx
      (G16.8)
      *enddo
      *cfclose

      tempname=strcat(chrval(fid),'_')
      tempname=strcat(tempname,chrval(i))
      filename=strcat('nodal_stress_xy',tempname)
      *cfopen,%filename%,txt,,
      *do,xid,1,rows1
      *GET,strx,node,xid,s,XY
      *vwrite,strx
      (G16.8)
      *enddo
      *cfclose

       

      FINISH 
      *enddo
      /CLEAR


      *enddo    !* end of outer loop

       

       

       

    • Ashish Khemka
      Forum Moderator

      Hi,

       

      What is the error message you see? Can you please share the snapshot of the error?

       

      Regards,

      Ashish Kumar

      • Yunpeng Wu
        Subscriber

         

        The error message shows below.

         

    • Yunpeng Wu
      Subscriber

      Here is the error message, also, I tried, NLADAPTIVE,ALL,ADD,MESH,SKEWNESS,0.9 

      But no remesh, remains the same error.

      Thank you for your help.

    • wrbulat
      Ansys Employee

      One thing you might try doing to identify the source of the problem is to post process the last converged substep. If you include OUTRES,ALL,ALL command before solving, the results associated with all substeps will be saved to the results file. You should be able to post process these in POST1. If you look at the deformed configuration (e.g., PLDISP command) of the last converged load step, you might see what part of the mesh is on the verge of becoming entangled. I see you are already using SOLID285 (switching to that element type sometimes helps in situations like this, but you're already using it). Have you tried using a different criterion for NLADAPTIVE remeshing? In the example I sent you in your other post, I used an energy criterion which seemed to work pretty well.

      • Yunpeng Wu
        Subscriber

        Hello, Bill

        I tried both mesh and energy types of NLADAPTIVE. But it's still not working, all are stuck at 'cannot create new mesh'.

        One thing I'm concerned about is that I import the element and nodes into APDL directly(generated by Gmsh), and I do not use the meshing from APDL, Does it matter and make the command NLADAPTIVE not working?

        I'm wondering if I import the elements and nodes that make the new mesh can't be created.

Viewing 3 reply threads
  • The topic ‘cannot converge for 2 materials fiber composites for large displacement’ is closed to new replies.