Broadband localization of light at the termination of a topological photonic waveguide
Data files
Jan 21, 2025 version files 944.71 MB
-
eigenvalue_positions_arm.mat
425.61 KB
-
eigenvalue_positions_zig.mat
425.05 KB
-
eigfreqs_bykx__3D_supercell_VPC_trivial(type_b)__fillet_0.05__slab_220nm_dlx_0.00_dly_0.10.mat
2.38 KB
-
eigfreqs_bykx__3D_supercell_VPC_trivial(type_d)__fillet_0.05__slab_220nm_dlx_0.00_dly_0.10.mat
2.39 KB
-
eigfreqs_bykx__3D_supercell_VPC_VPC__fillet_0.05__slab_220nm.mat
2.38 KB
-
eigfreqs_bykx__3D_VPC_trivial__armchair_1_interface__fillet_0.05__slab_220nm_dlx_0.00_dly_0.10.mat
3.74 KB
-
f_grid_byxf__armchair_dl_y_0.10.mat
38.91 KB
-
f_grid_byxf__zigzag_dl_y_0.06.mat
43.64 KB
-
f_grid_byxf__zigzag_dl_y_0.14.mat
43.64 KB
-
f_slab_modes__3D_VPC_trivial__armchair_1_interface__fillet_0.05__slab_220nm_dlx_0.00_dly_0.10.mat
2.09 KB
-
f_surface_modes__3D_VPC_trivial__armchair_1_interface__fillet_0.05__slab_220nm_dlx_0.00_dly_0.10.mat
358 B
-
field_f_vs_xy_armchair_s1.0_dl-0.10.npz
32.69 MB
-
field_f_vs_xy_armchair_s1.0_dl0.00.npz
32.69 MB
-
field_f_vs_xy_armchair_s1.0_dl0.10.npz
32.69 MB
-
field_f_vs_xy_armchair_s1.0_dl0.20.npz
32.69 MB
-
field_f_vs_xy_surface_armchair_s1.0_dl0.10.npz
35.34 MB
-
field_f_vs_xy_surface_armchair_s1.0_dl0.20.npz
35.34 MB
-
field_f_vs_xy_surface_zigzag_s1.0_dl0.06.npz
49.69 MB
-
field_f_vs_xy_surface_zigzag_s1.0_dl0.14.npz
49.69 MB
-
field_f_vs_xy_zigzag_s1.0_dl0.06.npz
40.86 MB
-
field_f_vs_xy_zigzag_s1.0_dl0.14.npz
40.86 MB
-
field_xy_armchair_s1.0_dl0.10_197THz.npz
6 MB
-
field_xy_armchair_s1.0_dl0.20_195THz.npz
6 MB
-
field_xy_armchair_s1.0_dl0.20_203THz.npz
6 MB
-
field_xy_zigzag_s1.0_dl0.06_202THz.npz
6 MB
-
field_xy_zigzag_s1.0_dl0.14_194THz.npz
6 MB
-
field_xy_zigzag_s1.0_dl0.14_203THz.npz
60 MB
-
fields__eig2D_2_arm_terminations__nx_100.mat
154.45 MB
-
fields__eig2D_2_zig_terminations__nx_100.mat
290.01 MB
-
freqs_by_n_col__eig2D_2_arm_terminations.mat
9.23 KB
-
freqs_by_n_col__eig2D_2_zig_terminations.mat
9.25 KB
-
freqs_modes_in_bg__eig2D_2_arm_terminations__nx_10.mat
240 B
-
freqs_modes_in_bg__eig2D_2_arm_terminations__nx_100.mat
258 B
-
freqs_modes_in_bg__eig2D_2_arm_terminations__nx_20.mat
208 B
-
freqs_modes_in_bg__eig2D_2_arm_terminations__nx_40.mat
216 B
-
freqs_modes_in_bg__eig2D_2_arm_terminations__nx_60.mat
240 B
-
freqs_modes_in_bg__eig2D_2_arm_terminations__nx_80.mat
250 B
-
freqs_modes_in_bg__eig2D_2_zig_terminations__nx_10.mat
225 B
-
freqs_modes_in_bg__eig2D_2_zig_terminations__nx_100.mat
317 B
-
freqs_modes_in_bg__eig2D_2_zig_terminations__nx_20.mat
239 B
-
freqs_modes_in_bg__eig2D_2_zig_terminations__nx_40.mat
258 B
-
freqs_modes_in_bg__eig2D_2_zig_terminations__nx_60.mat
285 B
-
freqs_modes_in_bg__eig2D_2_zig_terminations__nx_80.mat
290 B
-
inverse_FT_all_modes__armchair_dl_y_0.10_forward_normed.mat
5.30 KB
-
inverse_FT_all_modes__zigzag_dl_y_0.06_forward_normed.mat
5.35 KB
-
inverse_FT_backward_mode__armchair_dl_y_0.10_forward_normed.mat
1.47 KB
-
inverse_FT_backward_mode__zigzag_dl_y_0.06_forward_normed.mat
1.46 KB
-
inverse_FT_forward_mode__armchair_dl_y_0.10_forward_normed.mat
1.46 KB
-
inverse_FT_forward_mode__zigzag_dl_y_0.06_forward_normed.mat
1.46 KB
-
inverse_FT_x_grid_all_modes__armchair_dl_y_0.10_forward_normed.mat
1.85 KB
-
inverse_FT_x_grid_all_modes__zigzag_dl_y_0.06_forward_normed.mat
2.10 KB
-
inverse_FT_x_grid_wg__armchair_dl_y_0.10_forward_normed.mat
530 B
-
inverse_FT_x_grid_wg__zigzag_dl_y_0.06_forward_normed.mat
530 B
-
kx_slab_modes__3D_VPC_trivial__armchair_1_interface__fillet_0.05__slab_220nm_dlx_0.00_dly_0.10.mat
299 B
-
kx_surface_modes__3D_VPC_trivial__armchair_1_interface__fillet_0.05__slab_220nm_dlx_0.00_dly_0.10.mat
274 B
-
norm_E_inplane__armchair_dl_y_0.10_freq_184.09THz.mat
2.08 MB
-
norm_E_inplane__armchair_dl_y_0.10_freq_199.01THz.mat
2.09 MB
-
norm_E_inplane__zigzag_dl_y_0.10_freq_184.09THz.mat
2.10 MB
-
norm_E_inplane__zigzag_dl_y_0.10_freq_192.93THz.mat
2.10 MB
-
norm_E_inplane__zigzag_dl_y_0.10_freq_197.90THz.mat
2.10 MB
-
normEinplanesq_byxf_probe__armchair_dl_y_0.10_forward_normed.mat
3.24 MB
-
normEinplanesq_byxf_probe__zigzag_dl_y_0.06_forward_normed.mat
3.77 MB
-
normEinplanesq_byxf_probe__zigzag_dl_y_0.14_forward_normed.mat
3.78 MB
-
README.md
6.61 KB
-
x_grid__armchair_dl_y_0.10.mat
554.08 KB
-
x_grid__zigzag_dl_y_0.10.mat
752.98 KB
-
x_grid_byxf__armchair_dl_y_0.10.mat
1.09 MB
-
x_grid_byxf__zigzag_dl_y_0.06.mat
1.48 MB
-
x_grid_byxf__zigzag_dl_y_0.14.mat
1.48 MB
-
y_grid__armchair_dl_y_0.10.mat
16.10 KB
-
y_grid__zigzag_dl_y_0.10.mat
18.35 KB
Abstract
Localized optical field enhancement enables strong light-matter interactions necessary for efficient manipulation and sensing of light. Specifically, tunable broadband energy localization in nanoscale hotspots offers a wide range of applications in nanophotonics and quantum optics. We experimentally demonstrate a novel principle for the local enhancement of electromagnetic fields, based on strong suppression of backscattering. This is achieved at a designed termination of a topologically non-trivial waveguide that nearly preserves the valley degree of freedom. The symmetry origin of the valley degree of freedom prevents edge states to undergo intervalley scattering at waveguide discontinuities that obey the symmetry of the crystal. Using near-field microscopy, we reveal that this can lead to strong confinement of light at the termination of a topological photonic waveguide, even without breaking time-reversal symmetry. We emphasize the importance of symmetry conservation by comparing different waveguide termination geometries, confirming that the origin of suppressed backscattering lies with the near-conservation of the valley degree of freedom, and show the broad bandwidth of the effect.
README: Broadband localization of light at the termination of a topological photonic waveguide
https://doi.org/10.5061/dryad.kd51c5bg4
We provide all datasets and code that generate the figures of the paper "Broadband localization of light at the termination of a topological waveguide". Scripts are titled to the figures they refer to in the paper. Some scripts generate multiple panels. Parameter choices are included and should be adjusted accordingly.
Description experimental datasets
Experimental datasets are available as .npz files. These files contain data points of the electric field.
Naming conventions:
- _xy_: Dependency on position (xy).
- _f_vs_xy_: Dependency on frequency (f) and position (xy).
- _armchair_ or _zigzag_: Type of termination.
- _surface_: Type of interface: between VPCs and trivial PhC. (Blank for VPC-VPC interface)
- _s1.0_: Scaling factor of the lattice constant a0. Scaling 1.0 refers to a0 = 449 nm.
- _dl_: Dislocation value. Defines the lattice shift between the VPCs and the trivial PhC.
- _THz_: Frequency of the scan for spatial distribution of the field.
Use NumPy package in python and the following lines to unpack .npz files:
import numpy as np
npzfile = np.load('path_to_file' + 'file.npz', allow_pickle=True)['data']
It will then return n arrays containing the field with n the number of scans/frequencies. The components can be called individually by:
[E, X, Y, wvl] = npzfile[0]
- The shape of the electric field array [E] is [size_y/2, size_x, 1, 2] with (size_y, size_x) the number of pixels measured with the near-field probe. While the probe scans size_y lines in total (forward and backward movement of the tip), we only consider the forward lines due to an otherwise existing offset, hence the number of size_y/2 lines in [E]. The last element contains the fields [Ex, Ey], which are complex.
- X and Y contain positional data points (of the probe) and wvl stores the wavelength of the laser at corresponding measurement.
Description of simulated datasets
Simulated datasets are available as .mat files as generated by MATLAB. The calculated eigenmodes and field distributions are accompanied by arrays of wavevector, frequency or position.
Naming conventions:
- _eigfreqs_bykx_: Eigenfrequencies as a function of wavevector for generating the dispersion relation.
- _VPC_trivial(type_i)_: Surface mode i at the interface between the VPCs and trivial PhC.
- _fillet_: Radius of curvature at corners of hole triangles.
- _slab_: Slab thickness.
- _dlx_ and _dly_: Dislocation value in x- and y-direction. Refers to the lattice shift between the VPCs and trivial PhC.
- _armchair_ or _zigzag_: Type of termination.
- _slab_ or _surface_: Region of material studied.
- _grid_: Arrays with x- or y-positions for plotting field distributions.
- _grid_byxf_: Arrays with x-positions or frequencies for plotting field versus frequency.
- _3D_supercell_ or _eig2D_: Type of simulation in COMSOL (3D or 2D)
- _inverse_FT__: Inverse Fourier transform of type of mode (all, backward or forward) and normalized by the average intensity of only the forward mode.
- _norm_E_inplane__: Normalized by field E. Field distribution at specific frequency freq.
- _nx_: Width of Fabry Perot cavity, by number of lattice constants.
- _normEinplanesq_byxf_: Lines of field intensity as function of position (x) and frequency (f), normalized by the average intensity average of only the forward mode.
Description of code (uploaded to Zenodo)
The scripts generating figures of the paper are available as .py files and use matplotlib for plotting. The code describes which data files are necessary to execute the script.
Definitions of variables used in the code
Abbreviations may slightly vary between scripts.
- dl: Dislocation. The lattice shift (ls) between the VPC lattices and the trivial PhC lattice.
- term: Termination. Zigzag or armchair type.
- freq: Frequency of the laser.
- lattice_const: Lattice constant of the VPCs and the trivial PhC.
- E: Complex fields as a function of probe position.
- field: Intensity of light in the waveuigde.
- X and Y: Array of x- and y-positions of the probe [um]
- dispersion_i: Array of intensity of Fourier Transform of the field as a function of wavector. For surface mode i or for the VPC-VPC edge mode.
- wvl: Wavelenght of the laser.
- wvl_start and wvl_end: Initial and final wavelength of the laser.
- start_index_i and end_index_i: Used for width selection of a scan to obtain surface mode i. The total scan maps the entire VPC-trivial PhC interface, containing both surface modes.
- start_index_VPC and end_index_VPC: Used for width selection of the VPC-VPC interface to obtain the edge mode. Cut off begin and end of waveguide which have strong scattering or localization.
- start_fourier and end_fourier: For selection of well-defined part within the VPC-VPC interface to determine average intensity used for normalization.
- start_index_termination and end_index_termination: For selecting intensity at the termination.
- num: Number of scans. For each scan the laser is tuned to the next wavelength and the two-dimensional raster scan of the probe is repeated.
- reciprocity: Conversion value to switch from unit [1/um] to unit [pi/a0].
- frame: Select a particular scan with certain frequency.
- slope: Slope of VPC-VPC edge mode. Used for selection of k-intervals for the passing window to separate forward and backward modes.
- NSMBG_start and NSMBG_end: Frequency boundaries of the surface mode gap, i.e. maximum frequency of lower surface mode band and minimum frequency of upper surface mode band.
- x_grid and y_grid: Array of x- and y-positions of fields in simulation [um].
- eigfreqs_bykx_i: Array of calculated eigenfrequencies for surface mode i (defined a, c, b, d depending on zigzag/armchair termination) or for VPC-VPC edge mode.
- f_slab_modes and f_surface_modes: Calculated eigenmodes for the armchair termination confined in the slab or on the surface.
- kx_slab and kx_surface: Wavevectors corresponding to the calculated slab/surface eigenmodes of the armchair termination.
- f_grid: Array of frequencies.
- cut_off_freq: Maximum frequency to prevent plotting of high intensity lines that disturb normalization.
Software versions
Python version: 3.9.12\
Anaconda version: conda 4.14.0\
NumPy version: 1.21.5\
Matplotlib version: 3.5.1
Methods
The transversal electric-field components are collected by a near-field probe in a raster scan 20 nm above a photonic crystal. Two detectors pick up the Ex and Ey components and are read-out by two lock-in amplifers that retrieve the real and imaginary part. Custom software reads out all the electric-field components as a function of position of the probe and frequency of our laser in stores it separated files which are later combined in a multi-dimensional array using python.