Skip to content
Snippets Groups Projects
Commit f85f9fad authored by Anna Green's avatar Anna Green
Browse files

updates to tune.py. PI-DRMi.kat now generated using BlockedKat; PI-PRMi is...

updates to tune.py. PI-DRMi.kat now generated using BlockedKat; PI-PRMi is manually edited after testing in tune.py
parent cd8298b5
No related branches found
No related tags found
No related merge requests found
......@@ -14,49 +14,106 @@ def main():
########################
# kat = LIGO1.kat
katfile = "DRMi"
kat.loadKatFile("tuned/PI-"+katfile+".kat")
basefile = "tuned/PI-"+katfile+".kat"
kat.loadKatFile(basefile)
# Blocks = LIGO1.rawBlocks
########################
kat.maxtem = 0#'off'
kat.phase = 2
tuning_conditions = """
maxtem {0}
phase {1}
""".format(kat.maxtem, kat.phase)
# #Making lock blocks
# # ######################## #high masses to ensure TF calcs work in DRMi_tuning
# ######################## #high masses to ensure TF calcs work in DRMi_tuning
# kat.ETMX.mass = 1e9
# kat.ETMY.mass = 1e9
# kat.ITMX.mass = 1e9
# kat.ITMY.mass = 1e9
# ################ make locks #################### # edited from Andreas' TestLIGO file
# ################ make locks ####################
# BlockList = kat._kat__blocks
# if 'locks' in BlockList:
# if "locks" in BlockList:
# kat.removeBlock('locks')
# if 'errsigs' in BlockList:
# if "errsigs" in BlockList:
# kat.removeBlock('errsigs')
# if 'powers' in BlockList:
# if "powers" in BlockList:
# kat.removeBlock('powers')
# ######################## # tuning the original DR file
# kat = tt.DRMi_tuning(kat)
# ######################## # re-including the real masses
# # ######################## # tuning the original DR file
# kat,err_code,lock_code,tune_code = tt.DRMi_tuning(kat)
# # ######################## # re-including the real masses
# kat.ETMX.mass = 40
# kat.ETMY.mass = 40
# kat.ITMX.mass = 40
# kat.ITMY.mass = 40
# # ########## create block form
# Blocks.remove(["tunings","errsigs","locks"])
# Blocks.add("tunings",tune_code)
# Blocks.add("errsigs",err_code)
# Blocks.add("locks",lock_code)
# print("\n--------------------BLOCKS")
# print(Blocks)
############### cut down #####################
# ######################## # DR --> PRMi
#removing kat lines
ifo.make_transparent(kat,["SRM","SRMAR"])
kat.SRCL_lock.enable=False
#updating input power to match DRMi
sf = tt.Xpow(kat,printit=False)
kat.L0.P *= sf
#adjusting lock/errsig properties
kat.DARM_lock.gain *= 1 / 10.0
kat.POP_f2_Q.phase1 -= 10#60
#updating filename
katfile = "PRMi"
print("""
---------------------------------------------------
to make PRMi file from DRMi tuned case, set:
kat.L0.P = {0}
kat.DARM_lock.gain = {1}
kat.POP_f2_Q.phase1 = {2}
---------------------------------------------------
""".format(kat.L0.P,kat.DARM_lock.gain,kat.POP_f2_Q.phase1))
# # ######################## # PR --> FPMi
# #removing kat lines
# ifo.make_transparent(kat,["PRM","PRMAR"])
# kat.PRCL_lock.enable=False
# #updating input power to match DRMi
# sf = tt.Xpow(kat,printit=False)
# kat.L0.P *= sf
# #adjusting lock/errsig properties
# kat.DARM_lock.gain *= 1/2
# kat.CARM_lock.gain *= 1/10
# kat.MICH_lock.gain *=1e18
# #updating filename
# katfile = "FPMi"
# # ########## create block form
################# save ######################
katfile = "PRMi"
######## save ordinary kat file
# kat.saveScript("tuned/PI-"+katfile+".kat")
######## save in blocks
# Blocks.write("tuned/PI-"+katfile+".kat")
# o = open("tuned/PI-"+katfile+".kat",'a')
# o.write(tuning_conditions)
# o.close()
# ################# test #####################
dofs = [LIGO1.DARM, LIGO1.CARM, LIGO1.PRCL, LIGO1.MICH]#, LIGO1.SRCL]
locks = [kat.ETMX_lock, kat.ETMY_lock, kat.PRCL_lock, kat.MICH_lock, kat.ITMY_lock]#, kat.SRCL_lock]
# ################# tests #####################
test_kat = finesse.kat()
test_kat.loadKatFile("tuned/PI-PRMi.kat")
# test_kat = kat.deepcopy()
test_kat.verbose=True
dofs = [LIGO1.DARM, LIGO1.CARM, LIGO1.MICH, LIGO1.PRCL]#, LIGO1.SRCL]
locks = [test_kat.ETMX_lock, test_kat.ETMY_lock, test_kat.MICH_lock, test_kat.ITMY_lock, test_kat.PRCL_lock]#, test_kat.SRCL_lock]
prc = True
# print(kat)
print("\n--------------KAT:")
print(test_kat)
# LIGO1.plot_error_signals(kat, xlimits=[-1e-2, 1e-2])
tt.plot_errs(kat,dofs,xlimits=[-1e-2, 1e-2])
tt.test_locks(kat,locks,PRC=prc)
# tt.Xpow(test_kat)
xlim = 1e-1
tt.plot_errs(test_kat,dofs,xlimits=[-xlim, xlim])
tt.test_locks(test_kat,locks,PRC=prc)
END = input('press enter to finish and close all plots')#to override auto-closing.
......
......@@ -13,6 +13,31 @@ import pykat.gw_detectors.ifo as ifo
LIGO1 = ifo.aLIGO(debug=True)
def Xpow(_kat,printit=True):
kat = _kat.deepcopy()
kat.verbose=False
kat.noxaxis=True
BlockList = kat._kat__blocks
if 'locks' in BlockList:
kat.removeBlock('locks')
if 'errsigs' in BlockList:
kat.removeBlock('errsigs')
if 'powers' in BlockList:
kat.removeBlock('powers')
kat.parseCommands(LIGO1.POW_X.signal(kat))
out=kat.run()
DRMi_ref = 541893.83368058#714881.385765199#
current = out[LIGO1.POW_X.name]
ratio = DRMi_ref/current
if printit:
print("""--- Xarm power:
DRMi case: {0}
current case: {1}
ratio (DRMi/current): {2}
""".format(DRMi_ref,current,ratio))
return ratio
def plot_errs(_kat,dofs=[LIGO1.DARM, LIGO1.CARM, LIGO1.PRCL, LIGO1.SRCL, LIGO1.MICH],xlimits=[-1,1]):
#based on ifo.py, adapted to select dofs
kat = _kat.deepcopy()
......@@ -84,12 +109,13 @@ def DRMi_tuning(_kat):
LIGO1.set_DC_offset(kat, DCoffset=DCoffset, verbose=True)
#LIGO1.plot_error_signals(kat, xlimits=[-1e-2, 1e-2])
#locks
kat_lock = prepare_locks(kat, verbose=True)
kat_lock, err_code, lock_code = prepare_locks(kat, verbose=True)
kat_lock.noxaxis = True
kat_lock.verbose = True
out = kat_lock.run()
LIGO1.apply_lock_feedback(kat_lock, out)
return kat_lock
tune_code = LIGO1.generate_tuning_block(kat_lock)
return kat_lock, err_code, lock_code, tune_code
def pretune(kat, verbose=False, debug=False):
......@@ -110,9 +136,9 @@ def prepare_locks(_kat, DCoffset=None, verbose=False):
# from Andreas' TestLIGO file
kat = _kat.deepcopy()
print("-- preparing block with lock commands")
code = LIGO1.generate_errsig_block(kat, noplot=True)
kat.parseCommands(code)
err_code = LIGO1.generate_errsig_block(kat, noplot=True)
kat.parseCommands(err_code)
code = LIGO1.generate_locks(kat, verbose=True)
code = LIGO1.generate_lock_block(kat, verbose=True)
kat.parseCommands(code)
return kat
\ No newline at end of file
lock_code = LIGO1.generate_lock_block(kat, verbose=True)
kat.parseCommands(lock_code)
return kat, err_code, lock_code
\ No newline at end of file
% Generated by PyKat 06.01.2017 15:35:57
%%% FTblock NO_BLOCK
# reintroduced: errsigs, locks, powers (partial)
%%% FTend NO_BLOCK
%%% FTblock header
#--------------------------------------------------------------------------
# an aLIGO file to introduce a PI to one arm
# based on
# aLIGO_IFO_AWC_tuning_DCoff_maxtem4.kat (details in the original file header)
#
# updated to re-include locks
# (errsig, powers and locks blocks, plus EOMs 1 and 2 (9 and 45kHz))
#
# - R. Abbott. Advanced LIGO length sensing and control final design. LIGO Document T1000298, 2010.
# - Advanced LIGO, CQG, 2015
# http://iopscience.iop.org/article/10.1088/0264-9381/32/7/074001/meta#cqg507871s4-8
# - G. Billingsley. LIGO core optics reference page. https://galaxy.ligo. caltech.edu/optics/
#
# Anna Green, 28th November 2016
#--------------------------------------------------------------------------
#
# References used for aLIGO parameters
# [1] R. Abbott. Advanced LIGO length sensing and control final design. LIGO Document T1000298, 2010.
# [2] Advanced LIGO, CQG, 2015
# http://iopscience.iop.org/article/10.1088/0264-9381/32/7/074001/meta#cqg507871s4-8
# [3] G. Billingsley. LIGO core optics reference page. https://galaxy.ligo.caltech.edu/optics/
# [4] D. Martynov, `Lock Acquisition and Sensitivity Analysis of Advanced
# LIGO Interferometers', PhD thesis, Caltech, 2015
# http://thesis.library.caltech.edu/8899/1/DenisMartynovThesis.pdf
# [4] A. Staley, `Locking the Advanced LIGO Gravitational Wave Detector:
# with a focus on the Arm Length Stabilization Technique', PhD thesis,
# Columbia University, 2015
# https://academiccommons.columbia.edu/catalog/ac:189457
#
# Changes since 12/2016:
# - 06.12.2016, initial corrections compared to previous files, Anna and Andreas
#
# Bug fixes
# - AR coatings of ETMs and ITMs were using mirror components with non-zero
# reflectivity. This is wrng as it causes residual resoances with the HR
# surfaces and ignores the wedge in the substrate. Instead the mirror component
# should have losses but no reflectivity. Alternatively beamsplitter components
# with non-zero reflectivity can be used to detect the AR reflections
# - Same as above for PRM and SRM AR coatings
# - change order of `cav' commands, arm cavities need to come first
#
# Change of parameter values
# - BS substrate length were assymetric and did not match substrate thickness,
# changed to symmetric 0.0687m, using pykat.GWdetectors.aLIGO.BSpath(0.06)
# - changed SRM transmission from 35% to 20%, matching the aLIGO 2015 paper
# - changed arm length to L=3994.4692, see [4], Table 10.2
#
# Changes in file structure
# - removed length calculation fucntions for PRC and SRC sub-length
# and added length values into space components
# -
#
# Naming changes
# - changed naming for thermal lens components
# - changed naming of PRMHR to PRM and node names in PRM substrate
# - changed naming of SRMHR to SRM and node names in SRM substrate
# - changed name of ITMHR to ITM and ETMHR to ETM
# - changed names of arm spaces from LXarm, LYarm to LX, LY
#
#
#--------------------------------------------------------------------------
%%% FTend header
%%% FTblock laser
l L0 125.0 0 0.0 n0
s lmod1 1.0 n0 n1
mod mod1 9099471.0 0.18 1 pm 0.0 n1 n2
s lmod2 1.0 n2 n3
mod mod2 45497355.0 0.18 1 pm 0.0 n3 n4
s lmod3 1.0 n4 nREFL
###########################################################################
# Laser and input optics
l L0 125 0 n0
s lmod1 1 n0 n1
# modulators for core interferometer sensing - Advanced LIGO, CQG, 2015
# http://iopscience.iop.org/article/10.1088/0264-9381/32/7/074001/meta#cqg507871s4-8
# 9MHz (CARM, PRC, SRC loops)
const f1 9099471
const f2 45497355
mod mod1 $f1 0.18 1 pm n1 n2
s lmod2 1 n2 n3
# 45MHz (MICH, SRC loops)
mod mod2 $f2 0.18 1 pm n3 n4
s lmod3 1 n4 nREFL # TODO
###########################################################################
%%% FTend laser
%%% FTblock PRC
m PRMAR 0.0 0.99996 0.0 nREFL nPRMs1
s sPRMsub1 0.0737 1.44963098985906 nPRMs1 nPRMs2
m PRM 0.9699915 0.03 0.003 nPRMs2 nPRM2
put* PRM phi $PRCL_lock
attr PRM Rcx 11.009
attr PRM Rcy 11.009
s lp1 16.610426383062517 nPRM2 nPR2a
bs PR2 0.9997125 0.00025 0.0 -0.79 nPR2a nPR2b nPOP dump11
attr PR2 Rcx -4.545
attr PR2 Rcy -4.545
###########################################################################
# PRM
# AR surface
m2 PRMAR 0 40u 0 nREFL nPRMs1
#bs2 PRMAR 35u 4.5u 0 0 nREFL nPRMAR1 nPRMs1 nPRMAR2
# Substrate
s sPRMsub1 0.0737 $nsilica nPRMs1 nPRMs2
# HR surface
m1 PRM 0.03 8.5u $phi_PRM nPRMs2 nPRM2
attr PRM Rc 11.009
# Distance between PRM and PR2
s lp1 16.6107 nPRM2 nPR2a
# PR2
bs1 PR2 250u $Mloss 0 -0.79 nPR2a nPR2b nPOP dump11
attr PR2 Rc -4.545
# Distance from PR2 to PR3
s lp2 16.1647 nPR2b nPR3a
bs PR3 0.9999625 0.0 0.0 0.615 nPR3a nPR3b dump12 dump13
attr PR3 Rcx 36.027
attr PR3 Rcy 36.027
# PR3
bs1 PR3 0 $Mloss 0 0.615 nPR3a nPR3b dump12 dump13
attr PR3 Rc 36.027
# Distance from PR3
s lp3 19.5381 nPR3b nPRBS
###########################################################################
%%% FTend PRC
%%% FTblock BS
bs BS 0.4999625 0.5 0.0 45.0 nPRBS nYBS nBSi1 nBSi3
s BSsub1 0.0687 1.44963098985906 nBSi1 nBSi2
s BSsub2 0.0687 1.44963098985906 nBSi3 nBSi4
bs BSAR1 5e-05 0.99995 0.0 -29.195 nBSi2 dump14 nXBS nPOX
bs BSAR2 5e-05 0.99995 0.0 29.195 nBSi4 dump15 nSRBS dump16
###########################################################################
# BS beamsplitter
##------------------------------------------------------------
## BS
## ^
## to IMY |
## | ,'-.
## | + `.
## nYBS | ,' :'
## nPR3b | +i1 +
## ----------------> ,:._ i2 ,'
## from the PRC nPRBS + \ `-. + nXBS
## ,' i3\ ,' --------------->
## + \ + to IMX
## ,' i4.'
## `._ ..
## `._ ,' |nSRBS
## - |
## |to the SRC
## |
## v
##------------------------------------------------------------
bs1 BS 0.5 $Mloss $phi_BS 45 nPRBS nYBS nBSi1 nBSi3
s BSsub1 0.0687 $nsilica nBSi1 nBSi2
s BSsub2 0.0687 $nsilica nBSi3 nBSi4
bs2 BSAR1 50u 0 0 -29.195 nBSi2 dump14 nXBS nPOX
bs2 BSAR2 50u 0 0 29.195 nBSi4 dump15 nSRBS dump16
###########################################################################
%%% FTend BS
%%% FTblock Yarm
###########################################################################
# Distance from beam splitter to Y arm input mirror
s ly1 5.0126 nYBS nITMY1a
lens ITMY_therm 34500.0 nITMY1a nITM_th1
s ITMY_th1 0.0 nITM_th1 nITM_th2
# Thermal lens correction
lens ITMY_therm $th_f nITMY1a nITM_th1
s ITMY_th1 0 nITM_th1 nITM_th2
lens ITMY_lens inf nITM_th2 nITM_th3
s ITMY_th2 0.0 nITM_th3 nITMY1
m ITMYAR 0.0 0.99998 0.0 nITMY1 nITMYs1
s ITMYsub 0.2 1.44963098985906 nITMYs1 nITMYs2
m ITMY 0.9859625 0.014 0.0012 nITMYs2 nITMY2
put* ITMY phi $ITMY_lock
attr ITMY Rcx -1934.0
attr ITMY Rcy -1934.0
attr ITMY mass 40.0
s LY 3994.4692 nITMY2 nETMY1
m ETMY 0.9999575 5e-06 0.004601519713819729 nETMY1 nETMYs1
put* ETMY phi $ETMY_lock
attr ETMY Rcx 2245.0
attr ETMY Rcy 2245.0
attr ETMY mass 40.0
s ETMYsub 0.2 1.44963098985906 nETMYs1 nETMYs2
m ETMYAR 0.0 0.9995 0.0 nETMYs2 nPTY
s ITMY_th2 0 nITM_th3 nITMY1
# Y arm input mirror
m2 ITMYAR 0 20u 0 nITMY1 nITMYs1
#bs2 ITMYAR 20u 0 0 0 nITMY1 nITMYAR1 nITMYs1 nITMYAR2
s ITMYsub 0.2 $nsilica nITMYs1 nITMYs2
m1 ITMY 0.014 $Mloss $phi_ITMY nITMYs2 nITMY2
attr ITMY Rc -1934
# Y arm length
s LY $Larm nITMY2 nETMY1
# Y arm end mirror
m1 ETMY 5u $Mloss $phi_ETMY nETMY1 nETMYs1
s ETMYsub 0.2 $nsilica nETMYs1 nETMYs2
m2 ETMYAR 0 500u 0 nETMYs2 nPTY
#bs2 ETMYAR 500u 0 0 0 nETMYs2 nETMYAR1 nPTY nETMYAR1
attr ETMY Rc 2245
attr ETMY mass 40
attr ITMY mass 40
###########################################################################
%%% FTend Yarm
%%% FTblock Xarm
###########################################################################
# Distance from beam splitter to X arm input mirror
s lx1 4.993 nXBS nITMX1a
lens ITMX_therm 34500.0 nITMX1a nITMX_th1
s ITMX_th1 0.0 nITMX_th1 nITMX_th2
# Thermal lens correction
lens ITMX_therm $th_f nITMX1a nITMX_th1
s ITMX_th1 0 nITMX_th1 nITMX_th2
lens ITMX_lens inf nITMX_th2 nITMX_th3
s ITMX_th2 0.0 nITMX_th3 nITMX1
m ITMXAR 0.0 0.99998 0.0 nITMX1 nITMXs1
s ITMXsub 0.2 1.44963098985906 nITMXs1 nITMXs2
m ITMX 0.9859625 0.014 -0.0012 nITMXs2 nITMX2
put* ITMX phi $MICH_lock
attr ITMX Rcx -1934.0
attr ITMX Rcy -1934.0
attr ITMX mass 40.0
s LX 3994.4692 nITMX2 nETMX1
m ETMX 0.9999575 5e-06 -0.004601298494819022 nETMX1 nETMXs1
put* ETMX phi $ETMX_lock
attr ETMX Rcx 2245.0
attr ETMX Rcy 2245.0
attr ETMX mass 40.0
s ETMXsub 0.2 1.44963098985906 nETMXs1 nETMXs2
m ETMXAR 0.0 0.9995 0.0 nETMXs2 nPTX
s ITMX_th2 0 nITMX_th3 nITMX1
# X arm input mirror
m2 ITMXAR 0 20u 0 nITMX1 nITMXs1
#bs2 ITMXAR 20u 0 0 0 nITMX1 nITMXAR1 nITMXs1 nITMXAR2
s ITMXsub 0.2 $nsilica nITMXs1 nITMXs2
m1 ITMX 0.014 $Mloss $phi_ITMX nITMXs2 nITMX2
attr ITMX Rc -1934
# X arm length
s LX $Larm nITMX2 nETMX1
# X arm end mirror
m1 ETMX 5u $Mloss $phi_ETMX nETMX1 nETMXs1
s ETMXsub 0.2 $nsilica nETMXs1 nETMXs2
#bs2 ETMXAR 500u 0 0 0 nETMXs2 nETMXAR1 nPTX nETMXAR1
m2 ETMXAR 0 500u 0 nETMXs2 nPTX
attr ETMX Rc 2245
attr ETMX mass 40
attr ITMX mass 40
###########################################################################
%%% FTend Xarm
%%% FTblock SRC
###########################################################################
# Distance to SR3
s ls3 19.3661 nSRBS nSR3b
bs SR3 0.9999625 0.0 0.0 0.785 nSR3b nSR3a dump17 dump18
attr SR3 Rcx 35.972841
attr SR3 Rcy 35.972841
# SR3
bs1 SR3 0 $Mloss 0 0.785 nSR3b nSR3a dump17 dump18
attr SR3 Rc 35.972841
# Distance from SR3 to SR2
s ls2 15.4435 nSR3a nSR2b
bs SR2 0.9999625 0.0 0.0 -0.87 nSR2b nSR2a dump19 dump20
attr SR2 Rcx -6.406
attr SR2 Rcy -6.406
# SR2
bs1 SR2 0 $Mloss 0 -0.87 nSR2b nSR2a dump19 dump20
attr SR2 Rc -6.406
# Distance from SR2 to SRM
s ls1 15.7586 nSR2a nSRM1
m SRM 0.7999913 0.2 -90.0012 nSRM1 nSRMs1
put* SRM phi $SRCL_lock
attr SRM Rcx -5.6938
attr SRM Rcy -5.6938
s SRMsub 0.0749 1.44963098985906 nSRMs1 nSRMs2
m SRMAR 0.0 0.99999995 0.0 nSRMs2 nSRM2
# Signal recycling mirror SRM-08
m1 SRM 0.20 8.7u $phi_SRM nSRM1 nSRMs1
s SRMsub 0.0749 $nsilica nSRMs1 nSRMs2
m2 SRMAR 0 50n 0 nSRMs2 nSRM2
#bs2 SRMAR 50n 0 0 0 nSRMs2 nSRMAR1 nSRM2 nSRMAR2
attr SRM Rc -5.6938
###########################################################################
%%% FTend SRC
%%% FTblock HOMs
%%% FTblock cavities
###########################################################################
#cav cavIMC MC2 nMC2in MC2 nMC2refl
cav cavXARM ITMX nITMX2 ETMX nETMX1
cav cavYARM ITMY nITMY2 ETMY nETMY1
cav cavPRX PRM nPRM2 ITMX nITMXs2
cav cavPRY PRM nPRM2 ITMY nITMYs2
cav cavSRX SRM nSRM1 ITMX nITMXs2
cav cavSRY SRM nSRM1 ITMY nITMYs2
%%% FTend HOMs
# removed OMC
###########################################################################
%%% FTend cavities
%%% FTblock constants
###########################################################################
const nsilica 1.44963098985906
const nTGG 1.954
const nCalcite 1.65846
const Mloss 37.5u
const Larm 3994.4692
const fM 36.397884M
const fP 54.596826M
const th_f 34.5k
###########################################################################
%%% FTend constants
%%% FTblock powers
###########################################################################
pd P_DC_AS nSRM2
# pd P_DC_OMC nOMC_HROC_trans
pd PIMCtrans nREFL*
pd Px nITMX2
pd Py nITMY2
pd Pprc nPRM2
pd Psrc nSRM1*
ad prc0 0 nPRM2
ad prcf1 $f1 nPRM2
ad prcf2 $f2 nPRM2
#ad aoc0 0 nOMC_HROC_trans
ad asc0 0 nSRM2
ad asf1 $f1 nSRM2
ad asf2 $f2 nSRM2
ad src0 0 nSRM1*
ad srcf1 $f1 nSRM1*
ad srcf2 $f2 nSRM1*
###########################################################################
%%% FTend powers
%%% FTblock tunings
###########################################################################
const phi_ITMX -0.0012
const phi_ITMY 0.0012
const phi_ETMX -0.0046012985
const phi_ETMY 0.0046015197
const phi_BS 0.0
const phi_PRM 0.003
const phi_SRM -90.0012
###########################################################################
%%% FTend tunings
%%% FTblock errsigs
###########################################################################
pd AS_DC nSRM2
pd1 REFL_f1_I 9099471.0 101 nREFL
pd1 POP_f1_I 9099471.0 101 nPOP
pd1 POP_f2_Q 45497355.0 103.0 nPOP
pd1 REFL_f2_I 45497355.0 14 nREFL
noplot AS_DC
pd0 AS_DC nSRM2
noplot REFL_f1_I
pd1 REFL_f1_I 9099471 101.0 nREFL
noplot POP_f1_I
pd1 POP_f1_I 9099471 101.0 nPOP
noplot POP_f2_Q
pd1 POP_f2_Q 45497355 103.0 nPOP
noplot REFL_f2_I
pd1 REFL_f2_I 45497355 14.0 nREFL
###########################################################################
%%% FTend errsigs
%%% FTblock locks
###########################################################################
set AS_f2_I_re AS_DC re
set CARM_err REFL_f1_I re
set PRCL_err POP_f1_I re
set MICH_err POP_f2_Q re
set SRCL_err REFL_f2_I re
func DARM_err = $AS_f2_I_re - 1.56140670384883
lock DARM_lock $DARM_err 0.0035 0.0048
lock CARM_lock $CARM_err 0.00039 0.00043
lock PRCL_lock $PRCL_err -2.8 0.00012
lock MICH_lock $MICH_err 43.0 3.9e-05
lock MICH_lock $MICH_err 43 3.9e-05
lock SRCL_lock $SRCL_err 2.6 0.0016
noplot ITMY_lock
func ITMY_lock = (-1.0) * $MICH_lock
noplot ETMX_lock
func ETMX_lock = $CARM_lock + $MICH_lock + $DARM_lock
noplot ETMY_lock
func ETMY_lock = $CARM_lock - $MICH_lock - $DARM_lock
put* PRM phi $PRCL_lock
put* ITMX phi $MICH_lock
put* ITMY phi $ITMY_lock
put* ETMX phi $ETMX_lock
put* ETMY phi $ETMY_lock
put* SRM phi $SRCL_lock
noplot PRCL_lock
noplot SRCL_lock
noplot MICH_lock
noplot DARM_lock
noplot CARM_lock
noplot ETMX_lock
noplot ETMY_lock
###########################################################################
%%% FTend locks
phase 2
maxtem 0
noxaxis
yaxis abs
phase 2
\ No newline at end of file
% Generated by PyKat 06.01.2017 13:46:33
%%% FTblock NO_BLOCK
# reintroduced: errsigs, locks, powers (partial)
%%% FTend NO_BLOCK
%%% FTblock header
#--------------------------------------------------------------------------
# an aLIGO file to introduce a PI to one arm
# based on
# aLIGO_IFO_AWC_tuning_DCoff_maxtem4.kat (details in the original file header)
#
# updated to re-include locks
# (errsig, powers and locks blocks, plus EOMs 1 and 2 (9 and 45kHz))
#
# - R. Abbott. Advanced LIGO length sensing and control final design. LIGO Document T1000298, 2010.
# - Advanced LIGO, CQG, 2015
# http://iopscience.iop.org/article/10.1088/0264-9381/32/7/074001/meta#cqg507871s4-8
# - G. Billingsley. LIGO core optics reference page. https://galaxy.ligo. caltech.edu/optics/
#
# Anna Green, 28th November 2016
#--------------------------------------------------------------------------
#
# References used for aLIGO parameters
# [1] R. Abbott. Advanced LIGO length sensing and control final design. LIGO Document T1000298, 2010.
# [2] Advanced LIGO, CQG, 2015
# http://iopscience.iop.org/article/10.1088/0264-9381/32/7/074001/meta#cqg507871s4-8
# [3] G. Billingsley. LIGO core optics reference page. https://galaxy.ligo.caltech.edu/optics/
# [4] D. Martynov, `Lock Acquisition and Sensitivity Analysis of Advanced
# LIGO Interferometers', PhD thesis, Caltech, 2015
# http://thesis.library.caltech.edu/8899/1/DenisMartynovThesis.pdf
# [4] A. Staley, `Locking the Advanced LIGO Gravitational Wave Detector:
# with a focus on the Arm Length Stabilization Technique', PhD thesis,
# Columbia University, 2015
# https://academiccommons.columbia.edu/catalog/ac:189457
#
# Changes since 12/2016:
# - 06.12.2016, initial corrections compared to previous files, Anna and Andreas
#
# Bug fixes
# - AR coatings of ETMs and ITMs were using mirror components with non-zero
# reflectivity. This is wrng as it causes residual resoances with the HR
# surfaces and ignores the wedge in the substrate. Instead the mirror component
# should have losses but no reflectivity. Alternatively beamsplitter components
# with non-zero reflectivity can be used to detect the AR reflections
# - Same as above for PRM and SRM AR coatings
# - change order of `cav' commands, arm cavities need to come first
#
# Change of parameter values
# - BS substrate length were assymetric and did not match substrate thickness,
# changed to symmetric 0.0687m, using pykat.GWdetectors.aLIGO.BSpath(0.06)
# - changed SRM transmission from 35% to 20%, matching the aLIGO 2015 paper
# - changed arm length to L=3994.4692, see [4], Table 10.2
#
# Changes in file structure
# - removed length calculation fucntions for PRC and SRC sub-length
# and added length values into space components
# -
#
# Naming changes
# - changed naming for thermal lens components
# - changed naming of PRMHR to PRM and node names in PRM substrate
# - changed naming of SRMHR to SRM and node names in SRM substrate
# - changed name of ITMHR to ITM and ETMHR to ETM
# - changed names of arm spaces from LXarm, LYarm to LX, LY
#
#
#--------------------------------------------------------------------------
%%% FTend header
%%% FTblock laser
l L0 125.0 0 0.0 n0
s lmod1 1.0 n0 n1
mod mod1 9099471.0 0.18 1 pm 0.0 n1 n2
s lmod2 1.0 n2 n3
mod mod2 45497355.0 0.18 1 pm 0.0 n3 n4
s lmod3 1.0 n4 nREFL
###########################################################################
# Laser and input optics
l L0 129.2909 0 n0
s lmod1 1 n0 n1
# modulators for core interferometer sensing - Advanced LIGO, CQG, 2015
# http://iopscience.iop.org/article/10.1088/0264-9381/32/7/074001/meta#cqg507871s4-8
# 9MHz (CARM, PRC, SRC loops)
const f1 9099471
const f2 45497355
mod mod1 $f1 0.18 1 pm n1 n2
s lmod2 1 n2 n3
# 45MHz (MICH, SRC loops)
mod mod2 $f2 0.18 1 pm n3 n4
s lmod3 1 n4 nREFL # TODO
###########################################################################
%%% FTend laser
%%% FTblock PRC
m PRMAR 0.0 0.99996 0.0 nREFL nPRMs1
s sPRMsub1 0.0737 1.44963098985906 nPRMs1 nPRMs2
m PRM 0.9699915 0.03 0.003 nPRMs2 nPRM2
put* PRM phi $PRCL_lock
attr PRM Rcx 11.009
attr PRM Rcy 11.009
s lp1 16.610426383062517 nPRM2 nPR2a
bs PR2 0.9997125 0.00025 0.0 -0.79 nPR2a nPR2b nPOP dump11
attr PR2 Rcx -4.545
attr PR2 Rcy -4.545
###########################################################################
# PRM
# AR surface
m2 PRMAR 0 40u 0 nREFL nPRMs1
#bs2 PRMAR 35u 4.5u 0 0 nREFL nPRMAR1 nPRMs1 nPRMAR2
# Substrate
s sPRMsub1 0.0737 $nsilica nPRMs1 nPRMs2
# HR surface
m1 PRM 0.03 8.5u $phi_PRM nPRMs2 nPRM2
attr PRM Rc 11.009
# Distance between PRM and PR2
s lp1 16.6107 nPRM2 nPR2a
# PR2
bs1 PR2 250u $Mloss 0 -0.79 nPR2a nPR2b nPOP dump11
attr PR2 Rc -4.545
# Distance from PR2 to PR3
s lp2 16.1647 nPR2b nPR3a
bs PR3 0.9999625 0.0 0.0 0.615 nPR3a nPR3b dump12 dump13
attr PR3 Rcx 36.027
attr PR3 Rcy 36.027
# PR3
bs1 PR3 0 $Mloss 0 0.615 nPR3a nPR3b dump12 dump13
attr PR3 Rc 36.027
# Distance from PR3
s lp3 19.5381 nPR3b nPRBS
###########################################################################
%%% FTend PRC
%%% FTblock BS
bs BS 0.4999625 0.5 0.0 45.0 nPRBS nYBS nBSi1 nBSi3
s BSsub1 0.0687 1.44963098985906 nBSi1 nBSi2
s BSsub2 0.0687 1.44963098985906 nBSi3 nBSi4
bs BSAR1 5e-05 0.99995 0.0 -29.195 nBSi2 dump14 nXBS nPOX
bs BSAR2 5e-05 0.99995 0.0 29.195 nBSi4 dump15 nSRBS dump16
###########################################################################
# BS beamsplitter
##------------------------------------------------------------
## BS
## ^
## to IMY |
## | ,'-.
## | + `.
## nYBS | ,' :'
## nPR3b | +i1 +
## ----------------> ,:._ i2 ,'
## from the PRC nPRBS + \ `-. + nXBS
## ,' i3\ ,' --------------->
## + \ + to IMX
## ,' i4.'
## `._ ..
## `._ ,' |nSRBS
## - |
## |to the SRC
## |
## v
##------------------------------------------------------------
bs1 BS 0.5 $Mloss $phi_BS 45 nPRBS nYBS nBSi1 nBSi3
s BSsub1 0.0687 $nsilica nBSi1 nBSi2
s BSsub2 0.0687 $nsilica nBSi3 nBSi4
bs2 BSAR1 50u 0 0 -29.195 nBSi2 dump14 nXBS nPOX
bs2 BSAR2 50u 0 0 29.195 nBSi4 dump15 nSRBS dump16
###########################################################################
%%% FTend BS
%%% FTblock Yarm
###########################################################################
# Distance from beam splitter to Y arm input mirror
s ly1 5.0126 nYBS nITMY1a
lens ITMY_therm 34500.0 nITMY1a nITM_th1
s ITMY_th1 0.0 nITM_th1 nITM_th2
# Thermal lens correction
lens ITMY_therm $th_f nITMY1a nITM_th1
s ITMY_th1 0 nITM_th1 nITM_th2
lens ITMY_lens inf nITM_th2 nITM_th3
s ITMY_th2 0.0 nITM_th3 nITMY1
m ITMYAR 0.0 0.99998 0.0 nITMY1 nITMYs1
s ITMYsub 0.2 1.44963098985906 nITMYs1 nITMYs2
m ITMY 0.9859625 0.014 0.0012 nITMYs2 nITMY2
put* ITMY phi $ITMY_lock
attr ITMY Rcx -1934.0
attr ITMY Rcy -1934.0
attr ITMY mass 40.0
s LY 3994.4692 nITMY2 nETMY1
m ETMY 0.9999575 5e-06 0.004601519713819729 nETMY1 nETMYs1
put* ETMY phi $ETMY_lock
attr ETMY Rcx 2245.0
attr ETMY Rcy 2245.0
attr ETMY mass 40.0
s ETMYsub 0.2 1.44963098985906 nETMYs1 nETMYs2
m ETMYAR 0.0 0.9995 0.0 nETMYs2 nPTY
s ITMY_th2 0 nITM_th3 nITMY1
# Y arm input mirror
m2 ITMYAR 0 20u 0 nITMY1 nITMYs1
#bs2 ITMYAR 20u 0 0 0 nITMY1 nITMYAR1 nITMYs1 nITMYAR2
s ITMYsub 0.2 $nsilica nITMYs1 nITMYs2
m1 ITMY 0.014 $Mloss $phi_ITMY nITMYs2 nITMY2
attr ITMY Rc -1934
# Y arm length
s LY $Larm nITMY2 nETMY1
# Y arm end mirror
m1 ETMY 5u $Mloss $phi_ETMY nETMY1 nETMYs1
s ETMYsub 0.2 $nsilica nETMYs1 nETMYs2
m2 ETMYAR 0 500u 0 nETMYs2 nPTY
#bs2 ETMYAR 500u 0 0 0 nETMYs2 nETMYAR1 nPTY nETMYAR1
attr ETMY Rc 2245
attr ETMY mass 40
attr ITMY mass 40
###########################################################################
%%% FTend Yarm
%%% FTblock Xarm
###########################################################################
# Distance from beam splitter to X arm input mirror
s lx1 4.993 nXBS nITMX1a
lens ITMX_therm 34500.0 nITMX1a nITMX_th1
s ITMX_th1 0.0 nITMX_th1 nITMX_th2
# Thermal lens correction
lens ITMX_therm $th_f nITMX1a nITMX_th1
s ITMX_th1 0 nITMX_th1 nITMX_th2
lens ITMX_lens inf nITMX_th2 nITMX_th3
s ITMX_th2 0.0 nITMX_th3 nITMX1
m ITMXAR 0.0 0.99998 0.0 nITMX1 nITMXs1
s ITMXsub 0.2 1.44963098985906 nITMXs1 nITMXs2
m ITMX 0.9859625 0.014 -0.0012 nITMXs2 nITMX2
put* ITMX phi $MICH_lock
attr ITMX Rcx -1934.0
attr ITMX Rcy -1934.0
attr ITMX mass 40.0
s LX 3994.4692 nITMX2 nETMX1
m ETMX 0.9999575 5e-06 -0.004601298494819022 nETMX1 nETMXs1
put* ETMX phi $ETMX_lock
attr ETMX Rcx 2245.0
attr ETMX Rcy 2245.0
attr ETMX mass 40.0
s ETMXsub 0.2 1.44963098985906 nETMXs1 nETMXs2
m ETMXAR 0.0 0.9995 0.0 nETMXs2 nPTX
s ITMX_th2 0 nITMX_th3 nITMX1
# X arm input mirror
m2 ITMXAR 0 20u 0 nITMX1 nITMXs1
#bs2 ITMXAR 20u 0 0 0 nITMX1 nITMXAR1 nITMXs1 nITMXAR2
s ITMXsub 0.2 $nsilica nITMXs1 nITMXs2
m1 ITMX 0.014 $Mloss $phi_ITMX nITMXs2 nITMX2
attr ITMX Rc -1934
# X arm length
s LX $Larm nITMX2 nETMX1
# X arm end mirror
m1 ETMX 5u $Mloss $phi_ETMX nETMX1 nETMXs1
s ETMXsub 0.2 $nsilica nETMXs1 nETMXs2
#bs2 ETMXAR 500u 0 0 0 nETMXs2 nETMXAR1 nPTX nETMXAR1
m2 ETMXAR 0 500u 0 nETMXs2 nPTX
attr ETMX Rc 2245
attr ETMX mass 40
attr ITMX mass 40
###########################################################################
%%% FTend Xarm
%%% FTblock SRC
###########################################################################
# Distance to SR3
s ls3 19.3661 nSRBS nSR3b
bs SR3 0.9999625 0.0 0.0 0.785 nSR3b nSR3a dump17 dump18
attr SR3 Rcx 35.972841
attr SR3 Rcy 35.972841
# SR3
bs1 SR3 0 $Mloss 0 0.785 nSR3b nSR3a dump17 dump18
attr SR3 Rc 35.972841
# Distance from SR3 to SR2
s ls2 15.4435 nSR3a nSR2b
bs SR2 0.9999625 0.0 0.0 -0.87 nSR2b nSR2a dump19 dump20
attr SR2 Rcx -6.406
attr SR2 Rcy -6.406
# SR2
bs1 SR2 0 $Mloss 0 -0.87 nSR2b nSR2a dump19 dump20
attr SR2 Rc -6.406
# Distance from SR2 to SRM
s ls1 15.7586 nSR2a nSRM1
m SRM 0.7999913 0.2 -90.0012 nSRM1 nSRMs1
put* SRM phi $SRCL_lock
attr SRM Rcx -5.6938
attr SRM Rcy -5.6938
s SRMsub 0.0749 1.44963098985906 nSRMs1 nSRMs2
m SRMAR 0.0 0.99999995 0.0 nSRMs2 nSRM2
# Signal recycling mirror SRM-08
m1 SRM 1 0 $phi_SRM nSRM1 nSRMs1
s SRMsub 0.0749 $nsilica nSRMs1 nSRMs2
m2 SRMAR 0 0 0 nSRMs2 nSRM2
#bs2 SRMAR 50n 0 0 0 nSRMs2 nSRMAR1 nSRM2 nSRMAR2
attr SRM Rc -5.6938
###########################################################################
%%% FTend SRC
%%% FTblock HOMs
%%% FTblock cavities
###########################################################################
#cav cavIMC MC2 nMC2in MC2 nMC2refl
cav cavXARM ITMX nITMX2 ETMX nETMX1
cav cavYARM ITMY nITMY2 ETMY nETMY1
cav cavPRX PRM nPRM2 ITMX nITMXs2
cav cavPRY PRM nPRM2 ITMY nITMYs2
cav cavSRX SRM nSRM1 ITMX nITMXs2
cav cavSRY SRM nSRM1 ITMY nITMYs2
%%% FTend HOMs
# removed OMC
###########################################################################
%%% FTend cavities
%%% FTblock constants
###########################################################################
const nsilica 1.44963098985906
const nTGG 1.954
const nCalcite 1.65846
const Mloss 37.5u
const Larm 3994.4692
const fM 36.397884M
const fP 54.596826M
const th_f 34.5k
###########################################################################
%%% FTend constants
%%% FTblock powers
###########################################################################
pd P_DC_AS nSRM2
# pd P_DC_OMC nOMC_HROC_trans
pd PIMCtrans nREFL*
pd Px nITMX2
pd Py nITMY2
pd Pprc nPRM2
pd Psrc nSRM1*
ad prc0 0 nPRM2
ad prcf1 $f1 nPRM2
ad prcf2 $f2 nPRM2
#ad aoc0 0 nOMC_HROC_trans
ad asc0 0 nSRM2
ad asf1 $f1 nSRM2
ad asf2 $f2 nSRM2
ad src0 0 nSRM1*
ad srcf1 $f1 nSRM1*
ad srcf2 $f2 nSRM1*
###########################################################################
%%% FTend powers
%%% FTblock tunings
###########################################################################
const phi_ITMX -0.0012
const phi_ITMY 0.0012
const phi_ETMX -0.0046012985
const phi_ETMY 0.0046015197
const phi_BS 0.0
const phi_PRM 0.003
const phi_SRM -90.0012
###########################################################################
%%% FTend tunings
%%% FTblock errsigs
###########################################################################
pd AS_DC nSRM2
pd1 REFL_f1_I 9099471.0 101 nREFL
pd1 POP_f1_I 9099471.0 101 nPOP
pd1 POP_f2_Q 45497355.0 93.0 nPOP
pd1 REFL_f2_I 45497355.0 14 nREFL
noplot AS_DC
pd0 AS_DC nSRM2
noplot REFL_f1_I
pd1 REFL_f1_I 9099471 101.0 nREFL
noplot POP_f1_I
pd1 POP_f1_I 9099471 101.0 nPOP
noplot POP_f2_Q
pd1 POP_f2_Q 45497355 103.0 nPOP
noplot REFL_f2_I
pd1 REFL_f2_I 45497355 14.0 nREFL
###########################################################################
%%% FTend errsigs
%%% FTblock locks
###########################################################################
set AS_f2_I_re AS_DC re
set CARM_err REFL_f1_I re
set PRCL_err POP_f1_I re
set MICH_err POP_f2_Q re
set SRCL_err REFL_f2_I re
func DARM_err = $AS_f2_I_re - 1.56140670384883
lock DARM_lock $DARM_err 0.0035 0.0048
lock DARM_lock $DARM_err 0.00035 0.0048
lock CARM_lock $CARM_err 0.00039 0.00043
lock PRCL_lock $PRCL_err -2.8 0.00012
lock MICH_lock $MICH_err 43.0 3.9e-05
lock SRCL_lock $SRCL_err 2.6 0.0016
lock MICH_lock $MICH_err 43 3.9e-05
noplot ITMY_lock
func ITMY_lock = (-1.0) * $MICH_lock
noplot ETMX_lock
func ETMX_lock = $CARM_lock + $MICH_lock + $DARM_lock
noplot ETMY_lock
func ETMY_lock = $CARM_lock - $MICH_lock - $DARM_lock
put* PRM phi $PRCL_lock
put* ITMX phi $MICH_lock
put* ITMY phi $ITMY_lock
put* ETMX phi $ETMX_lock
put* ETMY phi $ETMY_lock
noplot PRCL_lock
noplot MICH_lock
noplot DARM_lock
noplot CARM_lock
noplot ETMX_lock
noplot ETMY_lock
###########################################################################
%%% FTend locks
phase 2
maxtem 0
noxaxis
yaxis lin abs
phase 2
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment