CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > SU2

Sensitivity in surface_sens.vtk V.S. Surface_Sensitivity in surface_adjoint.vtk

Register Blogs Community New Posts Updated Threads Search

Like Tree2Likes
  • 2 Post By TKatt

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   December 19, 2018, 04:18
Default Sensitivity in surface_sens.vtk V.S. Surface_Sensitivity in surface_adjoint.vtk
  #1
Member
 
Join Date: May 2017
Posts: 41
Rep Power: 8
Ryan. is on a distinguished road
Hi everyone,

I am using the discrete adjoint solver and I am interested in surface sensitivities in the normal direction. However, I found that the "Surface_Sensitivity" inside "surface_adjoint.vtk" is not the same as the "Sensitivity" in "surface_sens.vtk". The Surface_Sensitivity is actually by 5 orders of magnitude larger than the Sensitivity. I thought they're both computed by taking the inner product of the surface mesh sensitivities and the cell normal vector, but apparently I was wrong. I would be glad if someone could explain how they are calculated.

Many thanks in advance
Ryan. is offline   Reply With Quote

Old   December 29, 2018, 11:33
Default
  #2
Member
 
na
Join Date: Jul 2018
Posts: 83
Rep Power: 7
TKatt is on a distinguished road
Hi Ryan,

Upfront: I use a recent develop version of SU2 in which 'Surface_Sensitivity' is used for the variable in surface_sens.* (* is vtk for your paraview output) and surface_adjoint.*, I try to be clear with what I mean.

I'll try to explain briefly what I found in the code and what is happening here in general:

1. The surface_adjoint.* is written by SU2_CFD_AD (just as adjoint.*) and surface_sens.* by SU2_DOT_AD.

2. The sensitivity information in both files "mean different things". In adjoint.* and surface_adjoint.* you'll find the "Volume Sensitivities", i.e. the sensitivity with respect to every(!) mesh node coordinate alone. In surface_sens.* the information of the mesh deformation algorithm is incorporated and they are only available on the surface nodes (which control the geometry/shape).

3. The computation of Surface_Sensitivity is, as you said, the dot product between normal and sensitivity vector. But I am not sure whether that computation is correct for surface_adjoint.* and therefore also adjoint.*. I have to take a closer look to be sure though, and one has to be careful whether one has a unit normal or Area normal. For now I think a factor of -1/Area is the difference to the computation in surface_sens (based on a given sensitivity vector).

Summing up: The sensitivities in both files are different in what they represent and shouldn't be the same (in general). However, the computation of Surface_Sensitivity looks inconsistent to me for both files which might be an error.

I hope what I wrote was somewhat understandable. Let me know if an explanation was bad. I'll take a closer look at the computation in the next days and report here. If you want to look in the code yourself and try out things I can give you the lines of code where to computation takes place.

Cheers, Tobi
nitish_anand and Ryan. like this.
TKatt is offline   Reply With Quote

Old   January 4, 2019, 16:05
Default
  #3
Member
 
Join Date: May 2017
Posts: 41
Rep Power: 8
Ryan. is on a distinguished road
Hi Tobi,

thanks a bunch for the thorough explanation. I believe you're right, just by comparing the result in Paraview it seems the difference between them comes from the fact that one of them uses the area normal vector and the other uses the unit normal vector.

Cheers and happy new year,
Ryan
Ryan. is offline   Reply With Quote

Old   July 27, 2019, 02:25
Default Sensitivity analysis failure
  #4
New Member
 
Angu Praveen
Join Date: May 2019
Posts: 14
Rep Power: 6
angupraveen is on a distinguished road
Dear all,

I'm trying to do a 3D SE2A Aircraft wing optimization using SU2. Unfortunately, I am unable to get the following things working.

1. The solution doesn't converge even after 5000 iterations both in ADJOINT and DIRECT solvers. I mean it keeps computing until the max iter value.

2. After the iterations are done, I tried to compute the sensitivity using SU2_DOT_AD and it gives of_grad.dat file with '0' as the value with the following message before

"Design variable (FFD_SETTING) number 0."

Any help would be highly appreciated

Thanks in advance

Angu
angupraveen is offline   Reply With Quote

Old   September 6, 2020, 07:03
Default
  #5
New Member
 
Haoge Li
Join Date: Oct 2017
Posts: 2
Rep Power: 0
Haoge Li is on a distinguished road
Hi TKatt,
Thanks for your thorough explanation, as I computed the naca0012 airfoil with the continuous adjoint solver, and i'm confused about the Surface_sensitivity in the surface_adjoint.dat. Does the surface area normal vector point to the flow field, or the interior of the body?

Any help and explanation will be appreciated!

Thank you a lot

Haoge Li

Quote:
Originally Posted by TKatt View Post
Hi Ryan,

Upfront: I use a recent develop version of SU2 in which 'Surface_Sensitivity' is used for the variable in surface_sens.* (* is vtk for your paraview output) and surface_adjoint.*, I try to be clear with what I mean.

I'll try to explain briefly what I found in the code and what is happening here in general:

1. The surface_adjoint.* is written by SU2_CFD_AD (just as adjoint.*) and surface_sens.* by SU2_DOT_AD.

2. The sensitivity information in both files "mean different things". In adjoint.* and surface_adjoint.* you'll find the "Volume Sensitivities", i.e. the sensitivity with respect to every(!) mesh node coordinate alone. In surface_sens.* the information of the mesh deformation algorithm is incorporated and they are only available on the surface nodes (which control the geometry/shape).

3. The computation of Surface_Sensitivity is, as you said, the dot product between normal and sensitivity vector. But I am not sure whether that computation is correct for surface_adjoint.* and therefore also adjoint.*. I have to take a closer look to be sure though, and one has to be careful whether one has a unit normal or Area normal. For now I think a factor of -1/Area is the difference to the computation in surface_sens (based on a given sensitivity vector).

Summing up: The sensitivities in both files are different in what they represent and shouldn't be the same (in general). However, the computation of Surface_Sensitivity looks inconsistent to me for both files which might be an error.

I hope what I wrote was somewhat understandable. Let me know if an explanation was bad. I'll take a closer look at the computation in the next days and report here. If you want to look in the code yourself and try out things I can give you the lines of code where to computation takes place.

Cheers, Tobi
Haoge Li is offline   Reply With Quote

Old   March 2, 2022, 18:29
Default Is there a good example for surface sensitivity using SU2
  #6
New Member
 
California
Join Date: Jan 2019
Posts: 13
Rep Power: 7
lalatuobu is on a distinguished road
Hi Ryan,

I want to compute the surface sensitivity for my configuration as well. But it seems to me that SU2 surface sensitivity requires some deformation by FFD or by user defined deformation function. What I want is small perturbance on surface and I want to calculate the current surface sensitivity. I wonder how to do that?

Quote:
Originally Posted by Ryan. View Post
Hi everyone,

I am using the discrete adjoint solver and I am interested in surface sensitivities in the normal direction. However, I found that the "Surface_Sensitivity" inside "surface_adjoint.vtk" is not the same as the "Sensitivity" in "surface_sens.vtk". The Surface_Sensitivity is actually by 5 orders of magnitude larger than the Sensitivity. I thought they're both computed by taking the inner product of the surface mesh sensitivities and the cell normal vector, but apparently I was wrong. I would be glad if someone could explain how they are calculated.

Many thanks in advance
lalatuobu is offline   Reply With Quote

Old   March 5, 2022, 06:36
Default
  #7
Member
 
Join Date: Jun 2020
Posts: 30
Rep Power: 5
Daaman is on a distinguished road
Quote:
Originally Posted by lalatuobu View Post
Hi Ryan,

I want to compute the surface sensitivity for my configuration as well. But it seems to me that SU2 surface sensitivity requires some deformation by FFD or by user defined deformation function. What I want is small perturbance on surface and I want to calculate the current surface sensitivity. I wonder how to do that?
Hi, if I understand you correctly- you want to deform the surface and then perform the sensitivity analysis of that deformed geometry? If that's the case, then you can deform the surface by displacing the FFD control point using SU2_DEF. Then use the resulting .su2 file with deformed geometry for performing the sensitivity analysis.
Daaman is offline   Reply With Quote

Reply

Tags
discrete adjoint, su2, su2 ad, su2 adjoint


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
How to implement a sensitivity analysis for certain items Mason liu CFX 10 August 17, 2017 08:46
Estimating lift change using sensitivity arrow201 SU2 0 January 31, 2017 13:28
About Surface Sensitivity computation Tommy Chen SU2 1 March 10, 2014 16:14
Adjoint sensitivity on specified surface robyTKD OpenFOAM Programming & Development 0 April 29, 2013 05:05
What exactly is a sensitivity analysis? Josh CFX 3 August 19, 2009 09:18


All times are GMT -4. The time now is 03:39.