CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   SU2 (https://www.cfd-online.com/Forums/su2/)
-   -   Benchmark Optimization Study for SU2 (https://www.cfd-online.com/Forums/su2/209478-benchmark-optimization-study-su2.html)

Buxwax October 20, 2018 12:47

Benchmark Optimization Study for SU2
 
Hi there,

My names Eamonn, I'm a student in University doing a thesis on the aerodynamic optimization of airborne wind energy systems (AWES) using SU2.

As part of the thesis I must conduct a benchmark optimization study for the software. I am very new to the CFD world and would regard myself as a beginner in the area, and am looking for a bit of guidance on where I should start with this.

Are there any particular test cases / V&V cases that I should be using as part of this study?

Also, further down the line (a few months from now) I will have to design a basic mesh for an AWES in Ansys or another similar CFD software and import this mesh onto SU2 to run an optimization simulation on it. Does this sound like an achievable objective for someone with little experience in the field but is willing to work hard and learn? I have about 6 months from now to complete by the way!

Apologies for asking more than one question here, but I'd appreciate any help!

Thanks,
Eamonn

wkernkamp March 5, 2019 13:53

Good Luck to you
 
Just came across your post. The six months are almost over. Hope you made good progress! Don't be discouraged if you didn't. It looks like the plan was too ambitious. When I was your age, I was supposed to carry out my thesis mission. However, I explored the wonderful capabilities in CFD available to me at NLR in Amsterdam (in 1987). My thesis advisor was unhappy, but I did the right thing for my career.:)

Buxwax March 7, 2019 15:06

Hi Will, thanks for your reply and encouragement! Yes the scope of the project was far too ambitious and I have since redefined my goals - only a few weeks out now! I have learned an awful lot in the past couple of months and it has definitely sparked a newfound interest for me in the area.


I'm currently trying to complete the Pitching NACA Optimization Test Case and am wondering if you might be able to help me with regards to an error that I keep getting. The case will not go through the first design iteration for the Test Case with all settings kept unchanged from those given in GitHub repository. The error I am receiving is:


File "/usr/local/bin/shape_optimization.py", line 163, in shape_optimization
SU2.opt.SLSQP(project,x0,xb,its,accu)
File "/usr/local/bin/SU2/opt/scipy_tools.py", line 143, in scipy_slsqp
epsilon = eps )
File "/usr/lib/python2.7/dist-packages/scipy/optimize/slsqp.py", line 207, in fmin_slsqp
constraints=cons, **opts)
File "/usr/lib/python2.7/dist-packages/scipy/optimize/slsqp.py", line 390, in _minimize_slsqp
g = append(fprime(x),0.0)
File "/usr/lib/python2.7/dist-packages/scipy/optimize/optimize.py", line 292, in function_wrapper
return function(*(wrapper_args + args))
File "/usr/local/bin/SU2/opt/scipy_tools.py", line 410, in obj_df
dobj_list = project.obj_df(x)
File "/usr/local/bin/SU2/opt/project.py", line 241, in obj_df
return self._eval(konfig, func,dvs)
File "/usr/local/bin/SU2/opt/project.py", line 205, in _eval
vals = design._eval(func,*args)
File "/usr/local/bin/SU2/eval/design.py", line 146, in _eval
vals = eval_func(*inputs)
File "/usr/local/bin/SU2/eval/design.py", line 379, in obj_df
grad = su2grad(this_obj,grad_method,config,state)
File "/usr/local/bin/SU2/eval/gradients.py", line 105, in gradient
grads = adjoint( func_name, config, state )
File "/usr/local/bin/SU2/eval/gradients.py", line 280, in adjoint
info = su2run.adjoint(config)
File "/usr/local/bin/SU2/run/adjoint.py", line 89, in adjoint
SU2_CFD(konfig)
File "/usr/local/bin/SU2/run/interface.py", line 122, in CFD
run_command( the_Command )
File "/usr/local/bin/SU2/run/interface.py", line 302, in run_command
raise exception(message)
SU2.EvaluationFailure: Path = /home/buxwax/Documents/SU2/SU2-6.2.0/My_Optimization_Cases/Case_2_pitching/opt/DESIGNS/DSN_001/ADJOINT_DRAG/,
Command = /bin/SU2_CFD_AD config_CFD_AD.cfg
SU2 process returned error '1'



When I open the log_Adjoint.out it reads the following:


