Phononic Band-Gap Topology Optimization
Overview
A phononic crystal is a periodic material that blocks elastic waves in a certain frequency band — the band gap. Maximizing the gap between two adjacent eigenfrequencies of the unit cell makes the material a strong wave filter, which is the basis for vibration isolation and acoustic shielding.
The normalized gap between the n-th and (n+1)-th frequencies is
f = 2 (ωₙ₊₁ − ωₙ) / (ωₙ₊₁ + ωₙ)
which is 0 when the modes coincide and → 2 as they separate. Rasmah maximizes f by combining the two modal adjoints.
Opening a band gap
PhononicBandGapTopOpt optimizes the unit cell so the first two elastic modes separate as much as possible:
using Rasmah
m = tetrahedralize_box(1.0, 1.0, 1.0, 3, 3, 3)
bs = box_boundary_sets(m, 1.0, 1.0, 1.0)
fixed = dofs(m, bs[:zmin])
x, hist = solve(PhononicBandGapTopOpt(), m, Material(youngs_modulus=1e3, poisson_ratio=0.3, density=1.0);
fixed = fixed, volfrac = 0.5, n = 1, max_iter = 30)
println("normalized gap ", round(hist[1]; digits = 3), " → ", round(hist[end]; digits = 3))
println("(a more negative objective = a wider gap)")
vtk(m; field = x, fieldname = "density", edges = true)normalized gap -0.044 → -1.994
(a more negative objective = a wider gap)
The objective is −f, so it decreasing means the band gap opened — the final design is a periodic structure with two well-separated first modes.
Next steps
- Eigenfrequency and buckling — moving a single frequency rather than a gap.
- Inverse homogenization — designing periodic cells for stiffness properties.
- Acoustic cavity optimization — the scalar (acoustic) eigenproblem.
