Skip to content
Snippets Groups Projects

Interface simplifications

Merged Jameson Rollins requested to merge jameson.rollins/pygwinc:interface-simplify into master
+ 16
16
@@ -50,20 +50,20 @@ def ifo_power(ifo, PRfixed=True):
"""Compute power on beamsplitter, finesse, and power recycling factor.
"""
c = const.c
pin = ifo.Laser.Power
t1 = sqrt(ifo.Optics.ITM.Transmittance)
r1 = sqrt(1 - ifo.Optics.ITM.Transmittance)
r2 = sqrt(1 - ifo.Optics.ETM.Transmittance)
t5 = sqrt(ifo.Optics.PRM.Transmittance)
r5 = sqrt(1 - ifo.Optics.PRM.Transmittance)
loss = ifo.Optics.Loss # single TM loss
bsloss = ifo.Optics.BSLoss
acoat = ifo.Optics.ITM.CoatingAbsorption
pcrit = ifo.Optics.pcrit
c = const.c
pin = ifo.Laser.Power
t1 = sqrt(ifo.Optics.ITM.Transmittance)
r1 = sqrt(1 - ifo.Optics.ITM.Transmittance)
r2 = sqrt(1 - ifo.Optics.ETM.Transmittance)
t5 = sqrt(ifo.Optics.PRM.Transmittance)
r5 = sqrt(1 - ifo.Optics.PRM.Transmittance)
loss = ifo.Optics.Loss # single TM loss
bsloss = ifo.Optics.BSLoss
acoat = ifo.Optics.ITM.CoatingAbsorption
pcrit = ifo.Optics.pcrit
# Finesse, effective number of bounces in cavity, power recycling factor
finesse = 2*pi / (t1**2 + 2*loss) # arm cavity finesse
finesse = 2*pi / (t1**2 + 2*loss) # arm cavity finesse
neff = 2 * finesse / pi
# Arm cavity reflectivity with finite loss
@@ -73,17 +73,17 @@ def ifo_power(ifo, PRfixed=True):
if PRfixed:
Tpr = ifo.Optics.PRM.Transmittance # use given value
else:
Tpr = 1-(rarm*sqrt(1-bsloss))**2 # optimal recycling mirror transmission
Tpr = 1-(rarm*sqrt(1-bsloss))**2 # optimal recycling mirror transmission
t5 = sqrt(Tpr)
r5 = sqrt(1 - Tpr)
prfactor = t5**2 / (1 + r5 * rarm * sqrt(1-bsloss))**2
pbs = pin * prfactor # BS power from input power
parm = pbs * garm**2 / 2 # arm power from BS power
pbs = pin * prfactor # BS power from input power
parm = pbs * garm**2 / 2 # arm power from BS power
thickness = ifo.Optics.ITM.get('Thickness', ifo.Materials.MassThickness)
asub = 1.3 * 2 * thickness * ifo.Optics.SubstrateAbsorption
pbsl = 2 *pcrit / (asub+acoat*neff) # bs power limited by thermal lensing
pbsl = 2 *pcrit / (asub+acoat*neff) # bs power limited by thermal lensing
if pbs > pbsl:
logging.warning('P_BS exceeds BS Thermal limit!')
Loading