EME: Waveguide Crossing

A crossing lets two waveguides pass through each other on one layer. Here two 500 x 220 nm Si wires in SiO2 cross at right angles through two 1x1 multimode interference (MMI) sections that share their middle. Each wire is widened by a taper into an MMI 2 um wide, which images the input back to a narrow spot at its center, where the other MMI crosses it, and again at its far end. The narrow spot sees little of the opening the other MMI makes in its side walls, which is what keeps the loss and the crosstalk low.

Highlighted features: labeled profiles for each cross-section, taper_section between them, a PML on one side wall with the window folded about both mirror planes, and a C-band sweep.

EME solves along one axis, so the example solves the through path. The crossing guide is the section where the silicon runs across the whole window, as the other MMI’s body does where it crosses, and the PML on the side wall absorbs the light that spreads sideways into it. The power that leaves the through path is everything that is neither transmitted in the output’s fundamental mode, reflected, nor carried by the output’s higher-order modes. It is an upper bound on the crosstalk into the crossing guide, since some of it is scattered into the cladding instead. A solve of the crosstalk itself needs the crossing guide’s own ports, which a one-axis EME does not have.

The MMI’s first single image of a centered input forms where its modes 0 and 2 have slipped by \(2\pi\), at \(3 L_\pi / 4\). That estimate uses only two modes, so the example sweeps each MMI half around it. Changing a section’s length solves no new modes. At the best length the crossing passes about 92 % of the light at 1550 nm, reflects about -25 dB, and sends about 6.5 % out of the through path. The example also solves the same MMI without the crossing guide, and it transmits less, not more. The length was chosen with the crossing in place, and the crossing region carries the image differently from the MMI body, so taking it away moves the image off the output. Most of the loss comes from how well the MMI images through the abrupt joints at its two ends, not from the opening in its walls. Across the C band the through loss stays under 0.5 dB.

This code example is licensed under the BSD 3-Clause License.

  • Python
import sys
import numpy as np
import emodeconnection as emc
from matplotlib import pyplot as plt

## An MMI-based waveguide crossing: two 1x1 MMIs at right angles that share
## their middle. A Si wire is widened by a taper into an MMI, which images
## the input back to a narrow spot at its center, where the other MMI crosses
## it, and again at its far end. EME solves along one axis, the through path.
## The crossing guide is the section where the silicon spans the window.

## Set simulation parameters
wavelength = 1550  # [nm] wavelength
dx, dy = 25, 25  # [nm] resolution
h_core = 220  # [nm] silicon thickness
w_wire = 500  # [nm] width of the Si wire
w_access = 900  # [nm] width of the wire where it meets the MMI
taper_length = 2000  # [nm] length of the taper from the wire to the MMI
w_mmi = 2000  # [nm] width of each MMI, and the length of the crossing region
lead = 1000  # [nm] straight wire at the input and output
window_width = w_mmi + 2000  # [nm]
window_height = 2000  # [nm]
num_modes = 30  # [-]
c_band = np.linspace(1530, 1565, 8)  # [nm]

em = emc.EMode(emode_cmd=sys.argv[1:], simulation_name='crossing')

## The crossing is symmetric about both mirror planes, and a centered input
## launches only modes that are even about both, so boundary_condition='TE'
## folds the window to a quarter. A PML on the east wall absorbs what spreads
## sideways in the crossing region, the light that leaves the through path.
em.settings(
    wavelength=wavelength, x_resolution=dx, y_resolution=dy,
    window_width=window_width, window_height=window_height,
    num_modes=num_modes, boundary_condition='TE', pml_NSEW_bool=[False, False, True, False],
    background_material='SiO2')
em.shape(name='core', material='Si', height=h_core, etch_depth=h_core,
         position=[0, window_height / 2], mask=w_wire)
em.label_profile(name='wire')
em.shape(name='core', mask=w_access)
em.label_profile(name='access')
## In the crossing region the other MMI's silicon runs across the whole window
em.shape(name='core', mask=4 * window_width)
em.label_profile(name='crossing')
em.shape(name='core', mask=w_mmi)
em.label_profile(name='mmi')
profiles = ['wire', 'access', 'crossing', 'mmi']

