Lattice structure

Altair Forum User
Altair Forum User
Altair Employee
edited October 2020 in Community Q&A

Hi,

I just tried to use optisruct to do the lattice structure optimization. The lattice fem file was created but I am not able to see the lattice parts in the model. Could you please take a look at my file to see if I did it correctly or not and what is the problem. I used the lattice option in topology panel(I have attached the photo of it).

<?xml version="1.0" encoding="UTF-8"?>Untitled.png

Unable to find an attachment - read this blog

«1

Answers

  • Rahul Rajan_21763
    Rahul Rajan_21763 New Altair Community Member
    edited February 2019

    Shared lattice fem file contains lattice parts but somehow it is hided because of 2d elements. Can you please share the fem file saved in reference level. You can use attached fem file for the run.

    Unable to find an attachment - read this blog

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited February 2019

    Dear @Rahul R

    This is the fem file without lattice.

     

    Unable to find an attachment - read this blog

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited February 2019

    Hello again,

    I just tried to do a lattice optimization for a bulk model under compression but I encountered the message below. I have also attached my file could you please help me to understand what is the problem.

    Thank you.

     

    <?xml version="1.0" encoding="UTF-8"?>Capture.JPG

    Unable to find an attachment - read this blog

  • Simon Križnik
    Simon Križnik Altair Community Member
    edited February 2019

    Hi,

     

    there are limitations for stress constraints in topology and free-size optimization (see attached document). 

    The stress constraint definition in a topology optimization is a global constraint and does not target local stress concentrations.  These areas can be addressed subsequently through size, shape, and free shape optimization or a combination thereof.  Subsequent size, shape or free-shape optimization is performed to minimize the mass while meeting stress and deflection criteria.  Artificial stress concentrations are filtered out during topology optimization with stress constraints.  These include regions around rigid connections, concentrations due to hard geometric features such as corners, etc.

     

    from Optistruct User Guide:

     

    The von Mises stress constraints may be defined for topology and free-size optimization through the STRESS optional continuation line on the DTPL or the DSIZE card. There are a number of restrictions with this constraint:

    • Stress constraints may not be used when enforced displacements are present in the model.

     

     

     

     

     

    Unable to find an attachment - read this blog

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited February 2019

    Dear @Ivan

    Thank you for the information. My model is supposed to simulate a compression test with enforced displacement. According to the file, you uploaded it is not possible to put constraint limit with this type of displacement. So, what do you suggest as a possible solution wrt this fact that I need to do this simulation with displacement percentage?

  • Simon Križnik
    Simon Križnik Altair Community Member
    edited February 2019

    There are two options:

    -instead of minimize compliance objective subject to volume fraction constraint, try minimize volume fraction objective subject to stress constraint. Note that stress constraint in this case is defined by static stress response (DRESP1), not on topology card

    -optimization in two stages (concept and detail): first concept stage without stress constraint on topology cards and minimize compliance objective subject to volume fraction constraint, and in the second detailed stage (after interpreting results of first stage), perform size, shape or free shape optimization to locally optimize the design and stay bellow stress constraint.

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited February 2019

    Dear @Ivan

    I tried the solution you suggested. But There is another error. would you please take look at my file?

     

    Unable to find an attachment - read this blog

  • Simon Križnik
    Simon Križnik Altair Community Member
    edited February 2019

    What error are you facing and which version are you using?  It did run on my end (HW 2017.2). 

     

    However, there are a couple of issues:

    -you forgot to change the optimization constraint from 0.3 to 200

    -the optimization problem is not well posed. All loadsteps but the first (0,2% loading) have stresses bigger than 200 MPa in the analysis before optimization. If the model is unable to hit the target using full design space, it cannot produce feasible results after optimization. In other words, if the model does not have enough available material to start with, it can not add material during optimization.

     

    Attached are edited model and partially run optimization.

    Unable to find an attachment - read this blog

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited February 2019

    Dear @Ivan

    I also use the 2017.2 student version. Thank you for your help, I completely understand what are the problems.

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited February 2019


    Eventhogh I had changed the constraints above 200 again I have the following errors.

    First: 

    ANALYSIS COMPLETED.
      
     
     OPTIMIZATION HAS CONVERGED.
      
     INFEASIBLE DESIGN (AT LEAST ONE CONSTRAINT VIOLATED).

     

    Then:

      
     
     ANALYSIS COMPLETED.
      
     

     *** INTERNAL PROGRAMMING ERROR ***
       in file 'dsetio-inc.h', at location # 132.

  • Simon Križnik
    Simon Križnik Altair Community Member
    edited October 2020

    In the baseline analysis the highest stress is 333 MPa at 44% compression, so the stress constraint should be at least as much in order to give Optistruct a chance for a feasible design. It should be noted that typically porous material represented by periodic lattice structures exhibits lower stiffness per volume unit compared to fully dense material. Lattice optimization gives huge stress (41.000 MPa) at 44% compression. This kind of makes sense because lattice beams are way too slender since even a solid block of material was at the limit of feasibility. So this high compression % cannot be handled by such a lattice structure (even before buckling is taken into account).

     

    The  *** INTERNAL PROGRAMMING ERROR *** is a strange one. Perhaps it is a software bug that should be handled by Altair, as suggested in the following topic:

    https://community.altair.com/community?id=community_question&sys_id=13a6cc7a1b2bd0908017dc61ec4bcbd3

    Looks like the issue is already resolved in 2017.2.2 version:

    https://community.altair.com/community?id=community_question&sys_id=fb96847a1b2bd0908017dc61ec4bcb58

    Running linear static analysis instead did not give such error, but can't be used in your case as it gives too high stresses at larger displacements.

     

    I also noticed unit inconsistency: on DTI_units mass was set to kg, but the mass of aluminium is 2.7e-9 so it should be Mgg (tonne) instead.

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited February 2019

    Dear @Ivan

    Thank you for your help. I have tried to change the force to linear static and the design is feasible but I cannot see the lattice part in HyperMesh. could you please take a look at my file.

     

     

    Unable to find an attachment - read this blog

  • Simon Križnik
    Simon Križnik Altair Community Member
    edited February 2019

    There are no CBAR elements in the shared solver deck. Please review the *_lattice.out and *_optimized.out files for anything unusual. Unfortunately, I do not have experience with lattice optimization to be able to offer better suggestions.

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited February 2019

    Dear @Ivan

    Thank you for your answer.

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited February 2019

    I should finish my thesis this weekend. My supervisor insists to do a non-linear lattice optimization with enforced displacement. Until now I couldn't find a way to perform it. I just want to know is performing this kind of optimization possible at all? Are there any tutorials that go deep in lattice optimization? (there just an OS:3300 tutorial which is very general and also linear) it is a kind of emergency.

  • Simon Križnik
    Simon Križnik Altair Community Member
    edited February 2019

    I wish I could be more helpful.

     

    There are tutorials OS-3300 and OS-E: 0840 Lattice Structure Optimization. There is also a chapter on lattice optimization in the User Guide>Design Optimization>Lattice Structure Optimization

    The following might help:

    2b101a70b92105abf4b221d0736bcf4b2eeafb01.jpg?image_play_button_size=2x&image_crop_resized=960x540&image_play_button=1&image_play_button_color=7b796ae0

    2015-03-18 Altair OptiStruct Revolutionizes Lattice Structures for 3D Printing

    https://rc.library.uta.edu/uta-ir/bitstream/handle/10106/26381/DAKSHNAMOORTHY-THESIS-2016.pdf?sequence=1&amp;isAllowed=y

    http://sffsymposium.engr.utexas.edu/sites/default/files/2016/170-Dakshnamoorthy.pdf

     

    First try to optimize only 0,2% loading without stress constraint. IMHO the stress constraints are too low and imposed displacements are too high.

     

    Unable to find an attachment - read this blog

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited February 2019

    @Ivan

    Thank you very much they helped me to understand the lattice better. But as I studied these materials along with the other resources, using nlgeom is not useful. In my case I should optimize a cube under compression. The compression is performed using enforced displacement. To increas the stifness we should use volfrac and compliance responses. Volfrac for the design constrant and minimizing the complians as objective. But all in all I cannot perform this optimization. Using linear static everything is fine.

  • Simon Križnik
    Simon Križnik Altair Community Member
    edited October 2020

    Volfrac for the design constrant and minimizing the complians as objective.

    Actually, when prescribed displacements are used, to increase the stiffness the objective should be to maximize compliance. I'm sorry for misleading you. Try to formulate the optimization problem accordingly and please report back.

     

    from Optistruct help:

    Using linear static everything is fine.

    Do you still get INTERNAL PROGRAMMING ERROR  while running NLGEOM? Did you update to the latest Hyperworks version?

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited February 2019

    Dear @Ivan

    I really appreciate your help today I got an answer from Altair for internal programming error which says that NLGEOM is not supported:

     

    Good Morning,

     

    the NLGEOM is an obsolete analysis type no more developed in the last years, in fact when you import the .fem file in Hypermesh you obtain this message:image001.png.9af0ebf4916927d8c112cd5317cd5f60.png

     

    So at the moment please don’t use NLGEOM analysis type but set up the optimization with standard linear static, trying to approximating the behavior of the component in linear theory.

     

    In any case, I’m in contact with the developers, if in the next versions will be any changes I’ll inform you.

     

    I talked to my supervisor and we had decided to use Linear Static with small steps. Is it possible? I think it could be possible by increasing the displacement gradually. Let me know about your idea.

     

     

     

     

  • Simon Križnik
    Simon Križnik Altair Community Member
    edited February 2019

    You can use non-linear quasi-static (NLSTAT) analysis. However, I would recommend to first perform lattice optimization using linear static analysis with small loading % and only after you are confident enough in the results (they make sense) try the non-linear solution and larger enforced displacements.

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited February 2019

    Dear @Ivan

    Thank you very much. just another question, how can we obtain the stress constraints values? global and local?

  • Simon Križnik
    Simon Križnik Altair Community Member
    edited February 2019

    Stress constraints are usually set to yield stress and so depends on the material being used. 

    Lattice Stress Values.PNG

    The 'Stress Constraint' is for Phase 1- global constraint (Apply to the entire model including non-design space)

    The 'Stress Value' is for Phase 2 - local constraint

     

    Users can check on the optimization process in the out file under RETAINED RESPONSES TABLE

    https://altairuniversity.com/wp-content/uploads/2014/01/Output-File-Structure.pdf

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited February 2019

    but for the lattice, they should be different. If we consider steel as our material what would be the local and global constraints?

  • Simon Križnik
    Simon Križnik Altair Community Member
    edited February 2019

    We can't use global stress constraint on DTPL card with enforced displacements, remember? ;)/emoticons/default_wink.png' srcset='/emoticons/wink@2x.png 2x' title=';)' width='20' />

     

    Local stress constraint depends on the material being used and application requirements. If we want the design to stay in the elastic range (no plastic deformation) then we constrain at yield strength. If we want to ensure the design will not rupture (break) we constrain at ultimate or fracture strength. If we want to design durable components we constrain at fatigue strength. For typical steel material, yield strength is at 350 MPa and ultimate strength at 420 MPa.

     

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited February 2019

    Thank you. Yes I know it but if I want to have combination of Lattice and solid, I should have define stress constraint through responses and design constraints. The other thing is that if I want to guarantee the continuity in my design, is controlling the Lower bound and upper bound the only solution? Or there may be a control card which could guarantee it?

  • Simon Križnik
    Simon Križnik Altair Community Member
    edited February 2019

    I'm not sure I understood you questions. Can you ask in other words?

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited February 2019

    @Ivan

    As you can see in the below picture the solid part is not connected to the lattice parts. in this case, the simulation is not complete because only the upper part will move and no load will affect the rest of the model (I have also attached the lattice part .fem file). I want to know is there any solution to guarantee the connections in the model? the only way that comes to my mind is to set the lower bond and the upper bond in a way that we could be sure about the connections, but I have doubts that if this design is optimal or not.

    <?xml version="1.0" encoding="UTF-8"?>Capture.JPG

    Unable to find an attachment - read this blog

  • Simon Križnik
    Simon Križnik Altair Community Member
    edited February 2019

    OK, I see. If the model is properly connected after Phase I (bulk-5_lattice_lattice.fem), then the issue could be in Phase II:

    The Beam Cleaning procedure occurs at the end of the second optimization phase to remove beams with very low radii. Beam Cleaning can be controlled using LATPRM,CLEAN. The minimum value of the radii or aspect ratio can be controlled using LATPRM, MINRAD and/or LATPRM, R2LRATIO in conjunction with LATPRM ,CLEAN.

     

    If you can use lower and upper bounds (of stress?) to control connectivity then you should use it. Have you tried optimizing for the smallest enforced displacement? 

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited March 2019

    OK, I see. If the model is properly connected after Phase I (bulk-5_lattice_lattice.fem), then the issue could be in Phase II:

    The Beam Cleaning procedure occurs at the end of the second optimization phase to remove beams with very low radii. Beam Cleaning can be controlled using LATPRM,CLEAN. The minimum value of the radii or aspect ratio can be controlled using LATPRM, MINRAD and/or LATPRM, R2LRATIO in conjunction with LATPRM ,CLEAN.

     

    If you can use lower and upper bounds (of stress?) to control connectivity then you should use it. Have you tried optimizing for the smallest enforced displacement? 

    I mean the lower bound and upper bound of the density for the lattice. And also I have tried to change the lattice parameters that you have mentioned above, it is like combination of all of these parameters. So there is no other option that could automatically guarantee the continuity? 

  • Simon Križnik
    Simon Križnik Altair Community Member
    edited March 2019

    I doubt there is an option to automatically guarantee the connectivity, since in the interpretation of standard topology optimization results we still have to use engineering judgment by manually adjusting Iso density contour to ensure proper load-path connectivity.