ALM Cantilever
A cantilever optimised under Additive Layer Manufacturing (ALM) constraints. The MNA continuous formulation arranges design variables in \(N_y = 10\) horizontal layers, each with \(N_p = 5\) printed columns. Linear overhang constraints enforce a 45° self-support angle between adjacent layers.
Running
ggp optimize --preset alm_cantilever
To save the density image:
ggp optimize --preset alm_cantilever --output-dir docs/_static
The preset uses the AMJax FEM solver by default (fem_solver: amjax).
Result
Optimized density field after 150 MMA iterations (40 % volume fraction, 45° overhang limit).
Problem details
Parameter |
Value |
|---|---|
Domain |
60 × 30 |
Mesh |
60 × 30 quads |
Formulation |
ALM 2D (MNA continuous) |
Layers \(N_y\) |
10 |
Columns \(N_p\) |
5 |
Design variables |
\(2 \times 10 \times 5 + 2 \times 5 + 2 = 112\) |
Volume fraction |
0.40 |
Overhang angle |
45° |
Algorithm |
MMA |
Max iterations |
150 |
Variable Structure
Each design variable vector has the layout:
\(h_j\) — normalised total print height of column \(j\)
\(M_{c,j}\) — membership density for the full column
\(y_0\), \(\theta_0\) — global printing-plane offset and rotation (both 0 here)
Overhang constraint (per layer interface, per column):
To add a bridge-length constraint (limiting lateral drift from the base layer):
constraints:
- name: overhang
type: ineq
bound: 0.0
params:
alpha_deg: 45.0
bridge_length: 12.5