Error in "void CConfig::SetPostprocessing(short unsigned int, short unsigned int, short unsigned int)":
-------------------------------------------------------------------------
Dynamic mesh movement currently not supported for the discrete adjoint solver.
------------------------------ Error Exit -------------------------------




I have compiled the solver for AD Support using the SU2 AD Build instructions, but I do not think those instructions compile the AD Build with all features included! For example, when I check in the SU2_AD folder in my root directory and check the config.log file I see that some of the modules have not been configured:


Build Configuration Summary:

Source code location: /home/buxwax/Documents/SU2/SU2-6.2.0
Install location:
Version: 6.2.0
C++ Compiler: mpicxx
C Compiler: mpicc
Preprocessor flags: -DHAVE_MPI
Compiler flags: -O3 -Wall
Linker flags:
MPI support: yes
Metis support: yes
Parmetis support: yes
TecIO support: yes
CGNS support: yes
Mutation++ support: no
MKL support: no
Datatype support:
double no
codi_reverse yes
codi_forward no

External includes: -DHAVE_CGNS -I$(top_srcdir)/externals/cgns -I$(top_srcdir)/externals/cgns/adf -DHAVE_PARMETIS -I$(top_srcdir)/externals/parmetis/include -DHAVE_METIS -I$(top_srcdir)/externals/metis/include -DHAVE_TECIO -I$(top_srcdir)/externals/tecio/teciosrc
External libs: $(top_builddir)/externals/cgns/libcgns.a $(top_builddir)/externals/parmetis/libparmetis.a $(top_builddir)/externals/metis/libmetis.a $(top_builddir)/externals/tecio/libtecio.a
External libpthreads: -lpthread

Build SU2_CFD: yes
Build SU2_DOT: yes
Build SU2_MSH: no
Build SU2_DEF: no
Build SU2_SOL: no
Build SU2_GEO: no
Build Py Wrapper: no




Do you know what my problem is here? Do you know how I can compile the with all AD features enabled? I have a feeling this will solve my problem with this Test Case!!


Thanks,
Eamonn

Buxwax March 7, 2019 15:25

Update
 
It is also worth mentioning that when I try to run the Test Case using CONTINUOUS ADJOINT, I receive the following in the log_Adjoint.out file:



WARNING: The adjoint solver should use a non-dimensional flow solution.
WARNING: The adjoint solver should use a non-dimensional flow solution.
WARNING: The adjoint solver should use a non-dimensional flow solution.

-------------------------------------------------------------------------
| ___ _ _ ___ |
| / __| | | |_ ) Release 6.2.0 "Falcon" |
| \__ \ |_| |/ / |
| |___/\___//___| Suite (Computational Fluid Dynamics Code) |
| |
-------------------------------------------------------------------------
| The current SU2 release has been coordinated by the |
| SU2 International Developers Society <www.su2devsociety.org> |
| with selected contributions from the open-source community. |
-------------------------------------------------------------------------
| The main research teams contributing to the current release are: |
| - Prof. Juan J. Alonso's group at Stanford University. |
| - Prof. Piero Colonna's group at Delft University of Technology. |
| - Prof. Nicolas R. Gauger's group at Kaiserslautern U. of Technology. |
| - Prof. Alberto Guardone's group at Polytechnic University of Milan. |
| - Prof. Rafael Palacios' group at Imperial College London. |
| - Prof. Vincent Terrapon's group at the University of Liege. |
| - Prof. Edwin van der Weide's group at the University of Twente. |
| - Lab. of New Concepts in Aeronautics at Tech. Inst. of Aeronautics. |
-------------------------------------------------------------------------
| Copyright 2012-2019, Francisco D. Palacios, Thomas D. Economon, |
| Tim Albring, and the SU2 contributors. |
| |
| SU2 is free software; you can redistribute it and/or |
| modify it under the terms of the GNU Lesser General Public |
| License as published by the Free Software Foundation; either |
| version 2.1 of the License, or (at your option) any later version. |
| |
| SU2 is distributed in the hope that it will be useful, |
| but WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| Lesser General Public License for more details. |
| |
| You should have received a copy of the GNU Lesser General Public |
| License along with SU2. If not, see <http://www.gnu.org/licenses/>. |
-------------------------------------------------------------------------

------------------------ Physical Case Definition -----------------------
Continuous Euler adjoint equations.
Mach number: 0.796.
Angle of attack (AoA): 0 deg, and angle of sideslip (AoS): 0 deg.
Performing a dynamic mesh simulation: rigid mesh motion.
No restart solution, use the values at infinity (freestream).
Read flow solution from: restart_flow.dat.
Dimensional simulation.
The reference area is 1 m^2.
The semi-span will be computed using the max y(3D) value.
The reference length is 1 m.
Reference origin for moment evaluation is (0.248, 0, 0).
Surface(s) where the force coefficients are evaluated: airfoil.

