28
Automatic Differentiation of a CAD System applied in an Adjoint CFD Method Mladen Banovic, Orest Mykhaskiv, Salvatore Auriemma Andrea Walther, Jens-Dominik Müller, Herve Legrand [email protected], [email protected], [email protected] 15th September, 2016 AD2016, Christ Church Oxford, UK

Automatic Differentiation of a CAD System applied in an ... · Automatic Differentiation of a CAD System applied in an Adjoint CFD Method Mladen Banovic, ... OpenCASCADE Technology

  • Upload
    lamtu

  • View
    219

  • Download
    4

Embed Size (px)

Citation preview

Page 1: Automatic Differentiation of a CAD System applied in an ... · Automatic Differentiation of a CAD System applied in an Adjoint CFD Method Mladen Banovic, ... OpenCASCADE Technology

Automatic Differentiation of a CAD Systemapplied in an Adjoint CFD Method

Mladen Banovic, Orest Mykhaskiv, Salvatore AuriemmaAndrea Walther, Jens-Dominik Müller, Herve Legrand

[email protected], [email protected],

[email protected]

15th September, 2016AD2016, Christ Church Oxford, UK

Page 2: Automatic Differentiation of a CAD System applied in an ... · Automatic Differentiation of a CAD System applied in an Adjoint CFD Method Mladen Banovic, ... OpenCASCADE Technology

CAD-based shape optimisation

CAD-based shape optimisation

Given a CAD-model with design parameters α

Gradient-based optimisationminα

J(U(Xs(α)),Xs(α), α) (1)

R(U(Xs(α)),Xs(α)) = 0 (2)

dJdα

=dJ

dXS

dXS

dα(3)

I CFD sensitivity dJdXS

: Adjoint method (efficiency)

I CAD sensitivity dXSdα : Forward Automatic Differentiation

Mladen Banovic 1 / 17 15.09.2016

Page 3: Automatic Differentiation of a CAD System applied in an ... · Automatic Differentiation of a CAD System applied in an Adjoint CFD Method Mladen Banovic, ... OpenCASCADE Technology

OpenCASCADE Technology

OpenCASCADE Technology

OpenCASCADE Technology (OCCT) is an open source C++ library,consisting of thousands of classes and providing solutions in theareas of:

I Surface and solid modelling: to model any type of object,I 3D and 2D visualization: to display and animate objects,I Data exchange (import and export standard CAD formats) and

tree-like data model.

Mladen Banovic 2 / 17 15.09.2016

Page 4: Automatic Differentiation of a CAD System applied in an ... · Automatic Differentiation of a CAD System applied in an Adjoint CFD Method Mladen Banovic, ... OpenCASCADE Technology

U-bend

Testcase under investigation: U-bend pipe

Parametrisation - done in the U-partI Based on a cross-sectional design approach, lofting, which

takes N-slices as inputs in order to construct a final surface.

I The generic slice consists of 12 control points and each controlpoint is characterized by a law of evolution along the pathline.

I In particular, every law is B-spline curve whose control pointscoordinates are the design parameters (96) of the simulation.

Mladen Banovic 3 / 17 15.09.2016

Page 5: Automatic Differentiation of a CAD System applied in an ... · Automatic Differentiation of a CAD System applied in an Adjoint CFD Method Mladen Banovic, ... OpenCASCADE Technology

U-bend

Testcase under investigation: U-bend pipe

Parametrisation - done in the U-partI Based on a cross-sectional design approach, lofting, which

takes N-slices as inputs in order to construct a final surface.I The generic slice consists of 12 control points and each control

point is characterized by a law of evolution along the pathline.

I In particular, every law is B-spline curve whose control pointscoordinates are the design parameters (96) of the simulation.

Mladen Banovic 3 / 17 15.09.2016

Page 6: Automatic Differentiation of a CAD System applied in an ... · Automatic Differentiation of a CAD System applied in an Adjoint CFD Method Mladen Banovic, ... OpenCASCADE Technology

U-bend

