Title: Aerodynamic Design Using VLM Gradient Generation Using ADIFOR Automatic Differentiation in Fortran S
1Aerodynamic Design Using VLMGradient Generation
Using ADIFOR (Automatic Differentiation in
Fortran)Santosh N. AbhyankarProf. K. Sudhakar
2Brief Outline
- Why ADIFOR ?
- What is ADIFOR ?
- Where ADIFOR has been used ?
- Case studies in CASDE
3Why ADIFOR ?
4Gradient-based Optimization
- Gradients calculated to give search direction
- Accuracy of gradients affect
- Efficiency of the optimizer
- Accuracy of the optimum solution
5Different Ways to Calculate Gradients
- Numerical methods
- Finite difference
- Complex variable method
- Adjoint method
- Analytical methods
- Manual differentiation
- Automated differentiation
6Finite Difference Vs Complex Variable
- CFL3D of NASA. Inviscil, Laminar, Turb.,
(Un)steady, Multi-blk, Accel, etc
- Complex 115 mts 75.2 MB
- FD 36 mts 37.7 MB
- 41 mts 37.7 MB
- Note For several cases FDM required
trying out several step sizes to get correct
derivative. Factoring this in, it was seen that
time taken on an average was more than 2 times
for a single analysis.
7Optimizer
Analysis Functions Say f(x),h(x), g(x) an
y
Complicated functions
General Flowchart of an Optimization Cycle
8Optimizer
Analysis Functions Say f(x),g(x), h(x) an
y
Complicated function
Gradient Calculation using Forward Difference Me
thod
9Drawbacks of Numerical Gradients
- Approximate
- Round-off errors
- Computational requirements
- requires (n1)
evaluations of function f
- Difficulties with noisy functions
10Optimizer
Analysis Functions Say f(x) Sin(x)
Externally supplied Analytical Gradients
Cos(x)
Facility to provide user-supplied Gradients
11Optimizer
F(x)/g(x)/h(x) Complex Analysis Code
Externally supplied Analytical Gradients
?
Facility to provide user-supplied Gradients
12User Supplied Gradients
13User Supplied Gradients
14User Supplied Gradients
15Gradients by ADIFOR
16What is ADIFOR ?
17Automatic DIfferentiation in FORtran
ADIFOR by Mathematics and Computer Science Di
vision,
Argonne National Laboratories, NASA.
18Initial Inputs to ADIFOR
- The top level routine which contains the
functions
- The dependant and the independent variables
- The maximum number of independent variables
19Functionality of ADIFOR
- Consider
- The derivative of
- is given by
20Functionality of ADIFOR contd.
- For any set of functions say
- ADIFOR generates a Jacobian
21 SUBROUTINE test(x,f) double precision
x(2),f(3) f(1) x(1)2 x(2)2
f(2) x(1)x(2) f(3) 2.x(1) 3.x(2
)2 return end
ADIFOR
22 subroutine g_test(g_p_, x, g_x, ldg_x, f, g_f,
ldg_f) double precision x(2), f(3)
integer g_pmax_ parameter (g_pmax_ 2
) integer g_i_, g_p_, ldg_f, ldg_x
double precision d6_b, d4_v, d2_p, d1_p, d5_b,
d4_b, d2_v, g_f(l dg_f, 3), g_x(ldg_x, 2)
integer g_ehfid intrinsic dble
data g_ehfid /0/ C call ehsfid(g_
ehfid, 'test','g_subrout5.f') C if (g_p_
.gt. g_pmax_) then print , 'Parameter
g_p_ is greater than g_pmax_'
stop endif
23g_test contd.
d2_v x(1) x(1) d2_p 2.0d0 x(1)
d4_v x(2) x(2) d1_p 2.0d0
x(2) do g_i_ 1, g_p_ g_f(
g_i_, 1) d1_p g_x(g_i_, 2) d2_p g_x(g_i_,
1) enddo f(1) d2_v d4_v C--
------ do g_i_ 1, g_p_ g_f(g
_i_, 2) x(1) g_x(g_i_, 2) x(2) g_x(g_i_,
1) enddo f(2) x(1) x(2) C--
------
24g_test contd.
d4_v x(2) x(2) d1_p 2.0d0 x(2)
d4_b dble(3.) d5_b d4_b d
1_p d6_b dble(2.) do g_i_ 1,
g_p_ g_f(g_i_, 3) d5_b g_x(g_i_, 2
) d6_b g_x(g_i_, 1) enddo f(
3) dble(2.) x(1) dble(3.) d4_v
C-------- return end
25ADIFOR Where ??
26- Applications of ADIFOR and ADIC
- ADIFOR and ADIC have been applied to application
codes
- from various domains of science and engineering.
- Atmospheric Chemistry
- On-Chip Interconnect Modeling
- Mesoscale Weather Modeling
- CFD Analysis of the High-Speed Civil
Transport
- Rotorcraft Flight
- 3-D Groundwater Contaminant Transport
- 3-D Grid Generation for the High-Speed Civil
Transport
- A Numerically Complicated Statistical
Function --
- the Log-Likelihood for log-F distribution
(LLDRLF).
27Mesoscale Weather Modeling Temperature sensitiv
ity as computed by Divided Difference using a
second-order forward-difference formula
28Mesoscale Weather Modeling Temperature sensitivi
ty as computed by ADIFOR
29Case Study at CASDE
30Optimization Problem
- Minimize induced drag (Cdi)
- Subject to CL 0.2
- Design variables jig-twist(?) and angle of
attack at root (a0)
- ? has a linear variation from zero at root to ?
at tip.
- a0 is constant over the entire wing
semi-span.
L
cr
ct
31The VLM Code600 lines (approx)
SUBROUTINE vlm(amach, cr, ct, bby2,
sweep,twist,alp0,isym, ni_gr,
nj_gr, cl, cd, cm) CALL mesh(cr, ct, bby2, swe
ep, ,ni_gr, nj_gr) CALL matinv(aic, np_max, inde
x, np) CALL setalp(r_p, beta, twist, bby2, alp0,
alp, np) CALL mataxb(aic, alp, gama, np_max, np_m
ax, np, np, 1) CALL mataxb(aiw, gama, w , np_max
, np_max, np, np, 1) CALL loads(,gama, w, str_li
ft, alift, cl, cd, cm)
32The ADIFOR-generated derivative of VLM
subroutine g_vlm(g_p_, , twist,
g_twist,ldg_twist, alp0, g_alp0, ldg_alp0,
isym, ni_gr, nj_gr, cl, g_cl,ldg_cl, cd, g_cd,
ldg_cd, cm) call mesh(cr, ct, bby2, sweep, , n
i_gr, nj_gr) call matinv(aic, np_max, index, np)
call g_setalp(g_p_, r_p, beta, twist, g_twist,
ldg_twist, bby2, alp0, g_alp0, ldg_
alp0, alp, g_alp, g_pmax_, np)
call g_mataxb(g_p_, aic, alp, g_alp, g_pmax_,
gama, g_gama, g_pmax_, np_max, np_max, np, np,
1) call g_mataxb(g_p_, aiw, gama, g_gama, g_pmax
_, w, g_w, g_pmax_, np_ma
x, np_max, np, np, 1) call g_loads(g_p_, , ni_gr
, nj_gr, np, , gama, g_gama, g_pmax_, w,
g_w, g_pmax_, str_lift, alift,
g_alift, g_pmax_, cl, g_cl, ldg
_cl, cd, g_cd, ldg_cd, cm)
33Optimization Results
34Optimization Results
35Comparison of Time Takenfor Optimization
36Codes with CASDE
- Inviscid 3D Code for arbitrary configurations.
Tried on ONERA M6. Optimised for memory and CPU
time.
- total subroutines 93
- total source lines 5077
- Viscous laminar, 2D, Cartesian for simple
configurations. Not optimized. More easily
readable. Research code.
- total subroutines 35
- total source lines 2316
37Limitations
- Strict ANSI Fortran 77 code.
38Thank You