artofscience / SAOR

Sequential Approximate Optimization Repository
GNU General Public License v3.0
5 stars 1 forks source link

Topology optimization: pyModular #33

Closed aatmdelissen closed 3 years ago

aatmdelissen commented 3 years ago

I've invited you all for the pyModular library: https://github.com/aatmdelissen/pyModular. We could use this library to demonstrate some simple topology optimization problems.

A simple compliance example can be found in https://github.com/aatmdelissen/pyModular/blob/master/examples/ex_compliance.py

What kind of topology optimization examples do we want to add?

MaxvdKolk commented 3 years ago

It would be nice to highlight problems that benefit using different optimisers, or different choice of intervening variables. If we can show that only a different choice of setup reduces the iterations by some factor, it would motivate people to start playing around with those choices.

Probably @Giannis1993 has some nice examples for this

Giannis1993 commented 3 years ago

I think I am the least familiar with TO problems here. I have only used small-scale truss problems and analytical functions to show the influence of different MMA variants. Maybe Matthijs and Dirk have some ideas on that. However, I believe that if we choose some problems for which we know a-priori the 'shape' of (some of) their response functions, we can show improved convergence properties (e.g. selecting y=x for a linear volume constraint, while choosing y=MMA for the compliance objective).

artofscience commented 3 years ago

You can use the examples in the use paper. Those show improved performance for cases other than MMA. Idem for the cases in bruyneel2002 paper Sent from my iPad

On 10 Mar 2021, at 10:47, Giannis notifications@github.com wrote:

 I think I am the least familiar with TO problems here. I have only used small-scale truss problems and analytical functions to show the influence of different MMA variants. Maybe Matthijs and Dirk have some ideas on that. However, I believe that if we choose some problems for which we know a-priori the 'shape' of (some of) their response functions, we can show improved convergence properties (e.g. selecting y=x for a linear volume constraint, while choosing y=MMA for the compliance objective).

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or unsubscribe.

Giannis1993 commented 3 years ago

@artofscience I am guessing you are referring to the papers below, which do not have any TO example however.

https://link.springer.com/article/10.1007/s00158-006-0070-6 https://link.springer.com/article/10.1007/s00158-002-0238-7

MaxvdKolk commented 3 years ago

It would be great if the problems are TO, as that nowadays seems to attracts a bigger audience. However, for illustrative purposes it should be fine to have size/shape problems as well, or even simpler problems. For those cases I can imagine that the (semi-)automatic differentiation might be overkill, but it could still be nice to illustrate those principles in addition to some TO examples even it it just saves manually coding up the sensitivities.

For a specific TO problem it would be great if there is at least one convincing example, that simply by changing one or two definitions in the choice of algorithm suddenly runs in a reduced number of iterations (or with less computational effort, shorter runtime, etc.) with similar performance. Cases like that will convince others to try it for their problems too.

Although the 88-line is a great baseline to start with, and to show that performance is equal to the classical x-line Matlab codes, most people will simply copy/paste an OC routine and be happy with it, especially when doing min compliance s.t. volume constraint. So to convince those people, it would be great to leverage the Modular framework to define a (more) complex problem that benefits from manually intervening with the optimisation algorithm. There must be problems that strongly benefit from doing that right? It is the raison d'être of this package.

aatmdelissen commented 3 years ago

Yes, we can do a heaviside-formulation, just by adding one or two lines. We could do a multi-physics example, although uncoupled, and it might not have a great reduction on iteration count? Examples of problems that are notoriously difficult are gravity load (shouldn't be too difficult to program), or a dynamics example (dynamic compliance), which also has a very sharp (local) minimum.

artofscience commented 3 years ago

Issue has become obsolete by implementation of problems