Surface(s) where the objective function is evaluated: airfoil.
Surface(s) plotted in the output file: airfoil.
Surface(s) affected by the design variables: airfoil.
Input mesh file name: mesh_optimization.su2

----------------------- Design problem definition -----------------------
CD objective function.

---------------------- Space Numerical Integration ----------------------
Jameson-Schmidt-Turkel scheme for the adjoint inviscid terms.
JST viscous coefficients (1st, 2nd, & 4th): 0.15, 0, 0.02.
The method includes a grid stretching correction (p = 0.3).
Second order integration.
The reference sharp edge distance is: 0.3.
Gradient Computation using weighted Least-Squares method.

---------------------- Time Numerical Integration -----------------------
Unsteady simulation, dual time stepping strategy (second order in time).
Unsteady time step provided by the user (s): 0.023555.
Total number of internal Dual Time iterations: 110.
Euler implicit method for the adjoint equations.
W Multigrid Cycle, with 3 multigrid levels.
Damping factor for the residual restriction: 0.9.
Damping factor for the correction prolongation: 0.9.
No CFL adaptation.
+-------------------------------------------+
| MG Level| Presmooth|PostSmooth|CorrectSmo|
+-------------------------------------------+
| 0| 1| 0| 0|
| 1| 2| 0| 0|
| 2| 3| 0| 0|
| 3| 3| 0| 0|
+-------------------------------------------+
Courant-Friedrichs-Lewy number: 5

------------------------- Convergence Criteria --------------------------
Maximum number of iterations: 99999.
Reduce the adjoint density residual 3 orders of magnitude.
The minimum value for the adjoint density residual is 10^(-10).

-------------------------- Output Information ---------------------------
Writing a solution file every 250 iterations.
Writing the convergence history every 1 iterations.
Writing the dual time flow solution every 1 iterations.
Writing the dual time convergence history every 10 iterations.
The output file format is Tecplot ASCII (.dat).
Convergence history file name: history_adjoint.
Forces breakdown file name: forces_breakdown.dat.
Adjoint solution file name: solution_adj.dat.
Restart adjoint file name: restart_adj.dat.
Adjoint variables file name: adjoint.
Surface adjoint coefficients file name: surface_adjoint.

------------------- Config File Boundary Information --------------------
+-----------------------------------------+
| Marker Type| Marker Name|
+-----------------------------------------+
| Euler wall| airfoil|
+-----------------------------------------+
| Far-field| farfield|
+-----------------------------------------+

---------------------- Read Grid File Information -----------------------
Two dimensional problem.
8606 points.
2 surface markers.
+------------------------------------+
| Index| Marker| Elements|
+------------------------------------+
| 0| airfoil| 200|
| 1| farfield| 75|
+------------------------------------+
16937 triangles.

------------------------- Geometry Preprocessing ------------------------
Setting point connectivity.
Renumbering points (Reverse Cuthill McKee Ordering).
Recomputing point connectivity.
Setting element connectivity.
Checking the numerical grid orientation.
Identifying edges and vertices.
Computing centers of gravity.
Setting the control volume structure.
Area of the computational grid: 1.26e+03.
Finding max control volume width.
Searching for the closest normal neighbors to the surfaces.
Storing a mapping from global to local point index.
Compute the surface curvature.
Max K: 1.99e+03. Mean K: 17.3. Standard deviation K: 126.
Checking for periodicity.
Setting the multigrid structure.
+-------------------------------------------+
| MG Level| CVs|Aggl. Rate| CFL|
+-------------------------------------------+
| 0| 8606| 1/1.00| 5|
| 1| 2442| 1/3.52| 4|
| 2| 699| 1/3.49| 3.21|
| 3| 189| 1/3.7| 2.5|
+-------------------------------------------+
Wetted area = 2.02 m.
Area projection in the x-plane = 0.0996 m, y-plane = 0.999 m.
Max. coordinate in the x-direction = 1 m, y-direction = 0.0499 m.
Min coordinate in the x-direction = 0 m, y-direction = -0.0499 m.

------------------------- Driver information --------------------------
A Fluid driver has been instantiated.

------------------------ Iteration Preprocessing ------------------------
Zone 1: adjoint Euler/Navier-Stokes/RANS fluid iteration.

