Skip to content
Snippets Groups Projects
Commit 722df66e authored by Andreas Freise's avatar Andreas Freise
Browse files

converting master.py

parent 897c2f39
No related branches found
No related tags found
No related merge requests found
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
from pykat import finesse
from pykat.commands import *
import copy
......@@ -7,7 +12,7 @@ import scipy.optimize
def main():
print """
print("""
--------------------------------------------------------------
Example file for using PyKat to automate Finesse simulations
Finesse: http://www.gwoptics.org/finesse
......@@ -25,7 +30,7 @@ def main():
Andreas Freise 16.01.2014
--------------------------------------------------------------
"""
""")
# for debugging we might need to see the temporay file:
kat = finesse.kat(tempdir=".",tempname="test")
......@@ -40,16 +45,16 @@ def main():
#global out
#global result
print "--------------------------------------------------------"
print " 1. tunes ETM position to find resonance"
print("--------------------------------------------------------")
print(" 1. tunes ETM position to find resonance")
kat.ETM.phi=resonance(kat)
print "--------------------------------------------------------"
print " 2. print sideband and carrier powers/amplitudes"
print("--------------------------------------------------------")
print(" 2. print sideband and carrier powers/amplitudes")
powers(kat)
print "--------------------------------------------------------"
print " 3. determine the optimal phase for the PDH signal"
print("--------------------------------------------------------")
print(" 3. determine the optimal phase for the PDH signal")
(result['p_phase'], result['q_phase']) = pd_phase(kat)
# setting demodulation phase
......@@ -63,24 +68,24 @@ def main():
kat.PDrefl_p.phi1=result['p_phase']
kat.PDrefl_q.phi1=result['q_phase']
print "--------------------------------------------------------"
print " 4. adding a 0.1nm offset to ETM and compute PDH signal"
print("--------------------------------------------------------")
print(" 4. adding a 0.1nm offset to ETM and compute PDH signal")
result['phi_tuned']=float(kat.ETM.phi)
result['phi_detuned'] = result['phi_tuned'] + 0.1/1064.0*360
kat.ETM.phi=result['phi_detuned']
print " new ETM phi tuning = %g " % kat.ETM.phi
print(" new ETM phi tuning = %g " % kat.ETM.phi)
(result['pd_p'], result['pd_q']) = pd_signal(kat)
print " PDH inphase = %e " % result['pd_p']
print " PDH quadrtature = %e " % result['pd_q']
print(" PDH inphase = %e " % result['pd_p'])
print(" PDH quadrtature = %e " % result['pd_q'])
print "--------------------------------------------------------"
print " Saving results in temp. files to be read by master2.py"
print("--------------------------------------------------------")
print(" Saving results in temp. files to be read by master2.py")
tmpkatfile = "asc_base2.kat"
tmpresultfile = "myshelf1.dat"
print " kat object saved in: {0}".format(tmpkatfile)
print " current results saved in: {0}".format(tmpresultfile)
print(" kat object saved in: {0}".format(tmpkatfile))
print(" current results saved in: {0}".format(tmpresultfile))
# first the current kat file
kat.saveScript(tmpkatfile)
# now the result variables:
......@@ -100,9 +105,10 @@ def pd_signal(tmpkat):
"""
kat.parseKatCode(code1)
kat.noxaxis = True
global out
out = kat.run()
print " Cavity power: {0:.6f}W".format(out.y[2])
return (out.y[0], out.y[1])
print(" Cavity power: {0:.6f}W".format(out.y[2]))
return (out.y[0,0], out.y[0,11])
def pd_phase(tmpkat):
......@@ -119,7 +125,7 @@ def pd_phase(tmpkat):
def PD_q_test(x):
kat.PDrefl_q.phi1=x
out = kat.run()
print '\r root finding: function value %g ' % out.y,
print('\r root finding: function value %g ' % out.y, end=' ')
sys.stdout.flush()
return out.y
......@@ -127,14 +133,14 @@ def pd_phase(tmpkat):
xtol=1e-8
(result, info)=scipy.optimize.bisect(PD_q_test,80.0,100.0, xtol=xtol, maxiter=500, full_output=True)
print ""
print("")
if info.converged:
p_phase=result-90.0
q_phase=result
print " Root has been found:"
print " p_phase %8f" % (p_phase)
print " q_phase %8f" % (q_phase)
print " (%d iterations, %g tolerance)" % (info.iterations, xtol)
print(" Root has been found:")
print(" p_phase %8f" % (p_phase))
print(" q_phase %8f" % (q_phase))
print(" (%d iterations, %g tolerance)" % (info.iterations, xtol))
return (p_phase, q_phase)
else:
raise Exception("Root has not been found")
......@@ -164,7 +170,7 @@ def powers(tmpkat):
code1 = code1.split("\n")
for i in range(len(out.y)):
print " %8s: %.4e" % (out.ylabels[i], out.y[i])
print(" %8s: %.4e" % (out.ylabels[i], out.y[0,i]))
def resonance(tmpkat):
......@@ -181,9 +187,10 @@ def resonance(tmpkat):
# function for root finding
def carrier_resonance(x):
kat.ETM.phi=x
global out
out = kat.run()
phase = (out.y[0]-out.y[1]-90)%360-180
print '\r root finding: function value %g ' % phase ,
phase = (out.y[0,0]-out.y[0,1]-90)%360-180
print('\r root finding: function value %g ' % phase, end=' ')
sys.stdout.flush()
return phase
......@@ -191,11 +198,11 @@ def resonance(tmpkat):
xtol=1e-8
(result, info)=scipy.optimize.bisect(carrier_resonance,0.0,40.0, xtol=xtol, maxiter=500, full_output=True)
print ""
print("")
if info.converged:
print " Root has been found:"
print " ETM phi %8f" % (result)
print " (%d iterations, %g tolerance)" % (info.iterations, xtol)
print(" Root has been found:")
print(" ETM phi %8f" % (result))
print(" (%d iterations, %g tolerance)" % (info.iterations, xtol))
return result
else:
raise Exception(" Root has not been found")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment