1. Introduction to NumBAT¶
1.1. Introduction¶
NumBAT, the Numerical Brillouin Analysis Tool, integrates electromagnetic and acoustic mode solvers to calculate the interactions of optical and acoustic waves in waveguides.
1.2. Goals¶
NumBAT is designed primarily to calculate the optical gain response from stimulated Brillouin scattering (SBS) in integrated waveguides. It uses finite element algorithms to solve the electromagnetic and acoustic modes of a wide range of 2D waveguide structures. It can account for photoelastic/electrostriction and moving boundary/radiation pressure effects, as well as arbitrary acoustic anisotropy.
NumBAT also supports user-defined material properties and we hope its creation will drive a community-driven set of standard properties and geometries which will allow all groups to test and validate each other’s work.
A full description of the NumBAT physics and numerical algorithms is available in the article B.C.P Sturmberg at al., “Finite element analysis of stimulated Brillouin scattering in integrated photonic waveguides”, J. Lightwave Technol. 37, 3791-3804 (2019), available at https://dx.doi.org/10.1109/JLT.2019.2920844.
NumBAT is open-source software and the authors welcome additions to the code. Details for how to contribute are available in Contributing to NumBAT.
1.3. Citing NumBAT¶
If you use NumBAT in published work, we would appreciate a citation to B.C.P Sturmberg at al., “Finite element analysis of stimulated Brillouin scattering in integrated photonic waveguides”, J. Lightwave Technol. 37, 3791-3804 (2019), available at https://dx.doi.org/10.1109/JLT.2019.2920844 and https://arxiv.org/abs/1811.10219, and a link to the github page at https://github.com/michaeljsteel/NumBAT.
1.4. Development team¶
NumBAT was developed by Bjorn Sturmberg, Kokou Dossou, Blair Morrison, Chris Poulton and Michael Steel in a collaboration between Macquarie University, the University of Technology Sydney, and the University of Sydney.
We thank Christian Wolff, Mike Smith and Mikolaj Schmidt for contributions.
1.5. Contributing to NumBAT¶
NumBAT is open source software licensed under the GPL with all source and documentation available
at github.com. We welcome additions to NumBAT code, documentation and the materials library. Interested users should fork the standard release from github and make a pull request when ready. For major changes, we strongly suggest contacting the NumBAT team before starting work at michael.steel@mq.edu.au
.
1.6. Support¶
Development of NumBAT has been supported in part by the Australian Research Council under Discovery Projects DP130100832, DP160101691, DP200101893 and DP220100488.
1.7. Release notes¶
1.7.1. Version 2.0¶
A number of API changes have been made in NumBAT 2.0 to tidy up the interface and make plotting and analysis simpler and more powerful. You will need to make some changes to existing files to run in NumBAT 2.0. Your best guide to new capabilities and API changes is to look through the code in the tutorial examples.
- Some key changes you will need to make are as follows:
On Linux, the fortran Makefile is now designed to work with a virtual environment python to avoid dependencies on your system python.
There is a new core NumBAT module
numbat
that should be imported before any other NumBAT modules.It should no longer be necessary to import the
object
orNumbat
(note different case) modules.The first call to any NumBAT code should be to create a NumBAT application object by calling
nbapp = numbat.NumBATApp()
.The default output prefix can now be set as an argument to
numbat.NumBATApp()
. All output can be directed to a sub-folder of the starting directory with a second argument:nbapp = numbat.NumBATApp('tmp', 'tmpdir')
.The waveguide class
Struct
has been renamed toStructure
.A waveguide is now constructed using
nbapp.make_waveguide
rather thanobject.Structure
.The interface for creating materials has changed. You now call the
materials. make_material(
name)
function. For examplematerial_a = materials.make_material('Vacuum')
To access an existing material in an existing
Struture
object (say, in a variable calledwguide
) usewguide.get_material(
label)
For example,mat_a = wguide.get_material('b')
where the allowed labels arebkg
and the lettersa
tor
.The member name for refractive index in a
Material
object has changed fromn
torefindex_n
.The member name for density in a
Material
object has changed fromn
torho
.- Due to a change in parameters, the function
plotting.gain_spectra
is deprecated and replaced byplotting.plot_gain_spectra
with the following changes: The frequency arguments
freq_min
andfreq_max
should now be passed in units of Hz, not GHz.The argument
k_AC
has been removed.
- Due to a change in parameters, the function
In all functions the parameter
prefix_str
has been renamed toprefix
for brevity. Using the default output settings inNumBATApp()
, these should be rarely needed.All waveguides are now specified as individual plugin classes in the files
backend/msh/user_waveguides.json
andbackend/msh/user_meshes.py
. These files provide useful examples of how to design and load new waveguide templates. See the following chapter for more details.
1.8. What does NumBAT actually calculate?¶
- NumBAT performs three main types of calculations given a particular waveguide design:
solve the electromagnetic modal problem using the finite element method (FEM).
solve the elastic modal problem using FEM.
calculate Brillouin gain coefficients and linewidths for a given triplet of two optical and one elastic mode, and use this to generate gain spectra.
Here we specify the precise mathematical problems been solved. For further details, see the NumBAT paper in the Journal of Lightwave Technolgoy at at https://dx.doi.org/10.1109/JLT.2019.2920844.
1.8.1. Electromagnetic modal problem¶
The electromagnetic wave problem is defined by the vector wave equation
where the electric field has the form for modal propagation along \(z\):
and the magnetic field is given by
1.8.2. Elastic modal problem¶
The elastic modal problem is defined by the wave equation
where \(\vec u\) is the elastic displacement and \(\bar{T}=\mathbf{c}(x,y) \bar{S}\) is the stress tensor, defined in terms of the stiffness \(\mathbf{c}\) and the strain tensor \(\bar{S}=S_{ij} = \frac{1}{2}(\frac{\partial U_i}{\partial r_j} + \frac{\partial U_j}{\partial r_i})\).
The displacement has the modal propagation form
For details on how these problems are framed as finite element problems, we refer to https://dx.doi.org/10.1109/JLT.2019.2920844.
1.8.3. Modal properties¶
For propagation in a given mode \(\vec e_n\) or \(\vec U_n\), the optical (\(o\)) and elastic (\(a\)) energy fluxes in Watts and linear energy densities in (J/m) are given by the following expressions
For fields with slowly-varying optical and elastic amplitudes \(a_m(z)\) and \(b_m(z)\), the total carried powers are
Note that in this convention, the amplitude functions \(a_m(z)\) and \(b_m(z)\) are dimensionless and the units of the fields live in the modal functions \(\vec e_n, \vec h_n, \vec U_n\).
1.8.4. SBS gain calculation modal problem¶
The photoelastic and moving boundary couplings in J/m are given by
Then the peak SBS gain \(\Gamma\) is given by
where the total SBS coupling is \(Q_\mathrm{tot} = Q^{(\mathrm{PE})} + Q^{(\mathrm{MB})}\).
Here \(\alpha_t\) is the temporal elastic loss coefficent in \(\mathrm{s}^{-1}\). It is related to the spatial attenuation coefficient by \(\alpha_s = \alpha_t /v_{\mathrm{p}}^{(\mathrm{a})}\) with \(v_{\mathrm{p}}^{(\mathrm{a})}\) being the elastic phase velocity.
In a backward SBS problem, where there is genuine gain in Stokes optical field propagating in the negative \(z\) direction, its power evolves as
1.8.5. SBS equations of motion¶
With the above conventions, the dynamical equations for the slowly-varying amplitudes are
Here we’ve chosen the group velocities to be positive and included the propagation direction explicitly.
1.8.6. Connect these to output quantities from code¶
1.8.7. Equivalent forms of equations¶
TODO: show forms without the normalisation energies and with cubic style effective area.
Compare to some fiber literature and the hydrodynamic reprn.