Testcase under investigation: U-bend pipe

Parametrisation - done in the U-partI Based on a cross-sectional design approach, lofting, which

takes N-slices as inputs in order to construct a final surface.I The generic slice consists of 12 control points and each control

point is characterized by a law of evolution along the pathline.I In particular, every law is B-spline curve whose control points

coordinates are the design parameters (96) of the simulation.

Mladen Banovic 3 / 17 15.09.2016

Page 7: Automatic Differentiation of a CAD System applied in an ... · Automatic Differentiation of a CAD System applied in an Adjoint CFD Method Mladen Banovic, ... OpenCASCADE Technology

CAD sensitivities

Calculating the CAD sensitivities (I)

In order to calculate the shape derivatives w.r.t. design parameters,OCCT has been differentiated by integrating the AD tool ADOL-C.

Automatic Differentiation by OverLoading in C++ADOL-C uses operator overloading concept to compute first andhigher derivatives of vector functions that are written in C or C++.

Options Differentiation modes Integrated to OCCTtrace-based forward, reverse 7

traceless forward X

Traceless forward differentiationComputes first order derivatives. The derivative computation ispropagated directly on the function evaluation.

Mladen Banovic 4 / 17 15.09.2016

Page 8: Automatic Differentiation of a CAD System applied in an ... · Automatic Differentiation of a CAD System applied in an Adjoint CFD Method Mladen Banovic, ... OpenCASCADE Technology

CAD sensitivities

Calculating the CAD sensitivities (I)

In order to calculate the shape derivatives w.r.t. design parameters,OCCT has been differentiated by integrating the AD tool ADOL-C.

Automatic Differentiation by OverLoading in C++ADOL-C uses operator overloading concept to compute first andhigher derivatives of vector functions that are written in C or C++.

Options Differentiation modes Integrated to OCCTtrace-based forward, reverse 7

traceless forward X

Traceless forward differentiationComputes first order derivatives. The derivative computation ispropagated directly on the function evaluation.

Mladen Banovic 4 / 17 15.09.2016

Page 9: Automatic Differentiation of a CAD System applied in an ... · Automatic Differentiation of a CAD System applied in an Adjoint CFD Method Mladen Banovic, ... OpenCASCADE Technology

Vector mode

Traceless forward vector modeOperator overloading exampleclass myadouble{double value;double *ADvalue = new double[NUMBER_OF_DIRECTIONS];// multiplication ...inline myadouble operator * (const myadouble& a) const {myadouble tmp;tmp.value = value * a.value;for(size_t i = 0; i < NUMBER_OF_DIRECTIONS; ++i)tmp.ADvalue[i] = ADvalue[i] * a.value + value * a.ADvalue[i];

return tmp;}};

DescriptionI NUMBER_OF_DIRECTIONS = number of design parameters.I Derivaties w.r.t. all design parameters are evaluated with just one

code run.

Mladen Banovic 5 / 17 15.09.2016

Page 10: Automatic Differentiation of a CAD System applied in an ... · Automatic Differentiation of a CAD System applied in an Adjoint CFD Method Mladen Banovic, ... OpenCASCADE Technology

OCCT differentiation

OCCT Differentiation (I)All variables that may be considered as differentiable quantities mustbe of an active type, which is named adouble in ADOL-C.

Original code Differentiatedcode

adouble

injection

Possible ways of code modification

1. Introduce AD-specialized properties and methods in originalentity class.

2. Use the inheritance model to create a child class from everyoriginal entity class, defining extra AD properties and methods.

3. Create a class which holds a pointer to the original entity class +extra AD properties and methods - controller approach.

4. Modify original entities in a way of C++ templates.5. Typedef approach - succeeded!

Mladen Banovic 6 / 17 15.09.2016

Page 11: Automatic Differentiation of a CAD System applied in an ... · Automatic Differentiation of a CAD System applied in an Adjoint CFD Method Mladen Banovic, ... OpenCASCADE Technology

OCCT differentiation

