Aerodynamic Design Using VLM Gradient Generation Using ADIFOR Automatic Differentiation in Fortran S - PowerPoint PPT Presentation

1 / 38
About This Presentation
Title:

Aerodynamic Design Using VLM Gradient Generation Using ADIFOR Automatic Differentiation in Fortran S

Description:

derivative evaluator. in Fortran. Manually differentiate. mathematical. functions - chain rule ... The ADIFOR-generated derivative of VLM ... – PowerPoint PPT presentation

Number of Views:343
Avg rating:3.0/5.0
Slides: 39
Provided by: profksu
Category:

less

Transcript and Presenter's Notes

Title: Aerodynamic Design Using VLM Gradient Generation Using ADIFOR Automatic Differentiation in Fortran S


1
Aerodynamic Design Using VLMGradient Generation
Using ADIFOR (Automatic Differentiation in
Fortran)Santosh N. AbhyankarProf. K. Sudhakar
2
Brief Outline
  • Why ADIFOR ?
  • What is ADIFOR ?
  • Where ADIFOR has been used ?
  • Case studies in CASDE

3
Why ADIFOR ?
4
Gradient-based Optimization
  • Gradients calculated to give search direction
  • Accuracy of gradients affect
  • Efficiency of the optimizer
  • Accuracy of the optimum solution

5
Different Ways to Calculate Gradients
  • Numerical methods
  • Finite difference
  • Complex variable method
  • Adjoint method
  • Analytical methods
  • Manual differentiation
  • Automated differentiation

6
Finite 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.

7
Optimizer
Analysis Functions Say f(x),h(x), g(x) an
y
Complicated functions
General Flowchart of an Optimization Cycle
8
Optimizer
Analysis Functions Say f(x),g(x), h(x) an
y
Complicated function
Gradient Calculation using Forward Difference Me
thod
9
Drawbacks of Numerical Gradients
  • Approximate
  • Round-off errors
  • Computational requirements
  • requires (n1)
    evaluations of function f
  • Difficulties with noisy functions

10
Optimizer
Analysis Functions Say f(x) Sin(x)
Externally supplied Analytical Gradients
Cos(x)
Facility to provide user-supplied Gradients
11
Optimizer
F(x)/g(x)/h(x) Complex Analysis Code
Externally supplied Analytical Gradients
?
Facility to provide user-supplied Gradients
12
User Supplied Gradients
13
User Supplied Gradients
14
User Supplied Gradients
15
Gradients by ADIFOR
16
What is ADIFOR ?
17
Automatic DIfferentiation in FORtran
ADIFOR by Mathematics and Computer Science Di
vision,
Argonne National Laboratories, NASA.
18
Initial Inputs to ADIFOR
  • The top level routine which contains the
    functions
  • The dependant and the independent variables
  • The maximum number of independent variables

19
Functionality of ADIFOR
  • Consider
  • The derivative of
  • is given by

20
Functionality 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
23
g_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--
------
24
g_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
25
ADIFOR 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).

27
Mesoscale Weather Modeling Temperature sensitiv
ity as computed by Divided Difference using a
second-order forward-difference formula

28
Mesoscale Weather Modeling Temperature sensitivi
ty as computed by ADIFOR
29
Case Study at CASDE
30
Optimization 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
31
The 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)
32
The 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)
33
Optimization Results
34
Optimization Results
35
Comparison of Time Takenfor Optimization
36
Codes 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

37
Limitations
  • Strict ANSI Fortran 77 code.

38
Thank You
Write a Comment
User Comments (0)
About PowerShow.com