5. Tutorial¶
This chapter provides a sequence of graded tutorials for learning NumBAT, exploring its applications and validating it against literature results and analytic solutions where possible. Before attempting your own calculations with NumBAT, we strongly advise working through the sequence of tutorial exercises which are largely based on literature results.
We will meet a significant number of NumBAT functions in these tutorials, though certainly not all. The full Python interface is documented in the section Python Interface API.
You may then choose to explore relevant examples drawn from a recent tutorial paper by Dr Mike Smith and colleagues, and a range of other literature studies, which are provided in the following two chapters, JOSA-B Tutorial Paper and Additional Literature Examples.
5.1. Some Key Symbols¶
As far as practical we use consistent notation and symbols in the tutorial files. The following list introduces a few commonly encountered ones. Note that with the exception of the free-space wavelength \(\lambda\) and the spatial dimensions of waveguide structures, which are both specified in nanometres (nm), all quantities in NumBAT should be expressed in the standard SI units. For example, elastic frequencies \(\nu\) are expressed in Hz, not GHz.
lambda_nm
This is the free-space optical wavelength \(\lambda\) satisfying \(\lambda = 2\pi c/\omega\), where \(c\) is the speed of light and \(\omega\) is the angular frequency. For convenience, this parameter is specified in nm.
For most examples, we use the conventional value \(\lambda\) =1550 nm.
omega, omega_EM, om_EM
This is the electromagnetic angular frequency \(\omega = 2 \pi c/\lambda\) specified in \(\mathrm{rad.s}^{-1}\).
k, beta, k_EM
This is the electromagnetic wavenumber or propagation constant \(k\) or \(\beta\), specified in \(\mathrm{m}^{-1}\).
neff, n_eff
This is the electromagnetic modal effective index \(\bar{n}=ck/\omega\), which is dimensionless.
nu, nu_AC
This is the acoustic frequency \(\nu\) specified in Hz.
Omega, Omega_AC, Om_AC
This is the acoustic angular frequency \(\Omega = 2 \pi \nu\) specified in \(\mathrm{rad.s}^{-1}\).
q, q_AC
This is the acoustic wavenumber or propagation constant \(q=v_{ac} \Omega\), where \(v_{ac}\) is the phase speed of the wave. The acoustic wavenumber is specified in \(\mathrm{m}^{-1}\).
m
This is an integer corresponding to the mode number \(m\) of an electromagnetic mode \(\vec E_m(\vec r)\) or an acoustic mode \(\vec u_m(\vec r)\).
For both electromagnetic and acoustic modes, counting of modes begins with
m=0
and are ordered by decreasing effective index and increasing frequency respectively.For the electromagnetic problem in which frequency/free-space wavelength is the independent variable, the \(m=0\) mode has the highest effective index \(\bar{n}\) and highest wavenumber \(k\) of any mode for a given angular frequency \(\omega\).
For the acoustic problem, the wavenumber \(q\) is the independent variable and we solve for frequency \(\nu=\Omega/(2\pi)\). The \(m=0\) mode has the lowest frequency \(\nu\) of any mode for a given wavenumber \(q\).
The integer(8) \(m\) therefore has no particular correspondence to the conventional two index mode indices for fibre or rectangular waveguides.
inc_a_x, inc_a_y, inc_b_x, inc_b_y, slab_a_x, slab_a_y,
… etcThese are dimensional parameters specifying the lengths of different aspects of a given structure: rib height, fibre radius etc. For convenience, these parameters are specified in nm.
5.2. Elementary Tutorials¶
We now walk through a number of simple simulations that demonstrate the basic use of NumBAT located in the <NumBAT>/tutorials
directory.
- 5.2.1. Tutorial 2 – SBS Gain Spectra
- 5.2.2. Tutorial 3a – Investigating Dispersion and np.save/np.load
- 5.2.3. Tutorial 3b – Investigating Dispersion and Multiprocessing
- 5.2.4. Tutorial 4 – Parameter Scan of Widths
- 5.2.5. Tutorial 5 – Convergence Study
- 5.2.6. Tutorial 6 – Silica Nanowire
- 5.2.7. Tutorial 7 – Slot Waveguide
- 5.2.8. Tutorial 8 – Slot Waveguide Cover Width Scan
- 5.2.9. Tutorial 9 - Using NumBAT in Jupyter Notebooks
5.3. Intermediate tutorials¶
The next set of tutorials begin to explore some more advanced features.
- 5.3.3. Tutorial 9a – Anisotropic Elastic Materials
- 5.3.4. Tutorial 11 – Two-layered ‘Onion’
- 5.3.5. Tutorial 12 – Validating the calculation of the EM dispersion of a two-layer fibre
- 5.3.6. Tutorial 13 – Validating the calculation of the dispersion of an elastic rod in vacuum
- 5.3.7. Tutorial 14 – Multilayered ‘Onion’
- 5.3.8. Tutorial 15 – Coupled waveguides