## The folded MMI keeps only its even modes, 0, 2, 4, ... The first single
## image of a centered input forms where modes 0 and 2 have slipped by 2 pi,
## at wavelength / (n_0 - n_2), which is 3 L_pi / 4.
em.FDM(profile='mmi')
n_eff = np.real(np.asarray(em.get('effective_index', profile='mmi')))
image_length = wavelength / (n_eff[0] - n_eff[1])
print(f'MMI self-imaging length 3 L_pi / 4: {image_length:.0f} nm')


def build(half_length, crossed=True):
    """The through path: wire, taper, MMI, crossing region, MMI, taper, wire.

    Each MMI half is `half_length` long from its input to the crossing's
    center, so the image lands in the middle of the crossing region.
    """
    em.straight_section(name='in', profile='wire', length=lead)
    em.taper_section(name='taper_in', profile='wire', profile_end='access', length=taper_length)
    em.straight_section(name='mmi_a', profile='mmi', length=half_length - w_mmi / 2)
    em.straight_section(name='cross', profile='crossing' if crossed else 'mmi', length=w_mmi)
    em.straight_section(name='mmi_b', profile='mmi', length=half_length - w_mmi / 2)
    em.taper_section(name='taper_out', profile='access', profile_end='wire', length=taper_length)
    em.straight_section(name='out', profile='wire', length=lead)


def through(S):
    """Through transmission, reflection, higher-order output modes and what leaves the path."""
    T = np.abs(S.block('right', 'left')[0, 0]) ** 2
    reflected = np.sum(np.abs(S.block('left', 'left')[:, 0]) ** 2)
    higher = np.sum(np.abs(S.block('right', 'left')[1:, 0]) ** 2)
    return T, reflected, higher, 1 - T - reflected - higher


## The image length estimate uses only modes 0 and 2, so the MMI length is
## swept around it. Changing a section's length solves no new modes.
half_lengths = image_length * np.linspace(0.85, 1.1, 26)  # [nm]
T_length = []
for half_length in half_lengths:
    build(half_length)
    T_length.append(through(em.EME())[0])
T_length = np.array(T_length)
best = half_lengths[np.argmax(T_length)]
print(f'best MMI half length: {best:.0f} nm')
print(f'crossing length end to end: {2 * (best + taper_length) / 1000:.2f} um')

## The same MMI without the crossing guide, to separate the crossing's own loss
build(best, crossed=False)
T_mmi, R_mmi, higher_mmi, lost_mmi = through(em.EME())
build(best)
T, R, higher, lost = through(em.EME())
em.plot(component='Ex', plot_function='abs', plane='z-x', view='layout',
        file_name='crossing_field', file_type='png')

print(f'through transmission at {wavelength} nm: {T:.4f} ({10 * np.log10(T):.3f} dB)')
print(f'reflection at {wavelength} nm: {10 * np.log10(R):.1f} dB')
print(f'power in higher-order output modes at {wavelength} nm: {higher:.4f}')
print(f'power that leaves the through path at {wavelength} nm: {lost:.4f} '
      f'({10 * np.log10(lost):.1f} dB)')
print(f'through transmission without the crossing guide: {T_mmi:.4f} '
      f'({10 * np.log10(T_mmi):.3f} dB)')
print(f'power that leaves the path without the crossing guide: {lost_mmi:.4f}')

## The C band. The sections are built on labeled profiles, so the
## wavelength is set on each of them before the solve.
rows = []
for wl in c_band:
    em.settings(wavelength=wl)
    for profile in profiles:
        em.settings(profile=profile, wavelength=wl)
    rows.append(through(em.EME()))
rows = np.array(rows)
em.close()

print(f'\n{"wavelength":>12s}{"T":>10s}{"T (dB)":>10s}{"R (dB)":>10s}{"leaves (dB)":>13s}')
for wl, (T_wl, R_wl, _, lost_wl) in zip(c_band, rows):
    print(f'{wl:>9.0f} nm{T_wl:>10.4f}{10 * np.log10(T_wl):>10.3f}'
          f'{10 * np.log10(R_wl):>10.1f}{10 * np.log10(lost_wl):>13.1f}')
print(f'\nworst through loss in the C band: {-10 * np.log10(rows[:, 0].min()):.3f} dB')
print(f'worst reflection in the C band: {10 * np.log10(rows[:, 1].max()):.1f} dB')

