"Silicon Photonics Design – From Devices to Systems", by Lukas Chrostowski and Michael Hochberg, Cambridge Press 2015, https://doi.org/10.1017/CBO9781316084168
Example scripts (Lumerical Solutions, Matlab, Mentor Graphics).
Download a ZIP file of this repository: https://github.com/lukasc-ubc/SiliconPhotonicsDesign/archive/master.zip
Eq. (4.53) should be the average of the effective index values, rather than their difference.
Eq. (4.10c) should be equal to π/2, and Eq. (4.12b) should be equal to i|kappa|^2 (the negative sign should be removed).