CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   SU2 (https://www.cfd-online.com/Forums/su2/)
-   -   Gradient Computation: finite differences and adjoint method (https://www.cfd-online.com/Forums/su2/137099-gradient-computation-finite-differences-adjoint-method.html)

doan.nak June 10, 2014 09:25

Gradient Computation: finite differences and adjoint method
 
Dear all,

I have been trying to compare the different gradient computation methods in SU2 for a NACA0012 airfoil with Hicks-Henne bumps as design variable (the test case provided).
Comparing the results obtained with the Adjoint methods (and SU2_GPC) with the results obtained with the finite_differences.py script, I have observed that values can be quite different between the two ways to obtain the gradient.

The difference is especially big when the bumps are located near the leading edge. Is there any reason why it should be the case ?

I thought that it could be due to the way the gradient is computed with the adjoint method.
As the continuous adjoint method is used, after an adjoint computation, we have
dF/ dSn which is the sensitivity of F for an infinitesimal displacement of the surface in the direction of the local normal to the surface.
In the SU2_GPC file, (and in the files computing the deformation of the surface), one compute (D is the "deformation")
dD/dPm ~= (delta x, delta y, delta z) / Pm where delta x, delta y, delta z are the displacement of a surface point due to the m-th Hicks-Henne bump of amplitude Pm.
Thus, the gradient computed is given by the projection of the displacement over the local normal direction (1n) summed over the whole surface :
dF / dPm = sum_(points of the surface) dF/dSn * 1n * dD/dPm

However, in reality, the total displacement also has a tangential component, so isn't there an approximation which is made there which could explain the discrepancy between the gradient computed near the leading edge (as there the local normal is really different from the direction of deformation of the Hicks-Henne bump which is done perpendicularly to the chord) ?
The gradient would be exact if the Hicks-Henne bump was applied normally to the surface right ?

Can someone tell me if I understood the way the gradient is computed correctly ?

Thank you very much for your answer.

economon June 24, 2014 16:37

1 Attachment(s)
Hi,

Thanks for a great question. The type of continuous adjoint formulation in SU2 takes advantage of shape calculus in order to find analytic expressions for the surface sensitivity. This is done assuming small perturbations in the local normal direction alone, without loss of generality. Tangential and normal components can be taken into account (and have been in previous work), but this is not necessary.

Please see the attached description of how we compute gradients using projection for some more information.

Hope this helps clear things up,
Tom

p.s. Don't forget that finite differencing is prone to truncation/subtractive cancelation error.. it can often take a few tries to find the appropriate step size. It is typical that we find some discrepancy between the two gradients.

Kemas_Zack November 17, 2017 07:59

Quote:

Originally Posted by economon (Post 498507)
Hi,

Thanks for a great question. The type of continuous adjoint formulation in SU2 takes advantage of shape calculus in order to find analytic expressions for the surface sensitivity. This is done assuming small perturbations in the local normal direction alone, without loss of generality. Tangential and normal components can be taken into account (and have been in previous work), but this is not necessary.

Please see the attached description of how we compute gradients using projection for some more information.

Hope this helps clear things up,
Tom

p.s. Don't forget that finite differencing is prone to truncation/subtractive cancelation error.. it can often take a few tries to find the appropriate step size. It is typical that we find some discrepancy between the two gradients.


Dear,

I am a new user in using SU2 and right now i want to use the surface sensitivity computed by SU2 to calculate the gradient of the objective function with respect to my own design variables. From the image attached in your reply, can you explain more in detail about the term deltaSi ("area of the surface control volume surrounding node i").

Any reply would be highly appreciated
Best regards,
Kemas

Zen November 22, 2017 05:37

Hi Kemas,

I think reading the first 2-3 chapters of Thomas Economon's dissertation will give you all the info you are looking for for the mathematical insights of the SU2 adjoint formulation.

Best,

Z


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