# Selective Multigrid for Optimization Problems.

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

 August 30, 2018, 08:34 Selective Multigrid for Optimization Problems. #1 New Member   Join Date: May 2018 Posts: 2 Rep Power: 0 Dear SU2 community, I am currently using the SU2 version 6.0.0. for an airfoil optimization problem using the discrete adjoint method. Due to the nature of my mesh, I am having problems converging the solution for the DIRECT problem using Multigrid, but in the ADJOINT the Multigrid is really helpful. I saw in the config_template.cfg that you can turn on or off the Multigrid option in the Adjoint problem. (MG_ADJFLOW = YES). Is there any way to turn off the Multigrid option for the DIRECT Problem and use it just in the ADJOINT solution by imposing MG_ADJFLOW = YES? Thank you.

 August 31, 2018, 13:08 #2 Senior Member   Pedro Gomes Join Date: Dec 2017 Posts: 439 Rep Power: 11 What MG settings are you using and what is the size/type of your mesh? Maybe with some tuning you would be able to use it for both problems.

 September 7, 2018, 14:29 #3 New Member   Join Date: May 2018 Posts: 2 Rep Power: 0 I finally skipped the use of the Multigrid. It demands a bit more of computational time without it but the convergence is satisfactory. The problems that I have now are related to the optimization itself. Even if I set the airfoil thickness constraint to be greater than 0.05 (5%), in the 10th iteration the upper and lower surfaces cross with each other in the leading edge, hence leading to divergence. I'm using FFD_CONTROL_POINT_2D Design variables, as follows in the Optimal shape optimization: % --------------------- OPTIMAL SHAPE DESIGN DEFINITION -----------------------% % Available Objective functions % DRAG, LIFT, SIDEFORCE, PRESSURE, FORCE_X, FORCE_Y, % FORCE_Z, MOMENT_X, MOMENT_Y, MOMENT_Z, EFFICIENCY, % EQUIVALENT_AREA, THRUST, TORQUE, FREESURFACE % Optimization objective function with scaling factor, separated by semicolons. % To include quadratic penalty function: use OPT_CONSTRAINT option syntax within the OPT_OBJECTIVE list. % ex= Objective * Scale OPT_OBJECTIVE= DRAG*0.001 % % Optimization constraint functions with pushing factors (affects its value, not the gradient in the python scripts), separated by semicolons % ex= (Objective = Value ) * Scale, use '>','<','=' OPT_CONSTRAINT= (LIFT > 2.865440)*0.001; (AIRFOIL_THICKNESS > 0.05)*0.001 % % Factor to reduce the norm of the gradient (affects the objective function and gradient in the python scripts) % In general, a norm of the gradient ~1E-6 is desired. %OPT_GRADIENT_FACTOR= 1E-6 % % Factor to relax or accelerate the optimizer convergence (affects the line search in SU2_DEF) % In general, surface deformations of 0.01'' or 0.0001m are desirable %OPT_RELAX_FACTOR= 1E2 % % Maximum number of optimizer iterations ( 100 by default) OPT_ITERATIONS= 30 % % Requested accuracy ( 1e-10 by default) OPT_ACCURACY= 1E-6 % % Upper bound for each design variable (bound in the python optimizer) OPT_BOUND_UPPER= 1E6 % % Lower bound for each design variable (bound in the python optimizer) OPT_BOUND_LOWER= -1E6 % % Optimization design variables, separated by semicolons DEFINITION_DV= ( 15, 1.0 | AIRFOIL | AIRFOIL_BOX,0,0,0.0,15.0);( 15, 1.0 | AIRFOIL | AIRFOIL_BOX,1,0,0.0,15.0);( 15, 1.0 | AIRFOIL | AIRFOIL_BOX,2,0,0.0,15.0);( 15, 1.0 | AIRFOIL | AIRFOIL_BOX,3,0,0.0,15.0);( 15, 1.0 | AIRFOIL | AIRFOIL_BOX,4,0,0.0,15.0);( 15, 1.0 | AIRFOIL | AIRFOIL_BOX,5,0,0.0,15.0);( 15, 1.0 | AIRFOIL | AIRFOIL_BOX,6,0,0.0,15.0);( 15, 1.0 | AIRFOIL | AIRFOIL_BOX,7,0,0.0,15.0);( 15, 1.0 | AIRFOIL | AIRFOIL_BOX,8,0,0.0,15.0);( 15, 1.0 | AIRFOIL | AIRFOIL_BOX,9,0,0.0,15.0);( 15, 1.0 | AIRFOIL | AIRFOIL_BOX,10,0,0.0,15.0);( 15, 1.0 | AIRFOIL | AIRFOIL_BOX,0,1,0.0,15.0);( 15, 1.0 | AIRFOIL | AIRFOIL_BOX,1,1,0.0,15.0);( 15, 1.0 | AIRFOIL | AIRFOIL_BOX,2,1,0.0,15.0);( 15, 1.0 | AIRFOIL | AIRFOIL_BOX,3,1,0.0,15.0);( 15, 1.0 | AIRFOIL | AIRFOIL_BOX,4,1,0.0,15.0);( 15, 1.0 | AIRFOIL | AIRFOIL_BOX,5,1,0.0,15.0);( 15, 1.0 | AIRFOIL | AIRFOIL_BOX,6,1,0.0,15.0);( 15, 1.0 | AIRFOIL | AIRFOIL_BOX,7,1,0.0,15.0);( 15, 1.0 | AIRFOIL | AIRFOIL_BOX,8,1,0.0,15.0);( 15, 1.0 | AIRFOIL | AIRFOIL_BOX,9,1,0.0,15.0);( 15, 1.0 | AIRFOIL | AIRFOIL_BOX,10,1,0.0,15.0); In order to let a wide range of movement freedom to the DV, I set the OPT_BOUNDS to a high number (+-1E6). Moreover, in the x_Mov, y_Mov of the DV, I set the movement on y (the only direction allowed to move) to 15.0, in order to let it explore a wider range of possibilities. The problem is that the surfaces cross with each other, violating the thickness constraint. Maybe the freedom to the DV should be a bit more restrictive and hence use a lower number, but I don't know how this OPT_BOUND and x_Mov,y_Mov variables work at all. 1. Shouldn't the thickness constraint be respected even if the allowed movement is wide? 2. Are the OPT_BOUNDS the physical limit of the maximum deformation of the DV on the FFD box? In which units are they expressed? 3. In which units are the x_Mov and y_Mov represented, in terms of chords? (i.e. if y_Mov=1, that means the allowed vertical movement of that certain DV is one chord? or they're the allowed maximum displacement per Opt iteration?) Let's see if I can get some help in these issues. Thank you and sorry for my late reply. Last edited by RobVM; September 7, 2018 at 14:36. Reason: Clarifying a question.

 Tags discrete adjoint, multigrid, optimization, su2