Michael Thomas Flanagan's Java Scientific Library

Reflectivity Class:      Reflection of electromagnetic waves from multilayers

     

Last update: 7 July 2008
Main Page of Michael Thomas Flanagan's Java Scientific Library

This class calculates:
       Reflectivity        Transmissivity
       TE mode reflection coefficient        TM mode reflection coefficient
       TE mode transmission coefficient        TM mode transmission coefficient
       TE mode reflection phase shift        TM mode reflection phase shift
       TE mode transmission phase shift        TM mode transmission phase shift
       Evanescent field intensity (for total internal reflection)        Evanescent field penetration depth (for total internal reflection)
       Wave vector ko        Wave vectors ki
       Wave vectors kx,i        Wave vector kz
       Angle of the transmitted beam θr        Power loss on transmission
for a plane electromagnetic wave incident upon a thin multilayer:



i.e. a thin multilayer of m layers, where m includes the two outer semi-infinte layers (layer 1 and layer m), each layer characterised by a thickness, di, and a refractive index, which if the layer is absorbing will be complex, ni = n'i - jn''i [j is used, in this document, to represent the square root of minus one and asterisk superscript * is used to indicate a complex conjugate] and a relative magnetic permeability, μi = μ'i - jμ''i [default values set to unity]. If the layer is absorbing the absorption term may be entered as the imaginary part of the complex refractive index, i.e. as n''i, or as the absorption coefficient, αi, where n''i = αi/(4πλ) and λ is the wavelength of the incident wave. The refractive indices of some common glasses, air, water and aqueous solutions of sodium chloride, sucrose and polyvinyl alcohol and of the metals gold and silver [allowing this Reflectivity class to be used in surface plasmon resonance simulations], may be obtained using methods in the class RefractiveIndex.
The incident electomagnetic radiation, of wavelength λ [in vacuo] and frequency, ν, is assumed to be a plane wave which may be
The reflection may be modelled for:
The methods implement the matrix procedure for calculating reflection from and transmission across multilayers as described in:
Eugene Hecht, Optics, Addison Wesley, San Fransisco, 2002, pp425-428
Max Born and Emil Wolf, Principles of Optics, Pergamon Press, London, 1975, 5th Edition, pages 36-41 and 51-62
using the following convention:


The reflection coefficient, r, is given by

and the transmission coefficient, t, by

where m00, m01, m10 and m11 are the elements of the matrix, M

where


and the subscript i is the layer number.

Import directive: import flanagan.optics.Reflectivity;

SUMMARY OF CONSTRUCTOR AND METHODS

Constructor   public Refractivity(int numberOfLayers)
Polarisation Mode Set Polarisation Mode public void setMode(String mode)
public void setMode(double angle)
Get Fraction in TE Mode public double fractionInTEmode()
Get Fraction in TM Mode public double fractionInTMmode()
Thicknesses d Set thicknesses public void setThicknessses(double[ ] thicknesses)
public void setThicknesses(double thickness, int layerNumber)
Get thicknesses public double [] getThicknesses()
Incident Angle/s θo Set a single angle, θo public void setIncidentAngle(double angle)
Set a range of angles, θo public void setIncidentAngle(double[] angles)
public void setIncidentAngle(double lowAngle, double highAngle, int numberOfAngles)
Get incident angles public double [] getIncidentAngles()
Wavelength/s
or
Frequency / Frequencies

λ or ν
Set a single wavelength public void setWavelength(double wavelength)
Set a single frequency public void setFrequency(double frequency)
Set a range of wavelengths public void setWavelength(double[ ] wavelengths)
public void setWavelength(double lowWavelength, double highWavelength, int numberOfWavelengths)
Set a range of frequencies public void setFrequency(double[ ] frequencies)
public void setFrequency(double lowFrequency, double highFrequency, int numberOfFrequencies)
Get wavelengths public double [] getWavelengths()
Get frequencies public double [] getFrequencies()
Get radial frequencies public double [] getRadialFrequencies()
Refractive Indices Set for a single wavelength and all layers public void setRefractiveIndices(Complex[ ] refractiveIndices)
public void setRefractiveIndices(double[ ] refractiveIndices)
Set for a single wavelength and one of the layers public void setRefractiveIndices(Complex refractiveIndices, int layerNumber)
public void setRefractiveIndices(double refractiveIndices, int layerNumber)
Set for a range of wavelengths and all the layers public void setRefractiveIndices(Complex[ ][ ] refractiveIndices)
public void setRefractiveIndices(double[ ][ ] refractiveIndices)
Set for a range of wavelengths and one of the layers public void setRefractiveIndices(Complex[ ] refractiveIndices, int layerNumber)
public void setRefractiveIndices(double[ ] refractiveIndices, int layerNumber)
Get refractive indices public Object [] getRefractiveIndices()
Absorption Coefficients
default option = 0.0
Set for a single wavelength and all the layers public void setAbsorptionCoefficients(double[ ] absorptionCoefficients)
Set for a single wavelength and one of the layers public void setAbsorptionCoefficients(Complex absorptionCoefficients, int layerNumber)
Set for a range of wavelengths and all the layers public void setAbsorptionCoefficients(Complex[ ] [ ] absorptionCoefficients)
Set for a range of wavelengths and one of the layers public void setAbsorptionCoefficients(Complex[ ] absorptionCoefficients, int layerNumber)
Get absorption coefficients public Object [] getRefractiveIndices()
Relative Magnetic Permeabilities
default option = 1.0
Set for a single wavelength and all layers public void setRelativeMagneticPermeabilites(Complex[ ] relativeMagneticPermeabilites)
public void setRelativeMagneticPermeabilites(double[ ] relativeMagneticPermeabilites)
Set for a single wavelength and one of the layers public void setRelativeMagneticPermeabilites(Complex relativeMagneticPermeabilites, int layerNumber)
public void setRelativeMagneticPermeabilites(double relativeMagneticPermeabilites, int layerNumber)
Set for a range of wavelengths and all the layers public void setRelativeMagneticPermeabilites(Complex[ ][ ] relativeMagneticPermeabilites)
public void setRelativeMagneticPermeabilites(double[ ][ ] relativeMagneticPermeabilites)
Set for a range of wavelengths and one of the layers public void setRelativeMagneticPermeabilites(Complex[ ] relativeMagneticPermeabilites, int layerNumber)
public void setRelativeMagneticPermeabilites(double[ ] relativeMagneticPermeabilites, int layerNumber)
Get relative magnetic permeabilities public Object [] getRefractiveIndices()
Reflectivities Get the reflectivities public Object getReflectivities()
Plot the reflectivities public void plotReflectivities(String graphTitle)
public void plotReflectivities()
Transmissivities Get the transmissivities public Object getTransmissivities()
Plot the transmissivities public void plotTransmissivities(String graphTitle)
public void plotTransmissivities()
Power losses Get the power losses public Object getPowerLosses()
Plot the power losses public void plotPowerLosses(String graphTitle)
public void plotPowerLosses()
Transmission angles θt Get the transmission angles, θt public Object getTransmissionAnglesInDegrees()
public Object getTransmissionAnglesInRadians()
Plot the transmissionAngles, θt public void plotTransmissitionAngles(String graphTitle)
public void plotTransmissionAngles()
Reflection coefficients Get the TE reflection coefficients public Object getTEreflectionCoefficients()
Plot the absolute values of the TE reflection coefficients public void plotAbsTEreflectionCoefficients(String graphTitle)
public void plotAbsTEreflectionCoefficients()
Get the TM reflection coefficients public Object getTMreflectionCoefficients()
Plot the absolute values of the TM reflection coefficients public void plotAbsTMreflectionCoefficients(String graphTitle)
public void plotAbsTMreflectionCoefficients()
Transmission coefficients Get the TE transmission coefficients public Object getTEtransmissionCoefficients()
Plot the absolute values of the TE transmission coefficients public void plotAbsTEtransmissionCoefficients(String graphTitle)
public void plotAbsTEtransmissionCoefficients()
Get the TM transmission coefficients public Object getTMtransmissionCoefficients()
Plot the absolute values of the TM transmission coefficients public void plotAbsTMtransmissionCoefficients(String graphTitle)
public void plotAbsTMtransmissionCoefficients()
Phase shifts Get the TE reflection phase shifts public Object getTEreflectionPhaseShiftDeg()
public Object getTEreflectionPhaseShiftRad()
Plot the TE reflection phase shifts public void plotTEreflectionPhaseShiftDeg(String graphTitle)
public void plotTEreflectionPhaseShiftDeg()
public void plotTEreflectionPhaseShiftRad(String graphTitle)
public void plotTEreflectionPhaseShiftRad()
Get the TM reflection phase shifts public Object getTMreflectionPhaseShiftDeg()
public Object getTMreflectionPhaseShiftRad()
Plot the TM reflection phase shifts public void plotTMreflectionPhaseShiftDeg(String graphTitle)
public void plotTMreflectionPhaseShiftDeg()
public void plotTMreflectionPhaseShiftRad(String graphTitle)
public void plotTMreflectionPhaseShiftRad()
Get the TE transmission phase shifts public Object getTEtransmissionPhaseShiftDeg()
public Object getTEtransmissionPhaseShiftRad()
Plot the TE transmission phase shifts public void plotTEtransmissionPhaseShiftDeg(String graphTitle)
public void plotTEtransmissionPhaseShiftDeg()
public void plotTEtransmissionPhaseShiftRad(String graphTitle)
public void plotTEtransmissionPhaseShiftRad()
Get the TM transmission phase shifts public Object getTMtransmissionPhaseShiftDeg()
public Object getTMtransmissionPhaseShiftRad()
Plot the TM transmission phase shifts public void plotTMtransmissionPhaseShiftDeg(String graphTitle)
public void plotTMtransmissionPhaseShiftDeg()
public void plotTMtransmissionPhaseShiftRad(String graphTitle)
public void plotTMtransmissionPhaseShiftRad()
Evanescent Field Intensities Get the Evanescent Field Intensities public Object getEvanescentFields()
public Object getEvanescentFields(double distanceIntoField)
Plot the Evanescent Field Intensities public void plotEvanescentFields(String graphTitle)
public void plotEvanescentFields(double distanceIntoField, String graphTitle)
public void plotEvanescentFields()
public void plotEvanescentFields(double distanceIntoField)
Evanescent Field Penetration Depths Get the Evanescent Field Penetration Depths public Object getPenetrationDepths()
Plot the Evanescent Field Penetration Depths public void plotPenetrationDepths(String graphTitle)
public void plotPenetrationDepths()
Wave Vectors Get the wave vector, ko public Object getKoVectors()
Get the wave vector, k public Object getKvectors()
Get the wave vector, kx public Object getKxVectors()
Get the wave vector, kz public Object getKzVectors()



CONSTRUCTOR
public Reflectivity(int numberOfLayers)
Usage:                      Reflectivity refl = new Reflectivity(nLayers);
Creates an instance of Reflectivity for a thin multilayer of nLayers layers where nLayers includes the two outer semi-infinte layers (layer 1 and layer nLayers).



POLARISATION MODE
Setting the Polarisation Mode
public void setMode(String mode)
public void setMode(double mode)
Usage:                      refl.setMode(mode);
The mode may be set to:

Getting the fraction of the electromagnetic wave in the TE Mode
public double fractionInTEmode()
Usage:                      teFract = refl.fractionInTEmode();
Returns the fraction of the electromagnetic wave in the TE mode if an electric vector angle lying between the TE and TM mode angles has been set.
Returns 1.0 if the poloarisation mode has been set to TE.
Returns 0.0 if the poloarisation mode has been set to TM.
Returns 0.5 if the poloarisation mode has been set to unpolarised.


Getting the fraction of the electromagnetic wave in the TM Mode
public double fractionInTMmode()
Usage:                      tmFract = refl.fractionInTMmode();
Returns the fraction of the electromagnetic wave in the TM mode if an electric vector angle lying between the TE and TM mode angles has been set.
Returns 1.0 if the poloarisation mode has been set to TM.
Returns 0.0 if the poloarisation mode has been set to TE.
Returns 0.5 if the poloarisation mode has been set to unpolarised.




LAYER THICKNESSES
SETTING THE LAYER THICKNESSES
Setting all the layer thicknesses
public void setThicknesses(double[ ] thicknesses)
Usage:                      refl.setThicknesses(thicknesses);
The thicknesses, in metres, are entered as the array of doubles, thicknesses in the above usage, of length, n = m-2 [m = total number of layers including the two outer semi-infinte layers]. The first element, thicknesses[0], is layer 2 thickness in the diagram at the head of this page, the second, thicknesses[1], is layer 3 thickness in the diagram and so on to thicknesses[n-1], which is layer m-1 thickness.

Resetting the thickness of an individual layer
public void setThicknesses(double thickness, int layerNumber)
Usage:                      refl.setThicknesses(thickness, layerNumber);
Resets the thickness of layer i using the layer numbering system in the diagram at the head of this page. The new thickness, in metres, is entered as the argument, thickness in the above usage, and the layer number as the argument layerNumber

GETTING THE THICKNESSES
public double [] getThicknesses()
Usage:                     double [] thicknesses = refl.getThicknesses();
Returns the thicknesses, di, in metres, as an array of doubles.



INCIDENT ANGLES
SETTING THE INCIDENT ANGLE/S
Setting the angle for reflectivity calculation/s at a single angle
public void setIncidentAngles(double angle)
Usage:                      refl.setIncidentAngles(angle);
The incident angle, measured from the normal to the reflecting surface, θo in the diagram at the head of this page, is entered, in degrees as the method argument, angle in the above usage.

Setting the angles for an angular scan
public void setIncidentAngles(double[] angle)
public void setIncidentAngles(double lowestAngle, double highestAngle, int numberOfAngles)
Usage:                      refl.setIncidentAngles(angles);
The incident angles for an angular scan, measured from the normal to the reflecting surface, θo in the diagram at the head of this page, can be entered, in degrees as the array of doubles, angles in the above usage. The method sorts the array into lowest angle to highest angle.

Usage:                      refl.setIncidentAngles(lowestAngle, highestAngle, numberOfAngles);
The incident angles for an angular scan, measured from the normal to the reflecting surface, θo in the diagram at the head of this page, can be entered, in degrees as the lowest value, lowestAngle in the above usage, the highest angle, highestAngle and the number of points in the scan, numberOfAngles. The method sorts the array into lowest angle to highest angle.

GETTING THE INCIDENT ANGLE/S
public double [] getIncidentAngles()
Usage:                     double [] incidAngles = refl.getWavelengths();
Returns the incident angle or angles, θo, in degrees, as an array of doubles (of length 1 if only one angle has been set). The incident angles are returned in ascending order.



WAVELENGTHS OR FREQUENCIES
You may enter either the wavelength or the frequency of the electromagnetic plane wave.

SETTING THE WAVELENGTH/S OR FREQUENCIES
Setting the wavelength for reflectivity calculation/s at a single wavelength
public void setWavelength(double wavelength)
Usage:                      refl.setWavelength(wavelength);
The wavelength, λ, for a reflectivity calculation or calculations at a single wavelength, is entered, in metres, as the method argument, wavelength in the above usage.

Setting the frequency for reflectivity calculation/s at a single frequency
public void setFrequency(double frequency)
Usage:                      refl.setFrequency(frequency);
The frequency, ν, for a reflectivity calculation or calculations at a single frequency, is entered, in Hz [seconds-1], as the method argument, frequency in the above usage.

Setting the wavelengths for an wavelength scan
public void setWavelength(double[] wavelengths)
public void setWavelength(double lowestWavelength, double highestWavelength, int numberOfWavelengths)
Usage:                      refl.setWavelength(wavelengths);
The wavelengths, λ, for a wavelength scan may be entered, in metres, as the array of doubles, wavelengths in the above usage.

Usage:                      refl.setWavelength(lowestWavelength, highestWavelength, numberOfWavelength);
The wavelengths, λ, for a wavelength scan may be entered, in metres, as the lowest value, lowestWavelength in the above usage, the highest value, highestWavelength and the number of points in the scan, numberOfWavelengths.

Setting the frequencies for a frequency scan
public void setFrequency(double[] frequencies)
public void setFrequency(double lowestFrequency, double highestFrequency, int numberOfFrequencies)
Usage:                      refl.setFrequency(frequencies);
The frequencies, ν, for a frequency scan may be entered, in Hz [seconds-1], as the array of doubles, frequencies in the above usage.

Usage:                      refl.setFrequency(lowestFrequency, highestFrequency, numberOfFrequencies);
The frequencies, ν, for a frequency scan may be entered, in Hz [seconds-1], as the lowest value, lowestFrequency in the above usage, the highest value, highestFrequency and the number of points in the scan, numberOfFrequencies.

GETTING THE WAVELENGTH/S
public double [] getWavelengths()
Usage:                     double [] wavel = refl.getWavelengths();
Returns the wavelength or wavelengths, λ, in metres, as an array of doubles (of length 1 if only one wavelength has been set). The wavelengths are returned in ascending order.

GETTING THE FREQUENCY OR FREQUENCIES
public double [] getFrequencies()
Usage:                     double [] freql = refl.getFrequencies();
Returns the frequency or frequencies, ν, in Hz [seconds-1], as an array of doubles (of length 1 if only one frequency has been set). The frequenciess are returned in ascending order.

GETTING THE RADIAL FREQUENCIES
public double [] getRadialFrequencies()
Usage:                     double [] omega = refl.getRadialFrequencies();
Returns the radial frequency or radial frequencies, 2πν = 2πc/λ [c = velocity of light in vacuo], in radians, as an array of doubles (of length 1 if only one wavelength has been set). The frequencies are returned in ascending order.



REFRACTIVE INDICES
SETTING THE REFRACTIVE INDICES
Setting the refractive indices for reflectivity calculation/s at a single wavelength
public void setRefractiveIndices(double[ ] refractiveIndices)
public void setRefractiveIndices(Complex[ ] refractiveIndices)
Usage:                      refl.setRefractiveIndices(refractiveIndices);
The refractive indices for a reflectivity calculation or calculations at a single wavelength, for each of the layers in the multilayer, are entered as the array refractiveIndices in the above usage. The array may be an array of doubles if the refractive indices are all real or an array of Complex if one or more layers are absorbing, i.e. if the refractive index is a complex number, n' - jn''. Alternativeley, in the latter case, the imaginary part may be entered via the absorption coefficient α [where n''i = αi/(4πλ) and λ is the wavelength of the incident electromagnetic wave] using the setAbsorptionCoefficient method. The order of the refractive indices in the array, refractiveIndices, must be the same order as the layers, as defined in the figure at the head of this page.
If refractive indices are set for a single wavelength but wavelengths have been entered for a wavelength scan the entered refractive index for each layer will be treated as the mean refractive index for that layer across the wavelength range.
The refractive indices of some common glasses, polymethacrylate, gold, silver, air, water and aqueous solutions of sodium chloride, sucrose and polyvinyl alcohol may be obtained using methods in the class RefractiveIndex.

