Materials

Materials

Topics relate 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 Kumar
      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.

    • Bill Bulat
      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.

    • sixog daioqp
      Subscriber

      It seems like you've made a comprehensive effort to set up your analysis for 2-material fiber composites using APDL 2021 R1. The convergence issue you're facing at large displacements, such as 150 or 200, can be due to several factors. Here are some steps you can take to diagnose and potentially resolve the problem:


      Check Material Properties: Ensure that the material properties you've defined for both material 1 and material 2 are accurate and appropriate for large displacements. Double-check the values of Young's modulus, Poisson's ratio, and the hyperelastic parameters.


      Convergence Settings: Increase the convergence tolerance settings to see if it helps the solver converge at larger displacements. You can adjust settings like "AUTOTS,ON" and "NSUBST" to make the convergence criteria more relaxed.


      Element Quality: Examine the quality of your mesh elements, especially in regions with large displacements. Poorly shaped elements can lead to convergence problems. Consider refining the mesh in critical areas.


      Solver Iterations: It might require more solver iterations to reach convergence at larger displacements. You can increase the maximum number of iterations or use adaptive techniques to control convergence.


      Boundary Conditions: Ensure that your boundary conditions are correctly applied for large displacements. Sometimes, improper constraints can hinder convergence.


      Output and Monitoring: Add more output requests during the solution to monitor the convergence progress. This will help you identify which step is causing the issue. You can use the /OUTPR command to control the output frequency.


      Contact or Bonding: If your model involves contact between different parts, make sure that the contact or bonding settings are appropriate for large displacements.


      Element Type: Depending on your specific problem, consider using different element types or formulations that are better suited for large deformation analyses, such as shell elements or 3D solid elements with enhanced formulations.


      Solver Documentation: Refer to the documentation for APDL 2021 R1 to see if there are any specific recommendations or limitations for large displacement problems.


      Numerical Instabilities: Large displacements can sometimes lead to numerical instabilities. Ensure that your time-stepping strategy and nonlinear analysis settings are appropriate for your problem.


      Consult Experts: If the issue persists, consider consulting with experts in finite element analysis or the ANSYS support team. They may be able to provide specific guidance based on your model and setup.


      Remember to back up your current setup before making significant changes and document any modifications you make for future reference. Troubleshooting convergence issues can be complex, and it often involves a combination of adjusting settings, refining the model, and careful analysis of the results.

Viewing 4 reply threads
  • You must be logged in to reply to this topic.