skrf.media.rectangularWaveguide.RectangularWaveguide

class skrf.media.rectangularWaveguide.RectangularWaveguide(frequency=None, z0_port=None, z0_override=None, z0=None, a=1, b=None, mode_type='te', m=1, n=0, ep_r=1, mu_r=1, rho=1.724137931034483e-08, roughness=None, model='lomakin', dielectric=None, wall_a=None, wall_b=None, *args, **kwargs)[source]

A single mode of a homogeneously filled rectangular waveguide.

Parameters:
  • frequency (Frequency object) – frequency band of this transmission line medium

  • z0_port (number, array-like, or None) – z0_port is the port impedance for networks generated by the media. If z0_port is not None, the networks generated by the media are renormalized (or in other words embedded) from the characteristic impedance z0 of the media to z0_port. Else if z0_port is None, the networks port impedances will be the raw characteristic impedance z0 of the media. (Default is None)

  • z0_override (number, array-like, or None) – z0_override override the characteristic impedance for the media. If z0_override is not None, the networks generated by the media have their characteristic impedance z0 overridden by z0_override. (Default is None)

  • z0 (number, array-like, or None) – deprecated parameter, alias to z0_override if z0_override is None. Emit a deprecation warning.

  • a (number, optional) – width of waveguide, in meters. Default is 1.

  • b (number or None, optional) – height of waveguide, in meters. If None defaults to a/2. Default is None

  • mode_type (['te','tm']) – mode type, transverse electric (te) or transverse magnetic (tm) to-z. where z is direction of propagation

  • m (int) – mode index in ‘a’-direction

  • n (int) – mode index in ‘b’-direction

  • ep_r (number, array-like,) – filling material’s relative permittivity

  • mu_r (number, array-like) – filling material’s relative permeability

  • rho (number, array-like, string, or None) – resistivity (ohm-m) of the conductor walls. If array-like must be same length as frequency. if str, it must be a key in skrf.data.materials. Default is 1/58e6, the resistivity of annealed copper at 20 °C (100% IACS). Use 0, or None, for perfectly conducting walls.

  • roughness (number, or array-like) – rms roughness of the conductor walls, in meter. It is handed to surface_impedance(), and it applies to any wall whose material does not carry an 'rms_roughness' of its own.

  • model (str, optional) – Model of the loss. ‘lomakin’ (default) is the two-wire model of [1], where the loss of the walls shapes the phase constant as well as the attenuation (agrees better with EM simulations). ‘marcuvitz’ is the power loss method of [2], which is also given by the IEC 60153-2 and IEEE 1785.1 standards and discussed in [3]; it leaves the phase constant at its lossless value. A TM mode, or a mode with both indices nonzero, is not covered by ‘lomakin’ and follows ‘marcuvitz’ instead, which is warned about.

  • dielectric (dict or None, optional) – Material filling the waveguide, as a dict taking the keys 'ep_r' (complex relative permittivity) and 'mu_r' (complex relative permeability), both defaulting to 1. If None (default), the filling is described by parameters ep_r and mu_r.

  • wall_a (dict, list of dict, or None, optional) – Material of the pair of walls of width a. It describes both walls of the pair. A single dict describes a bulk conductor, a list of dict a stack of coatings ordered from the filling inwards, of which the deepest layer is the bulk. Each dict takes the keys 'sigma', 'mu_r' and 'ep_r' of the layer itself, and 'rms_roughness', 'boundary_loc' and 'distribution' of the boundary on top of it, which are handed to surface_impedance(). If None (default), the pair is described by rho and roughness.

  • wall_b (dict, list of dict, or None, optional) – Material of the pair of walls of width b, described in similar way as wall_a. The two pairs are usually of the same material, but would have different effective conductivities, e.g., different roughness due to machining or 3D printed waveguides [4], [5].

  • *args (arguments, keyword arguments) – passed to Media’s constructor (__init__()

  • **kwargs (arguments, keyword arguments) – passed to Media’s constructor (__init__()

Note

The two-wire model is derived for the TE10 mode. It carries over to any TE_m0 and TE_0n mode. It does not carry over to a mode with both indices nonzero.

References

Examples

Most common usage is standard aspect ratio (2:1) dominant mode, TE10 mode of wr10 waveguide can be constructed by

>>> import numpy as np
>>> import skrf as rf
>>> from skrf.constants import mil
>>> from skrf.media import RectangularWaveguide
>>> freq = rf.Frequency(75, 110, 101, unit='ghz')
>>> RectangularWaveguide(freq, a=100*mil)
Rectangular Waveguide Media.  75.0-110.0 GHz.  101 points
 a= 2.54e-03m, b= 1.27e-03m

A WR-12 guide of brass, with the a walls rougher than the b ones, and the attenuation of a 100 mm length of it at 90 GHz:

>>> freq = rf.Frequency(60, 90, 61, unit='GHz')
>>> wr12 = RectangularWaveguide(freq, a=3.0988e-3, b=1.5494e-3,
...     wall_a={'sigma': 0.28*58e6, 'rms_roughness': 1e-6},
...     wall_b={'sigma': 0.28*58e6, 'rms_roughness': 0.4e-6})
>>> print(f"{wr12.line(100, 'mm').s_db[-1, 1, 0]:.3f} dB")
-1.002 dB

A WR-6.5 waveguide (D-band) whose walls carry an ENIG finish, 0.05 um of gold over 4 um of nickel over copper, roughened by 50 nm rms at the outside and by 0.2 um rms at the copper underneath:

>>> enig = [{'sigma': 41.1e6, 'rms_roughness': 50e-9, 'boundary_loc': 0},
...         {'sigma': 14.5e6, 'mu_r': 20, 'rms_roughness': 50e-9, 'boundary_loc': 0.05e-6},
...         {'sigma': 58e6, 'rms_roughness': 0.2e-6, 'boundary_loc': 4.05e-6}]
>>> freq = rf.Frequency(110, 170, 61, unit='GHz')
>>> wr65 = RectangularWaveguide(freq, a=1.6510e-3, b=0.8255e-3,
...                             wall_a=enig, wall_b=enig)
>>> smooth_copper = RectangularWaveguide(freq, a=1.6510e-3, b=0.8255e-3, rho=1/58e6)
>>> np2db = 20*np.log10(np.e)
>>> print(f"{np2db*wr65.gamma[-1].real:.1f} dB/m, against "
...       f"{np2db*smooth_copper.gamma[-1].real:.1f} dB/m for smooth copper")
20.3 dB/m, against 4.6 dB/m for smooth copper

Attributes

Z0

Characteristic Impedance

alpha

Real (attenuation) component of gamma.

alpha_c

Loss of the walls by the power loss method, in Np/m.

beta

Imaginary (propagating) component of gamma.

ep

The permittivity of the filling material.

f_cutoff

cutoff frequency for this mode.

f_norm

Frequency vector normalized to cutoff.

gamma

The propagation constant (aka Longitudinal wave number).

k0

Characteristic wave number.

kc

Cut-off wave number.

kx

Eigenvalue in the 'a' direction.

ky

Eigenvalue in the b direction.

lambda_cutoff

Cutoff wavelength.

lambda_guide

Guide wavelength.

mu

The permeability of the filling material.

npoints

Number of points of the frequency axis.

rho

Resistivity of all four walls in ohm*m.

v_g

Complex group velocity (in m/s).

v_p

Complex phase velocity (in m/s).

z0

Return Characteristic Impedance z0_characteristic.

z0_characteristic

The characteristic impedance, \(z_0\).

z0_override

Port Impedance.

z0_port

Port Impedance.

Methods

__init__

attenuator

Ideal matched attenuator of a given length.

capacitor

Capacitor.

capacitor_q

Capacitor with Q factor.

copy

Copy of this Media object.

delay_load

Delayed load.

delay_open

Delayed open transmission line.

delay_short

Delayed Short.

electrical_length

Calculate the complex electrical length for a given distance.

extract_distance

Determines physical distance from a transmission or reflection Network.

from_z0

Initialize from specified impedance at a given frequency, assuming the fundamental TE10 mode.

get_array_of

impedance_mismatch

Two-port network for an impedance mismatch.

inductor

Inductor.

inductor_q

Inductor with Q factor.

isolator

Two-port isolator.

line

Transmission line of a given length and impedance.

line_floating

Floating transmission line of a given length and impedance.

load

Load of given reflection coefficient.

lossless_mismatch

Lossless, symmetric mismatch defined by its return loss.

match

Perfect matched load (\(\Gamma_0 = 0\)).

mode

Create another mode in this medium.

open

Open (\(\Gamma_0 = 1\)).

plot

random

Complex random network.

resistor

Resistor.

short

Short (\(\Gamma_0 = -1\))

shunt

Shunts a Network.

shunt_capacitor

Shunted capacitor.

shunt_delay_load

Shunted delayed load.

shunt_delay_open

Shunted delayed open.

shunt_delay_short

Shunted delayed short.

shunt_inductor

Shunted inductor.

shunt_resistor

Shunted resistor.

splitter

Ideal, lossless n-way splitter.

tee

Ideal, lossless tee.

theta_2_d

Convert electrical length to physical distance.

thru

Matched transmission line of length 0.

to_meters

Translate various units of distance into meters.

white_gaussian_polar

Complex zero-mean gaussian white-noise network.

write_csv

write this media's frequency, gamma, Z0, and z0 to a csv file.