JSA module¶
Process¶
Pump¶
-
class
pynumpm.jsa.Pump(process: pynumpm.jsa.Process)[source]¶ Pump class. It is used to describe 2D pump functions for the calculation of JSA. The pump is modelled as
\[\alpha(\omega_1, \omega_2) = \mathrm{HG}_n(\omega_1, \omega_2)\cdot \mathrm{exp}\left\lbrace -\frac{(\omega_p - \omega_{p,0})^2}{2\sigma^2}\right\rbrace \cdot \mathrm{Chirp} \cdot \mathrm{filter}\]Initialize the pump object calling the class and passing a suitable Process element.
The parameters of the pump must be assigned by the user. The following attributes can be modified:
Variables: - pump_spectrum –
- wavelength1 –
- pump_centre –
- pump_width –
- pump_temporal_mode –
- pump_chirp –
- pump_delay –
- filter_width –
Parameters: process (Process) – Process under investigation. An element of the class pynumpm.jsa.Process.
JSA¶
-
class
pynumpm.jsa.JSA(phasematching: Union[pynumpm.phasematching.SimplePhasematching2D, pynumpm.phasematching.Phasematching2D], pump: pynumpm.jsa.Pump)[source]¶ -
calculate_JSA()[source]¶ Function to calculate the JSA.
Parameters: pump_width – Pump object. Signal and idler wavelengths of the pump are overwritten to match the one of the phasematching process :type pump:
Pump:return:
-
calculate_schmidt_decomposition(verbose=False)[source]¶ Function to calculate the Schmidt decomposition.
Parameters: verbose (bool) – Print to screen the Schmidt number and the purity of the state. Returns: the Schmidt number.
-
plot_schmidt_coefficients(ncoeff: int = 20, ax: matplotlib.axes._axes.Axes = None)[source]¶ Function to plot the first n distribution of the Schmidt coefficients.
Parameters: - ncoeff (int) – Number of coefficients to plot. Default: 20
- ax – Handles to the axis object where to plot.
- ax – matplotlib.axes.Axes
Returns:
-
plot(ax=None, light_plot=False, normalized=True, title='JSI', plot_pump=False)[source]¶ Function to plot JSI. Pass ax handle through “ax” to plot in a specified axis environment.
Parameters: - ax (matplotlib.pyplot.axes) – Axes handles
- light_plot (bool) – Flag to allow plotting in the light mode. The light_plot mode is compatible only with linear meshes of the signal/idler wavelengths. Default is False.
- normalized (bool) – Flag to plot the JSI normalized or unnormalized. Default is True.
- plot_pump (bool.) – Flag to plot the pump spectrum overlayed as contour plot. Default is False.
- kwargs –
Returns: the axes handle for the plot
-
plot_marginals(ax=None, **kwargs)[source]¶ Function to plot the marginals of the JSI.
Parameters: ax (matplotlib.pyplot.axes) – Axes handles for the two axes where to draw the marginals. The input can be None or a list of the two axes handles. If None, a new plot is generated with two subplots, one for each marginal. Default: None Returns: the Axes handles
-