function opt=optbKAGRAp1(p) % Construct Optickle model of bKAGRA Phase 1 % p: parameter set generated with parambKAGRAp1.m % Initiated by: Yuta Michimura % create an empty model, with frequencies specified opt = Optickle(p.vMod); % ADD OPTICS opt.addSource('Laser', (p.vMod==0)*sqrt(p.Pin)); opt.addRFmodulator('Mod1', p.fmod1, p.g1); listMirror = {'IMMT1', 'IMMT2', 'PRM', 'PR2', 'PR3', 'BS', 'ETMX', 'ETMY', 'SR3', 'SR2'}; listBeamSplitter = {'IMMT1', 'IMMT2', 'PR2', 'PR3', 'BS', 'SR3', 'SR2'}; for n = 1:length(listMirror) name = listMirror{n}; par = p.(name); if sum(strcmp(name, listBeamSplitter)) % add Mirror or BeamSplitter opt.addBeamSplitter(name,par.aio, par.Chr , par.Thr ,par.Lhr , par.Rar, par.Lmd, par.Nmd); else opt.addMirror(name,par.aio, par.Chr , par.Thr ,par.Lhr , par.Rar, par.Lmd, par.Nmd); end try % mechanical TF for force on TM to displacement of TM if specified opt.setMechTF(name, par.mechTFpos); catch warning('No mechanical TF for displacement of %s',name); end try % mechanical TF for torque on TM to angle of TM if specified opt.setMechTF(name, par.mechTFpit,2); opt.setMechTF(name, par.mechTFyaw,3); catch warning('No mechanical TF for angle of %s',name); end end % LINKS opt.addLink('Laser', 'out', 'Mod1', 'in',0); opt.addLink('Mod1', 'out', 'IMMT1', 'frA',0); opt.addLink('IMMT1', 'frA', 'IMMT2', 'frA',0); opt.addLink('IMMT2', 'frA', 'PRM', 'bk',0); opt.addLink('PRM', 'fr', 'PR2', 'frA', p.LPRM_PR2); opt.addLink('PR2', 'frA', 'PR3', 'frA', p.LPR2_PR3); opt.addLink('PR3', 'frA', 'BS', 'frA', p.LPR3_BS); opt.addLink('BS', 'bkA', 'ETMX', 'fr', p.LBS_ITMX+p.Larm); opt.addLink('ETMX', 'fr', 'BS', 'bkB', p.LBS_ITMX+p.Larm); opt.addLink('BS', 'frA', 'ETMY', 'fr', p.LBS_ITMY+p.Larm); opt.addLink('ETMY', 'fr', 'BS', 'frB', p.LBS_ITMY+p.Larm); opt.addLink('BS', 'frB', 'PR3', 'frB', p.LPR3_BS); opt.addLink('PR3', 'frB', 'PR2', 'frB', p.LPR2_PR3); opt.addLink('PR2', 'frB', 'PRM', 'fr', p.LPRM_PR2); opt.addLink('BS', 'bkB', 'SR3', 'frB', p.LSR3_BS); opt.addLink('SR3', 'frB', 'SR2', 'frB', p.LSR2_SR3); % PROBES % POP port (DC, f1) opt.addSink('AttPOP',p.AttPOP); opt.addSink('POP',0); opt.addLink('PR2', 'bkB', 'AttPOP','in',0); opt.addLink('AttPOP', 'out', 'POP', 'in',0); opt.addReadout('POP', [p.fmod1,p.demodphasePOP1]); % POP ASC port (DC, f1) opt.addSink('AttPOPQPD',p.AttPOPQPD); opt.addMirror('POPSplit', 45, 0, 0.5, 0, 0, 0, 1.45); opt.addSink('POPA'); opt.addSink('POPB'); opt.addGouyPhase('GouyPOPA', p.GouyPOPA); opt.addGouyPhase('GouyPOPB', p.GouyPOPB); opt.addLink('POP', 'out', 'AttPOPQPD', 'in',0); opt.addLink('AttPOPQPD', 'out', 'POPSplit', 'fr',0); opt.addLink('POPSplit', 'fr', 'GouyPOPA', 'in',0); opt.addLink('GouyPOPA', 'out','POPA', 'in', 0); opt.addLink('POPSplit', 'bk', 'GouyPOPB', 'in',0); opt.addLink('GouyPOPB', 'out','POPB', 'in', 0); opt.addReadout('POPA', [p.fmod1,p.demodphasePOP1]); opt.addReadout('POPB', [p.fmod1,p.demodphasePOP1]); % REFL port (DC, f1) opt.addSink('AttREFL',p.AttREFL); opt.addSink('REFL', 0.99); opt.addLink('PRM', 'bk', 'AttREFL','in',0); opt.addLink('AttREFL', 'out', 'REFL', 'in',0); opt.addReadout('REFL', [p.fmod1,p.demodphaseREFL1]); % REFL ASC port (DC, f1) opt.addSink('AttREFLQPD',p.AttREFLQPD); opt.addMirror('REFLSplit', 45, 0, 0.5, 0, 0, 0, 1.45); opt.addSink('REFLA'); opt.addSink('REFLB'); opt.addGouyPhase('GouyREFLA', p.GouyREFLA); opt.addGouyPhase('GouyREFLB', p.GouyREFLB); opt.addLink('REFL', 'out', 'AttREFLQPD', 'in',0); opt.addLink('AttREFLQPD', 'out', 'REFLSplit', 'fr',0); opt.addLink('REFLSplit', 'fr', 'GouyREFLA', 'in',0); opt.addLink('GouyREFLA', 'out','REFLA', 'in', 0); opt.addLink('REFLSplit', 'bk', 'GouyREFLB', 'in',0); opt.addLink('GouyREFLB', 'out','REFLB', 'in', 0); opt.addReadout('REFLA', [p.fmod1,p.demodphaseREFL1]); opt.addReadout('REFLB', [p.fmod1,p.demodphaseREFL1]); % AS port (DC, f1) opt.addSink('AttAS',p.AttAS); opt.addSink('AS',0.99); opt.addLink('SR2', 'frB', 'AttAS','in',0); opt.addLink('AttAS', 'out', 'AS', 'in',0); opt.addReadout('AS', [p.fmod1,p.demodphaseAS1]); % AS ASC port (DC, f1) opt.addSink('AttASQPD',p.AttASQPD); opt.addMirror('ASSplit', 45, 0, 0.5, 0, 0, 0, 1.45); opt.addSink('ASA'); opt.addSink('ASB'); opt.addGouyPhase('GouyASA', p.GouyASA); opt.addGouyPhase('GouyASB', p.GouyASB); opt.addLink('AS', 'out', 'AttASQPD', 'in',0); opt.addLink('AttASQPD', 'out', 'ASSplit', 'fr',0); opt.addLink('ASSplit', 'fr', 'GouyASA', 'in',0); opt.addLink('GouyASA', 'out','ASA', 'in', 0); opt.addLink('ASSplit', 'bk', 'GouyASB', 'in',0); opt.addLink('GouyASB', 'out','ASB', 'in', 0); opt.addReadout('ASA', [p.fmod1,p.demodphaseAS1]); opt.addReadout('ASB', [p.fmod1,p.demodphaseAS1]); % TRX port (DC) opt.addSink('AttTRX',p.AttTRX); opt.addSink('TRX',0); opt.addLink('ETMX', 'bk', 'AttTRX','in',0); opt.addLink('AttTRX', 'out', 'TRX', 'in',0); opt.addProbeIn('TRX_DC', 'TRX', 'in', 0, 0); % TRX ASC port (DC) opt.addSink('AttTRXQPD',p.AttTRXQPD); opt.addMirror('TRXSplit', 45, 0, 0.5, 0, 0, 0, 1.45); opt.addSink('TRXA'); opt.addSink('TRXB'); opt.addGouyPhase('GouyTRXA', p.GouyTRXA); opt.addGouyPhase('GouyTRXB', p.GouyTRXB); opt.addLink('TRX', 'out', 'AttTRXQPD', 'in',0); opt.addLink('AttTRXQPD', 'out', 'TRXSplit', 'fr',0); opt.addLink('TRXSplit', 'fr', 'GouyTRXA', 'in',0); opt.addLink('GouyTRXA', 'out','TRXA', 'in', 0); opt.addLink('TRXSplit', 'bk', 'GouyTRXB', 'in',0); opt.addLink('GouyTRXB', 'out','TRXB', 'in', 0); opt.addProbeIn('TRXA_DC', 'TRXA', 'in', 0, 0); opt.addProbeIn('TRXB_DC', 'TRXB', 'in', 0, 0); % TRY port (DC) opt.addSink('AttTRY',p.AttTRY); opt.addSink('TRY',0); opt.addLink('ETMY', 'bk', 'AttTRY','in',0); opt.addLink('AttTRY', 'out', 'TRY', 'in',0); opt.addProbeIn('TRY_DC', 'TRY', 'in', 0, 0); % TRY ASC port (DC) opt.addSink('AttTRYQPD',p.AttTRYQPD); opt.addMirror('TRYSplit', 45, 0, 0.5, 0, 0, 0, 1.45); opt.addSink('TRYA'); opt.addSink('TRYB'); opt.addGouyPhase('GouyTRYA', p.GouyTRYA); opt.addGouyPhase('GouyTRYB', p.GouyTRYB); opt.addLink('TRY', 'out', 'AttTRYQPD', 'in',0); opt.addLink('AttTRYQPD', 'out', 'TRYSplit', 'fr',0); opt.addLink('TRYSplit', 'fr', 'GouyTRYA', 'in',0); opt.addLink('GouyTRYA', 'out','TRYA', 'in', 0); opt.addLink('TRYSplit', 'bk', 'GouyTRYB', 'in',0); opt.addLink('GouyTRYB', 'out','TRYB', 'in', 0); opt.addProbeIn('TRYA_DC', 'TRYA', 'in', 0, 0); opt.addProbeIn('TRYB_DC', 'TRYB', 'in', 0, 0); %% Set Operating Point opt.setPosOffset('PRM', p.posOffsetPRM); opt.setPosOffset('ETMX', p.armOffset); opt.setPosOffset('ETMY', -p.armOffset); %% Set cavity bases %opt = setCavityBasis(opt, 'PRM', 'ETMY'); %opt = setFrontBasisForMirror(opt,'ETMX',p.ETMX.dWaist); opt = setFrontBasisForMirror(opt,'ETMX',p.z);