Resetting the refractive index of a single layer for reflectivity calculation/s at a single wavelength
public void setRefractiveIndices(double refractiveIndices, int layerNumber)
public void setRefractiveIndices(Complex refractiveIndices int layerNumber)
Usage:                      refl.setRefractiveIndices(refractiveIndices, layerNumber);
The refractive index for a reflectivity calculation or calculations at a single wavelength, for an individual layer of layer number layerNumber in the above usage, may be reset as refractiveIndices in the above usage. The reset value may be a double if the refractive index is real or may be Complex if the layer is absorbing, i.e. if the refractive index is a complex number, n' - jn''. Alternativeley, in the latter case, the imaginary part may be entered via the absorption coefficient α [where n''i = αi/(4πλ) and λ is the wavelength of the incident electromagnetic wave] using the setAbsorptionCoefficient method.
If refractive index is set for a single wavelength but wavelengths have been entered for a wavelength scan the entered refractive index for the layer will be treated as the mean refractive index for that layer across the wavelength range.

Setting the refractive indices for reflectivity calculations across a wavelength scan
public void setRefractiveIndices(double[ ][ ] refractiveIndices)
public void setRefractiveIndices(Complex[ ][ ] refractiveIndices)
Usage:                      refl.setRefractiveIndices(refractiveIndices);
The refractive indices for a set of reflectivity calculations across a wavelength scan, for each of the layers in the multilayer, are entered as the array refractiveIndices in the above usage. The array may be a two-dimensional array of doubles if the refractive indices are all real or a two-dimensional array of Complex if one or more layers are absorbing, i.e. if the refractive index is a complex number, n' - jn''. Alternativeley, in the latter case, the imaginary part may be entered via the absorption coefficient α [where n''i = αi/(4πλ) and λ is the wavelength of the incident electromagnetic wave] using the setAbsorptionCoefficient method. The dimensions of the array refractiveIndices are refractiveIndices[number of wavelengths or frequencies][[number of layers]. The order of the first dimension of the array must match the order of wavelengths entered via the setWavelength method. The order of the second dimension of the array, must be the same order as the layers, as defined in the figure at the head of this page.


Resetting the refractive indices of a single layer for reflectivity calculations across a wavelength scan
public void setRefractiveIndices(double[ ] refractiveIndices, int layerNumber)
public void setRefractiveIndices(Complex[ ] refractiveIndices int layerNumber)
Usage:                      refl.setRefractiveIndices(refractiveIndices, layerNumber);
The refractive index for a reflectivity calculations across a wavelength scan, for an individual layer of layer number layerNumber in the above usage, may be reset as refractiveIndices in the above usage. The reset value may be an array of doubles if the refractive indices are real or may be an array of Complex if the layer is absorbing, i.e. if the refractive indices are complex numbers, n' - jn''. Alternativeley, in the latter case, the imaginary part may be entered via the absorption coefficient α [where n''i = αi/(4πλ) and λ is the wavelength of the incident electromagnetic wave] using the setAbsorptionCoefficient method.


GETTING THE REFRACTIVE INDICES
public Object [] getRefractiveIndices()
Returns the refractive indices as complex numbers. If a refractive index was entered with a non-zero imaginary part that value will be returned. If the refractive index was entered as a real number and, additionally, an absorption coeffient, α was entered, the refractive index will be returned with an imaginary part calculated as n''i = αi/(4πλ).
Getting the refractive indices if a single wavelength has been set.
Usage:                     Complex[] refractIndices = (Complex[])refl.getRefractiveIndices();
Returns the refractive indices as an array of Complex for ascending order of layers in the multilayer.
Getting the refractive indices if a range of wavelengths have been set.
Usage:                     Complex[][] refractIndices = (Complex[][])refl.getRefractiveIndices();
Returns the refractive indices as an two dimensional array of Complex where the first dimension is the number of wavelengths and the second, the number of layers in the multilayer, e.g. refractIndices[number of wavelengths][number of layers].



ABSORPTION COEFFICIENTS
SETTING THE ABSORPTION COEFFICIENTS
DEFAULT OPTION: A default value of zero is set for all absorption coefficients that are not entered.

Setting the absorption coefficients for reflectivity calculation/s at a single wavelength
public void setAbsorptionCoefficients(double[ ] absorptionCoefficients)
Usage:                      refl.setAbsorptionCoefficients(absorptionCoefficients);
The absorption coefficients for a reflectivity calculation or calculations at a single wavelength, for each of the layers in the multilayer, are entered as the array absorptionCoefficients in the above usage. The order of the absorption coefficients in the array, absorptionCoefficients, must be the same order as the layers, as defined in the figure at the head of this page. The imaginary part of the complex refractive index, i.e. as n''i, is calculated from the absorption coefficient, αi, where n''i = αi/(4πλ) and λ is the wavelength of the incident electromagnetic wave. If both an absorption coefficient and an imaginary part of the complex refractive index are entered the imaginary part of the complex refractive index will be used in all calculations.

Setting the absorption coefficient of a single layer for reflectivity calculation/s at a single wavelength
public void setAbsorptionCoefficients(double absorptionCoefficients, int layerNumber)
Usage:                      refl.setAbsorptionCoefficients(relativeMagneticPermeability, layerNumber);
The relative magnetic permeability for a reflectivity calculation or calculations at a single wavelength, for an individual layer of layer number layerNumber in the above usage, may be reset as absorptionCoefficients in the above usage. The imaginary part of the complex refractive index, i.e. as n''i, is calculated from the absorption coefficient, αi, where n''i = αi/(4πλ) and λ is the wavelength of the incident electromagnetic wave. If both an absorption coefficient and an imaginary part of the complex refractive index are entered the imaginary part of the complex refractive index will be used in all calculations.

Setting the absorption coefficients for reflectivity calculations across a wavelength scan
public void setAbsorptionCoefficients(double[ ][ ] absorptionCoefficients)
Usage:                      refl.setAbsorptionCoefficients(absorptionCoefficients);
The absorption coefficients for a set of reflectivity calculations across a wavelength scan, for each of the layers in the multilayer, are entered as the array absorptionCoefficients in the above usage. The imaginary part of the complex refractive index, i.e. as n''i, is calculated from the absorption coefficient, αi, where n''i = αi/(4πλ) and λ is the wavelength of the incident electromagnetic wave. If both an absorption coefficient and an imaginary part of the complex refractive index are entered the imaginary part of the complex refractive index will be used in all calculations. The dimensions of the array absorptionCoefficients are absorptionCoefficients[number of wavelengths or frequencies][[number of layers]. The order of the first dimension of the array must match the order of wavelengths entered via the setWavelength method. The order of the second dimension of the array, must be the same order as the layers, as defined in the figure at the head of this page.

Setting the absorption coefficients of a single layer for reflectivity calculations across a wavelength scan
public void setAbsorptionCoefficients(double[ ] absorptionCoefficients, int layerNumber)
Usage:                      refl.setAbsorptionCoefficients(absorptionCoefficients, layerNumber);
The absorptionCoefficients for a reflectivity calculations across a wavelength scan, for an individual layer of layer number layerNumber in the above usage, may be set as absorptionCoefficients in the above usage. The imaginary part of the complex refractive index, i.e. as n''i, is calculated from the absorption coefficient, αi, where n''i = αi/(4πλ) and λ is the wavelength of the incident electromagnetic wave. If both an absorption coefficient and an imaginary part of the complex refractive index are entered the imaginary part of the complex refractive index will be used in all calculations.


GETTING THE ABSORPTION COEFFICIENTS
public Object [] getAbsorptionCoefficients()
Returns the absorption coefficients as doubles. If a refractive index was entered with a non-zero imaginary part an absorption coefficient will be returned for that layer calculated as αi = 4n''iπλ.
Getting the absorption coefficients if a single wavelength has been set.
Usage:                     double[] absCoeff = (double[])refl.getAbsorptionCoefficients();
Returns the absorption coefficients as an array of doubles for ascending order of layers in the multilayer.
Getting the absorption coefficients if a range of wavelengths have been set.
Usage:                     double[][] absCoeff = (double[][])refl.getAbsorptionCoefficients();
Returns the absorption coefficients as an two dimensional array of doubles where the first dimension is the number of wavelengths and the second, the number of layers in the multilayer, e.g. absCoeff[number of wavelengths][number of layers].



RELATIVE MAGNETIC PERMEABILITIES
SETTING THE RELATIVE MAGNETIC PERMEABILITIES
DEFAULT OPTION: A default value of unity is set for all relative magnetic permeabilities that are not entered.

Setting the relative magnetic permeabilities for reflectivity calculation/s at a single wavelength
public void setRelativeMagneticPermeabilities(double[ ] relativeMagneticPermeabilities)
public void setRelativeMagneticPermeabilities(Complex[ ] relativeMagneticPermeabilities)
Usage:                      refl.setRelativeMagneticPermeabilities(relativeMagneticPermeabilities);
The relative magnetic permeabilities for a reflectivity calculation or calculations at a single wavelength, for each of the layers in the multilayer, are entered as the array relativeMagneticPermeabilities in the above usage. The array may be an array of doubles if all the relative magnetic permeabilities are real or an array of Copmplex if the relative magnetic permeability for one or more layers is a complex number, μ' - jμ''. The order of the relative magnetic permeabilities in the array, relativeMagneticPermeabilities, must be the same order as the layers, as defined in the figure at the head of this page.
If the relative magnetic permeabilities are set for a single wavelength but wavelengths have been entered for a wavelength scan the entered relative magnetic permeability for each layer will be treated as the mean relative magnetic permeability for that layer across the wavelength range.

Resetting the relative magnetic permeability of a single layer for reflectivity calculation/s at a single wavelength
public void setRelativeMagneticPermeabilities(double relativeMagneticPermeabilities, int layerNumber)
public void setRelativeMagneticPermeabilities(Complex relative magnetic permeabilities int layerNumber)
Usage:                      refl.setRelativeMagneticPermeabilities(relativeMagneticPermeability, layerNumber);
The relative magnetic permeability for a reflectivity calculation or calculations at a single wavelength, for an individual layer of layer number layerNumber in the above usage, may be reset as relativeMagneticPermeabilities in the above usage. The reset value may be a double if the relative magnetic permeability is real or may be Complex if the relative magnetic permeability is a complex number, μ' - jμ''.
If the relative magnetic permeability is set for a single wavelength but wavelengths have been entered for a wavelength scan the entered relative magnetic permeability for the layer will be treated as the mean relative magnetic permeability for that layer across the wavelength range.

Setting the relative magnetic permeabilities for reflectivity calculations across a wavelength scan
public void setRelativeMagneticPermeabilities(double[ ][ ] relativeMagneticPermeabilities)
public void setRelativeMagneticPermeabilities(Complex[ ][ ] relativeMagneticPermeabilities)
Usage:                      refl.setRelativeMagneticPermeabilities(relativeMagneticPermeabilities);
The relative magnetic permeabilities for a set of reflectivity calculations across a wavelength scan, for each of the layers in the multilayer, are entered as the array relativeMagneticPermeabilities in the above usage. The array may be a two-dimensional array of doubles if the relative magnetic permeabilities are all real or a two-dimensional array of Complex if one or more is a complex number, μ' - jμ''. The order of the first dimension of the array must match the order of wavelengths entered via the setWavelength method. The dimensions of the array relativeMagneticPermeabilities are relativeMagneticPermeabilities[number of wavelengths or frequencies][[number of layers]. The order of the second dimension of the array, must be the same order as the layers, as defined in the figure at the head of this page.

Resetting the relative magnetic permeabilities of a single layer for reflectivity calculations across a wavelength scan
public void setRelativeMagneticPermeabilities(double[ ] relativeMagneticPermeabilities, int layerNumber)
public void setRelativeMagneticPermeabilities(Complex[ ] relativeMagneticPermeabilities int layerNumber)
Usage:                      refl.setRelativeMagneticPermeabilities(relativeMagneticPermeabilities, layerNumber);
The relativeMagneticPermeabilities for a reflectivity calculations across a wavelength scan, for an individual layer of layer number layerNumber in the above usage, may be reset as relativeMagneticPermeabilities in the above usage. The reset value may be an array of doubles if the relative magnetic permeabilities are real or may be an array of Complex if the relative magnetic permeabilities are complex numbers, μ' - jμ''.


GETTING THE RELATIVE MAGNETIC PERMEABILITIES
public Object [] getRelativeMagneticPermeabilities()
Getting the relative magnetic permeabilities if a single wavelength has been set.
Usage:                     Complex[] relMagPerm = (Complex[])refl.getRelativeMagneticPermeabilities();
Returns the relative magnetic permeabilities as an array of doubles for ascending order of layers in the multilayer.
Getting the relative magnetic permeabilities if a range of wavelengths have been set.
Usage:                     double[][] relMagPerm = (double[][])refl.getRelativeMagneticPermeabilitie();
Returns the relative magnetic permeabilities as an two dimensional array of doubles where the first dimension is the number of wavelengths and the second, the number of layers in the multilayer, e.g. relMagPerm[number of wavelengths][number of layers].



REFLECTIVITIES
GETTING THE REFLECTIVITIES
public Object getReflectivities()
Returns the reflectivities calculated as the square of the absolute value of the reflection coefficient, i.e.
     |rTE|2 or rTEr*TE for the TE mode
     |rTM|2 or rTMr*TM for the TM mode
Getting the reflectivity for a single angle at a single wavelength
Either
Usage:                      double reflectivity = ((double[]) refl.getReflectivities())[0]
Returns the reflectivity as a double if only one incident angle and one wavelength have been entered.
or
Usage:                      double[] reflectivity = (double[]) refl.getReflectivities()
Returns the reflectivity as the first element of a one dimensional array, of doubles, of one element length if only one incident angle and one wavelength have been entered.

Getting the reflectivities for a range of angles at a single wavelength
Usage:                      double[] reflectivity = (double[]) refl.getReflectivities()
Returns the reflectivities, for all the incident angles, as a one dimensional array of doubles if a range of incident angles and only one wavelength have been entered.

Getting the reflectivities for a range of wavelengths at a single incident angle
Usage:                      double[] reflectivity = (double[]) refl.getReflectivities()
Returns the reflectivities, for all the wavelengths, as a one dimensional array of doubles if a range of wavelengths and only one incident angle have been entered.

Getting the reflectivities for a range of wavelengths and a range of incident angles
Usage:                      double[][] reflectivity = (double[][]) refl.getReflectivities()
Returns the reflectivities, for all the wavelengths and for all the incident angles, as a two dimensional array of doubles if a range of wavelengths and a range of incident angles have been entered. The first dimension of the array is the number of wavelengths and the second is the number of incident angles, e.g. reflectivity[number of wavelengths][number of incident angles].

PLOTTING THE REFLECTIVITIES
public void plotReflectivities(String graphTitle)
public void plotReflectivities()
Usage:                      refl.plotReflectivities(graphTitle)
Plots the reflectivities as:
The String argument, graphTitle is used as the graph title.

Usage:                      refl.plotReflectivities()
Plots the reflectivities as above but with no user supplied title to the graph. Graph given a title describing the type of plot plus the polarisation mode.



TRANSMISSIVITIES
GETTING THE TRANSMISSIVITIES
public Object getTransmissivities()
Returns the transmissivities calculated from the square of the absolute value of the transmision coefficients, tTE or tTM as
     |tTE|2(μ'1k*z,m)/(μ'mkz,1) for the TE mode, where μ'i is the magnetic permeability of the ith layer at the frequency if the incident electromagnetic wave.
     |tTM|2(ε1k*z,m)/(εmkz,1) for the TM mode, where εi is the electrical permittivity of the ith layer at the frequency if the incident electromagnetic wave.
Getting the transmissivity for a single angle at a single wavelength
Either
Usage:                      double transmissivity = ((double[]) refl.getTransmissivities())[0]
Returns the transmissivity as a double if only one incident angle and one wavelength have been entered.
or
Usage:                      double[] transmissivity = (double[]) refl.getTransmissivities()
Returns the transmissivity as the first element of a one dimensional array, of doubles, of one element length if only one incident angle and one wavelength have been entered.

Getting the transmissivities for a range of angles at a single wavelength
Usage:                      double[] transmissivity = (double[]) refl.getTransmissivities()
Returns the transmissivities, for all the incident angles, as a one dimensional array of doubles if a range of incident angles and only one wavelength have been entered.

Getting the transmissivities for a range of wavelengths at a single incident angle
Usage:                      double[] transmissivity = (double[]) refl.getTransmissivities()
Returns the transmissivities, for all the wavelengths, as a one dimensional array of doubles if a range of wavelengths and only one incident angle have been entered.

Getting the transmissivities for a range of wavelengths and a range of incident angles
Usage:                      double[][] transmissivity = (double[][]) refl.getTransmissivities()
Returns the transmissivities, for all the wavelengths and for all the incident angles, as a two dimensional array of doubles if a range of wavelengths and a range of incident angles have been entered. The first dimension of the array is the number of wavelengths and the second is the number of incident angles, e.g. transmissivity[number of wavelengths][number of incident angles].

PLOTTING THE TRANSMISSIVITIES
public void plotTransmissivities(String graphTitle)
public void plotTransmissivities()
Usage:                      refl.plotTransmissivities(graphTitle)
Plots the transmissivities as:
The String argument, graphTitle is used as the graph title.

Usage:                      refl.plotTransmissivities()
Plots the transmissivities as above but with no user supplied title to the graph. Graph given a title describing the type of plot plus the polarisation mode.



POWER LOSSES ON TRANSMISSION
GETTING THE POWER LOSSES
public Object getPowerLosses()
Returns the power losses on transmission calculated as 10log10[(1 - Transmissivity)/1000], i.e. as decibels referred to an input power of 1 mW.

Getting the power loss for a single angle at a single wavelength
Either
Usage:                      double powerLoss = ((double[]) refl.getPowerLosses())[0]
Returns the power loss as a double if only one incident angle and one wavelength have been entered.
or
Usage:                      double[] powerLoss = (double[]) refl.getPowerLosses()
Returns the power loss as the first element of a one dimensional array, of doubles, of one element length if only one incident angle and one wavelength have been entered.

Getting the power losses for a range of angles at a single wavelength
Usage:                      double[] powerLoss = (double[]) refl.getPowerLosses()
Returns the power losses, for all the incident angles, as a one dimensional array of doubles if a range of incident angles and only one wavelength have been entered.

Getting the power losses for a range of wavelengths at a single incident angle
Usage:                      double[] powerLoss = (double[]) refl.getPowerLosses()
Returns the power losses, for all the wavelengths, as a one dimensional array of doubles if a range of wavelengths and only one incident angle have been entered.

Getting the power losses for a range of wavelengths and a range of incident angles
Usage:                      double[][] powerLoss = (double[][]) refl.getPowerLosses()
Returns the power losses, for all the wavelengths and for all the incident angles, as a two dimensional array of doubles if a range of wavelengths and a range of incident angles have been entered. The first dimension of the array is the number of wavelengths and the second is the number of incident angles, e.g. powerLoss[number of wavelengths][number of incident angles].

PLOTTING THE POWER LOSSES
public void plotPowerLosses(String graphTitle)
public void plotPowerLosses()
Usage:                      refl.plotPowerLosses(graphTitle)
Plots the power losses as:
The String argument, graphTitle is used as the graph title.

Usage:                      refl.plotPowerLosses()
Plots the power losses as above but with no user supplied title to the graph. Graph given a title describing the type of plot plus the polarisation mode.



TRANSMISSITION ANGLES
GETTING THE TRANSMISSITION ANGLES
public Object getTransmissitionAnglesInDegrees()
public Object getTransmissitionAnglesInRadians()
Getting the transmissition angle for a single angle at a single wavelength
Either
Usage:                      double transmissionAngle = ((double[]) refl.getTransmissionAnglesInDegrees())[0]
Returns the transmissition angle, θt, as a double if only one incident angle and one wavelength have been entered,
or
Usage:                      double[] transmissitionAngle = (double[]) refl.getTransmissitionAnglesInDegrees()
Returns the transmissition angle, θt, in degrees, as the first element of a one dimensional array, of doubles, of one element length if only one incident angle and one wavelength have been entered,
or
Usage:                      double transmissionAngle = ((double[]) refl.getTransmissionAnglesInRadians())[0]
Returns the transmissition angle, θt, in radians, as a double if only one incident angle and one wavelength have been entered.
or
Usage:                      double[] transmissitionAngle = (double[]) refl.getTransmissitionAnglesInRadians()
Returns the transmissition angle, θt, in radians, as the first element of a one dimensional array of one element length if only one incident angle and one wavelength have been entered.

Getting the transmissition angles for a range of angles at a single wavelength
Usage:                      double[] transmissitionAngles = (double[]) refl.getTransmissitionAnglesInDegrees()
Returns the transmissition angles, θt, in degrees, for all the incident angles, as a one dimensional array of doubles if a range of incident angles and only one wavelength have been entered.
Usage:                      double[] transmissitionAngles = (double[]) refl.getTransmissitionAnglesInRadians()
Returns the transmissition angles, θt, in radians, for all the incident angles, as a one dimensional array of doubles if a range of incident angles and only one wavelength have been entered

Getting the the transmissition angles for a range of wavelengths at a single incident angle
Usage:                      double[] transmissitionAngles = (double[]) refl.getTransmissitionAnglesInDegrees()
Returns the transmissition angles, θt, in degrees, for all the wavelengths, as a one dimensional array of doubles if a range of wavelengths and only one incident angle have been entered.
Usage:                      double[] transmissitionAngles = (double[]) refl.getTransmissitionAnglesInRadians()
Returns the transmissition angles, θt, in radians, for all the wavelengths, as a one dimensional array of doubles if a range of wavelengths and only one incident angle have been entered.

Getting the the transmissition angles for a range of wavelengths and a range of incident angles
Usage:                      double[][] transmissitionAngles = (double[][]) refl.getTransmissitionAnglesInDegrees()
Returns the transmissition angles, θt, in degrees, for all the wavelengths and for all the incident angles, as a two dimensional array of doubles if a range of wavelengths and a range of incident angles have been entered. The first dimension of the array is the number of wavelengths and the second is the number of incident angles, e.g. transmissitionAngles[number of wavelengths][number of incident angles].
Usage:                      double[][] transmissitionAngles = (double[][]) refl.getTransmissitionAnglesInRadians()
Returns the transmissition angles, θt, in radians, for all the wavelengths and for all the incident angles, as a two dimensional array of doubles if a range of wavelengths and a range of incident angles have been entered. The first dimension of the array is the number of wavelengths and the second is the number of incident angles, e.g. transmissitionAngles[number of wavelengths][number of incident angles].

PLOTTING THE TRANSMISSITION ANGLES
public void plotTransmissitionAngles(String graphTitle)
public void plotTransmissitionAngles()
Usage:                      refl.plotTransmissitionAngles(graphTitle)
Plots the transmissivities as:
The String argument, graphTitle is used as the graph title.

Usage:                      refl.plotTransmissitionAngles()
Plots the transmissivities as above but with no user supplied title to the graph. Graph given a title describing the type of plot plus the polarisation mode.



REFLECTION COEFFICIENTS
GETTING THE TE REFLECTION COEFFICIENTS
public Object getTEreflectionCoefficients()
Returns the TE reflection coefficients, rTE,
     Ereflected/Eincident
as complex numbers.
Returns 0 + j0 if TM mode has been set.
Getting the TE reflection coefficient for a single angle at a single wavelength
Usage:                      Complex teReflectCoeff = Complex refl.getTEreflectionCoefficients()
Returns the TE reflection coefficient as a Complex if only one incident angle and one wavelength have been entered.


Getting the TE reflection coefficients for a range of angles at a single wavelength
Usage:                      Complex[] teReflectCoeff = (Complex[]) refl.getTEreflectionCoefficients()
Returns the TE reflection coefficients, for all the incident angles, as a one dimensional array of Complex if a range of incident angles and only one wavelength have been entered.

Getting the TE reflection coefficients for a range of wavelengths at a single incident angle
Usage:                      Complex[] teReflectCoeff = (Complex[]) refl.getTEreflectionCoefficients()
Returns the TE reflection coefficients, for all the wavelengths, as a one dimensional array of Complex if a range of wavelengths and only one incident angle have been entered.

Getting the TE reflection coefficients for a range of wavelengths and a range of incident angles
Usage:                      Complex[][] teReflectCoeff = (Complex[][]) refl.getTEreflectionCoefficients()
Returns the TE reflection coefficients, for all the wavelengths and for all the incident angles, as a two dimensional array of Complex if a range of wavelengths and a range of incident angles have been entered. The first dimension of the array is the number of wavelengths and the second is the number of incident angles, e.g. teReflectCoeff[number of wavelengths][number of incident angles].

PLOTTING THE TE REFLECTION COEFFICIENTS
public void plotAbsTEreflectionCoefficients(String graphTitle)
public void plotAbsTEreflectionCoefficients()
Usage:                      refl.plotAbsTEreflectionCoefficients(graphTitle)
Plots the absolute values of the TE reflection coefficients, as:
The String argument, graphTitle is used as the graph title.

Usage:                      refl.plotAbsTEreflectionCoefficients()
Plots the absolute values of the TE reflection coefficients as above but with no user supplied title to the graph. Graph given a title describing the type of plot plus the polarisation mode.



GETTING THE TM REFLECTION COEFFICIENTS
public Object getTMreflectionCoefficients()
Returns the TM reflection coefficients, rTM,
     Hreflected/Hincident
as complex numbers.
Returns 0 + j0 if TE mode has been set.
Getting the TM reflection coefficient for a single angle at a single wavelength
Usage:                      Complex tmReflectCoeff = Complex refl.getTMreflectionCoefficients()
Returns the TM reflection coefficient as a Complex if only one incident angle and one wavelength have been entered.


Getting the TM reflection coefficients for a range of angles at a single wavelength
Usage:                      Complex[] tmReflectCoeff = (Complex[]) refl.getTMreflectionCoefficients()
Returns the TM reflection coefficients, for all the incident angles, as a one dimensional array of Complex if a range of incident angles and only one wavelength have been entered.

Getting the TM reflection coefficients for a range of wavelengths at a single incident angle
Usage:                      Complex[] tmReflectCoeff = (Complex[]) refl.getTMreflectionCoefficients()
Returns the TM reflection coefficients, for all the wavelengths, as a one dimensional array of Complex if a range of wavelengths and only one incident angle have been entered.

Getting the TM reflection coefficients for a range of wavelengths and a range of incident angles
Usage:                      Complex[][] tmReflectCoeff = (Complex[][]) refl.getTMreflectionCoefficients()
Returns the TM reflection coefficients, for all the wavelengths and for all the incident angles, as a two dimensional array of Complex if a range of wavelengths and a range of incident angles have been entered. The first dimension of the array is the number of wavelengths and the second is the number of incident angles, e.g. tmReflectCoeff[number of wavelengths][number of incident angles].

PLOTTING THE TM REFLECTION COEFFICIENTS
public void plotAbsTMreflectionCoefficients(String graphTitle)
public void plotAbsTMreflectionCoefficients()
Usage:                      refl.plotAbsTMreflectionCoefficients(graphTitle)
Plots the absolute values of the TM reflection coefficients, as:
The String argument, graphTitle is used as the graph title.

Usage:                      refl.plotAbsTMreflectionCoefficients()
Plots the absolute values of the TM reflection coefficients as above but with no user supplied title to the graph. Graph given a title describing the type of plot plus the polarisation mode.



TRANSMISSION COEFFICIENTS
GETTING THE TE TRANSMISSION COEFFICIENTS
public Object getTEtransmissionCoefficients()
Returns the TE transmission coefficients, tTE,
     Etransmitted/Eincident
as complex numbers.
Returns 0 + j0 if TE mode has been set.
Getting the TE transmission coefficient for a single angle at a single wavelength
Usage:                      Complex tmTransmitCoeff = Complex refl.getTEtransmissionCoefficients()
Returns the TE transmission coefficient as a Complex if only one incident angle and one wavelength have been entered.


Getting the TE transmission coefficients for a range of angles at a single wavelength
Usage:                      Complex[] tmTransmitCoeff = (Complex[]) refl.getTEtransmissionCoefficients()
Returns the TE transmission coefficients, for all the incident angles, as a one dimensional array of Complex if a range of incident angles and only one wavelength have been entered.

Getting the TE transmission coefficients for a range of wavelengths at a single incident angle
Usage:                      Complex[] tmTransmitCoeff = (Complex[]) refl.getTEtransmissionCoefficients()
Returns the TE transmission coefficients, for all the wavelengths, as a one dimensional array of Complex if a range of wavelengths and only one incident angle have been entered.

Getting the TE transmission coefficients for a range of wavelengths and a range of incident angles
Usage:                      Complex[][] tmTransmitCoeff = (Complex[][]) refl.getTEtransmissionCoefficients()
Returns the TE transmission coefficients, for all the wavelengths and for all the incident angles, as a two dimensional array of Complex if a range of wavelengths and a range of incident angles have been entered. The first dimension of the array is the number of wavelengths and the second is the number of incident angles, e.g. teTransmitCoeff[number of wavelengths][number of incident angles].

PLOTTING THE TE TRANSMISSION COEFFICIENTS
public void plotAbsTEtransmissionCoefficients(String graphTitle)
public void plotAbsTEtransmissionCoefficients()
Usage:                      refl.plotAbsTEtransmissionCoefficients(graphTitle)
Plots the absolute values of the TE transmission coefficients, as:
The String argument, graphTitle is used as the graph title.

Usage:                      refl.plotAbsTEtransmissionCoefficients()
Plots the absolute values of the TE transmission coefficients as above but with no user supplied title to the graph. Graph given a title describing the type of plot plus the polarisation mode.



GETTING THE TM TRANSMISSION COEFFICIENTS
public Object getTMtransmissionCoefficients()
Returns the TM transmission coefficients, tTM,
     Htransmitted/Hincident
as complex numbers.
Returns 0 + j0 if TE mode has been set.
Getting the TM transmission coefficient for a single angle at a single wavelength
Usage:                      Complex teTransmitCoeff = Complex refl.getTMtransmissionCoefficients()
Returns the TM transmission coefficient as a Complex if only one incident angle and one wavelength have been entered.


Getting the TM transmission coefficients for a range of angles at a single wavelength
Usage:                      Complex[] teTransmitCoeff = (Complex[]) refl.getTMtransmissionCoefficients()
Returns the TM transmission coefficients, for all the incident angles, as a one dimensional array of Complex if a range of incident angles and only one wavelength have been entered.

Getting the TM transmission coefficients for a range of wavelengths at a single incident angle
Usage:                      Complex[] teTransmitCoeff = (Complex[]) refl.getTMtransmissionCoefficients()
Returns the TM transmission coefficients, for all the wavelengths, as a one dimensional array of Complex if a range of wavelengths and only one incident angle have been entered.

Getting the TM transmission coefficients for a range of wavelengths and a range of incident angles
Usage:                      Complex[][] teTransmitCoeff = (Complex[][]) refl.getTMtransmissionCoefficients()
Returns the TM transmission coefficients, for all the wavelengths and for all the incident angles, as a two dimensional array of Complex if a range of wavelengths and a range of incident angles have been entered. The first dimension of the array is the number of wavelengths and the second is the number of incident angles, e.g. teTransmitCoeff[number of wavelengths][number of incident angles].

PLOTTING THE TM TRANSMISSION COEFFICIENTS
public void plotAbsTMtransmissionCoefficients(String graphTitle)
public void plotAbsTMtransmissionCoefficients()
Usage:                      refl.plotAbsTMtransmissionCoefficients(graphTitle)
Plots the absolute values of the TM transmission coefficients, as:
The String argument, graphTitle is used as the graph title.

Usage:                      refl.plotAbsTMtransmissionCoefficients()
Plots the absolute values of the TM transmission coefficients as above but with no user supplied title to the graph. Graph given a title describing the type of plot plus the polarisation mode.



THE PHASE SHIFTS
GETTING THE TE MODE REFLECTION PHASE SHIFTS
Getting the TE mode reflection phase shift for a single angle at a single wavelength
public Object getTEreflectionPhaseShiftRad()
Either
Usage:                      double phaseShift = ((double[]) refl.getTEreflectionPhaseShiftRad())[0]
Returns the phase shift of the TE mode on reflection in radians as a double if only one incident angle and one wavelength have been entered.
or
Usage:                      double[] phaseShift = (double[]) refl.getTEreflectionPhaseShiftRad()
Returns the phase shift of the TE mode on reflection in radians as the first element of a one dimensional array, of doubles, of one element length if only one incident angle and one wavelength have been entered.

public Object getTEreflectionPhaseShiftDeg()
Either
Usage:                      double phaseShift = ((double[]) refl.getTEreflectionPhaseShiftDeg())[0]
Returns the phase shift of the TE mode on reflection in degrees as a double if only one incident angle and one wavelength have been entered.
or
Usage:                      double[] phaseShift = (double[]) refl.getTEreflectionPhaseShiftDeg()
Returns the phase shift of the TE mode on reflection in degrees as the first element of a one dimensional array, of doubles, of one element length if only one incident angle and one wavelength have been entered.

Getting the TE mode reflection phase shifts for a range of angles at a single wavelength
Usage:                      double[] phaseShifts = (double[]) refl.getTEreflectionPhaseShiftRad()
Returns the phase shifts of the TE mode on reflection in radians, for all the incident angles, as a one dimensional array of doubles if a range of incident angles and only one wavelength have been entered.

Usage:                      double[] phaseShifts = (double[]) refl.getTEreflectionPhaseShiftDeg()
Returns the phase shifts of the TE mode on reflection in degrees, for all the incident angles, as a one dimensional array of doubles if a range of incident angles and only one wavelength have been entered.

Getting the TE mode reflection phase shifts for a range of wavelengths at a single incident angle
Usage:                      double[] phaseShifts = (double[]) refl.getTEreflectionPhaseShiftRad()
Returns the phase shifts of the TE mode on reflection in radians, for all the wavelengths, as a one dimensional array of doubles if a range of wavelengths and only one incident angle have been entered.

Usage:                      double[] phaseShifts = (double[]) refl.getTEreflectionPhaseShiftDeg()
Returns the phase shifts of the TE mode on reflection in degrees, for all the wavelengths, as a one dimensional array of doubles if a range of wavelengths and only one incident angle have been entered.

PLOTTING THE TE MODE REFLECTION PHASE SHIFTS
public void plotTEreflectionPhaseShiftRad(String graphTitle)
public void plotTEreflectionPhaseShiftRad()
Usage:                      refl.plotTEreflectionPhaseShiftRad(graphTitle)
Plots the phase shifts of the TE mode on reflection in radians as:
The String argument, graphTitle is used as the graph title.

Usage:                      refl.plotTEreflectionPhaseShiftRad()
Plots the the phase shifts of the TE mode on reflection in radians as above but with no user supplied title to the graph. Graph given a title describing the type of plot plus the polarisation mode.

public void plotTEreflectionPhaseShiftDeg(String graphTitle)
public void plotTEreflectionPhaseShiftDeg()
Usage:                      refl.plotTEreflectionPhaseShiftDeg(graphTitle)
Plots the phase shifts of the TE mode on reflection in degrees as:
The String argument, graphTitle is used as the graph title.

Usage:                      refl.plotTEreflectionPhaseShiftDeg()
Plots the the phase shifts of the TE mode on reflection in degrees as above but with no user supplied title to the graph. Graph given a title describing the type of plot plus the polarisation mode.



GETTING THE TM MODE REFLECTION PHASE SHIFTS
Getting the TM mode reflection phase shift for a single angle at a single wavelength
public Object getTMreflectionPhaseShiftRad()
Either
Usage:                      double phaseShift = ((double[]) refl.getTMreflectionPhaseShiftRad())[0]
Returns the phase shift of the TM mode on reflection in radians as a double if only one incident angle and one wavelength have been entered.
or
Usage:                      double[] phaseShift = (double[]) refl.getTMreflectionPhaseShiftRad()
Returns the phase shift of the TM mode on reflection in radians as the first element of a one dimensional array, of doubles, of one element length if only one incident angle and one wavelength have been entered.

public Object getTMreflectionPhaseShiftDeg()
Either
Usage:                      double phaseShift = ((double[]) refl.getTMreflectionPhaseShiftDeg())[0]
Returns the phase shift of the TM mode on reflection in degrees as a double if only one incident angle and one wavelength have been entered.
or
Usage:                      double[] phaseShift = (double[]) refl.getTMreflectionPhaseShiftDeg()
Returns the phase shift of the TM mode on reflection in degrees as the first element of a one dimensional array, of doubles, of one element length if only one incident angle and one wavelength have been entered.

Getting the TM mode reflection phase shifts for a range of angles at a single wavelength
Usage:                      double[] phaseShifts = (double[]) refl.getTMreflectionPhaseShiftRad()
Returns the phase shifts of the TM mode on reflection in radians, for all the incident angles, as a one dimensional array of doubles if a range of incident angles and only one wavelength have been entered.

Usage:                      double[] phaseShifts = (double[]) refl.getTMreflectionPhaseShiftDeg()
Returns the phase shifts of the TM mode on reflection in degrees, for all the incident angles, as a one dimensional array of doubles if a range of incident angles and only one wavelength have been entered.

Getting the TM mode reflection phase shifts for a range of wavelengths at a single incident angle
Usage:                      double[] phaseShifts = (double[]) refl.getTMreflectionPhaseShiftRad()
Returns the phase shifts of the TM mode on reflection in radians, for all the wavelengths, as a one dimensional array of doubles if a range of wavelengths and only one incident angle have been entered.

Usage:                      double[] phaseShifts = (double[]) refl.getTMreflectionPhaseShiftDeg()
Returns the phase shifts of the TM mode on reflection in degrees, for all the wavelengths, as a one dimensional array of doubles if a range of wavelengths and only one incident angle have been entered.

PLOTTING THE TM MODE REFLECTION PHASE SHIFTS
public void plotTMreflectionPhaseShiftRad(String graphTitle)
public void plotTMreflectionPhaseShiftRad()
Usage:                      refl.plotTMreflectionPhaseShiftRad(graphTitle)
Plots the phase shifts of the TM mode on reflection in radians as:
The String argument, graphTitle is used as the graph title.

Usage:                      refl.plotTMreflectionPhaseShiftRad()
Plots the the phase shifts of the TM mode on reflection in radians as above but with no user supplied title to the graph. Graph given a title describing the type of plot plus the polarisation mode.

public void plotTMreflectionPhaseShiftDeg(String graphTitle)
public void plotTMreflectionPhaseShiftDeg()
Usage:                      refl.plotTMreflectionPhaseShiftDeg(graphTitle)
Plots the phase shifts of the TM mode on reflection in degrees as:
The String argument, graphTitle is used as the graph title.

Usage:                      refl.plotTMreflectionPhaseShiftDeg()
Plots the the phase shifts of the TM mode on reflection in degrees as above but with no user supplied title to the graph. Graph given a title describing the type of plot plus the polarisation mode.



GETTING THE TE MODE TRANSMISSION PHASE SHIFTS
Getting the TE mode transmission phase shift for a single angle at a single wavelength
public Object getTEtransmissionPhaseShiftRad()
Either
Usage:                      double phaseShift = ((double[]) refl.getTEtransmissionPhaseShiftRad())[0]
Returns the phase shift of the TE mode on transmission in radians as a double if only one incident angle and one wavelength have been entered.
or
Usage:                      double[] phaseShift = (double[]) refl.getTEtransmissionPhaseShiftRad()
Returns the phase shift of the TE mode on transmission in radians as the first element of a one dimensional array, of doubles, of one element length if only one incident angle and one wavelength have been entered.

public Object getTEtransmissionPhaseShiftDeg()
Either
Usage:                      double phaseShift = ((double[]) refl.getTEtransmissionPhaseShiftDeg())[0]
Returns the phase shift of the TE mode on transmission in degrees as a double if only one incident angle and one wavelength have been entered.
or
Usage:                      double[] phaseShift = (double[]) refl.getTEtransmissionPhaseShiftDeg()
Returns the phase shift of the TE mode on transmission in degrees as the first element of a one dimensional array, of doubles, of one element length if only one incident angle and one wavelength have been entered.

Getting the TE mode transmission phase shifts for a range of angles at a single wavelength
Usage:                      double[] phaseShifts = (double[]) refl.getTEtransmissionPhaseShiftRad()
Returns the phase shifts of the TE mode on transmission in radians, for all the incident angles, as a one dimensional array of doubles if a range of incident angles and only one wavelength have been entered.

Usage:                      double[] phaseShifts = (double[]) refl.getTEtransmissionPhaseShiftDeg()
Returns the phase shifts of the TE mode on transmission in degrees, for all the incident angles, as a one dimensional array of doubles if a range of incident angles and only one wavelength have been entered.

Getting the TE mode transmission phase shifts for a range of wavelengths at a single incident angle
Usage:                      double[] phaseShifts = (double[]) refl.getTEtransmissionPhaseShiftRad()
Returns the phase shifts of the TE mode on transmission in radians, for all the wavelengths, as a one dimensional array of doubles if a range of wavelengths and only one incident angle have been entered.

Usage:                      double[] phaseShifts = (double[]) refl.getTEtransmissionPhaseShiftDeg()
Returns the phase shifts of the TE mode on transmission in degrees, for all the wavelengths, as a one dimensional array of doubles if a range of wavelengths and only one incident angle have been entered.

PLOTTING THE TE MODE TRANSMISSION PHASE SHIFTS
public void plotTEtransmissionPhaseShiftRad(String graphTitle)
public void plotTEtransmissionPhaseShiftRad()
Usage:                      refl.plotTEtransmissionPhaseShiftRad(graphTitle)
Plots the phase shifts of the TE mode on transmission in radians as:
The String argument, graphTitle is used as the graph title.

Usage:                      refl.plotTEtransmissionPhaseShiftRad()
Plots the the phase shifts of the TE mode on transmission in radians as above but with no user supplied title to the graph. Graph given a title describing the type of plot plus the polarisation mode.

public void plotTEtransmissionPhaseShiftDeg(String graphTitle)
public void plotTEtransmissionPhaseShiftDeg()
Usage:                      refl.plotTEtransmissionPhaseShiftDeg(graphTitle)
Plots the phase shifts of the TE mode on transmission in degrees as:
The String argument, graphTitle is used as the graph title.

Usage:                      refl.plotTEtransmissionPhaseShiftDeg()
Plots the the phase shifts of the TE mode on transmission in degrees as above but with no user supplied title to the graph. Graph given a title describing the type of plot plus the polarisation mode.



GETTING THE TM MODE TRANSMISSION PHASE SHIFTS
Getting the TM mode transmission phase shift for a single angle at a single wavelength
public Object getTMtransmissionPhaseShiftRad()
Either
Usage:                      double phaseShift = ((double[]) refl.getTMtransmissionPhaseShiftRad())[0]
Returns the phase shift of the TM mode on transmission in radians as a double if only one incident angle and one wavelength have been entered.
or
Usage:                      double[] phaseShift = (double[]) refl.getTMtransmissionPhaseShiftRad()
Returns the phase shift of the TM mode on transmission in radians as the first element of a one dimensional array, of doubles, of one element length if only one incident angle and one wavelength have been entered.

public Object getTMtransmissionPhaseShiftDeg()
Either
Usage:                      double phaseShift = ((double[]) refl.getTMtransmissionPhaseShiftDeg())[0]
Returns the phase shift of the TM mode on transmission in degrees as a double if only one incident angle and one wavelength have been entered.
or
Usage:                      double[] phaseShift = (double[]) refl.getTMtransmissionPhaseShiftDeg()
Returns the phase shift of the TM mode on transmission in degrees as the first element of a one dimensional array, of doubles, of one element length if only one incident angle and one wavelength have been entered.

Getting the TM mode transmission phase shifts for a range of angles at a single wavelength
Usage:                      double[] phaseShifts = (double[]) refl.getTMtransmissionPhaseShiftRad()
Returns the phase shifts of the TM mode on transmission in radians, for all the incident angles, as a one dimensional array of doubles if a range of incident angles and only one wavelength have been entered.

Usage:                      double[] phaseShifts = (double[]) refl.getTMtransmissionPhaseShiftDeg()
Returns the phase shifts of the TM mode on transmission in degrees, for all the incident angles, as a one dimensional array of doubles if a range of incident angles and only one wavelength have been entered.

Getting the TM mode transmission phase shifts for a range of wavelengths at a single incident angle
Usage:                      double[] phaseShifts = (double[]) refl.getTMtransmissionPhaseShiftRad()
Returns the phase shifts of the TM mode on transmission in radians, for all the wavelengths, as a one dimensional array of doubles if a range of wavelengths and only one incident angle have been entered.

Usage:                      double[] phaseShifts = (double[]) refl.getTMtransmissionPhaseShiftDeg()
Returns the phase shifts of the TM mode on transmission in degrees, for all the wavelengths, as a one dimensional array of doubles if a range of wavelengths and only one incident angle have been entered.

PLOTTING THE TM MODE TRANSMISSION PHASE SHIFTS
public void plotTMtransmissionPhaseShiftRad(String graphTitle)
public void plotTMtransmissionPhaseShiftRad()
Usage:                      refl.plotTMtransmissionPhaseShiftRad(graphTitle)
Plots the phase shifts of the TM mode on transmission in radians as:
The String argument, graphTitle is used as the graph title.

Usage:                      refl.plotTMtransmissionPhaseShiftRad()
Plots the the phase shifts of the TM mode on transmission in radians as above but with no user supplied title to the graph. Graph given a title describing the type of plot plus the polarisation mode.

public void plotTMtransmissionPhaseShiftDeg(String graphTitle)
public void plotTMtransmissionPhaseShiftDeg()
Usage:                      refl.plotTMtransmissionPhaseShiftDeg(graphTitle)
Plots the phase shifts of the TM mode on transmission in degrees as:
The String argument, graphTitle is used as the graph title.

Usage:                      refl.plotTMtransmissionPhaseShiftDeg()
Plots the the phase shifts of the TM mode on transmission in degrees as above but with no user supplied title to the graph. Graph given a title describing the type of plot plus the polarisation mode.



EVANESCENT FIELD INTENSITIES
GETTING THE INTEGRATED EVANESCENT FIELD INTENSITIES
public Object getEvanescentFields()
Returns, for incident electromagnetic wave that is totally internally reflected, the integrated evanescent field intensity as

i.e. for the TE mode, as

and, for the TM mode, as

A value of zero is returned if total internal reflection has not occured.

public Object getEvanescentFields(double distanceIntoField)
Returns, for incident electromagnetic wave that is totally internally reflected, the integrated evanescent field intensity as

i.e. for the TE mode, as

and, for the TM mode, as

A value of zero is returned if total internal reflection has not occured.

Getting the evanescent field intensity for a single angle at a single wavelength
Usage:                      double evanField = (double[] refl.getEvanescentFields())[0]
Usage:                      double evanField = (double[] refl.getEvanescentFields(distanceIntoField))[0]
Returns the evanescent field intensity as a double if only one incident angle and one wavelength have been entered.


Getting the evanescent field intensities for a range of angles at a single wavelength
Usage:                      Complex[] evanField = (double[]) refl.getEvanescentFields()
Usage:                      Complex[] evanField = (double[]) refl.getEvanescentFields(distanceIntoField)
Returns the evanescent field intensities, for all the incident angles, as a one dimensional array of doubles if a range of incident angles and only one wavelength have been entered.

Getting the evanescent field intensities for a range of wavelengths at a single incident angle
Usage:                      double[] evanField = (double[]) refl.getEvanescentFields()
Usage:                      double[] evanField = (double[]) refl.getEvanescentFields(distanceIntoField)
Returns the evanescent field intensities, for all the wavelengths, as a one dimensional array of doubles if a range of wavelengths and only one incident angle have been entered.

Getting the evanescent field intensities for a range of wavelengths and a range of incident angles
Usage:                      double[][] evanField = (double[][]) refl.getEvanescentFields()
Usage:                      double[][] evanField = (double[][]) refl.getEvanescentFields(distanceIntoField)
Returns the evanescent field intensities, for all the wavelengths and for all the incident angles, as a two dimensional array of doubles if a range of wavelengths and a range of incident angles have been entered. The first dimension of the array is the number of wavelengths and the second is the number of incident angles, e.g. evanField[number of wavelengths][number of incident angles].

PLOTTING THE EVANESCENT FIELDS
public void plotEvanescentFields(String graphTitle)
public void plotEvanescentFields(double distanceIntoField, String graphTitle)
public void plotEvanescentFields()
public void plotEvanescentFields(double distanceIntoField)
See GETTING THE INTEGRATED EVANESCENT FIELD INTENSITIES (immediately above) for description of variable distanceIntoField.

Usage:                      refl.plotEvanescentFields(graphTitle)
Usage:                      refl.plotEvanescentFields(distanceIntoField, graphTitle)
Plots the integrated evanescent field intensities, as:
The String argument, graphTitle is used as the graph title.

Usage:                      refl.plotEvanescentFields()
Usage:                      refl.plotEvanescentFields(distanceIntoField)
Plots the evanescent field intensities as above but with no user supplied title to the graph. Graph given a title describing the type of plot plus the polarisation mode.



EVANESCENT FIELD PENETRATION DEPTHS
GETTING THE INTEGRATED EVANESCENT FIELD PENETRATION DEPTHS
public Object getEvanescentFields()
Returns, for incident electromagnetic wave that is totally internally reflected, the evanescent field penetration depth, 1/|Imag[kx,m]|
A value of zero is returned if total internal reflection has not occured.
Getting the evanescent field penetration depth for a single angle at a single wavelength
Usage:                      double eDepth = (double[] refl.getPenetrationDepths())[0]
Returns the evanescent field penetration depth as a double if only one incident angle and one wavelength have been entered.


Getting the evanescent field penetration depths for a range of angles at a single wavelength
Usage:                      Complex[] eDepth = (double[]) refl.getPenetrationDepths()
Returns the evanescent field penetration depths, for all the incident angles, as a one dimensional array of doubles if a range of incident angles and only one wavelength have been entered.

Getting the evanescent field penetration depths for a range of wavelengths at a single incident angle
Usage:                      double[] eDepth = (double[]) refl.getPenetrationDepths()
Returns the evanescent field penetration depths, for all the wavelengths, as a one dimensional array of doubles if a range of wavelengths and only one incident angle have been entered.

Getting the evanescent field penetration depths for a range of wavelengths and a range of incident angles
Usage:                      double[][] eDepth = (double[][]) refl.getPenetrationDepths()
Returns the evanescent field penetration depths, for all the wavelengths and for all the incident angles, as a two dimensional array of doubles if a range of wavelengths and a range of incident angles have been entered. The first dimension of the array is the number of wavelengths and the second is the number of incident angles, e.g. eDepth[number of wavelengths][number of incident angles].

PLOTTING THE EVANESCENT FIELD PENETRATION DEPTHS
public void plotPenetrationDepths(String graphTitle)
public void plotPenetrationDepths()
Usage:                      refl.plotPenetrationDepths(graphTitle)
Plots the integrated evanescent field penetration depths, as:
The String argument, graphTitle is used as the graph title.

Usage:                      refl.plotPenetrationDepths()
Plots the evanescent field penetration depths as above but with no user supplied title to the graph. Graph given a title describing the type of plot plus the polarisation mode.



WAVE VECTOR ko
GETTING THE WAVE VECTOR ko
public Object getKoVectors()
Returns the wave vectors, ko = 2π/λ, as Complex.
Getting the wave vector, ko, for a single angle or for a range of angles at a single wavelength
Usage:                      Complex ko = (Complex) refl.getKoVectors()
Returns the wave vector, ko, as a Complex if one incident angle or a range of incident angles and only one wavelength have been entered.


Getting the wave vector, ko, for a range of wavelengths at a single incident angle or a range of incident angles
Usage:                      Complex[] ko = (Complex[]) refl.getKoVectors()
Returns the wave vectors, ko, corresponding to each wavelength, in their ascending order, as an array of Complex, if one incident angle or a range of incident angles and a range of wavelengths have been entered.



WAVE VECTOR ki
GETTING THE WAVE VECTORS ki
public Object getKvectors()
Returns the wave vectors, ki = ko(n'i - jn''i)(μ'i - jμ''i)0.5, as Complex.
Getting the wave vectors, ki, for a single angle or for a range of angles at a single wavelength
Usage:                      Complex[] ki = (Complex[]) refl.getKvectors()
Returns the wave vectors, ki, corresponding to each layer, in ascending order of layers, as an array of Complex, if one incident angle or a range of incident angles and only one wavelength have been entered.
Getting the wave vectors, ki, for a single angle or for a range of angles and a range of wavelengths
Usage:                      Complex[][] ki = (Complex[][]) refl.getKvectors()
Returns the wave vectors, ki, as a two-dimensional array of Complex, if one incident angle or a range of incident angles and a range of wavelengths have been entered. The first dimension of the array is the number of wavelengths and the second is the number of layers, e.g. ki[number of wavelengths][number of layers].



WAVE VECTOR kx,i
GETTING THE WAVE VECTORS kx,i
public Object getKxVectors()
Returns the wave vectors, kx,i = kicos(θi), as Complex.
Getting the wave vectors, kx,i, for a single angle at a single wavelength
Usage:                      Complex[] kx = (Complex[]) refl.getKxVectors()
Returns the the wave vectors, kx,i, corresponding to each layer, in ascending order of layers, as an array of Complex, if one incident angle and one wavelength have been entered.
Getting the wave vectors, kx,i, for a range of angles at a single wavelength
Usage:                      Complex[][] kx = (Complex[][]) refl.getKxVectors()
Returns the wave vectors, kx,i, as a two-dimensional array of Complex, if a single wavelength and a range of angles have been entered. The first dimension of the array is the number of incident angles and the second is the number of layers, e.g. kx[number of angles][number of layers]. Getting the wave vectors, kx,i, for a range of wavelengths at a single incident angle
Either
Usage:                      Complex[][] kx = (Complex[][]) refl.getKxVectors()
Returns the wave vectors, kx,i, as a two-dimensional array of Complex, if a single incident angle and a range of wavelengths have been entered. The first dimension of the array is the number of wavelengths and the second is the number of layers, e.g. kx[number of wavelengths][number of layers]. Getting the wave vectors, kx,i, for a range of wavelengths and a range of incident angles
Usage:                      Complex[][][] kx = (Complex[][][]) refl.getKxVectors()
Returns the wave vectors, kx,i, as a three-dimensional array of Complex, if a range of incident angles and a range of wavelengths have been entered. The first dimension of the array is the number of wavelengths and the second is the number of angles and the third is the number of layers, e.g. kx[number of wavelengths][number of angles][number of layers].



WAVE VECTOR kz
GETTING THE WAVE VECTOR kz
public Object getKzVectors()
Returns the wave vectors, kz = k1sin(θincident), as Complex.
Getting the wave vectors, kz, for a single angle at a single wavelength
Usage:                      Complex kz = (Complex) refl.getKzVectors()
Returns the wave vector, kz, as Complex, if one incident angle and only one wavelength have been entered.
Getting the wave vectors, kz, for a range of angles at a single wavelength
Usage:                      Complex[] kz = (Complex[]) refl.getKzVectors()
Returns the wave vectors, kz, for each incident angle, in ascending order, as a one-dimensional array of Complex, if a range of incident angles and a single wavelength have been entered.
Getting the wave vectors, kz, for a range of wavelengths at a single incident angle
Usage:                      Complex[] kz = (Complex[]) refl.getKzVectors()
Returns the wave vectors, kz, for each wavelength, in ascending order, as a one-dimensional array of Complex, if a range of wavelengths and a single incident angle have been entered.
Getting the wave vectors, ki, for a range of angles and a range of wavelengths
Usage:                      Complex[][] kz = (Complex[][]) refl.getKzVectors()
Returns the wave vectors, kz, as a two-dimensional array of Complex, if a range of incident angles and a range of wavelengths have been entered. The first dimension of the array is the number of wavelengths and the second is the number of incident angles, e.g. kz[number of wavelengths][number of angles].



OTHER CLASSES USED BY THIS CLASS

This class uses the following classes in this library:


This page was prepared by Dr Michael Thomas Flanagan