The codes for optimizing Thermo-optic noise in coatings are up on svn.
I adopt some codes that have been on svn for awhile and modified them for AlGaAs coatings. There are two main codes
1) DoAlGaAs.m
This file is modified from DoETM.m found in .../iscmodeling/coating/AlGaAs/doETM.m . The optimization method is using Matlab's fmincon function to search for coatings structure that minmize TO noise. Some modifications include:
- (Line16-18 )Number of layer. For AlGaAs, the number of layer will be odd number (start with GaAs, end with GaAs), I fixed the layer structure to be odd number.
- (Line74) Cap. During the optimization, the first cap is kept constant. For a cap made with high refractive index material (nH), the layer thickness is 1/4 lambda, see previous entry.
This code calls on optAlGaAs.m when running fmincon.
2) optAlGaAs.m
This file is the modification of optETM.m found in ../iscmodeling/coating/AlGaAs/optETM.m .It calculates the reflectivity and the TO coefficients from the given layer structure. The modifications are:
- (Line41-45) Layer structure, the cap start with nH. The material for substrate is SiO2 with nsub = 1.45.
- (Line60) Desired transmission, as a test, I chose 200 ppm.
- (Line88) Calculation for TO coefficients (StoZ), I switched from getCoatThermoOptics.m to getCoatThermoOPticsAGS.m. Codes with AGS suffix in /GwincDev folder are fixed for AlGaAs coatings structure. This code calls many functions in /GwincDev folder.
2.1) multidiel1.m
This code is used in optAlGaAs.m it calculates the reflectivity and impedance of the given coatinns structure. There is no modification to it. The code can be found in .../coating/coating_optimization_new/.
To run the codes
check out .../iscmodeling/ folder from the svn. The optimization is in .../iscmodeling/coating/AlGaAs_TO_opt_CTN/ folder, but you need other functions in other folders.
Once you run DoAlGaAs.m, the optimized layer will be in matlab workspace called xout. This is the layer structure withtout 1/4 cap. Check if there is a layer with thickness of 0.002 or not. I ran the code several times, sometime it shows up. Just rerun the code and get the layer that is around 0.1 or thicker. The 0.002 is just the lower bound used in fmincon search in doAlGaAs.m.
Plotting noise budget
The noise budget of the optimized layer can be plotted with /coating/AlGaAs_Refcav/nb_algaas.m . Currently, at line 38-39, the code will take xout and create a layer structure with 1/4 cap on top of it. The reflectivity of the coatings is in rCoat workspace item after running the noise budget code. It should be close to -1 + 0i |