| 1. Methods used in the determination of the core film refractive index, ncore | 
| Constructor |  | public  GratingCoupler() | 
| Enter core thickness/es and coupling angle/s | Enter TE mode data for a single measurement | public void  enterTEmodeData(double  thickness, double couplingAngle, double modeNumber) | 
| public void  enterTEmodeData(double  thickness, double couplingAngle, double error, double modeNumber) | 
| Enter TM mode data for a single measurement | public void  enterTMmodeData(double  thickness, double couplingAngle, double modeNumber) | 
| public void  enterTMmodeData(double  thickness, double couplingAngle, double error, double modeNumber) | 
| Enter TE mode data for a range of core thicknesses | public void  enterTEmodeData(double[]  thicknesses, double[] couplingAngles, double[] modeNumbers) | 
| public void  enterTEmodeData(double[]  thicknesses, double[] couplingAngles, double[] errors, double[] modeNumbers) | 
| Enter TM mode data for a range of core thicknesses | public void  enterTMmodeData(double[]  thicknesses, double[] couplingAngles, double[] modeNumbers) | 
| public void  enterTMmodeData(double[]  thicknesses, double[] couplingAngles, double[] errors, double[] modeNumbers) | 
| Wavelength | Set the wavelength | public void  setWavelength(double wavelength) | 
| Grating | Set the grating pitch, Λ | public void  setGratingPitch(double pitch) | 
| Enter the TE mode grating orders, m | public void  setTEmodeGratingOrder(int[] order) | 
| Enter the TM mode grating orders, m | public void  setTMmodeGratingOrder(int[] order) | 
| Set Refractive Indices | Set substrate refractive index | public void  setSubstrateRefractiveIndex(double refractiveIndex) | 
| Set superstrate refractive index | public void  setSuperstrateRefractiveIndex(double refractiveIndex) | 
| Calculated Core Refractive Index | Get mean refractive index of the core layer | public double getCoreFilmRefractiveIndex() | 
| public double getMeanCoreFilmRefractiveIndex() | 
| Get standard deviation of the mean refractive index of the core layer | public double getStandardDeviationCoreFilmRefractiveIndex() | 
|  |  | 
| Get mean TE mode refractive index of the core layer | public double getMeanTEmodeCoreFilmRefractiveIndex() | 
| Get standard deviation of the mean TE mode refractive index of the core layer | public double getStandardDeviationTEmodeCoreFilmRefractiveIndex() | 
|  |  | 
| Get mean TM mode refractive index of the core layer | public double getMeanTMmodeCoreFilmRefractiveIndex() | 
| Get standard deviation of the mean TM mode refractive index of the core layer | public double getStandardDeviationTMmodeCoreFilmRefractiveIndex() | 
|  |  | 
| Get the TE mode refractive indices for the core layer thicknesses | public double[] getTEmodeCoreFilmRefractiveIndices() | 
| Get the TM mode refractive indices for the core layer thicknesses | public double[] getTMmodeCoreFilmRefractiveIndices() | 
| Effective refractive indices | Get the TE mode experimental effective refractive indices | public double[][] getTEmodeExperimentalEffectiveRefractiveIndices() | 
| Get the errors in the TE mode experimental effective refractive indices | public double[][] getTEmodeEffectiveRefractiveIndicesErrors() | 
| Get the TM mode experimental effective refractive indices | public double[][] getTMmodeExperimentalEffectiveRefractiveIndices() | 
| Get the errors in the TM mode experimental effective refractive indices | public double[][] getTMmodeEffectiveRefractiveIndicesErrors() | 
| Get the TE mode calculated effective refractive indices | public double[][] getTEmodeCalculatedEffectiveRefractiveIndices() | 
| Get the TM mode calculated effective refractive indices | public double[][] getTMmodeCalculatedEffectiveRefractiveIndices() | 
| Plot fitted dispersion curve |  | public void plotFittedDispersionCurves(String graphTitle) | 
|  | public void plotFittedDispersionCurves() | 
| 2. Methods used in calculating the superstrate (analyte solution) refractive index, 
nsuperstrate
 | 