## Plot the transmission against the MMI length, and across the C band
plt.figure(figsize=(6, 3.5))
plt.plot(2 * half_lengths / 1e3, 10 * np.log10(T_length), marker='o', ms=3)
plt.axvline(2 * image_length / 1e3, color='gray', ls='--', label='2 x 3 L$_\\pi$ / 4')
plt.xlabel('MMI length (μm)')
plt.ylabel('Through transmission (dB)')
plt.legend()
plt.grid(True, alpha=0.3)
plt.savefig('crossing_length.png', dpi=300, bbox_inches='tight')

plt.figure(figsize=(6, 3.5))
plt.plot(c_band, 10 * np.log10(rows[:, 0]), marker='o', ms=3, label='through')
plt.plot(c_band, 10 * np.log10(rows[:, 1]), marker='o', ms=3, label='reflection')
plt.plot(c_band, 10 * np.log10(rows[:, 3]), marker='o', ms=3, label='leaves the through path')
plt.xlabel('Wavelength (nm)')
plt.ylabel('Power (dB)')
plt.legend()
plt.grid(True, alpha=0.3)
plt.savefig('crossing_spectrum.png', dpi=300, bbox_inches='tight')

Console output:

EMode3D 1.0.8 - email
Solving modes completed in 1.7 sec
MMI self-imaging length 3 L_pi / 4: 7213 nm

Solving S-matrices...
Solving section: in... completed in 0.0 sec
Solving section: taper_in... completed in 23.4 sec
Solving section: mmi_a... completed in 0.0 sec
Solving section: cross... completed in 0.0 sec
Solving section: mmi_b... completed in 0.0 sec
Solving section: taper_out... completed in 2.2 sec
Solving section: out... completed in 0.0 sec
 completed in 35.1 sec

Solving S-matrices...
Solving section: in... completed in 0.0 sec
Solving section: taper_in... completed in 0.8 sec
Solving section: mmi_a... completed in 0.0 sec
Solving section: cross... completed in 0.0 sec
Solving section: mmi_b... completed in 0.0 sec
Solving section: taper_out... completed in 0.8 sec
Solving section: out... completed in 0.0 sec
 completed in 4.3 sec

Solving S-matrices...
Solving section: in... completed in 0.0 sec
Solving section: taper_in... completed in 0.8 sec
Solving section: mmi_a... completed in 0.0 sec
Solving section: cross... completed in 0.0 sec
Solving section: mmi_b... completed in 0.0 sec
Solving section: taper_out... completed in 0.8 sec
Solving section: out... completed in 0.0 sec
 completed in 4.4 sec

Solving S-matrices...
Solving section: in... completed in 0.0 sec
Solving section: taper_in... completed in 0.8 sec
Solving section: mmi_a... completed in 0.0 sec
Solving section: cross... completed in 0.0 sec
Solving section: mmi_b... completed in 0.0 sec
Solving section: taper_out... completed in 0.8 sec
Solving section: out... completed in 0.0 sec
 completed in 4.5 sec

Solving S-matrices...
Solving section: in... completed in 0.0 sec
Solving section: taper_in... completed in 0.8 sec
Solving section: mmi_a... completed in 0.0 sec
Solving section: cross... completed in 0.0 sec
Solving section: mmi_b... completed in 0.0 sec
Solving section: taper_out... completed in 0.8 sec
Solving section: out... completed in 0.0 sec
 completed in 4.3 sec

Solving S-matrices...
Solving section: in... completed in 0.0 sec
Solving section: taper_in... completed in 0.8 sec
Solving section: mmi_a... completed in 0.0 sec
Solving section: cross... completed in 0.0 sec
Solving section: mmi_b... completed in 0.0 sec
Solving section: taper_out... completed in 0.8 sec
Solving section: out... completed in 0.0 sec
 completed in 4.4 sec

Solving S-matrices...
Solving section: in... completed in 0.0 sec
Solving section: taper_in... completed in 0.8 sec
Solving section: mmi_a... completed in 0.0 sec
Solving section: cross... completed in 0.0 sec
Solving section: mmi_b... completed in 0.0 sec
Solving section: taper_out... completed in 0.8 sec
Solving section: out... completed in 0.0 sec
 completed in 4.3 sec

Solving S-matrices...
Solving section: in... completed in 0.0 sec
Solving section: taper_in... completed in 0.8 sec
Solving section: mmi_a... completed in 0.0 sec
Solving section: cross... completed in 0.0 sec
Solving section: mmi_b... completed in 0.0 sec
Solving section: taper_out... completed in 0.8 sec
Solving section: out... completed in 0.0 sec
 completed in 4.4 sec

