ExamplesMeep Examples
MPB Triangular Holes
Compute complete photonic band gap in triangular lattice of air holes
MPB Triangular Lattice Band Structure
This example computes the photonic band structure for a triangular lattice of air holes in a dielectric, demonstrating a complete photonic band gap (gap in both TE and TM polarizations).
Overview
Triangular hole lattices are important because:
- Complete band gap: Gap for all polarizations and directions
- Practical fabrication: Easier to etch holes than rods
- Photonic crystal fibers: Hollow-core guidance
- 2D slab waveguides: Silicon photonics
A complete band gap occurs when the TE and TM gaps overlap. This requires careful optimization of the hole radius and dielectric contrast.
Parameters
| Parameter | Value | Description |
|---|---|---|
r | 0.45 | Hole radius (optimal for complete gap) |
eps | 12 | Dielectric constant (Si-like) |
resolution | 32 | Grid resolution |
num_bands | 8 | Number of bands |
Triangular Lattice
The lattice vectors for a triangular lattice:
- basis1: (√3/2, 1/2)
- basis2: (√3/2, -1/2)
K-Point Path
High-symmetry path through the hexagonal Brillouin zone:
- Γ → M → K → Γ
Code Structure
from meep import mpb
import math
# Triangular lattice
geometry_lattice = mp.Lattice(
size=mp.Vector3(1, 1),
basis1=mp.Vector3(math.sqrt(3) / 2, 0.5),
basis2=mp.Vector3(math.sqrt(3) / 2, -0.5),
)
# Air hole in dielectric
geometry = [mp.Cylinder(r=0.45, material=mp.air)]
default_material = mp.Medium(epsilon=12)
ms = mpb.ModeSolver(
geometry_lattice=geometry_lattice,
geometry=geometry,
default_material=default_material,
k_points=k_points,
resolution=32,
num_bands=8,
)
ms.run_te()
ms.run_tm()Band Gap Analysis
For r=0.45 and ε=12:
- TE gap: Between bands 1-2
- TM gap: Overlaps with TE gap
- Complete gap: Non-zero gap-midgap ratio
Related Examples
- MPB Square Rods - Square lattice
- Holey Waveguide Bands - Waveguide in photonic crystal