Survey
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
Just solve this: macroscopic Maxwell’s equations ∂B Faraday: ∇ × E = − ∂t ∂D Ampere: ∇ × H = +J ∂t (nonzero frequency) constitutive equations (here, linear media): D = ε ∗E ∇⋅D = ρ Gauss: ∇⋅B = 0 B = µ ∗H magnetic permeability …usually ≈ µ0 at infrared/visible (λ ~ µm) electric permittivity εr = ε / ε0 = relative permittivity or dielectric constant = n2 (square of refractive index if µ = µ0) ε, µ depend on frequency (dispersion), i.e. * = convolution …negligible for transparent media in narrow bandwidth c2 = 1 / ε0 µ0 theorists: often ε0 = µ0 = 1 and/or εr = ε Building Blocks: “Eigenfunctions” • Want to know what solutions exist in different regions and how they can interact: look for time-harmonic modes ~ e–iωt 1 ∂ ∇ × E = − µ H → iω H ∂t ∂ 0 ∇ × H = ε E + J → −iωε E ∂t 1 2 ∇× ∇× H =ω H ε eigen-operator (Hermitian for lossless/real e!) eigen-value First task: get rid of this mess + constraint ∇⋅H = 0 “eigen-field” Periodic Hermitian Eigenproblems [ G. Floquet, “Sur les équations différentielles linéaries à coefficients périodiques,” Ann. École Norm. Sup. 12, 47–88 (1883). ] [ F. Bloch, “Über die quantenmechanik der electronen in kristallgittern,” Z. Physik 52, 555–600 (1928). ] if eigen-operator is periodic, then Bloch-Floquet solutions: can choose: i ( k ⋅ x −ω t ) H ( x,t) = e H k ( x) planewave periodic “envelope” Corollary 1: k is conserved, i.e. no scattering of Bloch wave Corollary 2: H k given by finite unit cell, so w are discrete ωn(k) Solving the Maxwell Eigenproblem Finite cell è discrete eigenvalues ωn Want to solve for ωn(k), & plot vs. “all” k for “all” n, 1 ωn 2 (∇ + ik) × (∇ + ik) × H n = 2 H n ε c constraint: (∇ + ik ) ⋅ H n = 0 1 0.9 where field = 0.8 0.7 Hn(x) ei(k∙x – ωt) 0.6 0.5 0.4 Photonic Band Gap 0.3 0.2 TM bands 0.1 0 1 Limit range of k: irreducible Brillouin zone 2 Limit degrees of freedom: expand H in finite basis 3 Efficiently solve eigenproblem: iterative methods Solving the Maxwell Eigenproblem: 1 1 Limit range of k: irreducible Brillouin zone —Bloch’s theorem: solutions are periodic in k M first Brillouin zone = minimum |k| “primitive cell” Γ X 2π a ky kx irreducible Brillouin zone: reduced by symmetry 2 Limit degrees of freedom: expand H in finite basis 3 Efficiently solve eigenproblem: iterative methods Solving the Maxwell Eigenproblem: 2a 1 Limit range of k: irreducible Brillouin zone 2 Limit degrees of freedom: expand H in finite basis (N) N H = H(xt ) = ∑ hm bm (x t ) 2 ˆ solve: A H = ω H m=1 finite matrix problem: inner product: f g = ∫ f* ⋅g 3 Ah = ω Bh 2 Galerkin method: Aml = bm Aˆ bl Bml = bm bl Efficiently solve eigenproblem: iterative methods Solving the Maxwell Eigenproblem: 2b 1 Limit range of k: irreducible Brillouin zone 2 Limit degrees of freedom: expand H in finite basis — must satisfy constraint: (∇ + ik) ⋅ H = 0 Planewave (FFT) basis H(x t ) = ∑ HG e Finite-element basis constraint, boundary conditions: iG⋅xt Nédélec elements G constraint: H G ⋅ (G + k) = 0 uniform “grid,” periodic boundaries, simple code, O(N log N) 3 [ Nédélec, Numerische Math. 35, 315 (1980) ] [ figure: Peyrilloux et al., J. Lightwave Tech. 21, 536 (2003) ] nonuniform mesh, more arbitrary boundaries, complex code & mesh, O(N) Efficiently solve eigenproblem: iterative methods Solving the Maxwell Eigenproblem: 3a 1 Limit range of k: irreducible Brillouin zone 2 Limit degrees of freedom: expand H in finite basis 3 Efficiently solve eigenproblem: iterative methods Ah = ω Bh 2 Slow way: compute A & B, ask LAPACK for eigenvalues — requires O(N2) storage, O(N3) time Faster way: — start with initial guess eigenvector h0 — iteratively improve — O(Np) storage, ~ O(Np2) time for p eigenvectors (p smallest eigenvalues) Solving the Maxwell Eigenproblem: 3b 1 Limit range of k: irreducible Brillouin zone 2 Limit degrees of freedom: expand H in finite basis 3 Efficiently solve eigenproblem: iterative methods Ah = ω Bh 2 Many iterative methods: — Arnoldi, Lanczos, Davidson, Jacobi-Davidson, …, Rayleigh-quotient minimization Solving the Maxwell Eigenproblem: 3c 1 Limit range of k: irreducible Brillouin zone 2 Limit degrees of freedom: expand H in finite basis 3 Efficiently solve eigenproblem: iterative methods Ah = ω Bh 2 Many iterative methods: — Arnoldi, Lanczos, Davidson, Jacobi-Davidson, …, Rayleigh-quotient minimization for Hermitian matrices, smallest eigenvalue ω0 minimizes: variational / min–max theorem * h Ah 2 ω 0 = min * h h Bh minimize by preconditioned conjugate-gradient (or…) Band Diagram of 2d Model System (radius 0.2a rods, ε=12) a / λ 0.9 frequency ω (2πc/a) = a 1 0.8 0.7 0.6 0.5 0.4 Photonic Band Gap 0.3 0.2 TM bands 0.1 0 irreducible Brillouin zone M k Γ X Γ TM X E H M Γ gap for n > ~1.75:1 The Iteration Scheme is Important (minimizing function of 104–108+ variables!) * h Ah ω = min * = f (h) h h Bh 2 0 Steepest-descent: minimize (h + α ∇f) over α … repeat Conjugate-gradient: minimize (h + α d) — d is ∇f + (stuff): conjugate to previous search dirs Preconditioned steepest descent: minimize (h + α d) — d = (approximate A-1) ∇f ~ Newton’s method Preconditioned conjugate-gradient: minimize (h + α d) — d is (approximate A-1) [∇f + (stuff)] The Iteration Scheme is Important (minimizing function of ~40,000 variables) 1000000 100000 E 10000 E % error 1000 J Ñ 100 Ñ J 10 1 0.1 0.01 0.001 E E E E EEE EEEE EEEEEE EE E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E Ñ Ñ J E E E E E E E J Ñ E E E E E E E Ñ E J Ñ E E E E E E E E J ÑÑ E E E E E E E J ÑÑ E E E E JJ ÑÑÑÑ E E E E E Ñ E JJJJJ ÑÑÑ E E Ñ Ñ Ñ E Ñ Ñ Ñ Ñ E Ñ Ñ Ñ JJ Ñ Ñ Ñ Ñ Ñ Ñ E Ñ Ñ Ñ Ñ Ñ Ñ E Ñ Ñ Ñ Ñ Ñ E Ñ Ñ JJ Ñ Ñ E Ñ Ñ Ñ E Ñ Ñ Ñ Ñ E Ñ Ñ Ñ E Ñ Ñ Ñ Ñ E Ñ Ñ J Ñ E Ñ Ñ E Ñ Ñ Ñ E E Ñ Ñ Ñ E J Ñ E Ñ Ñ E Ñ E Ñ Ñ E Ñ Ñ E E Ñ Ñ E J Ñ E Ñ E Ñ E Ñ E Ñ E Ñ E Ñ Ñ J Ñ Ñ Ñ Ñ Ñ Ñ Ñ J Ñ Ñ Ñ J J J J J no preconditioning preconditioned conjugate-gradient 0.0001 0.00001 no conjugate-gradient 0.000001 1 10 100 # iterations 1000