Plot the dispersion relation for waveguide

15 views (last 30 days)
Vaclav
Vaclav on 25 Apr 2025
Answered: Ruchika Parag on 5 Jun 2025
Quick disclaimer, this question is focused on electromagnetism/wave optics. So I've been doing some analytical work for my thesis where I'm looking for eigenmodes in infinite slab geometry (dielectric/plasmonic). To characterize the modes, you derive the dispersion relation for them where y axis-angular frequency (omega), x axis-propagation constant (beta). Now, the dispersion relation expression for the dielectric slab is very easy to derive and is present in many different sources. It's a transcendental equation, so I used fimplicit function in MATLAB to plot it, which basically works by creating grid of omegas and betas and then doing contour plot for which the expression is satisfied. When I use a dielectric where the dielectric function is a constant, then the dispersion relation is fine and fits both the expectations and numerical simulations (I do them in COMSOL). The problem appears when I try to plot it for dispersive medium with complex dielectric function. It is most noticable for plasmonic slab, where the dispersion fits the COMSOL data only slightly. I tried a method where I plug in a value of omega and then solve for beta, but that turned out to be very sensitive on the intial guess and gave even worse results at times. As I said, I plot it in MATLAB, but I know how to use both python and Mathematica. I might be doing something wrong or of there is a better way to go about it, I would be happy if you have any advice. Even telling me that some of you tried it and had no problem would at least somewhat help me. Thank you for any answers.

Answers (1)

Ruchika Parag
Ruchika Parag on 5 Jun 2025
Hi @Vaclav, you're encountering a common issue when dealing with dispersive and lossy media like plasmonic slabs. In such materials, the dielectric function ε(ω) is complex and frequency-dependent, leading to complex propagation constants (β) or frequencies (ω). Using MATLAB's 'fimplicit' function assumes both β and ω are real, which doesn't capture the true complex roots of the dispersion relation. This discrepancy explains why your analytical plots align well for constant ε but deviate significantly for plasmonic materials.
Recommendations:
  1. Complex Root-Finding: Fix a real ω and solve for complex β using root-finding methods like fsolve in MATLAB or scipy.optimize.root in Python. Ensure you provide good initial guesses to aid convergence.
  2. Contour Mapping: Plot the magnitude of the dispersion relation |f(β, ω)| over the complex β-plane for fixed ω values. This approach helps visualize where the relation is satisfied (i.e., where |f| ≈ 0).
  3. Use Lossless Solutions as Seeds: Start with solutions from the lossless case (where ε is real) as initial guesses for the lossy scenario. This strategy can improve the stability and accuracy of your root-finding process.
These methods align with practices in computational electromagnetics, where handling complex eigenvalues is essential for accurately modeling wave propagation in lossy and dispersive media.

Categories

Find more on Accelerators & Beams in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!