Jan 15th, 2013 SU2 Release Version 2.0 Workshop 1
SU2 Release Version 2.0 Workshop Stanford University Tuesday, January 15th, 2013 Trent Lukaczyk Department of Aeronautics & Astronautics Stanford University
SU2 Design Exploration NACA 0012
Jan 15th, 2013 SU2 Release Version 2.0 Workshop 2
Indirect Design Approaches
• Example: Response Surface Modeling • Two Hicks-‐Henne Bump FuncKons • 10x10 grid of simulaKons
Jan 15th, 2013 SU2 Release Version 2.0 Workshop 3
Indirect Design Approaches
• Example: Response Surface Modeling • Two Hicks-‐Henne Bump FuncKons • 10x10 grid of simulaKons
Jan 15th, 2013 SU2 Release Version 2.0 Workshop 4
Task Deformation
Task-Based Design Exploration
Project
Root folder of data Baseline config and mesh
Task Direct Solution
Task Drag Adjoint
Task Lift Adjoint
Config Change
Job 0
Contains analysis tasks Output meshes, restarts
Job 1
Config Change
Job 2
Config Change
* Only design variables for now
Jan 15th, 2013 SU2 Release Version 2.0 Workshop 5
NACA0012 Test Case
• NACA 0012 Test Case • One Hicks-‐Henne Bump
FuncKon • 11 EvaluaKons in
X ϵ [-‐0.02 , 0.02]
Jan 15th, 2013 SU2 Release Version 2.0 Workshop 6
config_NACA0012.cfg
% ------------------------- EVALUATE PROJECT DEFINITION ------------------------% % List of tasks to complete TASKS= DEFORM, DIRECT, CONT_ADJOINT % Number of partitions (0 for Serial) NUMBER_PART= 2 % List of design variables (Design variables are separated by semicolons) % - HICKS_HENNE: ( 1, Scale | Mark. List | Lower(0)/Upper(1) side, x_Loc ) DEFINITION_DV= ( 1, 1.0 | airfoil | 0, 0.05 ); ( 1, 1.0 | airfoil | 0, 0.10 ); (...) % Gradients to calculate GRADIENTS= LIFT, DRAG, MOMENT_Z % Console output (VERBOSE, CONCISE, QUIET) CONSOLE= CONCISE
Jan 15th, 2013 SU2 Release Version 2.0 Workshop 7
config_NACA0012.cfg
% ------------------------- EVALUATE PROJECT DEFINITION ------------------------% % List of tasks to complete TASKS= DEFORM, DIRECT, CONT_ADJOINT % Number of partitions (0 for Serial) NUMBER_PART= 2 % List of design variables (Design variables are separated by semicolons) % - HICKS_HENNE: ( 1, Scale | Mark. List | Lower(0)/Upper(1) side, x_Loc ) DEFINITION_DV= ( 1, 1.0 | airfoil | 0, 0.05 ); ( 1, 1.0 | airfoil | 0, 0.10 ); (...) % Gradients to calculate GRADIENTS= LIFT, DRAG, MOMENT_Z % Console output (VERBOSE, CONCISE, QUIET) CONSOLE= CONCISE
Jan 15th, 2013 SU2 Release Version 2.0 Workshop 8
config_NACA0012.cfg
% ------------------------- EVALUATE PROJECT DEFINITION ------------------------% % List of tasks to complete TASKS= DEFORM, DIRECT, CONT_ADJOINT % Number of partitions (0 for Serial) NUMBER_PART= 2 % List of design variables (Design variables are separated by semicolons) % - HICKS_HENNE: ( 1, Scale | Mark. List | Lower(0)/Upper(1) side, x_Loc ) DEFINITION_DV= ( 1, 1.0 | airfoil | 0, 0.05 ); ( 1, 1.0 | airfoil | 0, 0.10 ); (...) % Gradients to calculate GRADIENTS= LIFT, DRAG, MOMENT_Z % Console output (VERBOSE, CONCISE, QUIET) CONSOLE= CONCISE
Jan 15th, 2013 SU2 Release Version 2.0 Workshop 9
config_NACA0012.cfg
% ------------------------- EVALUATE PROJECT DEFINITION ------------------------% % List of tasks to complete TASKS= DEFORM, DIRECT, CONT_ADJOINT % Number of partitions (0 for Serial) NUMBER_PART= 2 % List of design variables (Design variables are separated by semicolons) % - HICKS_HENNE: ( 1, Scale | Mark. List | Lower(0)/Upper(1) side, x_Loc ) DEFINITION_DV= ( 1, 1.0 | airfoil | 0, 0.05 ); ( 1, 1.0 | airfoil | 0, 0.10 ); (...) % Gradients to calculate GRADIENTS= LIFT, DRAG, MOMENT_Z % Console output (VERBOSE, CONCISE, QUIET) CONSOLE= CONCISE
Jan 15th, 2013 SU2 Release Version 2.0 Workshop 10
config_NACA0012.cfg
% ------------------------- EVALUATE PROJECT DEFINITION ------------------------% % List of tasks to complete TASKS= DEFORM, DIRECT, CONT_ADJOINT % Number of partitions (0 for Serial) NUMBER_PART= 2 % List of design variables (Design variables are separated by semicolons) % - HICKS_HENNE: ( 1, Scale | Mark. List | Lower(0)/Upper(1) side, x_Loc ) DEFINITION_DV= ( 1, 1.0 | airfoil | 0, 0.05 ); ( 1, 1.0 | airfoil | 0, 0.10 ); (...) % Gradients to calculate GRADIENTS= LIFT, DRAG, MOMENT_Z % Console output (VERBOSE, CONCISE, QUIET) CONSOLE= CONCISE
Jan 15th, 2013 SU2 Release Version 2.0 Workshop 11
config_NACA0012.cfg
% ------------------------- EVALUATE PROJECT DEFINITION ------------------------% % List of tasks to complete TASKS= DEFORM, DIRECT, CONT_ADJOINT % Number of partitions (0 for Serial) NUMBER_PART= 2 % List of design variables (Design variables are separated by semicolons) % - HICKS_HENNE: ( 1, Scale | Mark. List | Lower(0)/Upper(1) side, x_Loc ) DEFINITION_DV= ( 1, 1.0 | airfoil | 0, 0.05 ); ( 1, 1.0 | airfoil | 0, 0.10 ); (...) % Gradients to calculate GRADIENTS= LIFT, DRAG, MOMENT_Z % Console output (VERBOSE, CONCISE, QUIET) CONSOLE= CONCISE
Jan 15th, 2013 SU2 Release Version 2.0 Workshop 12
run_project.py
# Setup (…) # design variable values DV_vals = numpy.linspace(-‐0.02,0.02, 11 ) # setup config changes config_delta = [] for X in DV_vals: DV_X = numpy.zeros(n_DV) DV_X[i_DV] = X config_delta.append( {'VARIABLES':DV_X} ) # iniKalize project The_Project = Project( config_name = config_filename , design_name = design_filename )
Jan 15th, 2013 SU2 Release Version 2.0 Workshop 13
run_project.py
# Setup (…) # design variable values DV_vals = numpy.linspace(-‐0.02,0.02, 11 ) # setup config changes config_delta = [] for X in DV_vals: DV_X = numpy.zeros(n_DV) DV_X[i_DV] = X config_delta.append( {'VARIABLES':DV_X} ) # iniKalize project The_Project = Project( config_name = config_filename , design_name = design_filename )
Jan 15th, 2013 SU2 Release Version 2.0 Workshop 14
run_project.py
# Setup (…) # design variable values DV_vals = numpy.linspace(-‐0.02,0.02, 11 ) # setup config changes config_delta = [] for X in DV_vals: DV_X = numpy.zeros(n_DV) DV_X[i_DV] = X config_delta.append( {'VARIABLES':DV_X} ) # iniKalize project The_Project = Project( config_name = config_filename , design_name = design_filename )
List of Variable Se/ngs: [ {‘VARIABLES’:-‐0.020} ,
{‘VARIABLES’:-‐0.018} , … {‘VARIABLES’:+0.020} ]
Jan 15th, 2013 SU2 Release Version 2.0 Workshop 15
run_project.py
# Setup (…) # design variable values DV_vals = numpy.linspace(-‐0.02,0.02, 11 ) # setup config changes config_delta = [] for X in DV_vals: DV_X = numpy.zeros(n_DV) DV_X[i_DV] = X config_delta.append( {'VARIABLES':DV_X} ) # iniKalize project The_Project = Project( config_name = config_filename , design_name = design_filename )
Jan 15th, 2013 SU2 Release Version 2.0 Workshop 16
run_project.py
# Run Project # evaluate project design_new,_,_ = The_Project.evaluate(config_delta) # save project libSU2.save_data(project_filename,The_Project) # save data # already done by The_Project.evaluate()