In 2D, Maxwell decouples into two independent scalar problems. TM has the electric field out of plane (E along z), TE has the magnetic field out of plane. The two polarizations see the same geometry but produce very different band structures, especially for high-contrast rod or hole lattices. Passing a list of polarizations expands the call into a sweep, one BandResult per polarization.
1import blaze
2
3# Pass a list of polarizations to compute both in one sweep.
4results = blaze.solve(
5 lattice_type="square",
6 epsilon_background=1.0,
7 epsilon_atoms=8.9,
8 radius_atom=0.2,
9 polarization=["TM", "TE"],
10 n_bands=8,
11)
12
13for r in results:
14 print(r.polarization, r.freqs[:, 0].max())