OCCT Differentiation (I)All variables that may be considered as differentiable quantities mustbe of an active type, which is named adouble in ADOL-C.

Original code Differentiatedcode

adouble

injection

Possible ways of code modification1. Introduce AD-specialized properties and methods in original

entity class.

2. Use the inheritance model to create a child class from everyoriginal entity class, defining extra AD properties and methods.

3. Create a class which holds a pointer to the original entity class +extra AD properties and methods - controller approach.

4. Modify original entities in a way of C++ templates.5. Typedef approach - succeeded!

Mladen Banovic 6 / 17 15.09.2016

Page 12: Automatic Differentiation of a CAD System applied in an ... · Automatic Differentiation of a CAD System applied in an Adjoint CFD Method Mladen Banovic, ... OpenCASCADE Technology

OCCT differentiation

OCCT Differentiation (I)All variables that may be considered as differentiable quantities mustbe of an active type, which is named adouble in ADOL-C.

Original code Differentiatedcode

adouble

injection

Possible ways of code modification1. Introduce AD-specialized properties and methods in original

entity class.2. Use the inheritance model to create a child class from every

original entity class, defining extra AD properties and methods.

3. Create a class which holds a pointer to the original entity class +extra AD properties and methods - controller approach.

4. Modify original entities in a way of C++ templates.5. Typedef approach - succeeded!

Mladen Banovic 6 / 17 15.09.2016

Page 13: Automatic Differentiation of a CAD System applied in an ... · Automatic Differentiation of a CAD System applied in an Adjoint CFD Method Mladen Banovic, ... OpenCASCADE Technology

OCCT differentiation

OCCT Differentiation (I)All variables that may be considered as differentiable quantities mustbe of an active type, which is named adouble in ADOL-C.

Original code Differentiatedcode

adouble

injection

Possible ways of code modification1. Introduce AD-specialized properties and methods in original

entity class.2. Use the inheritance model to create a child class from every

original entity class, defining extra AD properties and methods.3. Create a class which holds a pointer to the original entity class +

extra AD properties and methods - controller approach.

4. Modify original entities in a way of C++ templates.5. Typedef approach - succeeded!

Mladen Banovic 6 / 17 15.09.2016

Page 14: Automatic Differentiation of a CAD System applied in an ... · Automatic Differentiation of a CAD System applied in an Adjoint CFD Method Mladen Banovic, ... OpenCASCADE Technology

OCCT differentiation

OCCT Differentiation (I)All variables that may be considered as differentiable quantities mustbe of an active type, which is named adouble in ADOL-C.

Original code Differentiatedcode

adouble

injection

Possible ways of code modification1. Introduce AD-specialized properties and methods in original

entity class.2. Use the inheritance model to create a child class from every

original entity class, defining extra AD properties and methods.3. Create a class which holds a pointer to the original entity class +

extra AD properties and methods - controller approach.4. Modify original entities in a way of C++ templates.

5. Typedef approach - succeeded!

Mladen Banovic 6 / 17 15.09.2016

Page 15: Automatic Differentiation of a CAD System applied in an ... · Automatic Differentiation of a CAD System applied in an Adjoint CFD Method Mladen Banovic, ... OpenCASCADE Technology

OCCT differentiation

OCCT Differentiation (I)All variables that may be considered as differentiable quantities mustbe of an active type, which is named adouble in ADOL-C.

Original code Differentiatedcode

adouble

injection

Possible ways of code modification1. Introduce AD-specialized properties and methods in original

entity class.2. Use the inheritance model to create a child class from every

original entity class, defining extra AD properties and methods.3. Create a class which holds a pointer to the original entity class +

extra AD properties and methods - controller approach.4. Modify original entities in a way of C++ templates.5. Typedef approach - succeeded!

Mladen Banovic 6 / 17 15.09.2016

Page 16: Automatic Differentiation of a CAD System applied in an ... · Automatic Differentiation of a CAD System applied in an Adjoint CFD Method Mladen Banovic, ... OpenCASCADE Technology

