RasmahRasmah

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