|
[Sponsors] |
May 17, 2014, 13:45 |
Shape returning to the initial condition
|
#1 |
Member
Sreekanth
Join Date: Jun 2013
Location: India
Posts: 30
Rep Power: 12 |
Hi,
When i run the simulation for optimization, I find that after an initial deformation, it gradually tends to get back to the initial shape. This repeats again. I know that there is better solution, so it cant be that the initial solution is best. What could I be doing wrong? Configuration file is attached. NB: My objective is to minimize the lift, hence i have multiplied the objective with a negative number. Please have a look and let me know what all things I could be doing wrong. I have to finish my project soon but I am getting stuck at different places with SU2 Thank you. Sreekanth |
|
May 19, 2014, 17:00 |
|
#2 |
New Member
Brendan Tracey
Join Date: Jun 2013
Posts: 18
Rep Power: 12 |
How are you calling the optimization?
|
|
May 20, 2014, 01:45 |
|
#3 |
Member
Sreekanth
Join Date: Jun 2013
Location: India
Posts: 30
Rep Power: 12 |
shape_optimization.py -f coarsecavity.cfg -p 2
|
|
June 4, 2015, 20:04 |
|
#4 |
New Member
Join Date: Jun 2015
Posts: 1
Rep Power: 0 |
I have the same problem with the latest version of rotating NACA0012 test case. I don't get the same result with the tutorial without changing anything. NACA0012 goes back to NACA0012 after 37 designs and stays there.
shape_optimization.py -f rotating_NACA0012.cfg Also I can't get the results in Figure (8): Function evaluation history in tutorial. Drag does not change much during evaluations and at the end goes back to the same location. Here is the output, looks like OBJFUN and GNORM is not changing much NIT FC OBJFUN GNORM 1 1 2.158280E-06 2.223470E-03 2 12 2.158351E-06 2.224594E-03 Developers: can you please check this? Thanks!! |
|
January 18, 2017, 05:03 |
|
#5 |
New Member
Floris
Join Date: Sep 2016
Location: Enschede, The Netherlands
Posts: 21
Rep Power: 9 |
Hello Sreekanth and Cemonair,
Have you already found a possible solution for this problem? I have the same problem as well... I appreciate any help/suggestions of you Kind regards, Floris |
|
January 23, 2017, 12:54 |
|
#6 |
New Member
Spyros
Join Date: Mar 2014
Posts: 20
Rep Power: 12 |
Hello,
In the history of the optimization, is there any design point actually superior than your initial point? If not, could it be simply that the initial point is a local optimum of your design space? Spyros |
|
January 24, 2017, 03:42 |
|
#7 |
New Member
Floris
Join Date: Sep 2016
Location: Enschede, The Netherlands
Posts: 21
Rep Power: 9 |
Hi Spyros,
Yes I checked that, the first new shape is improving the object function. I checked this for a drag as objective function and for lift over drag (efficiency) as objective function. Both optimizations have the same progress; initial design--first optimized design (which is improving the objective function)---back to initial shape. Kind regards, Floris |
|
August 10, 2017, 16:57 |
|
#8 | |
Member
Join Date: May 2017
Posts: 41
Rep Power: 8 |
Quote:
I'm dealing with the same problem. Did you manage to fix it somehow? I would appreciate it if you could let me know. Thanks. |
||
August 11, 2017, 02:07 |
|
#9 |
New Member
Floris
Join Date: Sep 2016
Location: Enschede, The Netherlands
Posts: 21
Rep Power: 9 |
Hi Ryan,
Apparently this behavior appears when no improved design has been found. The objective function is decreasing, however not sufficient (Armijo-Goldstein conditions). Reducing the objective scale is a remedy for this typical behavior, however the deviations in shape are so small that it is barely noticeable. In this case, increase the scale of DEFINITION_DV. It helps when you put "restart flow" on "yes". Furthermore I would like to refer you to: https://github.com/su2code/SU2/issues/409. In here, the results that can be checked to ensure a proper optimization are pointed out. I hope this helped you. Please let me know your foundings. Cheers! Floris van der Schuur |
|
August 11, 2017, 13:03 |
|
#10 | |
Member
Join Date: May 2017
Posts: 41
Rep Power: 8 |
Quote:
|
||
August 29, 2017, 11:09 |
|
#11 |
Member
tom pratt
Join Date: Jan 2016
Posts: 55
Rep Power: 10 |
Hi All,
I am having the same issue as described above! for a 2D shape design case, the optimizer takes one or two steps in a direction which minimizes drag (the first iteration being the most effective, reducing drag by nearly 2 counts), but then every subsequent design tends back towards the original design! i have tried reducing the scale of OPT_OBJECTIVE and OPT_CONSTRAINT to 1e-5 whilst increasing the scale of DEFINITION_DV to as suggested above but this unfortunately did not help the situation. any more help would be vastly appreciated! thanks Tom |
|
August 29, 2017, 11:52 |
|
#12 |
Member
tom pratt
Join Date: Jan 2016
Posts: 55
Rep Power: 10 |
UPDATE:
i have just discovered that the adjoint gradient for the optimization is only being calculated for the first design iteration; then every subsequent design iteration only carries out 'DIRECT', 'GEOMETRY' and 'DEFORM' processes. This is very confusing, i'm not sure why the optimizer wouldn't calculate a sensitivity gradient for every design step? |
|
August 30, 2017, 01:45 |
|
#13 |
New Member
Floris
Join Date: Sep 2016
Location: Enschede, The Netherlands
Posts: 21
Rep Power: 9 |
Hi Tom,
In order to give an suggestion, you have to provide more information about your test case (config file, output files, etc). For now, I can give you the following information: Returning to initial design indicates that the optimizer did not find any improved design. So first it calculates the direct solution after which the sensitivity is determined. Subsequently line searches takes place to find an improved design. When after 11 searches no improved design is found, it takes the 12th design and calculates the direct and adjoint again. It is indeed good to play around with the scales, but keep it organized. During the test cases please check the sensitivities (adjoint & direct) and the output files indicated in https://github.com/su2code/SU2/issues/409. Please search for the theory of SQP optimizers (SU2 uses the SLSQP, which is a based on SQP optimizers). If you understand the theory, I suggest you to have a look at the source code of the optimizer: https://github.com/scipy/scipy/blob/.../slsqp_optmz.f. I hope I give you enough information about the gradient based optimization technique of SU2. Kind regards, Floris van der Schuur |
|
August 30, 2017, 10:09 |
|
#14 |
Member
tom pratt
Join Date: Jan 2016
Posts: 55
Rep Power: 10 |
Hi Floris,
Thanks for the detailed information and links! i will read more into the workings of the optimizer. when you say that 11 line-searches are performed, is this number of attempts arbitrary, or is there a reason for it to be 11? As requested here is a txt copy of the config file which i have been using. supersonic-foil-opt-HH.txt thankyou for taking the time to educate me a little bit! your help is much appreciated. Tom |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
High Courant Number @ icoFoam | Artex85 | OpenFOAM Running, Solving & CFD | 11 | February 16, 2017 13:40 |
pimpleFoam: turbulence->correct(); is not executed when using residualControl | hfs | OpenFOAM Running, Solving & CFD | 3 | October 29, 2013 08:35 |
calculation stops after few time steps | sivakumar | OpenFOAM Running, Solving & CFD | 7 | March 17, 2013 06:37 |
pisoFoam with k-epsilon turb blows up - Some questions | Heroic | OpenFOAM Running, Solving & CFD | 26 | December 17, 2012 03:34 |
Upgraded from Karmic Koala 9.10 to Lucid Lynx10.04.3 | bookie56 | OpenFOAM Installation | 8 | August 13, 2011 04:03 |