Solving S-matrices...
Solving section: in... completed in 0.0 sec
Solving section: taper_in... completed in 0.8 sec
Solving section: mmi_a... completed in 0.0 sec
Solving section: cross... completed in 0.0 sec
Solving section: mmi_b... completed in 0.0 sec
Solving section: taper_out... completed in 0.8 sec
Solving section: out... completed in 0.0 sec
 completed in 4.3 sec

Solving S-matrices...
Solving section: in... completed in 0.0 sec
Solving section: taper_in... completed in 0.8 sec
Solving section: mmi_a... completed in 0.0 sec
Solving section: cross... completed in 0.0 sec
Solving section: mmi_b... completed in 0.0 sec
Solving section: taper_out... completed in 0.8 sec
Solving section: out... completed in 0.0 sec
 completed in 4.3 sec

Solving S-matrices...
Solving section: in... completed in 0.0 sec
Solving section: taper_in... completed in 0.9 sec
Solving section: mmi_a... completed in 0.0 sec
Solving section: cross... completed in 0.0 sec
Solving section: mmi_b... completed in 0.0 sec
Solving section: taper_out... completed in 0.8 sec
Solving section: out... completed in 0.0 sec
 completed in 4.5 sec

Solving S-matrices...
Solving section: in... completed in 0.0 sec
Solving section: taper_in... completed in 0.8 sec
Solving section: mmi_a... completed in 0.0 sec
Solving section: cross... completed in 0.0 sec
Solving section: mmi_b... completed in 0.0 sec
Solving section: taper_out... completed in 0.8 sec
Solving section: out... completed in 0.0 sec
 completed in 4.4 sec

Solving S-matrices...
Solving section: in... completed in 0.0 sec
Solving section: taper_in... completed in 0.8 sec
Solving section: mmi_a... completed in 0.0 sec
Solving section: cross... completed in 0.0 sec
Solving section: mmi_b... completed in 0.0 sec
Solving section: taper_out... completed in 0.8 sec
Solving section: out... completed in 0.0 sec
 completed in 4.3 sec

Solving S-matrices...
Solving section: in... completed in 0.0 sec
Solving section: taper_in... completed in 0.8 sec
Solving section: mmi_a... completed in 0.0 sec
Solving section: cross... completed in 0.0 sec
Solving section: mmi_b... completed in 0.0 sec
Solving section: taper_out... completed in 0.8 sec
Solving section: out... completed in 0.0 sec
 completed in 4.3 sec

Solving S-matrices...
Solving section: in... completed in 0.0 sec
Solving section: taper_in... completed in 0.8 sec
Solving section: mmi_a... completed in 0.0 sec
Solving section: cross... completed in 0.0 sec
Solving section: mmi_b... completed in 0.0 sec
Solving section: taper_out... completed in 0.8 sec
Solving section: out... completed in 0.0 sec
 completed in 4.3 sec

Solving S-matrices...
Solving section: in... completed in 0.0 sec
Solving section: taper_in... completed in 0.8 sec
Solving section: mmi_a... completed in 0.0 sec
Solving section: cross... completed in 0.0 sec
Solving section: mmi_b... completed in 0.0 sec
Solving section: taper_out... completed in 0.8 sec
Solving section: out... completed in 0.0 sec
 completed in 4.2 sec

Solving S-matrices...
Solving section: in... completed in 0.0 sec
Solving section: taper_in... completed in 0.9 sec
Solving section: mmi_a... completed in 0.0 sec
Solving section: cross... completed in 0.0 sec
Solving section: mmi_b... completed in 0.0 sec
Solving section: taper_out... completed in 0.8 sec
Solving section: out... completed in 0.0 sec
 completed in 4.5 sec

Solving S-matrices...
Solving section: in... completed in 0.0 sec
Solving section: taper_in... completed in 0.8 sec
Solving section: mmi_a... completed in 0.0 sec
Solving section: cross... completed in 0.0 sec
Solving section: mmi_b... completed in 0.0 sec
Solving section: taper_out... completed in 0.8 sec
Solving section: out... completed in 0.0 sec
 completed in 4.3 sec

