Quantum noise sub-budgets
- Adds quantum noise sub-budgets. This addresses 1/3 of #51 (closed). Quantum noise can now be broken up into
- AS port vacuum
- Arm loss
- SEC loss
- Filter cavity loss
- Injection loss
- Readout loss
- Quantum quadrature phase noise
- Changes the quadrature phase noise calculation as described in the comments below. This should close #20 (closed).
- Removes support for negative RMS phase fluctuations.
- Removes call to shotrad4 in some cases since this function no longer exists.
The sub-budgets are only implemented for the Cosmic Explorer interferometers since these are the only ones that have any other sub-budgets. Adding sub-budgets to the other interferometers is easy. The CE2 quantum budget is shown below as an example.
Merge request reports
Activity
added enhancement noise labels
256 def HDnoise(eta, Mn): 234 257 vHD = np.array([[sin(eta), cos(eta)]]) 235 n = coeff * np.squeeze(np.sum(abs(getProdTF(vHD, Mnoise))**2, axis=1)) / \ 258 n = coeff * np.squeeze(np.sum(abs(getProdTF(vHD, Mn))**2, axis=1)) / \ 236 259 np.squeeze(np.sum(abs(getProdTF(vHD, Msig))**2, axis=1)) 237 260 return n 238 261 239 if etaRMS <= 0: 240 n = HDnoise(eta) 241 else: 242 # include quadrature noise (average of +- the RMS) 243 n = (HDnoise(eta+etaRMS) + HDnoise(eta-etaRMS)) / 2 262 # include quadrature noise (average of +- the RMS) 263 n = {key: (HDnoise(eta+etaRMS, Mn) + HDnoise(eta-etaRMS, Mn)) / 2 264 for key, Mn in Mnoise.items()} 244 265 I think this should instead be
HDnoise(eta) * cos(etaRMS)**2 + HDnoise(eta + pi/2) * sin(etaRMS)**2
see, for example, equation 24 of this paper. The second term would then become the squeeze quadrature phase noise.
However, the injected squeeze amplitude needs to be optimized to the level of phase noise to achieve the squeezing limits shown in figure 11 of that paper. This is not the case for the current gwinc interferometers and so it seems better to address this in a separate merge request.
It turns out @lee-mcculler already had this discussion with himself two years ago in !17 (merged). I implemented the new quadrature phase noise calculation and added the new trace to the quantum vacuum sub-budget. I didn't use the suggestion in !17 (merged) though since that's still for the homodyne instead of the squeeze angle. I think this MR should also close #20 (closed) now.
mentioned in merge request !95 (merged)
added 49 commits
-
069efda3...169b1afa - 40 commits from branch
gwinc:master
- 97afd5d6 - precomp support
- c9eb66d2 - merge precomp changes into quantum sub-budgets
- de24d3b1 - update sub-budgets to use new precomp
- 49126072 - precomp_quantum stores data as structs instead of dicts in the ifo struct
- 79499488 - make new function to extract squeezer parameters
- 7c5be7aa - Merge branch 'master' into quant-precomp
- 8d39319e - update for new precomp code
- fd8c9324 - generalize to arbitrary number of filter cavities, including none
- 0e90ed52 - add quadrature phase noise
Toggle commit list-
069efda3...169b1afa - 40 commits from branch
mentioned in merge request !105 (merged)
added 14 commits
-
0e90ed52...da2550d5 - 12 commits from branch
gwinc:master
- 6fb8177d - Merge branch 'master' into quant-sub-nb
- 9c0d11ce - update precomp_quantum to work with new ifo_power function
-
0e90ed52...da2550d5 - 12 commits from branch
added 3 commits
-
9c0d11ce...814668ef - 2 commits from branch
gwinc:master
- acbdfdc1 - Merge branch 'master' into quant-sub-nb
-
9c0d11ce...814668ef - 2 commits from branch
added 10 commits
- 4eaf1e24 - remove shotrad4 case in shotrad because it doesn't exist
- 3aec1832 - make quantum noise sub-budgets
- b9f392ab - update sub-budgets to use new precomp
- 3173a92e - precomp_quantum stores data as structs instead of dicts in the ifo struct
- 4a595201 - make new function to extract squeezer parameters
- 5ec93899 - update for new precomp code
- 77a90d7d - generalize to arbitrary number of filter cavities, including none
- 6508d041 - add quadrature phase noise
- 036745df - update precomp_quantum to work with new ifo_power function
- 996f54bd - add quantum sub-budgets to aLIGO, Aplus, and Voyager
Toggle commit listmentioned in commit aed85d9e
mentioned in issue #51 (closed)