{"id": "example_coupling", "title": "Example: coupled aero-structural adjoint", "description": "The flow is coupled to a linear elastic skin (loads in, displacements out) by a fixed-point iteration written outside Gyre. The coupled derivative of lift with respect to angle of attack is assembled from Gyre's reduced reverse products and compared with a finite difference of the fully re-converged coupled system.", "passed": true, "checks": [{"name": "coupled adjoint vs finite difference (rel.)", "value": 9.63491878278352e-08, "expected": "< 1e-5", "passed": true}, {"name": "coupling is active: max deflection [chords]", "value": 0.0055591868364240965, "expected": "> 1e-5", "passed": true}], "charts": [], "tables": [{"id": "coupled", "title": "Coupled derivative", "columns": ["cl (flexible)", "max deflection [c]", "dcl/d\u03b1 coupled adjoint", "dcl/d\u03b1 finite difference", "relative difference", "dcl/d\u03b1 frozen shape", "aeroelastic effect [%]"], "rows": [[0.27969765283825315, 0.0055591868364240965, 7.765015710970334, 7.7650164591233635, 9.63491878278352e-08, 7.715741392545692, 0.6386206576628695]]}], "provenance": {"version": "0.4.0", "commit": "39979fcf902ad6116eb550b881b4278d4599c8e2", "dirty": false, "describe": "39979fcf90", "device": {"platform": "cpu", "device": "cpu:0", "device_kind": "cpu", "jax": "0.11.2", "x64": true}, "timestamp": "2026-11-12T12:02:29-0500"}, "wall_time": 822.97, "level": "quick"}