Close

A note on cookies

We use cookies to improve your experience of our website. If you want to find out more see our Privacy Policy

Menu

Industrial Optimal Design using Adjoint CFD

People menu

Research Fellows

Chris Kapellos

Early Stage Researcher 15 at Volkswagen

The optimisation framework is based on the OpenFOAM environment. The user provides the default case, which includes the original geometry in STEP or STL file, as well as the primal and adjoint solver settings. The following stages of the optimisation process are then controlled automatically by several scripts:

  1. Meshing

Input to the process is the STEP or STL file of the original geometry, provided by the user. Depending on the test case and the corresponding desirable mesh properties, the computational grid is generated either with ICEM CFD or with snappyHexMesh, an OpenFOAM mesher. In the first case, the resulting mesh is exported in the ANSYS Fluent format (.msh) and is then converted to the OpenFOAM mesh data structure. In the second case, the OpenFOAM case is set up to generate the unstructured mesh with the snappyHexMesh executable. To accelerate the meshing procedure, large cases are decomposed to several processors and meshed in parallel.

  1. Case setup, primal and adjoint simulation

The setup script creates the folder for the corresponding optimisation iteration and copies the necessary input files from the default case, as well as the updated mesh. Then the case is decomposed and the primal and adjoint simulations are run, either locally or at the VW cluster.

  1. Geometry morphing

When the primal and adjoint simulations are completed, a post-processing script prepares the input data for the selected morphing tool. In the case of a decomposed case, the fields of the adjoint sensitivities are reconstructed. Any necessary data, for example face centres or point coordinates, are written to separate files. The gradients of the objective function with respect to the design variables defined by the morphing method are computed and used to update the design variables values, by means of either a steepest descent or a BFGS strategy. If the morphing tool is CAD-based, the new geometry is generated and the displacement of the surface mesh nodes is computed by the CAD kernel. The boundary displacement is then propagated to the interior nodes with the Laplacian equation. By doing so, remeshing is avoided and the mesh remains consistent during the optimisation. In case the mesh quality has considerably deteriorated, a mesh quality optimisation routine, based on a mesh quality metric called Sphericity, is performed.

^ Back to Top