Analytical solutions for the half-loaded waveguide
Analytical solutions for the half-loaded waveguide#
The analytical solutions for the half-loaded waveguide with perfect electric conducting walls are described in Harrington’s Time-harmonic electromagnetic fields. We will skip the full derivation, and we just mention that the problem can be decoupled into \(\mathrm{TE}_x\) and \(\mathrm{TM}_x\) modes, and the possible \(k_z\) can be found by solving a set of transcendental equations, which is shown here below:
with:
\(\varepsilon_d\rightarrow\) dielectric permittivity
\(\varepsilon_v\rightarrow\) vacuum permittivity
\(h\rightarrow\) height of the waveguide
\(d\rightarrow\) height of the dielectric
\(k_0\rightarrow\) vacuum wavevector
\(k_{xd}\rightarrow\) \(x\) component of the wavevector in the dielectric
\(k_{xv}\rightarrow\) \(x\) component of the wavevector in the vacuum
\(\frac{n \pi}{b} = k_y\rightarrow\) \(y\) component of the wavevector for different \(n\) harmonic numbers
Let’s define the set of equations with the \(\tan\) and \(\cot\) function:
import numpy as np
def TMx_condition(kx_d, kx_v, eps_d, eps_v, d, h):
return (kx_d / eps_d * np.tan(kx_d * d)
+ kx_v / eps_v * np.tan(kx_v * (h - d)))
def TEx_condition(kx_d, kx_v, d, h):
return kx_d / np.tan(kx_d * d) + kx_v / np.tan(kx_v * (h - d))
Then, we can define the verify_mode
function, to check whether a certain
\(k_z\) satisfy the equations (below a certain threshold):
def verify_mode(
kz, w, h, d, lmbd0, eps_d, eps_v, threshold):
k0 = 2 * np.pi / lmbd0
n = 1
ky = n * np.pi / w
kx_d_target = np.sqrt(k0**2 * eps_d - ky**2 + - kz**2 + 0j)
alpha = kx_d_target**2
beta = alpha - k0**2 * (eps_d - eps_v)
kx_v = np.sqrt(beta)
kx_d = np.sqrt(alpha)
f_tm = TMx_condition(kx_d, kx_v, eps_d, eps_v, d, h)
f_te = TEx_condition(kx_d, kx_v, d, h)
return np.isclose(
f_tm, 0, atol=threshold) or np.isclose(
f_te, 0, atol=threshold)