The modes module

Functions related to modes.

class netsalt.modes.WorkerModes(estimated_modes, graph, D0s=None, search_radii=None, seed=42)[source]

Worker to find modes.

set_search_radii(mode)[source]

This fixes a local search region set by search radii.

class netsalt.modes.WorkerScan(graph)[source]

Worker to scan complex frequency.

netsalt.modes.compute_IPRs(graph, modes_df, df_entry='passive')[source]

Compute IPR of all modes on the graph.

netsalt.modes.compute_gamma_q_values(graph, modes_df, df_entry='passive')[source]

Compute gamma * Q factor for all modes on the graph.

netsalt.modes.compute_modal_intensities(modes_df, max_pump_intensity, mode_competition_matrix)[source]

Compute the modal intensities of the modes up to D0, with D0_steps.

netsalt.modes.compute_mode_IPR(graph, modes_df, index, df_entry='passive')[source]

Compute the IPR of a mode

netsalt.modes.compute_mode_competition_matrix(graph, modes_df, with_gamma=True)[source]

Compute the mode competition matrix, or T matrix.

netsalt.modes.compute_overlapping_factor(passive_mode, graph)[source]

Compute the overlapping factor of a mode with the pump.

netsalt.modes.compute_overlapping_single_edges(passive_mode, graph)[source]

Compute the overlappin factor of a mode with the pump.

netsalt.modes.compute_z_matrix(graph)[source]

Construct the matrix Z used for computing the pump overlapping factor.

netsalt.modes.find_modes(graph, qualities)[source]

Find the modes from a scan.

netsalt.modes.find_threshold_lasing_modes(modes_df, graph)[source]

Find the threshold lasing modes and associated lasing thresholds.

netsalt.modes.flux_on_edges(mode, graph)[source]

Compute the flux on each edge (in both directions).

netsalt.modes.gamma_q_value(graph, modes_df, index, df_entry='passive')[source]

Compute gamma * Q factor for a given mode.

netsalt.modes.lasing_threshold_linear(mode, graph, D0)[source]

Find the linear approximation of the new wavenumber.

netsalt.modes.mean_mode_E4_on_edges(mode, graph)[source]

Compute the average \(|E|^4\) on each edge.

netsalt.modes.mean_mode_on_edges(mode, graph)[source]

Compute the average \(|E|^2\) on each edge.

netsalt.modes.mode_on_nodes(mode, graph)[source]

Compute the mode solution on the nodes of the graph.

netsalt.modes.pump_linear(mode_0, graph, D0_0, D0_1)[source]

Find the linear approximation of the new wavenumber.

netsalt.modes.pump_trajectories(modes_df, graph, return_approx=False)[source]

For a sequence of D0s, find the mode positions of the modes modes.

netsalt.modes.scan_frequencies(graph)[source]

Scan a range of complex frequencies and return mode qualities.