The BeamRadius and Curvature parameters provide redundant information. So do the Transmittance and CoatLayerOpticalThickness parameters. We should eliminate one and calculate it from the other, or at least provide a warning in case of inconsistency between them.
Also, the Curvature parameter (if we keep it) should be nested along with the other parameters.
Designs
Child items
...
Show closed items
Linked items
0
Link issues together to show that they're related or that one is blocking others.
Learn more.
MirrorMass is actually a derived quantify in precompIFO (see below), not that that makes it any less redundant. I guess more to the point though is that it's used (only in quantum.py and squeeze.py) rather than the value from the suspension stage struct.
Presumably we want to converge on the suspension struct as the definitive description of the suspension mechanics, in which case it might be good to have some sort of helper function to return the test mass mechanics given an arbitrary suspension structure.
'BeamRadius' parameters in the yaml files are completely ignored in the current code. I think we should just remove reference to it from all the ifo yaml files.
Can we just modify quantum.shotrad() to use the mass of the ultimate mass, instead of the MirrorMass parameter in the Materials struct?
'BeamRadius' parameters in the yaml files are completely ignored in the current code. I think we should just remove reference to it from all the ifo yaml files.
I agree that the BeamRadius parameters should be removed from the yaml files.
Can we just modify quantum.shotrad() to use the mass of the ultimate mass, instead of the MirrorMass parameter in the Materials struct?
Seems reasonable. This will also require the same change in squeeze.sql.
I wonder if it's a good idea to issue a warning if ifo.Materials.MirrorMass, ifo.Materials.MassRadius, ifo.Materials.MassThickness, ifo.Materials.Substrate.MassDensity, and ifo.Suspension.Stage[0].Mass are inconstant.
'BeamRadius' parameters in the yaml files are completely ignored in the current code. I think we should just remove reference to it from all the ifo yaml files.
I agree that the BeamRadius parameters should be removed from the yaml files.
Can we just modify quantum.shotrad() to use the mass of the ultimate mass, instead of the MirrorMass parameter in the Materials struct?
Seems reasonable. This will also require the same change in squeeze.sql.
.
I wonder if it's a good idea to issue a warning if
ifo.Materials.MirrorMass, ifo.Materials.MassRadius,
ifo.Materials.MassThickness, ifo.Materials.Substrate.MassDensity,
and ifo.Suspension.Stage[0].Mass are inconstant.
It seems like we should try to get rid of the Materials.Mass* parameters
altogether. They really don't fit in the Materials sub-struct at all,
the rest of which is all actual materials properties for coating and
substrate:
The substrate and coating thermal calculations are the only things that
use Materials.MassRadius and MassThickness (and quantum uses the derived
MirrorMass).
It seems like it might be better to either extend the properties of the
final suspension stage to include the Radius and Thickness geometry
parameters, or to maybe make some new separate "Mirror" object (which
would maybe be used as the final suspension stage), and then just pass
that object to the noise calculators that need to know about the mirror
geometry.
I agree that the Mass* parameters should be removed from the Materials structure. On the other hand, to be able to quickly start new simulations (so not based on fully existing IFOs) it's quite useful to not have to fill in complicated structures first. So, e.g. if it's enough to set ifo.Suspension.Stage[0].Mass to get the RPN (of a free test mass in this case), then that would be great.
Also, another somewhat misplaced parameter is TCS.SRCloss, which should really be in the Optics section, I guess? It appears to be only used in shotradSignalRecycled().
There are more redundancies in the definitions of material parameters used for the suspensions (ifo.Suspension.Silica or ifo.Suspension.Silicon_123K) and those used for CTN (ifo.Materials.Substrate).
It seems like a clean way to resolve this would be to move the parameters for Siicon_123K, Silica, C70Steel, C70Steel_123K, and MaragingSteel from ifo.Suspension to ifo.Materials. Each stage in ifo.Suspension.Stage would then list the appropriate material just as before. Instead of ifo.Materials.Substrate listing all of the material properties separately it would just specify the appropriate material, like is done for the suspension stages.
Let me add here that AdV+ will use different sized ITMs and ETMs. There's a matlab-GWINC code out there (probably diverged a long time ago from the main GWINC channel) which takes care of these calculations. If things like MirrorMass etc gets reordered, maybe it's a good idea to already consider/anticipate the situation where the masses are not all the same.
The quantum noise calculations will be rewritten to use the mechanical response of the suspensions calculated by precomp_suspension instead of relying on ifo.Materials.MirrorMass and the free mass approximation.