Skip to content
Snippets Groups Projects
Commit b9e30c99 authored by Jameson Graef Rollins's avatar Jameson Graef Rollins
Browse files

suspension thermal noise simplification

new suspension_thermal() function for calculating thermal noise of a
single suspended optic.

ifo SuspensionThermal Noise class modified to handle specific case of
Fabry-Perot Michelson.
parent 52ca1f8e
No related branches found
No related tags found
No related merge requests found
......@@ -103,7 +103,8 @@ class SuspensionThermal(nb.Noise):
)
def calc(self):
return noise.suspensionthermal.susptherm(self.freq, self.ifo)
n = noise.suspensionthermal.suspension_thermal(self.freq, self.ifo.Suspension)
return n * 4 * self.ifo.gwinc.dhdl_sqr
class CoatingBrownian(nb.Noise):
......
'''Functions to calculate suspension thermal noise
'''
from __future__ import division
from numpy import pi, imag, zeros
import numpy as np
from numpy import pi, imag, zeros
from .. import const
......@@ -8,14 +11,17 @@ from .. import const
def suspension_thermal(f, sus):
"""Suspention thermal noise for a single suspended test mass
'Temp' must either be set for each stage individually, or globally
in ifo.Suspension.Temp. The latter will be preferred if
specified, so if you wish to use per-stage tempurature you must
remove Suspension.Temp.
:f: frequency array in Hz
:sus: gwinc suspension structure
:returns: displacement noise power spectrum at :f:
:Temp: must either be set for each stage individually, or globally
in :sus.Temp:. The latter will be preferred if specified, so if
you wish to use per-stage tempurature you must remove :sus.Temp:.
Assumes suspension transfer functions and V-H coupling have been
pre-calculated and populated into the relevant `ifo` struct
fields.
pre-calculated and populated into the relevant `sus` fields.
"""
# Assign Physical Constants
......@@ -74,7 +80,4 @@ def suspension_thermal(f, sus):
w = 2*pi*f
noise += 4 * kB * stage.Temp * abs(imag(dxdF[n, :])) / w
# 4 masses, turn into gravitational wave strain
noise *= 4 * ifo.gwinc.dhdl_sqr
return np.squeeze(noise)
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