Skip to content
Snippets Groups Projects
Commit ecbf43b2 authored by Kevin Kuns's avatar Kevin Kuns
Browse files

can compute separate gas damping for ITMs and ETMs

parent 2112e5ac
No related branches found
No related tags found
1 merge request!121Residual gas sub-budgets and updates
......@@ -53,8 +53,11 @@ Infrastructure:
SqueezedFilm:
# Excess gas damping due to compensation plates and reaction masses
# Numbers are rough guesses from LIGO-T0900582
ExcessDamping: 1.33 # excess force noise at DC; section 6
DiffusionTime: 800e-6 # s; diffusion time; section 4
ETM:
ExcessDamping: 1.33 # excess force noise at DC; section 6
DiffusionTime: 800e-6 # s; diffusion time; section 4
ITM:
gap: 20e-3 # m; gap between ITMs and compensation plates
TCS:
......
......@@ -846,9 +846,10 @@ class ExcessGasDampingH2(nb.Noise):
@nb.precomp(sustf=precomp_suspension)
def calc(self, sustf):
species = self.ifo.Infrastructure.ResidualGas.H2
n = noise.residualgas.residual_gas_damping(
self.freq, self.ifo, species, sustf)
return 4 * n
# n = noise.residualgas.residual_gas_damping(
# self.freq, self.ifo, species, sustf)
# return 4 * n
return _calc_residual_gas_damping(self.freq, self.ifo, species, sustf)
class ExcessGasDampingN2(nb.Noise):
......@@ -864,10 +865,10 @@ class ExcessGasDampingN2(nb.Noise):
@nb.precomp(sustf=precomp_suspension)
def calc(self, sustf):
species = self.ifo.Infrastructure.ResidualGas.N2
n = noise.residualgas.residual_gas_damping(
self.freq, self.ifo, species, sustf)
return 4 * n
# n = noise.residualgas.residual_gas_damping(
# self.freq, self.ifo, species, sustf)
# return 4 * n
return _calc_residual_gas_damping(self.freq, self.ifo, species, sustf)
class ExcessGasDampingH2O(nb.Noise):
"""Excess gas damping for H2O
......@@ -882,6 +883,34 @@ class ExcessGasDampingH2O(nb.Noise):
@nb.precomp(sustf=precomp_suspension)
def calc(self, sustf):
species = self.ifo.Infrastructure.ResidualGas.H2O
n = noise.residualgas.residual_gas_damping(
self.freq, self.ifo, species, sustf)
return 4 * n
# n = noise.residualgas.residual_gas_damping(
# self.freq, self.ifo, species, sustf)
# return 4 * n
return _calc_residual_gas_damping(self.freq, self.ifo, species, sustf)
def _calc_residual_gas_damping(f, ifo, species, sustf):
"""Redundant calculation of res gas damping for each species
Can get rid of if budgets are calculated at runtime
"""
squeezed_film = ifo.Infrastructure.ResidualGas.get('SqueezedFilm', None)
if squeezed_film:
if 'ETM' in squeezed_film and 'ITM' in squeezed_film:
n_ETM = noise.residualgas.residual_gas_damping(
f, ifo, species, sustf, squeezed_film.ETM)
n_ITM = noise.residualgas.residual_gas_damping(
f, ifo, species, sustf, squeezed_film.ITM)
n = 2 * (n_ETM + n_ITM)
else:
n = 4 * noise.residualgas.residual_gas_damping(
f, ifo, species, sustf, squeezed_film)
else:
n = 4 * noise.residualgas.residual_gas_damping(
f, ifo, species, sustf, squeezed_film)
return n
......@@ -57,13 +57,14 @@ def residual_gas_scattering(f, ifo, cavity, species):
return zint
def residual_gas_damping(f, ifo, species, sustf):
def residual_gas_damping(f, ifo, species, sustf, squeezed_film):
"""Noise due to residual gas damping for one test mass
:f: frequency array in Hz
:ifo: gwinc IFO structure
:species: molecular species structure
:sustf: suspension transfer function structure
:squeezed_film: squeezed film damping structure
:returns: displacement noise
"""
......@@ -90,9 +91,7 @@ def residual_gas_damping(f, ifo, species, sustf):
# add squeezed film damping if necessary as parametrized by
# Eq (5) of http://dx.doi.org/10.1103/PhysRevD.84.063007
if 'SqueezedFilm' in ifo.Infrastructure.ResidualGas:
squeezed_film = ifo.Infrastructure.ResidualGas.SqueezedFilm
if squeezed_film:
# the excess force noise and diffusion time are specified directly
if 'ExcessDamping' in squeezed_film:
# ExcessDamping is the ratio of the total gas damping noise at DC
......
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