- May 22, 2021
-
-
Kevin Kuns authored
precomp_suspension was being called for no reason in SuspensionThermalHorizTM.calc()
-
- Feb 24, 2021
-
-
Jameson Rollins authored
-
- Dec 15, 2020
-
-
Kevin Kuns authored
* update the Cosmic Explorer noise budgets to those shown in arXiv:2012.03608 * remove CE2 and add CE2silica and CE2silicon
-
- Nov 18, 2020
-
-
Adds suspension thermal noise sub-budgets. This addresses 1/3 of #51. Suspension thermal noise can now be broken up into horizontal and vertical noise of each of the suspension stages. With one exception, which does not change the total noise, the calculation is the same as the current calculation but the contributions of each stage and direction are tracked separately. In the current calculation the horizontal and vertical spring constants of each stage are broken up into an upper and lower joint and are stored separately. The total suspension thermal noise is then calculated by adding the contributions of each of these joints using the appropriate temperature of each joint. Instead of adding the contributions of each joint all at once, this MR makes it possible to track each stage with separate `Noise` classes and add them all to a sub-budget. The noise for each stage is the sum of the noise from that stage's lower joint and the noise from the upper joint of the stage below. In the case of the top mass, the contribution from the upper joint is also included. In the current calculation, for the upper stages, the imaginary part of the horizontal spring constant is equally distributed between the upper and lower joints while it is only attributed to the upper joint for the test mass. The one change this MR makes to the calculation itself is to distribute this equally between the top and bottom joints as is done for the upper stages. The imaginary part of the vertical spring constant is only attributed to the upper joint of each stage. The blade springs are the only contribution to the vertical spring constant for the upper stages while the lower stage also includes the continuum fibers or ribbons. It's unclear how to break this up into an upper and lower stage as is done in figure 14 of https://arxiv.org/abs/2001.11173, so this MR does not have vertical noise of the test mass. (The noise is included, it's just attributed entirely to the PUM.)
-
- Nov 17, 2020
-
-
Kevin Kuns authored
* All quantum calculations use the final stage suspension mass instead of calculating it from the test mass radius and thickness * shotradSignalRecycled uses the suspension susceptibility instead of the free mass approximation
-
Kevin Kuns authored
- Break seismic noise up into contributions from horizontal and vertical motion. - Moved code to calculate the platform motion from noises.py into seismic.py. - Removed duplicate dhdl function from noises.py.
-
- Nov 02, 2020
-
-
Duncan Macleod authored
-
- Oct 27, 2020
-
-
Jameson Rollins authored
-
Kevin Kuns authored
-
- Oct 21, 2020
-
-
Quantum noise now broken up into: * AS Port Vacuum * Arm Loss * SRC Loss * Filter Cavity Loss * Injection Loss * Readout Loss
-
- Oct 20, 2020
-
-
Christopher Wipf authored
Brownian amplitude noise is generally quite negligible, so the CoatingBrownian budget item no longer considers it. The calculation remains available in coating_brownian().
-
Christopher Wipf authored
- merge coating_thickness into mirror_struct - merge precomp_mirror into mirror_struct - merge precomp_power into ifo_power - merge precomp_cavity into arm_cavity precomp is no longer used for these helpers, but they're sufficiently trivial that it doesn't matter whether they are cached.
-
- Oct 09, 2020
-
-
Jameson Rollins authored
This struct is created by the precomp_mirror function, and is essentially the union of the Material and Optic structs, holding all relevant properties for a given optic for thermal noise calculations. It can be used in place of either the Material or Optic structs. Coating thermal noise functions are modified to accept this struct.
-
- Oct 08, 2020
-
-
Jameson Rollins authored
This is some cleanup and simplification of Lee's mapped precomp series.
-
Lee McCuller authored
-
Jameson Rollins authored
nb.precomp decorator can be used to wrap BudgetItem.calc methods with functions that only need to be called once per budget run. nb.precomp(precomp_foo) def calc(self): ... Precomp functions are all executed by the update() method (after attribute update), and execution state is cached at the Budget level, to prevent re-calculating the same functions multiple times per update. The BudgetItem.update() method is no longer expected to be overloaded by the user. This provides a speed-up of about 50% for the Aplus model, but much less for the CE models which are limited by other noise calculations.
-
- Oct 07, 2020
-
-
Jameson Rollins authored
This new object holds the PSD and frequency arrays, as well as the list of all budget sub-noises, accessible via a dictionary interface and attribute access. All interfaces and tests are updated to process the new BudgetTrace object. A new HDF5 schemata (version 2) is also introduced that stores trace data in a way that mirrors the BudgetTrace. The io functions (save_hdf5/load_hdf5) are updated to write/read this format. The load_hdf5 functions continues to support the version 1 SCHEMA. Closes #59
-
- Oct 06, 2020
-
-
Jameson Rollins authored
-
Jameson Rollins authored
We don't want to advertise these parameters yet, since they will likely be changed to support different loss functions.
-
Modified getCoatBrownian() to accept different Bulk and Shear Loss Angles and calculate brownian noise using Hong et a. PRD 87, 082001 (2013). New Function description: This function calculates Coating ThermoOptic noise using Hong et al . PRD 87, 082001 (2013). All references to 'the paper', 'Eq' adn 'Sec' are to this paper. ***Important Note*** Inside this function phi is used for denoting the phase shift suffered by light in one way propagation through a layer. This is in conflict with present nomenclature everywhere else where it is used as loss angle. The layers are assumed to be alernating low-n high-n layers, with low-n first. Inputs: f = frequency vector in Hz ifo = parameter struct from IFOmodel.m wBeam = beam radius (at 1 / e^2 power) dOpt = the optical thickness, normalized by lambda, of each coating layer. New required arguments: mTi = Mirror Transmittance Ic = Circulating Laser Power falling on the Mirror (W) The following new arguments should be made available in the Materials object and lines 108-110 and 116-118 should be uncommented: lossBlown = Coating Bulk Loss Angle of Low Refractive Index layer lossSlown = Coating Shear Loss Angle of Low Refractive Index layer lossBhighn = Coating Bulk Loss Angle of High Refractive Index layer lossShighn = Coating Shear Loss Angle of High Refractive Index layer PETlown = Relevant component of Photoelastic Tensor of High n layer* PEThighn = Relevant component of Photoelastic Tensor of Low n layer* Returns: SbrZ = Brownian noise spectra for one mirror in m^2 / Hz * Default values of PETlown and PEThighn are chosen from sec. A.1. to get the longitudnal coefficent of photoelasticity as -0.5 as been asserted by the paper there for Tantala and -0.27 for Silica. These values also need to be added in Materials object.
-
- Sep 29, 2020
-
-
Jameson Rollins authored
This addresses issues about confusion over the IFO being set as a class attribute of the Budget, and is required to close #69.
-
- Jul 07, 2020
-
-
Based on the new calculation with Debye screening from arXiv:2003.05345, there appears to be no plausible scenario where this noise will affect the design of GW interferometers. Koji estimated the noise is below 1e-28/rtHz for Voyager, as did Florian Bruns (lead author of arXiv:2003.05345). It's also negligible for ET, as discussed in the paper. Fixes #50
-
Jameson Rollins authored
-
Jameson Rollins authored
-
Jameson Rollins authored
-
Jameson Rollins authored
-
- Jun 24, 2020
-
-
Jameson Rollins authored
-
- Jun 16, 2020
-
-
From MIT coating thermal noise experiment results: * https://dcc.ligo.org/LIGO-G2000880 and LMA 2020 paper: * https://iopscience.iop.org/article/10.1088/1361-6382/ab77e9
-
- May 21, 2020
-
-
Jameson Rollins authored
Don't use the root logger since it's sometimes used by other modules, and it's kind of sloppy to do so.
-
- May 20, 2020
-
-
Christopher Wipf authored
Addresses #52 (pending measurements for A+ test masses)
-
- Apr 25, 2020
-
-
Christopher Wipf authored
-
Evan Hall authored
-
Evan Hall authored
As was done in matgwinc some months ago
-
- Apr 15, 2020
-
-
Christopher Wipf authored
These changes improve the modeling of suspensions that have a temperature gradient along the fibers. Each stage is split into an upper and a lower joint, which can have different material properties assigned in the ifo structure. The temperature of a joint is that of the mass to which it is attached. (However, temperature gradients are not yet supported within the top or bottom stages.) The average of the upper and lower joint dissipation is used to compute the noise.
-
- Mar 28, 2020
-
-
Kevin Kuns authored
Removed normalization of sinc_sqr in dhdl because it is one at DC. Previously the normalization was set by the first frequency point, which is wrong if only high frequencies are considered
-
- Mar 24, 2020
-
-
- Feb 18, 2020
-
-
Jameson Graef Rollins authored
-
- Feb 14, 2020
-
-
Jameson Graef Rollins authored
-
Jameson Graef Rollins authored
implement as __main__ for `gwinc.ifo` also add to CI. closes #48
-
- Feb 12, 2020
-
-
Jameson Graef Rollins authored
-