Table of Contents
Fetching ...

Open-source shape optimization for isogeometric shells using FEniCS and OpenMDAO

Han Zhao, John T. Hwang, Jiun-Shyan Chen

TL;DR

GOLDFISH delivers an open-source framework for gradient-based shape optimization of complex isogeometric Kirchhoff-Love shells by integrating NURBS CAD with PENGoLINS-based IGA and OpenMDAO-driven optimization. It uses a penalty-based multi-patch coupling and two strategies for handling patch intersections: a fabrication-friendly FFD approach to preserve intersections and a moving-intersections approach to allow significant geometry changes while maintaining element quality. The framework leverages automatic differentiation and code generation in FEniCS to compute analytical derivatives, enabling efficient adjoint-based sensitivities within a modular OpenMDAO architecture. Demonstrated on benchmarks and aerospace-relevant designs, GOLDFISH reduces objective functions such as the internal energy in arches, T-beams, tubes, and eVTOL wings, while maintaining geometric compatibility and enabling future cross-disciplinary coupling. This work provides a practical, extensible tool for CAD-integrated, high-fidelity shell optimization with potential extensions to aerodynamics, structures, and beyond.

Abstract

We present an open-source Python framework for the shape optimization of complex shell structures using isogeometric analysis (IGA). IGA seamlessly integrates computer-aided design (CAD) and analysis models by employing non-uniform rational B-splines (NURBS) as basis functions, enabling the natural implementation of the Kirchhoff--Love shell model due to their higher order of continuity. We leverage the recently developed FEniCS-based analysis framework, PENGoLINS, for the direct structural analysis of shell structures consisting of a collection of NURBS patches through a penalty-based formulation. This contribution introduces the open-source implementation of gradient-based shape optimization for isogeometric Kirchhoff--Love shells with a modular architecture. Complex shell structures with non-matching intersections are handled using a free-form deformation (FFD) approach and a moving intersections formulation. The symbolic differentiation and code generation capabilities in FEniCS are utilized to compute the analytical derivatives. By integrating FEniCS with OpenMDAO, we build modular components that facilitate gradient-based shape optimization of shell structures. The modular architecture in this work supports future extensions and integration with other disciplines and solvers, making it highly customizable and suitable for a wide range of applications. We validate the design-analysis-optimization workflow through several benchmark problems and demonstrate its application to aircraft wing design optimization. The framework is implemented in a Python library named GOLDFISH (Gradient-based Optimization and Large-scale Design Framework for Isogeometric SHells) and the source code will be maintained at https://github.com/hanzhao2020/GOLDFISH.

Open-source shape optimization for isogeometric shells using FEniCS and OpenMDAO

TL;DR

GOLDFISH delivers an open-source framework for gradient-based shape optimization of complex isogeometric Kirchhoff-Love shells by integrating NURBS CAD with PENGoLINS-based IGA and OpenMDAO-driven optimization. It uses a penalty-based multi-patch coupling and two strategies for handling patch intersections: a fabrication-friendly FFD approach to preserve intersections and a moving-intersections approach to allow significant geometry changes while maintaining element quality. The framework leverages automatic differentiation and code generation in FEniCS to compute analytical derivatives, enabling efficient adjoint-based sensitivities within a modular OpenMDAO architecture. Demonstrated on benchmarks and aerospace-relevant designs, GOLDFISH reduces objective functions such as the internal energy in arches, T-beams, tubes, and eVTOL wings, while maintaining geometric compatibility and enabling future cross-disciplinary coupling. This work provides a practical, extensible tool for CAD-integrated, high-fidelity shell optimization with potential extensions to aerodynamics, structures, and beyond.

Abstract

We present an open-source Python framework for the shape optimization of complex shell structures using isogeometric analysis (IGA). IGA seamlessly integrates computer-aided design (CAD) and analysis models by employing non-uniform rational B-splines (NURBS) as basis functions, enabling the natural implementation of the Kirchhoff--Love shell model due to their higher order of continuity. We leverage the recently developed FEniCS-based analysis framework, PENGoLINS, for the direct structural analysis of shell structures consisting of a collection of NURBS patches through a penalty-based formulation. This contribution introduces the open-source implementation of gradient-based shape optimization for isogeometric Kirchhoff--Love shells with a modular architecture. Complex shell structures with non-matching intersections are handled using a free-form deformation (FFD) approach and a moving intersections formulation. The symbolic differentiation and code generation capabilities in FEniCS are utilized to compute the analytical derivatives. By integrating FEniCS with OpenMDAO, we build modular components that facilitate gradient-based shape optimization of shell structures. The modular architecture in this work supports future extensions and integration with other disciplines and solvers, making it highly customizable and suitable for a wide range of applications. We validate the design-analysis-optimization workflow through several benchmark problems and demonstrate its application to aircraft wing design optimization. The framework is implemented in a Python library named GOLDFISH (Gradient-based Optimization and Large-scale Design Framework for Isogeometric SHells) and the source code will be maintained at https://github.com/hanzhao2020/GOLDFISH.
Paper Structure (20 sections, 31 equations, 16 figures)

This paper contains 20 sections, 31 equations, 16 figures.

Figures (16)

  • Figure 1: An illustrative example of two shell patches with one intersection, where shell patches are described by NURBS surfaces. A topologically 1D, geometrically 2D quadrature mesh is generated in the parametric space to enforce displacement and rotational continuity through a penalty formation.
  • Figure 2: Illustration of the FFD-based shape optimization approach. The intersecting shell patches are embedded in a trivariate B-spline FFD block, whose control points serve as design variables. Modifications to the FFD block shape alter the Lagrange nodal points of the shell patches, while preserving patch intersections. The updated NURBS control points are then obtained from the Lagrange nodal points using Lagrange extraction matrices.
  • Figure 3: Updated design of the intersecting patches from Figure \ref{['fig:shell-coupling']}. The shape of the two shell patches is allowed to change relative to each other, and parametric coordinates of the intersection are determined by solving the implicit equation \ref{['eq:intersection-residual']}.
  • Figure 4: The design of the Python library GOLDFISH and its software dependencies. PENGoLINS is used for structural analysis and OpenMDAO is employed for numerical optimization. Analytical partial derivatives are computed in individual components in GOLDFISH. Both input and output of the software are NURBS-based shell geometries.
  • Figure 5: Component structure for shell shape optimization using the FFD-based approach.
  • ...and 11 more figures

Theorems & Definitions (1)

  • Remark 1