Credits & Dependencies
The ggp framework relies on a number of high-quality open-source packages. We gratefully acknowledge their developers and communities.
Core Scientific Libraries
Package |
License |
Role |
|---|---|---|
FEniCS ( |
LGPL-3.0 |
Finite Element framework providing mesh generation, function spaces, variational forms (UFL), and PDE solvers. Used for all geometry projections and the linear elasticity solver. |
LGPL-3.0 |
High-level automated differentiation framework for FEniCS. Originally used for shape derivatives, listed for legacy environment compatibility. |
|
PETSc ( |
BSD-2-Clause |
High-performance sparse linear algebra backend. Used for fast global stiffness matrix assembly in CSR format. |
LGPL-3.0 |
Multidisciplinary Design Analysis and Optimization (MDAO) framework. Provides the discipline abstraction, design space management, and scenario orchestration. |
|
LGPL-3.0 |
GEMSEO plugin providing the Method of Moving Asymptotes (MMA) optimizer used for all topology optimization runs. |
|
BSD-3-Clause |
Fundamental array computing library. Used for vectorized geometry mapping, analytic Jacobians, and all numerical computations. |
|
BSD-3-Clause |
Sparse matrix utilities (CSR format) used for stiffness assembly and linear system solving. |
|
AMJax (Boussange, V.) |
MIT |
JAX library bringing algebraic multigrid (AMG) methods to sparse FEM solves. The |
Meshing
Package |
License |
Role |
|---|---|---|
LGPL-3.0 |
FEniCS mesh generation component. Used for creating structured and unstructured meshes from CSG geometries. |
Development & Documentation
Package |
License |
Role |
|---|---|---|
MIT |
Testing framework used for the unit and regression test suite. |
|
MIT |
Code coverage plugin for pytest, used in CI to generate coverage reports. |
|
BSD-2-Clause |
Documentation generator used to build this documentation site. |
|
BSD-3-Clause |
Modern Sphinx theme providing the documentation layout. |
|
MIT |
Sphinx extension for rendering Jupyter notebooks as documentation pages. |
|
BSD-3-Clause |
Interactive notebook environment used for example tutorials. |
|
PSF-based |
2D plotting library used for density and component visualization in examples and post-processing. |
|
MIT |
Nonlinear optimization library, available as an alternative optimizer backend. |
Academic References
This implementation is based on the following publications:
GGP Framework: Coniglio, S., Morlier, J., Gogu, C. et al. Generalized Geometry Projection: A Unified Approach for Geometric Feature Based Topology Optimization. Arch Computat Methods Eng 27, 1573–1610 (2020). DOI:10.1007/s11831-019-09362-8
ALM Extension: Bhat, K.V., Capasso, G., Coniglio, S., Morlier, J., Gogu, C. On some applications of Generalized Geometric Projection to optimal 3D printing. Computers & Graphics (2021).
Original MATLAB Code: GGP-Matlab repository.