|
[Sponsors] |
airfoil optimization with multiple DV_MARKER (su2 6.0.0) |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
March 26, 2018, 10:07 |
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 |
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! |
|
March 26, 2018, 11:52 |
|
#2 |
Member
tom pratt
Join Date: Jan 2016
Posts: 55
Rep Power: 10 |
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 |
|
March 26, 2018, 12:10 |
|
#3 |
New Member
Andrea Bornaccioni
Join Date: Mar 2018
Location: Rome
Posts: 10
Rep Power: 8 |
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 ) |
|
July 22, 2022, 15:41 |
|
#4 |
Member
Umut Can
Join Date: Oct 2012
Posts: 42
Rep Power: 14 |
Thank you for the question, I am faced with very similar problem. Did you find a solution?
|
|
July 25, 2022, 21:56 |
|
#5 |
Senior Member
Wally Maier
Join Date: Apr 2019
Posts: 123
Rep Power: 7 |
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 |
|
Tags |
definition_dv, dv_marker, dv_param |
|
|
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 |