Solving S-matrices...
Solving section: in... completed in 0.0 sec
Solving section: taper_in... completed in 0.8 sec
Solving section: mmi_a... completed in 0.0 sec
Solving section: cross... completed in 0.0 sec
Solving section: mmi_b... completed in 0.0 sec
Solving section: taper_out... completed in 0.8 sec
Solving section: out... completed in 0.0 sec
 completed in 4.3 sec

Solving S-matrices...
Solving section: in... completed in 0.0 sec
Solving section: taper_in... completed in 0.8 sec
Solving section: mmi_a... completed in 0.0 sec
Solving section: cross... completed in 0.0 sec
Solving section: mmi_b... completed in 0.0 sec
Solving section: taper_out... completed in 0.8 sec
Solving section: out... completed in 0.0 sec
 completed in 4.4 sec

Solving S-matrices...
Solving section: in... completed in 0.0 sec
Solving section: taper_in... completed in 0.8 sec
Solving section: mmi_a... completed in 0.0 sec
Solving section: cross... completed in 0.0 sec
Solving section: mmi_b... completed in 0.0 sec
Solving section: taper_out... completed in 0.8 sec
Solving section: out... completed in 0.0 sec
 completed in 4.3 sec

Solving S-matrices...
Solving section: in... completed in 0.0 sec
Solving section: taper_in... completed in 0.8 sec
Solving section: mmi_a... completed in 0.0 sec
Solving section: cross... completed in 0.0 sec
Solving section: mmi_b... completed in 0.0 sec
Solving section: taper_out... completed in 0.8 sec
Solving section: out... completed in 0.0 sec
 completed in 4.3 sec

Solving S-matrices...
Solving section: in... completed in 0.0 sec
Solving section: taper_in... completed in 0.8 sec
Solving section: mmi_a... completed in 0.0 sec
Solving section: cross... completed in 0.0 sec
Solving section: mmi_b... completed in 0.0 sec
Solving section: taper_out... completed in 0.8 sec
Solving section: out... completed in 0.0 sec
 completed in 4.4 sec

Solving S-matrices...
Solving section: in... completed in 0.0 sec
Solving section: taper_in... completed in 0.8 sec
Solving section: mmi_a... completed in 0.0 sec
Solving section: cross... completed in 0.0 sec
Solving section: mmi_b... completed in 0.0 sec
Solving section: taper_out... completed in 0.8 sec
Solving section: out... completed in 0.0 sec
 completed in 4.3 sec

Solving S-matrices...
Solving section: in... completed in 0.0 sec
Solving section: taper_in... completed in 0.8 sec
Solving section: mmi_a... completed in 0.0 sec
Solving section: cross... completed in 0.0 sec
Solving section: mmi_b... completed in 0.0 sec
Solving section: taper_out... completed in 0.8 sec
Solving section: out... completed in 0.0 sec
 completed in 4.3 sec

Solving S-matrices...
Solving section: in... completed in 0.0 sec
Solving section: taper_in... completed in 0.8 sec
Solving section: mmi_a... completed in 0.0 sec
Solving section: cross... completed in 0.0 sec
Solving section: mmi_b... completed in 0.0 sec
Solving section: taper_out... completed in 0.8 sec
Solving section: out... completed in 0.0 sec
 completed in 4.3 sec
best MMI half length: 6996 nm
crossing length end to end: 17.99 um

Solving S-matrices...
Solving section: in... completed in 0.0 sec
Solving section: taper_in... completed in 0.8 sec
Solving section: mmi_a... completed in 0.0 sec
Solving section: cross... completed in 0.0 sec
Solving section: mmi_b... completed in 0.0 sec
Solving section: taper_out... completed in 0.8 sec
Solving section: out... completed in 0.0 sec
 completed in 4.3 sec

Solving S-matrices...
Solving section: in... completed in 0.0 sec
Solving section: taper_in... completed in 0.8 sec
Solving section: mmi_a... completed in 0.0 sec
Solving section: cross... completed in 0.0 sec
Solving section: mmi_b... completed in 0.0 sec
Solving section: taper_out... completed in 0.8 sec
Solving section: out... completed in 0.0 sec
 completed in 7.0 sec