Coding issues

Coding issuesThere was a lot of code modification introduced because theadouble objects can not just fit everywhere, i.e.:

I Converting a real value to integer.I Arguments for calling the external functions that are not part of

OCCT must remain as doubles.I Input/Output system: adouble objects can currupt the files.I Using C functions for memory management (malloc, free,

memcpy, memset) will cause the run-time exceptions.

Testing original (primal) OCCT functionalityAutomated Testing System of OCCT has been executed aftersuccessful ADOL-C integration, with the final results:

Tests marked: OK Tests marked failed: FAILED Success rate11,306 374 97%

Mladen Banovic 7 / 17 15.09.2016

Page 17: Automatic Differentiation of a CAD System applied in an ... · Automatic Differentiation of a CAD System applied in an Adjoint CFD Method Mladen Banovic, ... OpenCASCADE Technology

Coding issues

Coding issuesThere was a lot of code modification introduced because theadouble objects can not just fit everywhere, i.e.:

I Converting a real value to integer.I Arguments for calling the external functions that are not part of

OCCT must remain as doubles.I Input/Output system: adouble objects can currupt the files.I Using C functions for memory management (malloc, free,

memcpy, memset) will cause the run-time exceptions.

Testing original (primal) OCCT functionalityAutomated Testing System of OCCT has been executed aftersuccessful ADOL-C integration, with the final results:

Tests marked: OK Tests marked failed: FAILED Success rate11,306 374 97%

Mladen Banovic 7 / 17 15.09.2016

Page 18: Automatic Differentiation of a CAD System applied in an ... · Automatic Differentiation of a CAD System applied in an Adjoint CFD Method Mladen Banovic, ... OpenCASCADE Technology

CAD sensitivities

CAD sensitivitiesExample of derivatives calculated using the vector mode

Mladen Banovic 8 / 17 15.09.2016

Page 19: Automatic Differentiation of a CAD System applied in an ... · Automatic Differentiation of a CAD System applied in an Adjoint CFD Method Mladen Banovic, ... OpenCASCADE Technology

Performance tests

Performance tests (I)The average values of total computational time required for theU-bend construction.

g++ compiler v4.8.5

Original sources AD sources - 1 dir. AD sources - 96 dir.Avg. time (sec) 0.037 0.340 2.127Run-time ratio 9.13 57.07

Primal with operator overloading: 0.269 sec; run-time ratio: 7.21.

clang++ compiler v3.7.0

Original sources AD sources - 1 dir. AD sources - 96 dir.Avg. time (sec) 0.035 0.298 1.833Run-time ratio 8.59 52.75

Primal with operator overloading: 0.216 sec; run-time ratio: 6.20.

Mladen Banovic 9 / 17 15.09.2016

Page 20: Automatic Differentiation of a CAD System applied in an ... · Automatic Differentiation of a CAD System applied in an Adjoint CFD Method Mladen Banovic, ... OpenCASCADE Technology

Performance tests

Performance tests (I)The average values of total computational time required for theU-bend construction.

g++ compiler v4.8.5

Original sources AD sources - 1 dir. AD sources - 96 dir.Avg. time (sec) 0.037 0.340 2.127Run-time ratio 9.13 57.07

Primal with operator overloading: 0.269 sec; run-time ratio: 7.21.

clang++ compiler v3.7.0

Original sources AD sources - 1 dir. AD sources - 96 dir.Avg. time (sec) 0.035 0.298 1.833Run-time ratio 8.59 52.75

Primal with operator overloading: 0.216 sec; run-time ratio: 6.20.

Mladen Banovic 9 / 17 15.09.2016

Page 21: Automatic Differentiation of a CAD System applied in an ... · Automatic Differentiation of a CAD System applied in an Adjoint CFD Method Mladen Banovic, ... OpenCASCADE Technology

Performance tests

Run-time ratios

0 8 16 24 32 40 48 56 64 72 80 88 96Number of directions (p)

0

20

40

60

80

100