------------------------- Solver Preprocessing --------------------------
Inviscid flow: Computing density based on free-stream
temperature and pressure using the ideal gas law.
Force coefficients computed using MACH_MOTION.

-- Models:
+------------------------------------------------------------------------------+
| Viscosity Model| Conductivity Model| Fluid Model|
+------------------------------------------------------------------------------+
| -| -| STANDARD_AIR|
+------------------------------------------------------------------------------+
-- Fluid properties:
+------------------------------------------------------------------------------+
| Name| Dim. value| Ref. value| Unit|Non-dim. value|
+------------------------------------------------------------------------------+
| Gas Constant| 287.058| 1| N.m/kg.K| 287.058|
| Spec. Heat Ratio| -| -| -| 1.4|
+------------------------------------------------------------------------------+
-- Initial and free-stream conditions:
+------------------------------------------------------------------------------+
| Name| Dim. value| Ref. value| Unit|Non-dim. value|
+------------------------------------------------------------------------------+
| Static Pressure| 101325| 1| Pa| 101325|
| Density| 1.22498| 1| kg/m^3| 1.22498|
| Temperature| 288.15| 1| K| 288.15|
| Total Energy| 243476| 1| m^2/s^2| 243476|
| Velocity-X| 270.876| 1| m/s| 270.876|
| Velocity-Y| 0| 1| m/s| 0|
| Velocity Magnitude| 270.876| 1| m/s| 270.876|
+------------------------------------------------------------------------------+
| Mach Number| -| -| -| 0.796|
+------------------------------------------------------------------------------+
+------------------------------------------------------------------------------+
| Name| Dim. value| Ref. value| Unit|Non-dim. value|
+------------------------------------------------------------------------------+
-- Unsteady conditions
| Total Time| 0.59| 1| s| 0.59|
| Time Step| 0.023555| 1| s| 0.023555|
+------------------------------------------------------------------------------+
Initialize Jacobian structure (Euler). MG level: 0.
Initialize Jacobian structure (Adjoint Euler). MG level: 0.
Initialize Jacobian structure (Euler). MG level: 1.
Initialize Jacobian structure (Adjoint Euler). MG level: 1.
Initialize Jacobian structure (Euler). MG level: 2.
Initialize Jacobian structure (Adjoint Euler). MG level: 2.
Initialize Jacobian structure (Euler). MG level: 3.
Initialize Jacobian structure (Adjoint Euler). MG level: 3.


Error in "std::__cxx11::string CConfig::GetUnsteady_FileName(std::__cxx11::string , int)":
-------------------------------------------------------------------------
Requesting a negative iteration number for the restart file!!
------------------------------ Error Exit -------------------------------


--------------------------------------------------------------------------
MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD
with errorcode 1.

NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.
--------------------------------------------------------------------------

wkernkamp March 7, 2019 15:55

Try docker with SU2
 
Looks like you have components that did not get compiled. Have you tried to just recompile the whole thing requesting everything? Do steady test cases run?

There are dockers available with
SU2. Search online. When you run a docker it has everything installed and running. Does not depend on your own system and libraries.

Same for openfoam6. Easy.:cool:

Buxwax March 7, 2019 17:37

Thanks for the reply and suggestion!

Yes steady optimization cases work just fine.

I have just downloaded Docker and am trying to figure out how to run SU2 on it - hopefully I manage to get it to work!

TKatt March 28, 2019 09:10

Hi Eamonn,

Concerning the Discrete Adjoint:
HTML Code:

Dynamic mesh movement currently not supported for the discrete adjoint solver.
There is an error catch preventing to run grid movement in combination with the discrete adjoint solver as it not tested yet. So you won't be able to run that, sorry.
The AD build looks good at least from what I can see, only SU2_CFD and SU2_DOT are the only modules build with the codi reverse datatype. And as steady optimization using the Discrete Adjoint solver works, i see no issue with the build. I would also say that the given error message is quite clear ;)

For the continuous Adjoint:
HTML Code:

Requesting a negative iteration number for the restart file!!
That should work, and worked with older version. So that is an an actual error which was unintentionally introduced in the meantime. Unfortunately there is no travis Testcase which could have spotted that. If you build an older version (e.g. 5.0 or maybe even 4.0) it should work as this case/feature is already there for quite some time. That needs to be fixed.

Sorry that no one answered you earlier than march. I hope you do well with your thesis and stay around CFD and of course SU2!

Cheers, Tobi


All times are GMT -4. The time now is 07:50.