| Constructor |  | public  GratingCoupler() | 
| Enter core thickness/es and coupling angle/s | Enter TE mode data for a single measurement | public void  enterTEmodeData(double  thickness, double couplingAngle, double modeNumber) | 
| public void  enterTEmodeData(double  thickness, double couplingAngle, double error, double modeNumber) | 
| Enter TM mode data for a single measurement | public void  enterTMmodeData(double  thickness, double couplingAngle, double modeNumber) | 
| public void  enterTMmodeData(double  thickness, double couplingAngle, double error, double modeNumber) | 
| Enter TE mode data for a range of core thicknesses | public void  enterTEmodeData(double[]  thicknesses, double[] couplingAngles, double[] modeNumbers) | 
| public void  enterTEmodeData(double[]  thicknesses, double[] couplingAngles, double[] errors, double[] modeNumbers) | 
| Enter TM mode data for a range of core thicknesses | public void  enterTMmodeData(double[]  thicknesses, double[] couplingAngles, double[] modeNumbers) | 
| public void  enterTMmodeData(double[]  thicknesses, double[] couplingAngles, double[] errors, double[] modeNumbers) | 
| Wavelength | Set the wavelength | public void  setWavelength(double wavelength) | 
| Grating | Set the grating pitch, Λ | public void  setGratingPitch(double pitch) | 
| Enter the TE mode grating orders, m | public void  setTEmodeGratingOrder(int[] order) | 
| Enter the TM mode grating orders, m | public void  setTMmodeGratingOrder(int[] order) | 
| Set Refractive Indices | Set substrate refractive index | public void  setSubstrateRefractiveIndex(double refractiveIndex) | 
| Set core film refractive index | public void  setCoreLayerRefractiveIndex(double refractiveIndex) | 
| Calculated Superstrate Index | Get mean refractive index of the superstrate (analyte solution) | public double getSuperstrateRefractiveIndex() | 
| public double getAnalyteSolutionRefractiveIndex() | 
| Get standard deviation of the refractive index of the superstrate (analyte solution) | public double getStandardDeviationSuperstrateRefractiveIndex() | 
| public double getStandardDeviationAnalyteSolutionRefractiveIndex() | 
| 3. Methods used in calculating and plotting a theoretical effective refractive index, 
neff,  versus core thickness, d, dispersion curve
 | 
| Constructor |  | public  GratingCoupler() | 
| Wavelength | Set the wavelength | public void  setWavelength(double wavelength) | 
| Set Refractive Indices | Set substrate refractive index | public void  setSubstrateRefractiveIndex(double refractiveIndex) | 
| Set superstrate refractive index | public void  setSuperstrateRefractiveIndex(double refractiveIndex) | 
| Set core film refractive index | public void  setCoreLayerRefractiveIndex(double refractiveIndex) | 
| Theoretical dispersion curve | Calculate theoretical TE mode dispersion curve | public double[][] dispersionCurveTE(double lowThickness, double highThickness, int numberOfPoints, double modeNumber) | 
| Calculate theoretical TM mode dispersion curve | public double[][] dispersionCurveTM(double lowThickness, double highThickness, int numberOfPoints, double modeNumber) | 
| Plot theoretical TE mode dispersion curve | public double[][] plotDispersionCurveTE(double lowThickness, double highThickness, int numberOfPoints, double modeNumber,  String graphTitle) | 
public double[][] plotDispersionCurveTE(double lowThickness, double highThickness, int numberOfPoints, double modeNumber) | | Plot theoretical TM mode dispersion curve | public double[][] plotDispersionCurveTM(double lowThickness, double highThickness, int numberOfPoints, double modeNumber,  String graphTitle) | 
public double[][] plotDispersionCurveTM(double lowThickness, double highThickness, int numberOfPoints, double modeNumber) |