Skip to content
Snippets Groups Projects
Commit 81e1171b authored by Kevin Kuns's avatar Kevin Kuns Committed by Jameson Rollins
Browse files

update FC parameter optimization

- Updated the filter cavity optimization to work with the recent precomp changes
- Removed a redundant argument in computeFCParams
parent 862e3829
No related branches found
No related tags found
No related merge requests found
from numpy import pi, sqrt from numpy import pi, sqrt
from . import const from . import const
from .ifo.noises import ifo_power
def sql(ifo): def sql(ifo):
"""Computer standard quantum limit (SQL) for IFO""" """Computer standard quantum limit (SQL) for IFO"""
c = const.c c = const.c
Parm = ifo.gwinc.parm power = ifo_power(ifo)
w0 = 2 * pi * c / ifo.Laser.Wavelength w0 = 2 * pi * c / ifo.Laser.Wavelength
m = ifo.Materials.MirrorMass rho = ifo.Materials.Substrate.MassDensity
m = pi * ifo.Materials.MassRadius**2 * ifo.Materials.MassThickness * rho
Titm = ifo.Optics.ITM.Transmittance Titm = ifo.Optics.ITM.Transmittance
Tsrm = ifo.Optics.SRM.Transmittance Tsrm = ifo.Optics.SRM.Transmittance
tSR = sqrt(Tsrm) tSR = sqrt(Tsrm)
rSR = sqrt(1 - Tsrm) rSR = sqrt(1 - Tsrm)
fSQL = (1/(2*pi))*(8/c)*sqrt((Parm*w0)/(m*Titm))*(tSR/(1+rSR)) fSQL = (1/(2*pi))*(8/c)*sqrt((power.parm*w0)/(m*Titm))*(tSR/(1+rSR))
return fSQL return fSQL
def computeFCParams(ifo, fcParams): def computeFCParams(ifo):
"""Compute ideal filter cavity Tin, detuning [Hz] and bandwidth [Hz] """Compute ideal filter cavity Tin, detuning [Hz] and bandwidth [Hz]
""" """
# FC parameters # FC parameters
fcParams = ifo.Squeezer.FilterCavity
c = const.c c = const.c
fsrFC = c / (2 * fcParams.L) fsrFC = c / (2 * fcParams.L)
lossFC = fcParams.Lrt + fcParams.Te lossFC = fcParams.Lrt + fcParams.Te
...@@ -40,7 +43,8 @@ def computeFCParams(ifo, fcParams): ...@@ -40,7 +43,8 @@ def computeFCParams(ifo, fcParams):
# input mirror transmission # input mirror transmission
TinFC = 4 * pi * gammaFC / fsrFC - lossFC TinFC = 4 * pi * gammaFC / fsrFC - lossFC
if TinFC < lossFC: if TinFC < lossFC:
raise RuntimeError('IFC: Losses are too high! %.1f ppm max.' % 1e6 * gammaFC / fsrFC) raise RuntimeError(
'IFC: Losses are too high! {:0.1f} ppm max.'.format(1e6 * gammaFC / fsrFC))
# Add to fcParams structure # Add to fcParams structure
fcParams.Ti = TinFC fcParams.Ti = TinFC
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment