finesse.analysis.runners.run_fsig_sweep

finesse.analysis.runners.run_fsig_sweep(BaseSimulation sim, double[::1] axis, long[::1] input_node_indices, long[::1] output_node_indices, double[::1] input_scaling, double[::1] output_scaling, double complex[:, :, ::1] out, bool compute_open_loop, tuple fsig_independant_outputs=None, tuple fsig_dependant_outputs=None)

Runs a simulation to sweep over a signal frequency axis. It does this in an optimised way for multiple inputs and outputs. It does not use detectors to compute outputs, it will just solve the matrix and return transfer functions between nodes. This is so it can be used internally for computing TFs without need to add detectors everywhere which the user has not specified.

Parameters
simBaseSimulation

The simulation object.

axisnumpy.ndarray

The signal frequency axis.

input_node_indicesnumpy.ndarray

The indices of the input nodes.

output_node_indicesnumpy.ndarray

The indices of the output nodes.

input_scalingnumpy.ndarray

The scaling factors for the input nodes.

output_scalingnumpy.ndarray

The scaling factors for the output nodes.

outnumpy.ndarray

The output array to store the transfer functions.

compute_open_loopbool

A flag indicating whether to compute open loop transfer functions.

fsig_independant_outputstuple, optional

A tuple of fsig independent outputs.

fsig_dependant_outputstuple, optional

A tuple of fsig dependent outputs.

Returns
outnumpy.ndarray

The transfer functions between nodes.

other_outputsdict, optional

A dictionary of other outputs if fsig independent or dependent outputs are provided.