|
[Sponsors] |
Forward simulations -- Evaluating objective function only without design modules |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
April 16, 2020, 12:31 |
Forward simulations -- Evaluating objective function only without design modules
|
#1 |
New Member
kensaii
Join Date: Jul 2017
Posts: 3
Rep Power: 9 |
Hi,
I'm brand new to SU2. I work more on the optimization field and I would like to use SU2 to benchmark some of my optimization algorithm if possible. My question is if I only want to enable forward evaluation in these modules, is there any way to do so? I only need a set of design variables and output objective. The rest can be considered as a black-box. Please let me know if it is possible. I have looked for a while but couldn't find anything feasible. Thank you in advance for your time and kind help. Best, |
|
April 16, 2020, 17:12 |
|
#2 |
Senior Member
Pedro Gomes
Join Date: Dec 2017
Posts: 466
Rep Power: 14 |
Hello,
By forward evaluation do you mean y = f(x) with no derivatives involved? (for us forward is usually the forward mode of differentiation). If this is what you are after you need to combine two modules, SU2_DEF that deforms a the grid according to some design variables, and SU2_CFD / SU2_GEO to evaluate fluid or geometric objective functions respectively. |
|
April 21, 2020, 23:41 |
|
#3 | |
New Member
kensaii
Join Date: Jul 2017
Posts: 3
Rep Power: 9 |
Quote:
Thank you very much for your answer. It was very helpful, and your interpretation is correct (for me, forward is used as opposed to inverse, i.e. forward problems vs. inverse problems). I looked particularly close to a few examples in evaluating objectives and their associated design optimization example Code:
cd Tutorials meld ./incompressible_flow/Inc_Inviscid_Hydrofoil/inv_naca0012.cfg ./design/Inviscid_2D_Unconstrained_NACA0012/inv_NACA0012_basic.cfg meld ./compressible_flow/Inviscid_Wedge/inv_wedge_HLLC.cfg ./design/Multi_Objective_Shape_Design/inv_wedge_ROE_multiobj_combo.cfg I tried to follow your example, SU2_DEF to deform the grid and SU2_CFD to evaluate objectives. For example, said you have a baseline design in Tutorials/incompressible_flow/inv_inviscid_hydrofoil/inv_naca0012.cfg Code:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % SU2 configuration file % % Case description: Incompressible flow hydrofoil 5 degrees % % Author: Francisco Palacios & Thomas D. Economon % % Date: 6.10.2018 % % File Version 6.1.0 "Falcon" % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % ------------- DIRECT, ADJOINT, AND LINEARIZED PROBLEM DEFINITION ------------% % % Physical governing equations (EULER, NAVIER_STOKES, % WAVE_EQUATION, HEAT_EQUATION, FEM_ELASTICITY, % POISSON_EQUATION) SOLVER= INC_EULER % % Mathematical problem (DIRECT, CONTINUOUS_ADJOINT) MATH_PROBLEM= DIRECT % % Restart solution (NO, YES) RESTART_SOL= NO % ---------------- INCOMPRESSIBLE FLOW CONDITION DEFINITION -------------------% % % Initial density for incompressible flows % (1.2886 kg/m^3 by default (air), 998.2 Kg/m^3 (water)) INC_DENSITY_INIT= 998.2 % % Initial velocity for incompressible flows (1.0,0,0 m/s by default) INC_VELOCITY_INIT= ( 1.775, 0.0, 0.0 ) % % List of inlet types for incompressible flows. List length must % match number of inlet markers. Options: VELOCITY_INLET, PRESSURE_INLET. INC_INLET_TYPE= VELOCITY_INLET % % Damping coefficient for iterative updates at pressure inlets. (0.1 by default) INC_INLET_DAMPING= 0.1 % % List of outlet types for incompressible flows. List length must % match number of outlet markers. Options: PRESSURE_OUTLET, MASS_FLOW_OUTLET INC_OUTLET_TYPE= PRESSURE_OUTLET % % Damping coefficient for iterative updates at mass flow outlets. (0.1 by default) INC_OUTLET_DAMPING= 0.1 % ---------------------- REFERENCE VALUE DEFINITION ---------------------------% % % Reference origin for moment computation REF_ORIGIN_MOMENT_X = 0.25 REF_ORIGIN_MOMENT_Y = 0.00 REF_ORIGIN_MOMENT_Z = 0.00 % % Reference length for pitching, rolling, and yawing non-dimensional moment REF_LENGTH= 1.0 % % Reference area for force coefficients (0 implies automatic calculation) REF_AREA= 1.0 % ----------------------- BOUNDARY CONDITION DEFINITION -----------------------% % % Euler wall boundary marker(s) (NONE = no marker) MARKER_EULER= ( airfoil, lower_wall, upper_wall ) % % Inlet boundary marker(s) with the following formats (NONE = no marker) % Incompressible: (inlet marker, temperature, velocity magnitude, flow_direction_x, % flow_direction_y, flow_direction_z, ... ) where flow_direction is % a unit vector. MARKER_INLET= ( inlet, 0.0, 1.775, 1.0, 0.0, 0.0 ) % % Outlet boundary marker(s) (NONE = no marker) MARKER_OUTLET= ( outlet, 0.0 ) % % Marker(s) of the surface to be plotted or designed MARKER_PLOTTING= ( airfoil ) % % Marker(s) of the surface where the functional (Cd, Cl, etc.) will be evaluated MARKER_MONITORING= ( airfoil ) % ------------- COMMON PARAMETERS TO DEFINE THE NUMERICAL METHOD --------------% % % Numerical method for spatial gradients (GREEN_GAUSS, WEIGHTED_LEAST_SQUARES) NUM_METHOD_GRAD= GREEN_GAUSS % % Courant-Friedrichs-Lewy condition of the finest grid CFL_NUMBER= 1e6 % % Adaptive CFL number (NO, YES) CFL_ADAPT= NO % % Parameters of the adaptive CFL number (factor down, factor up, CFL min value, % CFL max value ) CFL_ADAPT_PARAM= ( 1.5, 0.5, 1.0, 100.0 ) % % Runge-Kutta alpha coefficients RK_ALPHA_COEFF= ( 0.66667, 0.66667, 1.000000 ) % % Number of total iterations ITER= 9999 % ------------------------ LINEAR SOLVER DEFINITION ---------------------------% % % Linear solver or smoother for implicit formulations (BCGSTAB, FGMRES, SMOOTHER_JACOBI, % SMOOTHER_ILU, SMOOTHER_LUSGS, % SMOOTHER_LINELET) LINEAR_SOLVER= FGMRES % % Preconditioner of the Krylov linear solver (ILU, LU_SGS, LINELET, JACOBI) LINEAR_SOLVER_PREC= ILU % % Linael solver ILU preconditioner fill-in level (0 by default) LINEAR_SOLVER_ILU_FILL_IN= 0 % % Minimum error of the linear solver for implicit formulations LINEAR_SOLVER_ERROR= 1E-15 % % Max number of iterations of the linear solver for the implicit formulation LINEAR_SOLVER_ITER= 25 % -------------------------- MULTIGRID PARAMETERS -----------------------------% % % Multi-Grid Levels (0 = no multi-grid) MGLEVEL= 0 % % Multi-grid cycle (V_CYCLE, W_CYCLE, FULLMG_CYCLE) MGCYCLE= W_CYCLE % % Multi-grid pre-smoothing level MG_PRE_SMOOTH= ( 1, 2, 3, 3 ) % % Multi-grid post-smoothing level MG_POST_SMOOTH= ( 1, 1, 1, 1 ) % % Jacobi implicit smoothing of the correction MG_CORRECTION_SMOOTH= ( 1, 1, 1, 1 ) % % Damping factor for the residual restriction MG_DAMP_RESTRICTION= 0.85 % % Damping factor for the correction prolongation MG_DAMP_PROLONGATION= 0.85 % -------------------- FLOW NUMERICAL METHOD DEFINITION -----------------------% % % Convective numerical method (JST, LAX-FRIEDRICH, CUSP, ROE, AUSM, HLLC, % TURKEL_PREC, MSW) CONV_NUM_METHOD_FLOW= JST % % 2nd and 4th order artificial dissipation coefficients JST_SENSOR_COEFF= ( 0.0, 0.02 ) % % Time discretization (RUNGE-KUTTA_EXPLICIT, EULER_IMPLICIT, EULER_EXPLICIT) TIME_DISCRE_FLOW= EULER_IMPLICIT % --------------------------- CONVERGENCE PARAMETERS --------------------------% % Convergence criteria (CAUCHY, RESIDUAL) % CONV_FIELD= RMS_PRESSURE % % Min value of the residual (log10 of the residual) CONV_RESIDUAL_MINVAL= -15 % % Start Cauchy criteria at iteration number CONV_STARTITER= 10 % % Number of elements to apply the criteria CONV_CAUCHY_ELEMS= 50 % % Epsilon to control the series convergence CONV_CAUCHY_EPS= 1E-6 % % ------------------------- INPUT/OUTPUT INFORMATION --------------------------% % % Mesh input file MESH_FILENAME= mesh_NACA0012_5deg_6814.su2 % % Mesh input file format (SU2, CGNS, NETCDF_ASCII) MESH_FORMAT= SU2 % % Restart flow input file SOLUTION_FILENAME= solution_flow.dat % % Output tabular format (CSV, TECPLOT) TABULAR_FORMAT= CSV % % Output file convergence history (w/o extension) CONV_FILENAME= history % % Output file restart flow RESTART_FILENAME= restart_flow.dat % % Output file flow (w/o extension) variables VOLUME_FILENAME= flow % % Output file surface flow coefficient (w/o extension) SURFACE_FILENAME= surface_flow % % Writing solution file frequency WRT_SOL_FREQ= 50 % % Writing convergence history frequency WRT_CON_FREQ= 1 % % Screen output SCREEN_OUTPUT= (INNER_ITER, WALL_TIME, RMS_PRESSURE, RMS_VELOCITY-X, LIFT, DRAG) Code:
% ----------------------- GEOMETRY EVALUATION PARAMETERS ----------------------% % % Marker(s) of the surface where geometrical based function will be evaluated GEO_MARKER= ( airfoil ) % % Description of the geometry to be analyzed (AIRFOIL, WING, FUSELAGE) GEO_DESCRIPTION= AIRFOIL % % Geometrical evaluation mode (FUNCTION, GRADIENT) GEO_MODE= FUNCTION % ----------------------- 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 ) % % 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 % ------------------------ GRID DEFORMATION PARAMETERS ------------------------% % % Number of smoothing iterations for FEA mesh deformation DEFORM_LINEAR_SOLVER_ITER= 500 % % Number of nonlinear deformation iterations (surface deformation increments) DEFORM_NONLINEAR_ITER= 1 % % Print the residuals during mesh deformation to the console (YES, NO) DEFORM_CONSOLE_OUTPUT= YES % % Minimum residual criteria for the linear solver convergence of grid deformation DEFORM_LINEAR_SOLVER_ERROR= 1E-14 % % Type of element stiffness imposed for FEA mesh deformation (INVERSE_VOLUME, % WALL_DISTANCE, CONSTANT_STIFFNESS) DEFORM_STIFFNESS_TYPE= INVERSE_VOLUME % --------------------------- CONVERGENCE PARAMETERS --------------------------% % Convergence criteria (CAUCHY, RESIDUAL) % CONV_CRITERIA= RESIDUAL % % % Min value of the residual (log10 of the residual) CONV_RESIDUAL_MINVAL= -13 % % Start Cauchy criteria at iteration number CONV_STARTITER= 10 % % Number of elements to apply the criteria CONV_CAUCHY_ELEMS= 100 % % Epsilon to control the series convergence CONV_CAUCHY_EPS= 1E-6 % ------------------------- INPUT/OUTPUT INFORMATION --------------------------% % % Mesh input file MESH_FILENAME= mesh_NACA0012_inv.su2 % % Mesh input file format (SU2, CGNS, NETCDF_ASCII) MESH_FORMAT= SU2 % % Mesh output file MESH_OUT_FILENAME= mesh_out.su2 % % Restart flow input file SOLUTION_FILENAME= solution_flow.dat % % Restart adjoint input file SOLUTION_ADJ_FILENAME= solution_adj.dat % % Output tabular format (CSV, TECPLOT) TABULAR_FORMAT= CSV % % Output file convergence history (w/o extension) CONV_FILENAME= history % % Output file restart flow RESTART_FILENAME= restart_flow.dat % % Output file restart adjoint RESTART_ADJ_FILENAME= restart_adj.dat % % Output file flow (w/o extension) variables VOLUME_FILENAME= flow % % Output file adjoint (w/o extension) variables VOLUME_ADJ_FILENAME= adjoint % % Output Objective function gradient (using continuous adjoint) GRAD_OBJFUNC_FILENAME= of_grad.dat % % Output file surface flow coefficient (w/o extension) SURFACE_FILENAME= surface_flow % % Output file surface adjoint coefficient (w/o extension) SURFACE_ADJ_FILENAME= surface_adjoint % % Writing solution file frequency WRT_SOL_FREQ= 250 % % Writing solution file frequency for physical time steps (dual time) WRT_SOL_FREQ_DUALTIME= 1 % % Writing convergence history frequency WRT_CON_FREQ= 1 % % Writing convergence history frequency (dual time, only written to screen) WRT_CON_FREQ_DUALTIME= 10 % % Output rind layers in the solution files WRT_HALO= NO % % Screen output SCREEN_OUTPUT= (INNER_ITER, RMS_DENSITY, RMS_ENERGY, LIFT, DRAG) % % Output files OUTPUT_FILES = (RESTART, PARAVIEW, SURFACE_PARAVIEW, SURFACE_CSV) % --------------------- OPTIMAL SHAPE DESIGN DEFINITION -----------------------% % % Available flow based objective functions or constraint functions % DRAG, LIFT, SIDEFORCE, EFFICIENCY, BUFFET, % FORCE_X, FORCE_Y, FORCE_Z, % MOMENT_X, MOMENT_Y, MOMENT_Z, % THRUST, TORQUE, FIGURE_OF_MERIT, % EQUIVALENT_AREA, NEARFIELD_PRESSURE, % TOTAL_HEATFLUX, MAXIMUM_HEATFLUX, % INVERSE_DESIGN_PRESSURE, INVERSE_DESIGN_HEATFLUX, % SURFACE_TOTAL_PRESSURE, SURFACE_MASSFLOW % SURFACE_STATIC_PRESSURE, SURFACE_MACH % % Available geometrical based objective functions or constraint functions % AIRFOIL_AREA, AIRFOIL_THICKNESS, AIRFOIL_CHORD, AIRFOIL_TOC, AIRFOIL_AOA, % WING_VOLUME, WING_MIN_THICKNESS, WING_MAX_THICKNESS, WING_MAX_CHORD, WING_MIN_TOC, WING_MAX_TWIST, WING_MAX_CURVATURE, WING_MAX_DIHEDRAL % STATION#_WIDTH, STATION#_AREA, STATION#_THICKNESS, STATION#_CHORD, STATION#_TOC, % STATION#_TWIST (where # is the index of the station defined in GEO_LOCATION_STATIONS) % % Available design variables % 2D Design variables % FFD_CONTROL_POINT_2D ( 19, Scale | Mark. List | FFD_BoxTag, i_Ind, j_Ind, x_Mov, y_Mov ) % FFD_CAMBER_2D ( 20, Scale | Mark. List | FFD_BoxTag, i_Ind ) % FFD_THICKNESS_2D ( 21, Scale | Mark. List | FFD_BoxTag, i_Ind ) % FFD_TWIST_2D ( 22, Scale | Mark. List | FFD_BoxTag, x_Orig, y_Orig ) % HICKS_HENNE ( 30, Scale | Mark. List | Lower(0)/Upper(1) side, x_Loc ) % ANGLE_OF_ATTACK ( 101, Scale | Mark. List | 1.0 ) % % 3D Design variables % FFD_CONTROL_POINT ( 11, Scale | Mark. List | FFD_BoxTag, i_Ind, j_Ind, k_Ind, x_Mov, y_Mov, z_Mov ) % FFD_NACELLE ( 12, Scale | Mark. List | FFD_BoxTag, rho_Ind, theta_Ind, phi_Ind, rho_Mov, phi_Mov ) % FFD_GULL ( 13, Scale | Mark. List | FFD_BoxTag, j_Ind ) % FFD_CAMBER ( 14, Scale | Mark. List | FFD_BoxTag, i_Ind, j_Ind ) % FFD_TWIST ( 15, Scale | Mark. List | FFD_BoxTag, j_Ind, x_Orig, y_Orig, z_Orig, x_End, y_End, z_End ) % FFD_THICKNESS ( 16, Scale | Mark. List | FFD_BoxTag, i_Ind, j_Ind ) % FFD_ROTATION ( 18, Scale | Mark. List | FFD_BoxTag, x_Axis, y_Axis, z_Axis, x_Turn, y_Turn, z_Turn ) % FFD_ANGLE_OF_ATTACK ( 24, Scale | Mark. List | FFD_BoxTag, 1.0 ) % % Global design variables % TRANSLATION ( 1, Scale | Mark. List | x_Disp, y_Disp, z_Disp ) % ROTATION ( 2, Scale | Mark. List | x_Axis, y_Axis, z_Axis, x_Turn, y_Turn, z_Turn ) % % 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 % % 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= NONE % % 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= 1E3 % % Maximum number of optimizer iterations OPT_ITERATIONS= 100 % % Requested accuracy OPT_ACCURACY= 1E-10 % % Upper bound for each design variable OPT_BOUND_UPPER= 0.1 % % Lower bound for each design variable OPT_BOUND_LOWER= -0.1 % % Optimization design variables, separated by semicolons DEFINITION_DV= ( 30, 1.0 | airfoil | 0, 0.05 ); ( 30, 1.0 | airfoil | 0, 0.10 ); ( 30, 1.0 | airfoil | 0, 0.15 ); ( 30, 1.0 | airfoil | 0, 0.20 ); ( 30, 1.0 | airfoil | 0, 0.25 ); ( 30, 1.0 | airfoil | 0, 0.30 ); ( 30, 1.0 | airfoil | 0, 0.35 ); ( 30, 1.0 | airfoil | 0, 0.40 ); ( 30, 1.0 | airfoil | 0, 0.45 ); ( 30, 1.0 | airfoil | 0, 0.50 ); ( 30, 1.0 | airfoil | 0, 0.55 ); ( 30, 1.0 | airfoil | 0, 0.60 ); ( 30, 1.0 | airfoil | 0, 0.65 ); ( 30, 1.0 | airfoil | 0, 0.70 ); ( 30, 1.0 | airfoil | 0, 0.75 ); ( 30, 1.0 | airfoil | 0, 0.80 ); ( 30, 1.0 | airfoil | 0, 0.85 ); ( 30, 1.0 | airfoil | 0, 0.90 ); ( 30, 1.0 | airfoil | 0, 0.95 ); ( 30, 1.0 | airfoil | 1, 0.05 ); ( 30, 1.0 | airfoil | 1, 0.10 ); ( 30, 1.0 | airfoil | 1, 0.15 ); ( 30, 1.0 | airfoil | 1, 0.20 ); ( 30, 1.0 | airfoil | 1, 0.25 ); ( 30, 1.0 | airfoil | 1, 0.30 ); ( 30, 1.0 | airfoil | 1, 0.35 ); ( 30, 1.0 | airfoil | 1, 0.40 ); ( 30, 1.0 | airfoil | 1, 0.45 ); ( 30, 1.0 | airfoil | 1, 0.50 ); ( 30, 1.0 | airfoil | 1, 0.55 ); ( 30, 1.0 | airfoil | 1, 0.60 ); ( 30, 1.0 | airfoil | 1, 0.65 ); ( 30, 1.0 | airfoil | 1, 0.70 ); ( 30, 1.0 | airfoil | 1, 0.75 ); ( 30, 1.0 | airfoil | 1, 0.80 ); ( 30, 1.0 | airfoil | 1, 0.85 ); ( 30, 1.0 | airfoil | 1, 0.90 ); ( 30, 1.0 | airfoil | 1, 0.95 ) |
||
April 24, 2020, 13:26 |
|
#4 |
Senior Member
Pedro Gomes
Join Date: Dec 2017
Posts: 466
Rep Power: 14 |
Yes, you can consider DV_VALUE the (geometric) inputs and anything computed by running SU2_CFD until convergence as an output, for example the lift or drag coefficients, which you can read from the history file by setting up HISTORY_OUTPUT adequately (see https://su2code.github.io/docs_v7/Cu...history-output)
The typical shape optimization process will always include SU2_DEF and SU2_CFD, if you want to use just SU2_CFD as an example black-box function to test your algorithm you can use angle off attack as a variable (for example), it would not be a very representative optimization anymore, but I suppose it would do the job. |
|
April 25, 2020, 16:12 |
|
#5 | |
New Member
kensaii
Join Date: Jul 2017
Posts: 3
Rep Power: 9 |
Quote:
I see, thanks again for your time and kind advice! |
||
Tags |
design; optimization; su2 |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
CFX problems I got in Workbench | Anna Tian | CFX | 13 | July 3, 2017 02:49 |
Question about constraints on the objective function | WillemFloris | SU2 Shape Design | 10 | March 7, 2017 07:44 |
[swak4Foam] installation problem with version 0.2.3 | Claudio87 | OpenFOAM Community Contributions | 9 | May 8, 2013 11:20 |
How to do Design Optimization in Fluent 13.0? | p36288 | Fluent UDF and Scheme Programming | 1 | July 20, 2011 01:37 |
Info: Short Course On Thermal Design of Electronic Equipment | Arnold Free | Main CFD Forum | 0 | August 10, 1999 11:18 |