through transmission at 1550 nm: 0.9249 (-0.339 dB)
reflection at 1550 nm: -24.5 dB
power in higher-order output modes at 1550 nm: 0.0067
power that leaves the through path at 1550 nm: 0.0650 (-11.9 dB)
through transmission without the crossing guide: 0.8839 (-0.536 dB)
power that leaves the path without the crossing guide: 0.0878

Solving S-matrices...
Solving section: in... completed in 0.0 sec
Solving section: taper_in... completed in 27.3 sec
Solving section: mmi_a... completed in 0.0 sec
Solving section: cross... completed in 0.0 sec
Solving section: mmi_b... completed in 0.0 sec
Solving section: taper_out... completed in 2.9 sec
Solving section: out... completed in 0.0 sec
 completed in 39.9 sec

Solving S-matrices...
Solving section: in... completed in 0.0 sec
Solving section: taper_in... completed in 25.1 sec
Solving section: mmi_a... completed in 0.0 sec
Solving section: cross... completed in 0.0 sec
Solving section: mmi_b... completed in 0.0 sec
Solving section: taper_out... completed in 2.3 sec
Solving section: out... completed in 0.0 sec
 completed in 38.2 sec

Solving S-matrices...
Solving section: in... completed in 0.0 sec
Solving section: taper_in... completed in 25.3 sec
Solving section: mmi_a... completed in 0.0 sec
Solving section: cross... completed in 0.0 sec
Solving section: mmi_b... completed in 0.0 sec
Solving section: taper_out... completed in 2.3 sec
Solving section: out... completed in 0.0 sec
 completed in 38.2 sec

Solving S-matrices...
Solving section: in... completed in 0.0 sec
Solving section: taper_in... completed in 24.1 sec
Solving section: mmi_a... completed in 0.0 sec
Solving section: cross... completed in 0.0 sec
Solving section: mmi_b... completed in 0.0 sec
Solving section: taper_out... completed in 2.3 sec
Solving section: out... completed in 0.0 sec
 completed in 36.9 sec

Solving S-matrices...
Solving section: in... completed in 0.0 sec
Solving section: taper_in... completed in 23.5 sec
Solving section: mmi_a... completed in 0.0 sec
Solving section: cross... completed in 0.0 sec
Solving section: mmi_b... completed in 0.0 sec
Solving section: taper_out... completed in 1.9 sec
Solving section: out... completed in 0.0 sec
 completed in 35.9 sec

Solving S-matrices...
Solving section: in... completed in 0.0 sec
Solving section: taper_in... completed in 24.2 sec
Solving section: mmi_a... completed in 0.0 sec
Solving section: cross... completed in 0.0 sec
Solving section: mmi_b... completed in 0.0 sec
Solving section: taper_out... completed in 2.2 sec
Solving section: out... completed in 0.0 sec
 completed in 36.7 sec

Solving S-matrices...
Solving section: in... completed in 0.0 sec
Solving section: taper_in... completed in 17.9 sec
Solving section: mmi_a... completed in 0.0 sec
Solving section: cross... completed in 0.0 sec
Solving section: mmi_b... completed in 0.0 sec
Solving section: taper_out... completed in 5.1 sec
Solving section: out... completed in 0.0 sec
 completed in 33.7 sec

Solving S-matrices...
Solving section: in... completed in 0.0 sec
Solving section: taper_in... completed in 16.3 sec
Solving section: mmi_a... completed in 0.0 sec
Solving section: cross... completed in 0.0 sec
Solving section: mmi_b... completed in 0.0 sec
Solving section: taper_out... completed in 1.3 sec
Solving section: out... completed in 0.0 sec
 completed in 28.0 sec
Exited EMode

  wavelength         T    T (dB)    R (dB)  leaves (dB)
     1530 nm    0.8971    -0.471     -24.5        -10.3
     1535 nm    0.9054    -0.432     -25.9        -10.6
     1540 nm    0.9244    -0.341     -24.9        -11.7
     1545 nm    0.9324    -0.304     -24.4        -12.3
     1550 nm    0.9249    -0.339     -24.5        -11.9
     1555 nm    0.9065    -0.426     -25.1        -10.9
     1560 nm    0.8939    -0.487     -26.1        -10.5
     1565 nm    0.8971    -0.471     -27.2        -10.6

worst through loss in the C band: 0.487 dB
worst reflection in the C band: -24.4 dB

Figures:

../_images/crossing_length.png
../_images/crossing_field.png
../_images/crossing_spectrum.png