CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > SU2 > SU2 Shape Design

airfoil optimization with multiple DV_MARKER (su2 6.0.0)

Register Blogs Members List Search Today's Posts Mark Forums Read

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   March 26, 2018, 10:07
Default airfoil optimization with multiple DV_MARKER (su2 6.0.0)
  #1
New Member
 
Andrea Bornaccioni
Join Date: Mar 2018
Location: Rome
Posts: 10
Rep Power: 8
bornax is on a distinguished road
I'm running an optimization at a certain Mach number and AoA on a self defined airfoil. I've created the mesh in gmsh with two different markers for the upper and lower side of the airfoil. (I've allready done several successful simulations with SU2_CFD with this airfoil)
At the moment i've no constraints and i minimize DRAG. I launch shape_optimization.py with "-g CONTINUOUS_ADJOINT -o SLSQP" and the options for parallel computing.
The optimization reaches the convergence but i've realized that only the points of the upper side are modified. I've checked this looking in "DESIGNS/DSN_.../DEFORM/config_DEF.cfg" where i see something like this:

%-----------------------------------------------------------------------------%
GEO_MARKER= ( airfoil_up, airfoil_lo )
GEO_DESCRIPTION= AIRFOIL
GEO_MODE= FUNCTION
DV_KIND= HICKS_HENNE, HICKS_HENNE, HICKS_HENNE, HICKS_HENNE, HICKS_HENNE, HICKS_HENNE, HICKS_HENNE, HICKS_HENNE, HICKS_HENNE, HICKS_HENNE, HICKS_HENNE, HICKS_HENNE, HICKS_HENNE, HICKS_HENNE, HICKS_HENNE, HICKS_HENNE, HICKS_HENNE, HICKS_HENNE, HICKS_HENNE, HICKS_HENNE, HICKS_HENNE, HICKS_HENNE, HICKS_HENNE, HICKS_HENNE, HICKS_HENNE, HICKS_HENNE, HICKS_HENNE, HICKS_HENNE, HICKS_HENNE, HICKS_HENNE, HICKS_HENNE, HICKS_HENNE, HICKS_HENNE, HICKS_HENNE, HICKS_HENNE, HICKS_HENNE, HICKS_HENNE, HICKS_HENNE
DV_MARKER= ( airfoil_up )
DV_PARAM= ( 1.0, 0.05) ; ( 1.0, 0.1) ; ( 1.0, 0.15) ; ( 1.0, 0.2) ; ( 1.0, 0.25) ; ( 1.0, 0.3) ; ( 1.0, 0.35) ; ( 1.0, 0.4) ; ( 1.0, 0.45) ; ( 1.0, 0.5) ; ( 1.0, 0.55) ; ( 1.0, 0.6) ; ( 1.0, 0.65) ; ( 1.0, 0.7) ; ( 1.0, 0.75) ; ( 1.0, 0.8) ; ( 1.0, 0.85) ; ( 1.0, 0.9) ; ( 1.0, 0.95) ; ( 0.0, 0.05) ; ( 0.0, 0.1) ; ( 0.0, 0.15) ; ( 0.0, 0.2) ; ( 0.0, 0.25) ; ( 0.0, 0.3) ; ( 0.0, 0.35) ; ( 0.0, 0.4) ; ( 0.0, 0.45) ; ( 0.0, 0.5) ; ( 0.0, 0.55) ; ( 0.0, 0.6) ; ( 0.0, 0.65) ; ( 0.0, 0.7) ; ( 0.0, 0.75) ; ( 0.0, 0.8) ; ( 0.0, 0.85) ; ( 0.0, 0.9) ; ( 0.0, 0.95)
DV_VALUE= -2.3933e-07, -2.40235e-07, -2.08344e-07, -1.63663e-07, -1.15148e-07, -6.81409e-08, -2.62537e-08, 8.10047e-09, 3.36207e-08, 5.01587e-08, 5.86974e-08, 6.11612e-08, 6.00312e-08, 5.78369e-08, 5.66847e-08, 5.80158e-08, 6.28639e-08, 7.35168e-08, 1.0271e-07, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0

...
...
...

DEFINITION_DV= ( 1 , 1.0 | airfoil_up | 1.0 , 0.05 ); ( 1 , 1.0 | airfoil_up | 1.0 , 0.1 ); ( 1 , 1.0 | airfoil_up | 1.0 , 0.15 ); ( 1 , 1.0 | airfoil_up | 1.0 , 0.2 ); ( 1 , 1.0 | airfoil_up | 1.0 , 0.25 ); ( 1 , 1.0 | airfoil_up | 1.0 , 0.3 ); ( 1 , 1.0 | airfoil_up | 1.0 , 0.35 ); ( 1 , 1.0 | airfoil_up | 1.0 , 0.4 ); ( 1 , 1.0 | airfoil_up | 1.0 , 0.45 ); ( 1 , 1.0 | airfoil_up | 1.0 , 0.5 ); ( 1 , 1.0 | airfoil_up | 1.0 , 0.55 ); ( 1 , 1.0 | airfoil_up | 1.0 , 0.6 ); ( 1 , 1.0 | airfoil_up | 1.0 , 0.65 ); ( 1 , 1.0 | airfoil_up | 1.0 , 0.7 ); ( 1 , 1.0 | airfoil_up | 1.0 , 0.75 ); ( 1 , 1.0 | airfoil_up | 1.0 , 0.8 ); ( 1 , 1.0 | airfoil_up | 1.0 , 0.85 ); ( 1 , 1.0 | airfoil_up | 1.0 , 0.9 ); ( 1 , 1.0 | airfoil_up | 1.0 , 0.95 ); ( 1 , 1.0 | airfoil_lo | 0.0 , 0.05 ); ( 1 , 1.0 | airfoil_lo | 0.0 , 0.1 ); ( 1 , 1.0 | airfoil_lo | 0.0 , 0.15 ); ( 1 , 1.0 | airfoil_lo | 0.0 , 0.2 ); ( 1 , 1.0 | airfoil_lo | 0.0 , 0.25 ); ( 1 , 1.0 | airfoil_lo | 0.0 , 0.3 ); ( 1 , 1.0 | airfoil_lo | 0.0 , 0.35 ); ( 1 , 1.0 | airfoil_lo | 0.0 , 0.4 ); ( 1 , 1.0 | airfoil_lo | 0.0 , 0.45 ); ( 1 , 1.0 | airfoil_lo | 0.0 , 0.5 ); ( 1 , 1.0 | airfoil_lo | 0.0 , 0.55 ); ( 1 , 1.0 | airfoil_lo | 0.0 , 0.6 ); ( 1 , 1.0 | airfoil_lo | 0.0 , 0.65 ); ( 1 , 1.0 | airfoil_lo | 0.0 , 0.7 ); ( 1 , 1.0 | airfoil_lo | 0.0 , 0.75 ); ( 1 , 1.0 | airfoil_lo | 0.0 , 0.8 ); ( 1 , 1.0 | airfoil_lo | 0.0 , 0.85 ); ( 1 , 1.0 | airfoil_lo | 0.0 , 0.9 ); ( 1 , 1.0 | airfoil_lo | 0.0 , 0.95 )
DV_VALUE_NEW= -2.3933e-07, -2.40235e-07, -2.08344e-07, -1.63663e-07, -1.15148e-07, -6.81409e-08, -2.62537e-08, 8.10047e-09, 3.36207e-08, 5.01587e-08, 5.86974e-08, 6.11612e-08, 6.00312e-08, 5.78369e-08, 5.66847e-08, 5.80158e-08, 6.28639e-08, 7.35168e-08, 1.0271e-07, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
DV_VALUE_OLD= 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
%----------------------------------------------------------------------------%

So, even if the code recognizes 38 design variables, it perturbates only the first 19 variables that correspond to the upper side (which i have defined with the tag "airfoil_up").

I think that i make some mistakes in the .cfg file related to "airfoil_up" and "airfoil_lo" which, for me, are the markers of upper and lower side respectively.

I tryed to look for a similar definition of the airfoil in this forum, but i couldn't find anything.
I've only found at this thread:
Using multiple Hicks Henne deformations
something that maybe could be useful for me, but trying for example with:
%--------------------------------------------------%
DV_KIND=HICKS_HENNE, HICKS_HENNE
DV_PARAM = (1.0, 0.5); (0.0, 0.5)
%--------------------------------------------------%
didn't make any difference.

In my .cfg file i have:

%-----------------------------------------------------------------------%
% ----------------------- DESIGN VARIABLE PARAMETERS --------------------------%
%
% Kind of deformation (FFD_SETTING, HICKS_HENNE, HICKS_HENNE_NORMAL, PARABOLIC,
% HICKS_HENNE_SHOCK, NACA_4DIGITS, DISPLACEMENT, ROTATION,
% FFD_CONTROL_POINT, FFD_DIHEDRAL_ANGLE, FFD_TWIST_ANGLE,
% FFD_ROTATION)
DV_KIND= HICKS_HENNE
%
% Marker of the surface in which we are going apply the shape deformation
DV_MARKER= ( airfoil_up, airfoil_lo )
%
% Parameters of the shape deformation
% - HICKS_HENNE_FAMILY ( Lower(0)/Upper(1) side, x_Loc )
% - NACA_4DIGITS ( 1st digit, 2nd digit, 3rd and 4th digit )
% - PARABOLIC ( 1st digit, 2nd and 3rd digit )
% - DISPLACEMENT ( x_Disp, y_Disp, z_Disp )
% - ROTATION ( x_Orig, y_Orig, z_Orig, x_End, y_End, z_End )
DV_PARAM= ( 1, 0.5 )
%
% Value of the shape deformation deformation
DV_VALUE= 1.0

% --------------------- OPTIMAL SHAPE DESIGN DEFINITION -----------------------%
OPT_OBJECTIVE= DRAG
OPT_CONSTRAINT= NONE
OPT_GRADIENT_FACTOR= 1E-6
OPT_RELAX_FACTOR= 1E2
OPT_ITERATIONS= 100
%
% Requested accuracy
OPT_ACCURACY= 1E-9
%
% Upper bound for each design variable
OPT_BOUND_UPPER= 0.1
% Lower bound for each design variable
OPT_BOUND_LOWER= -0.1

DEFINITION_DV= ( 1, 1.0 | airfoil_up | 1, 0.05 ); ( 1, 1.0 | airfoil_up | 1, 0.10 ); ( 1, 1.0 | airfoil_up | 1, 0.15 ); ( 1, 1.0 | airfoil_up | 1, 0.20 ); ( 1, 1.0 | airfoil_up | 1, 0.25 ); ( 1, 1.0 | airfoil_up | 1, 0.30 ); ( 1, 1.0 | airfoil_up | 1, 0.35 ); ( 1, 1.0 | airfoil_up | 1, 0.40 ); ( 1, 1.0 | airfoil_up | 1, 0.45 ); ( 1, 1.0 | airfoil_up | 1, 0.50 ); ( 1, 1.0 | airfoil_up | 1, 0.55 ); ( 1, 1.0 | airfoil_up | 1, 0.60 ); ( 1, 1.0 | airfoil_up | 1, 0.65 ); ( 1, 1.0 | airfoil_up | 1, 0.70 ); ( 1, 1.0 | airfoil_up | 1, 0.75 ); ( 1, 1.0 | airfoil_up | 1, 0.80 ); ( 1, 1.0 | airfoil_up | 1, 0.85 ); ( 1, 1.0 | airfoil_up | 1, 0.90 ); ( 1, 1.0 | airfoil_up | 1, 0.95 );( 1, 1.0 | airfoil_lo | 0, 0.05 ); ( 1, 1.0 | airfoil_lo | 0, 0.10 ); ( 1, 1.0 | airfoil_lo | 0, 0.15 ); ( 1, 1.0 | airfoil_lo | 0, 0.20 ); ( 1, 1.0 | airfoil_lo | 0, 0.25 ); ( 1, 1.0 | airfoil_lo | 0, 0.30 ); ( 1, 1.0 | airfoil_lo | 0, 0.35 ); ( 1, 1.0 | airfoil_lo | 0, 0.40 ); ( 1, 1.0 | airfoil_lo | 0, 0.45 ); ( 1, 1.0 | airfoil_lo | 0, 0.50 ); ( 1, 1.0 | airfoil_lo | 0, 0.55 ); ( 1, 1.0 | airfoil_lo | 0, 0.60 ); ( 1, 1.0 | airfoil_lo | 0, 0.65 ); ( 1, 1.0 | airfoil_lo | 0, 0.70 ); ( 1, 1.0 | airfoil_lo | 0, 0.75 ); ( 1, 1.0 | airfoil_lo | 0, 0.80 ); ( 1, 1.0 | airfoil_lo | 0, 0.85 ); ( 1, 1.0 | airfoil_lo | 0, 0.90 ); ( 1, 1.0 | airfoil_lo | 0, 0.95 )

%----------------------------------------------------------------------------%

I'm not sure about my definition of DV_PARAM and DEFINITION_DV.

I know that a solution could be to define a mesh with only one MARKER of the airfoil and put the design variables in the right order but i would like to maintain two separate markers for the upper and lower side.

I hope to have posted in the right way, this is my first post!
bornax is offline   Reply With Quote

Old   March 26, 2018, 11:52
Default
  #2
Member
 
tom pratt
Join Date: Jan 2016
Posts: 55
Rep Power: 10
tomp1993 is on a distinguished road
Hi,
I have also had this issue when using Hicks-Henne bumps - only one surface being designed at a time!
try using:
DV_PARAM= ( 0, X_loc); (1, X_loc)
I can't remember if it worked perfectly like this but definitely worth a go.
Best Wishes
Tom
tomp1993 is offline   Reply With Quote

Old   March 26, 2018, 12:10
Default
  #3
New Member
 
Andrea Bornaccioni
Join Date: Mar 2018
Location: Rome
Posts: 10
Rep Power: 8
bornax is on a distinguished road
Hi Tom,
thanks for your answer!
Unfortunately i've allready tried your solution but it doesn't work.
Even if i've defined in the .cfg file two markers:

DV_MARKER= ( airfoil_up, airfoil_lo )

and:

DV_PARAM = (1.0, 0.5); (0.0, 0.5)

Then in the "DESIGNS/DSN_002/DEFORM/config_DEF.cfg" file only one marker is reported:

DV_MARKER= ( airfoil_up )
bornax is offline   Reply With Quote

Old   July 22, 2022, 15:41
Default
  #4
Member
 
Umut Can
Join Date: Oct 2012
Posts: 42
Rep Power: 14
Umuteng is on a distinguished road
Thank you for the question, I am faced with very similar problem. Did you find a solution?
Umuteng is offline   Reply With Quote

Old   July 25, 2022, 21:56
Default
  #5
Senior Member
 
Wally Maier
Join Date: Apr 2019
Posts: 123
Rep Power: 7
wallym is on a distinguished road
Hi Umuteng (and all),

While using the SU2_DEF file is not my strength, you can set the Hicks-Henne Bunmp design variables for an airfoil/2d-shape as follows:

DEFINITION_DV= ( 30, 1.0 | airfoil | 1, 0.05 );

The numbers would be be as follows:
30 -> This specifies Hicks-Henne.
1.0 -> Scaling factor that is normally set at 1.
airfoil -> This is marker for the entire surface of body in question
1 -> This specifies the top (1) or bottom (0) of the body (specified above) airfoil
0.05 -> the x location of the bump function.

There are several tutorials at https://su2code.github.io/tutorials/ in the 'Design Features' pull down.

My understanding of the Hicks-Henne bumps is that it needs to be a singular surface.

You can try to replace to the "|airfoil|" portion of the above the code to something like "|airfoil_up, airfoil_down|". If the doesnt work, you can definitely used 2D FFD boxes.

Let me know that goes,
Wally
wallym is offline   Reply With Quote

Reply

Tags
definition_dv, dv_marker, dv_param

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
SU2 AOA optimization 454514566@qq.com SU2 9 March 7, 2022 17:17
how to set periodic boundary conditions Ganesh FLUENT 15 November 18, 2020 07:09
Ffd_control_point_2d feiyi SU2 4 September 30, 2019 13:42
High drag for airfoil compared to XFOIL and wind tunnel data Ry10 SU2 15 October 30, 2016 18:27
2D FFD Optimization RLangtry SU2 2 August 5, 2014 10:48


All times are GMT -4. The time now is 23:49.