What does minimize compliance index in Optistruct Optimization mean?

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

Hello everyone,

 

I have a question regarding to Optistruct for Structure Optimization Tutorial: Exercise 2a. First of all, I do not found its model file slider.fem in the optistruct tutorial model folder so don't really have a chance to run it. Can anyone please tell me, after setting multiple load steps as compliance index in response, what does it suppose to mean by minimizing it in the objective? Also, I noticed that the Exerice 2a set frequency as constrain. What kind of results we would expect by setting it like this? What does it supposed to mean by minimizing multiple load steps, as load step is just a group of BCs, in my opinion, inside of volume or mass or any variables? BCs are conditions. Why minimizing conditions?

 

Thanks

Answers

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited November 2020

    Hi @Frehab

     

    PFA, slider.fem model file.

     

    compliance index is a method to consider multiple frequencies and static subcases (loadsteps, load cases) combined in a classical topology optimization.

    <?xml version="1.0" encoding="UTF-8"?>CCI.PNG

    Unable to find an attachment - read this blog

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited February 2017

    Hi Prakash, thanks for your reply.

     

    What does the column mode mean in the compliance index panel? I tried mode 1, 2, 3 all equal to 1;   model 1, 2 all equal to 1; model 1,2 ,3 ,4, 5, 6 equal to 1, 1, 1, 2, 10,1. 

    But the result looks exactly same.

     

    Thanks

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

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited February 2017

    And who please tell me what does minimizing compliance index mean? In my pinion it is just minimizing conditions....How could minimizing conditions make sense physically?

     

    And please don't just post a screen shot from the user guide. Trust me, I have read it.

     

    Thanks a lot

     

     

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited February 2017

    Hi Frehab,

     

    I will try to explain it to you simply, without knowing if you already know anything about the subject or not.

    The compliance is the elastic strain energy present in the structure induced by the load case. The sum of W*C, is the sumation of the all strain energies in the different load cases, with weights in each load case, so you can choose what load case matters the most. In the compliance index, the eigen values of the structure is added aswell, so you will minimize the strain energy and the inverse of the eigen value, which is maximizing the first eigen value of the structure for those BCs.

     

    When optimizing a structure, you want to have material in the weak areas. This weak areas deform more than the rest of the structures, so the strain energy will be high in those areas. If you minimize the compliance you will reduce the strain energy overall in the structure making the structure stiffer.

    Minimizing compliance is the same as maximixing rigidity, so you will have a stiffer structure with less weigth because it puts material where it is needed.

     

    Now for the sumation of compliances. Each load case will produce a value of strain energy, so if you want to consider the structure to all load cases, the objective is to maximize rigidity of the structure to the load cases, thats why the compliance of each load case is summed.

     

    The eigen value comes from the buckling factor or natural frequency which is a parameter that you want to increase in order to have a rigid structure aswell. So it could be added in the objective. However, eigenvalue is adimensional, compliance have energy units and the orders of magnitude of both are very very different. Something must be done as the objective must have a unit as every value in physics. In order to implement the eigenvalue, it must have a energy unit aswell. So a engineering aproximation is made by multipling it by the biggest compliance and the lowest eigenvalue. This will normalize the eigen value in order to give a value between 0 - 1. Then multiplied by the biggest compliance in order to achieve a total value in the same order of magnitude as the sum of compliances. This will make possible to optimize for both and not only for the compliance.

     

    I dont know if I made myself clear but I gave it a try ;)/emoticons/default_wink.png' srcset='/emoticons/wink@2x.png 2x' title=';)' width='20' />

     

    Best regards,

     

    Gonçalo

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited February 2017

    Another thing, it makes sense in the way that minimizing compliance will increase the material everywhere. So if you implement a volume fraction or mass constraint, only the areas that contribute the less for the deformation of the structure will be eliminated.

     

    If you minimize mass or volume, the optimizer will reduce it everywhere, so you will have to implement a constraint that will force the keeping of the solicitaded areas. Usually only displacement can do this well because stress is not usuable in topology or free-size. Or if you have a known compliance target you can use it.

    This is good when you know exactly the loads of the structure and it does not need to consider different directions.

     

    So when you want a rigid structure, want to avoid low natural frequencies and buckling loads, the compliance index is a good objective to obtain a idea of the best geometry.

     

    Best regards

    Gonçalo

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited February 2017

    Hi Gonçal,

     

    First of all, thank you very much for your meticulous answering. It really answers most of my questions.

     

    My case is to reduce mass as much as possible and make a trade off with deformation. Mass is the first priority but, when the 'marginal cost' is high, some sacrifice to the mass is necessary. I am not sure if this is correct but, from my understanding to your reply, it seems like my best option is to first minimizing mass with all the load cases on constrain. Then as long as I get the minimized mass, set up a new optimization with all load cases in one compliance index and set it to minimize with the previous minimized mass as a constrain under a certain range of changing domain.

     

    Regard to my question about compliance index setting panel. Does the word 'mode' indicate corresponding load step ID? or something else? 

     

    Btw, is this something same with multi-objective optimization on weighted strain energy method?  

     

    Best,

    Frehab

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited February 2017

    Hi Frehab,

     

    Mass is always the first priority, but in my understanding, this is a compromise you must make. You cant minimize mass unless you know the compliance target value for each load case. As the compliance value varies largely with the load cases, its very difficult to achieved a minimum mass design with this. You can use displacements aswell, this could be a way out of compliance.

     

    The compliance weigth is used when you have diferent compliance values in diferent load cases. If you want to minimize it for every load case equally, you will need to add different weights in order to achieve a W*C almost equal in all load cases, this way all of them will matter equally. But for start you can use 1 as weigths.

     

    It depends largely on what kind of optimization you are doing, and whats the purpose. People are mislead sometimes with optimization because you feal like its just one optimization you make and have a final result. Almost everytime this is not the case and you have to make a iteration based design as we do usualy without optimization.

     

    I'm not sure but I think the modes are the eigenvalues, for a first design you can use only the first. For a BC set you have multiple eigenvalues, imagine the vibration modes, first, second... Being the first the most important in a concept design. For simplicity I suggest using only weigthed compliance.

     

    For a sugestion you would need to show details.

     

    Hope it helps,

     

    Best regards,

    Gonçalo

     

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited February 2017

    Hi Gonçalo,

     

    I am a little confusing to what you said ' If you want to minimize it for every load case equally, you will need to add different weights in order to achieve a W*C almost equal in all load cases, this way all of them will matter equally. ' Isn't it 1 I want to use for every load cases if want to make all the load cases equally important? 

     

    Sorry, I am not allowed to show my model. I normally have about 5 to 8 load cases to check which include both compliance and eigen problems. This is why I want to find a way to combine all of them in one single optimization so that I can have a understanding to their over all influence to the mass. According to Optistruct's user guide, the solver can automatically set a NORM for me to balance out the difference between compliance and eigenvalue. So, from my understanding, I wound just need to set all the weights to 1, wouldn't I?

     

    Thanks,

    Frehab

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited February 2017

    Hi Frehab,

     

    The NORM will only try to normalize the difference between the eigen values and the compliance.

    If there is much diference between the sum of W*C and the norm... You should put weigths in the eigenvalues.

     

    As far as the different weigths (both eigenvalues and compliance), I will give an simple example to you.

     

    Being weigths = Wi and compliance = Ci. Imagine two load cases which give a certain compliance.

    C1 = 2000, C2 = 20

    If you have W1=W2=1 this will give sum WC = 1*2000 + 1*20.

     

    Which means, if a variation in the optimization of 5 is present in C1 or in the sum W*C, this is nothing.

    But if a variation of 5 is present in C2 is a lot.

     

    This means that the optimization will be based on the C1 because of the convergence target of the optimization, which will be a diference between iterations of the objective. And this must be computanional efficient, so the gradient optimizer will not be here searching for ever for better results and will accept the result when it is not changing much.

     

    On the other hand if you use: w1=1 and W2 = 100, this will give a sum WC = 1*2000 + 100*20 = 2000 + 2000.

    In terms of a mathematical problem those will matter the same.

     

    I dont know if there is some built in algorithm for this or not.

     

    You do not have to be rigorous with this, as long as it is near the magnitude, should be ok. And it depends if this a engineering problem or school problem. The room for playing with this will be different because if this is a engineering problem you want results fast and not be here searching for perfection which you wont get.

     

    That's also a problem with the constraints, but there, the penalty factor increases in order to achieve same orders of magnitude.

     

    I'm not at all familiar with the way the optimizer has been formulated, I'm talking from experience in simple examples outside Optistruct.

     

     

    Hope you got it.

     

    Best regards,

    Gonçalo

     

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited February 2017

    Hi Gonçalo,

     

    I think i understand it now. Thank you very much,

     

    Frehab