120

140

160R

un-t

ime r

ati

o

1 + 1.5p1 + 1pg++ v4.8.5clang++ v3.7.0

Mladen Banovic 10 / 17 15.09.2016

Page 22: Automatic Differentiation of a CAD System applied in an ... · Automatic Differentiation of a CAD System applied in an Adjoint CFD Method Mladen Banovic, ... OpenCASCADE Technology

Memory requirements

Memory requirements

0 8 16 24 32 40 48 56 64 72 80 88 96Number of directions

0

50

100

150

200

250

300

350Tota

l m

em

ory

consu

mpti

on [

MB

]

Mladen Banovic 11 / 17 15.09.2016

Page 23: Automatic Differentiation of a CAD System applied in an ... · Automatic Differentiation of a CAD System applied in an Adjoint CFD Method Mladen Banovic, ... OpenCASCADE Technology

CAD optimisation loop

CAD, set α

Mesh on CAD

Run primal CFD

Run adjoint CFD

CFD Sensitivity

CAD sensitivity

dJdα = dJ

dXS

dXSdα

FINAL CAD

α(n+1) =A(α(n), dJ

dα (α(n)))

Update CAD αn+1,Surface Movement

Update SurfaceMesh, αn+1

Volume MeshPerturbation

STAMPS solverCFD Solver from QMULDiscrete Adjoint ADSpring/Elasticity AnalogyMesh Perturbation

OCCT ADBuild Shapes (α)Find Mesh on CADParametric Mesh (u, v)Sensitivities in (u, v)

Optimiser

Steepest Descent

Mladen Banovic 12 / 17 15.09.2016

Page 24: Automatic Differentiation of a CAD System applied in an ... · Automatic Differentiation of a CAD System applied in an Adjoint CFD Method Mladen Banovic, ... OpenCASCADE Technology

CAD optimisation loop

CAD optimisation loopGradient verificationsXSensitivities in STAMPS and OCCT were verified with FD

CAD sensitivity comparison

Flow conditionsIncompressible flow, U0 = 8.8, Re=43830, ρ = 1.204kg/m3,µ = 1.813 × 10−5kg/(sm), P = 101300Pa and T = 293.15K

Mladen Banovic 13 / 17 15.09.2016

Page 25: Automatic Differentiation of a CAD System applied in an ... · Automatic Differentiation of a CAD System applied in an Adjoint CFD Method Mladen Banovic, ... OpenCASCADE Technology

Optimisation results

Optimisation resultsCost function:Total pressure lossesbetween inlet/outlet

Designimprovement:16%

Mladen Banovic 14 / 17 15.09.2016

Page 26: Automatic Differentiation of a CAD System applied in an ... · Automatic Differentiation of a CAD System applied in an Adjoint CFD Method Mladen Banovic, ... OpenCASCADE Technology

Optimisation results

Optimisation results (II)

Total pressure

Velocity change

Mladen Banovic 15 / 17 15.09.2016

Page 27: Automatic Differentiation of a CAD System applied in an ... · Automatic Differentiation of a CAD System applied in an Adjoint CFD Method Mladen Banovic, ... OpenCASCADE Technology

Conclusions

Conclusions

Current stateX Differentiated full CAD-systemX Coupled with adjoint CFDX CAD available at each iteration step

Future steps7 Validate derivative calculation of differentiated OCCT by buildingnew test cases.7 Integrate the ADOL-C trace functionality into OCCT in order to usethe reverse mode of AD at appropriate places.

Mladen Banovic 16 / 17 15.09.2016

Page 28: Automatic Differentiation of a CAD System applied in an ... · Automatic Differentiation of a CAD System applied in an Adjoint CFD Method Mladen Banovic, ... OpenCASCADE Technology

Acknowledgements

Research is conducted within IODA1 projectIndustrial Optimal Design using Adjoint CFD

1http://ioda.sems.qmul.ac.uk/ Grant Agreement No. 642959.

Mladen Banovic 17 / 17 15.09.2016