gwexpy.interop.finesse_

gwexpy.interop.finesse

Interoperability with Finesse 3 interferometer simulation library.

Provides conversion from Finesse’s FrequencyResponseSolution and NoiseProjectionSolution to GWexpy FrequencySeries types.

Functions

from_finesse_frequency_response(cls, sol, *)

Create FrequencySeries or FrequencySeriesMatrix from a Finesse 3 FrequencyResponseSolution.

from_finesse_noise(cls, sol, *[, output, ...])

Create FrequencySeries or FrequencySeriesDict from a Finesse 3 NoiseProjectionSolution.

gwexpy.interop.finesse_.from_finesse_frequency_response(cls: Type[T_fs | FrequencySeriesDict], sol: Any, *, output: Any | None = None, input_dof: Any | None = None, unit: Any | None = None) T_fs | FrequencySeriesMatrix | FrequencySeriesDict[source]

Create FrequencySeries or FrequencySeriesMatrix from a Finesse 3 FrequencyResponseSolution.

Parameters:
  • cls (type) – The FrequencySeries (or FrequencySeriesDict) class to instantiate.

  • sol (finesse.analysis.actions.lti.FrequencyResponseSolution) – The frequency response solution from a Finesse 3 simulation.

  • output (str or object, optional) – Output DOF name to extract. If None and input_dof is also None, all output/input pairs are returned.

  • input_dof (str or object, optional) – Input DOF name to extract. Must be combined with output to select a single transfer function.

  • unit (str or astropy.units.Unit, optional) – Unit to assign to the resulting data. Finesse solutions do not carry astropy units, so this must be supplied by the caller if physical units are desired.

Returns:

  • FrequencySeries – When a single (output, input_dof) pair is selected.

  • FrequencySeriesMatrix – When multiple output/input pairs exist and no specific pair is selected, or when only output is given (all inputs for that output).

  • FrequencySeriesDict – When called from FrequencySeriesDict.from_finesse_frequency_response (cls is a dict type).

Examples

>>> from gwexpy.frequencyseries import FrequencySeries
>>> # sol = model.run(...)  # Finesse 3 simulation
>>> fs = FrequencySeries.from_finesse_frequency_response(
...     sol, output="DARM", input_dof="EX_drive"
... )
gwexpy.interop.finesse_.from_finesse_noise(cls: Type[T_fs | FrequencySeriesDict], sol: Any, *, output: Any | None = None, noise: str | None = None, unit: Any | None = None) T_fs | FrequencySeriesDict[source]

Create FrequencySeries or FrequencySeriesDict from a Finesse 3 NoiseProjectionSolution.

Parameters:
  • cls (type) – The FrequencySeries (or FrequencySeriesDict) class to instantiate.

  • sol (finesse.analysis.actions.noise.NoiseProjectionSolution) – The noise projection solution from a Finesse 3 simulation.

  • output (str or object, optional) – Output node name to extract. If None, all output nodes are included.

  • noise (str, optional) – Specific noise source name to extract. If None, all noise sources are included.

  • unit (str or astropy.units.Unit, optional) – Unit to assign to the resulting data (e.g., "m/sqrt(Hz)").

Returns:

  • FrequencySeries – When a single output and noise source are both specified.

  • FrequencySeriesDict – When multiple outputs or noise sources are present.

Examples

>>> from gwexpy.frequencyseries import FrequencySeries
>>> # sol = model.run(...)  # Finesse 3 noise simulation
>>> fs = FrequencySeries.from_finesse_noise(
...     sol, output="nDARMout", noise="laser_freq"
... )