CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   SU2 Shape Design (https://www.cfd-online.com/Forums/su2-shape-design/)

 amphy404 March 13, 2013 03:24

I'm looking for more information about the derivation of the adjoint Euler wall boundary condition. In particular, I'm interested in how the terms in the Residuals are derived.

I have read through Anderson & Venkatakrisnan's paper "Aerodynamic Design Optimization on Unstructured Grids with a Continuous Adjoint Formulation", but the wall b.c. in that paper looks a little different from the SU2 code.

KW

 amphy404 March 22, 2013 02:37

Hi,

I'm sorry to post again, but I'm still having trouble deciphering how the Euler adjoint wall boundary condition is implemented in function CAdjEulerSolution::BC_Euler_Wall().

Specifically, I'm having trouble understanding the following lines of code.

In the code below, it looks like the boundary equations are being subtracted from the adjoint velocity variables, but why do you do this? I know that the term ( phin - bcn ) should equal to zero from the adjoint boundary condition, so is this code a recursive way to drive this term to zero? Another guess I had was that this was related to Type 2 boundary condition as described in J. Reuther's PhD thesis (Chapter 7, p.176 eq.7.17), but in his thesis the values of Psi were extrapolated from the interior, whereas here it looks like it is just overriding the old values?

Code:

```/*--- Introduce the boundary condition ---*/ for (iDim = 0; iDim < nDim; iDim++)     Psi[iDim+1] -= ( phin - bcn ) * UnitaryNormal[iDim];```
The residual terms below look very similar to those found in CCentJST_AdjFlow::SetResidual() where the adjoint system is solved for the interior grid. However, I'm not sure I understand how this adjoint boundary system was formulated. Also I noticed that the incompressible residuals are different from the compressible residuals shown below.
Code:

```/*--- Inner products after introducing BC (Psi has changed) ---*/ phis1 = 0.0; phis2 = Psi[0] + Enthalpy * Psi[nVar-1]; for (iDim = 0; iDim < nDim; iDim++) {     phis1 -= Normal[iDim]*Psi[iDim+1];     phis2 += Velocity[iDim]*Psi[iDim+1]; } /*--- Flux of the Euler wall ---*/ Residual[0] = ProjVel * Psi[0] - phis2 * ProjVel + phis1 * Gamma_Minus_One * sq_vel; for (iDim = 0; iDim < nDim; iDim++)     Residual[iDim+1] = ProjVel * Psi[iDim+1] - phis2 * Normal[iDim] - phis1 * Gamma_Minus_One * Velocity[iDim]; Residual[nVar-1] = ProjVel * Psi[nVar-1] + phis1 * Gamma_Minus_One;```

KW

 fpalacios March 23, 2013 14:29

Hi,
The continuous adjoint formulation in SU2 is original (inspired by Jameson and Pironneau works, and using classical differential geometry relations). More details can be found in:

http://www.stanford.edu/~fasispg/art...-2013-0287.pdf