Repository navigation
Trimmed shape optimization driver: max L/D at fixed CL with CMy = 0 (discrete adjoint, FFD) #2938
nikita-ageev
started this conversation in
Show and tell
Replies: 2 comments
|
I've seen it, a very useful tool for airfoil shape optimization and visualization. Is it configurable? Thanks for the contribution! |
0 replies
|
Thanks, Nijso! Yes, it is configurable from the command line; nothing is hard-wired to this particular body:
The full option list is in the README: https://github.com/nikita-ageev/su2-trimmed-shape-optimization#readme . What is not configurable yet: the FFD layout is one box around the fuselage (a multi-box layout for wing + tail exists in my working copy and will go into the next release), and the objective is fixed to CD at fixed CL. If a config-file interface (one YAML instead of flags) would be more useful for the tutorials side, I am happy to add it. |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
I have published a small Python driver around SU2 8.5 for trimmed shape optimization with the discrete adjoint: https://github.com/nikita-ageev/su2-trimmed-shape-optimization
What it does:
FIXED_CL_MODE= YES, and the adjoint gradients are taken at constant CL throughdCD/dCLanddCMy/dCL;CMy = 0about the CG is an equality constraint with its own discrete-adjoint gradient;V >= 0.995 V0, volume and its analytic gradient computed from the surface mesh through a Python re-implementation of the SU2 FFD map) and length (FFD points move only in y and z);SU2_DOT_ADprojections.Results on a supersonic wing-body model (Sears-Haack fuselage, L = 60 m, fixed thin 62° swept wing, M = 1.7, Euler, CL = 0.10, half model 347k tetrahedra):
The trim comes from the fuselage camber alone, without a control surface. Gradient check against central finite differences (baseline of the 66-variable case, every point a fixed-CL solution):
dCD/dpwithin 0.02 %,dCMy/dpwithin 0.001 %. On a finer mesh (0.8–1M cells) the gains are +14.1 % and +30.9 %. There is also a 10-minute axisymmetric Sears-Haack benchmark at M = 1.8 (adjoint vs finite differences 1.5e-5).Limitations: inviscid only, only the fuselage is shaped, the coarse mesh is not grid-converged in absolute CD (about 6 % between meshes, the relative gain carries over).
Things found on the way:
DCD_DCL_VALUE/DCMY_DCL_VALUEinflow.metacan be stale when the finite-difference phase ends on theITER_DCL_DALPHAlimit on a non-screen-output iteration. In my runsdCMy/dCLjumped from about −0.04 to +0.85, which broke the trim constraint gradient; the 450-variable run therefore computesdCD/dCLanddCMy/dCLwith a separate run at AoA + 0.1°.SU2_GEOconstraints) and Quote the SU2 executable path in SU2_PY on Linux/macOS (SU2_RUN with spaces) #2935 (quoting the SU2 executable path in SU2_PY), both open.Feedback is welcome, in particular on the fixed-CL gradient handling, on whether a trim constraint like this would be useful in the SU2_PY optimization scripts, and on the next step to RANS.
All reactions