├── docs ├── .nojekyll ├── source │ ├── api │ │ ├── pynlo.device.rst │ │ ├── pynlo.medium.Mode.D.rst │ │ ├── pynlo.medium.Mode.n.rst │ │ ├── pynlo.medium.Mode.z.rst │ │ ├── pynlo.utility.fft.fft.rst │ │ ├── pynlo.utility.fft.ifft.rst │ │ ├── pynlo.utility.fft.rfft.rst │ │ ├── pynlo.utility.shift.rst │ │ ├── pynlo.utility.vacuum.rst │ │ ├── pynlo.light.Pulse.CW.rst │ │ ├── pynlo.light.Pulse.v0.rst │ │ ├── pynlo.medium.Mode.g2.rst │ │ ├── pynlo.medium.Mode.g3.rst │ │ ├── pynlo.medium.Mode.r3.rst │ │ ├── pynlo.utility.fft.irfft.rst │ │ ├── pynlo.light.Pulse.Sech.rst │ │ ├── pynlo.light.Pulse.a_t.rst │ │ ├── pynlo.light.Pulse.a_v.rst │ │ ├── pynlo.light.Pulse.copy.rst │ │ ├── pynlo.light.Pulse.e_p.rst │ │ ├── pynlo.light.Pulse.p_t.rst │ │ ├── pynlo.light.Pulse.p_v.rst │ │ ├── pynlo.medium.Mode.beta.rst │ │ ├── pynlo.medium.Mode.copy.rst │ │ ├── pynlo.medium.Mode.d_12.rst │ │ ├── pynlo.medium.Mode.n_g.rst │ │ ├── pynlo.medium.Mode.v_g.rst │ │ ├── pynlo.model.Model.step.rst │ │ ├── pynlo.utility.TFGrid.n.rst │ │ ├── pynlo.utility.chi3.raman.rst │ │ ├── pynlo.light.Pulse.ra_t.rst │ │ ├── pynlo.light.Pulse.rp_t.rst │ │ ├── pynlo.light.Pulse.tg_v.rst │ │ ├── pynlo.light.Pulse.vg_t.rst │ │ ├── pynlo.medium.Mode.alpha.rst │ │ ├── pynlo.medium.Mode.beta1.rst │ │ ├── pynlo.medium.Mode.beta2.rst │ │ ├── pynlo.medium.Mode.gamma.rst │ │ ├── pynlo.utility.TFGrid.dt.rst │ │ ├── pynlo.utility.TFGrid.dv.rst │ │ ├── pynlo.utility.TFGrid.rn.rst │ │ ├── pynlo.utility.chi2.g2_shg.rst │ │ ├── pynlo.utility.chi3.g3_spm.rst │ │ ├── pynlo.light.Pulse.phi_t.rst │ │ ├── pynlo.light.Pulse.phi_v.rst │ │ ├── pynlo.medium.Mode.g2_inv.rst │ │ ├── pynlo.medium.Mode.g2_pol.rst │ │ ├── pynlo.medium.Mode.v_grid.rst │ │ ├── pynlo.medium.Mode.z_mode.rst │ │ ├── pynlo.utility.TFGrid.copy.rst │ │ ├── pynlo.utility.TFGrid.rdt.rst │ │ ├── pynlo.utility.TFGrid.rdv.rst │ │ ├── pynlo.utility.chi2.g2_split.rst │ │ ├── pynlo.utility.chi3.g3_split.rst │ │ ├── pynlo.utility.fft.fftshift.rst │ │ ├── pynlo.utility.fft.ifftshift.rst │ │ ├── pynlo.utility.resample_t.rst │ │ ├── pynlo.utility.resample_v.rst │ │ ├── pynlo.light.Pulse.t_width.rst │ │ ├── pynlo.light.Pulse.v0_idx.rst │ │ ├── pynlo.light.Pulse.v_width.rst │ │ ├── pynlo.medium.Mode.rv_grid.rst │ │ ├── pynlo.model.UPE.propagate.rst │ │ ├── pynlo.light.Pulse.Gaussian.rst │ │ ├── pynlo.light.Pulse.Parabolic.rst │ │ ├── pynlo.medium.Mode.z_linear.rst │ │ ├── pynlo.model.Model.propagate.rst │ │ ├── pynlo.model.Model.simulate.rst │ │ ├── pynlo.model.NLSE.propagate.rst │ │ ├── pynlo.utility.TFGrid.rt_ref.rst │ │ ├── pynlo.utility.TFGrid.rv_ref.rst │ │ ├── pynlo.utility.TFGrid.t_grid.rst │ │ ├── pynlo.utility.TFGrid.t_ref.rst │ │ ├── pynlo.utility.TFGrid.v_grid.rst │ │ ├── pynlo.utility.TFGrid.v_ref.rst │ │ ├── pynlo.utility.chi1.D_to_beta2.rst │ │ ├── pynlo.utility.chi1.beta2_to_D.rst │ │ ├── pynlo.utility.chi1.beta_to_n.rst │ │ ├── pynlo.utility.chi1.n_to_beta.rst │ │ ├── pynlo.utility.taylor_series.rst │ │ ├── pynlo.light.Pulse.Lorentzian.rst │ │ ├── pynlo.utility.TFGrid.rt_grid.rst │ │ ├── pynlo.utility.TFGrid.rv_grid.rst │ │ ├── pynlo.utility.chi3.g3_to_gamma.rst │ │ ├── pynlo.utility.chi3.gamma_to_g3.rst │ │ ├── pynlo.light.Pulse.spectrogram.rst │ │ ├── pynlo.medium.Mode.z_nonlinear.rst │ │ ├── pynlo.model.UPE.update_poling.rst │ │ ├── pynlo.utility.TFGrid.rn_range.rst │ │ ├── pynlo.utility.TFGrid.rn_slice.rst │ │ ├── pynlo.utility.TFGrid.rtf_grids.rst │ │ ├── pynlo.utility.TFGrid.t_window.rst │ │ ├── pynlo.utility.TFGrid.v_window.rst │ │ ├── pynlo.utility.TFGrid.rt_window.rst │ │ ├── pynlo.utility.TFGrid.rv_window.rst │ │ ├── pynlo.model.Model.update_poling.rst │ │ ├── pynlo.light.Pulse.autocorrelation.rst │ │ ├── pynlo.medium.Mode.linear_operator.rst │ │ ├── pynlo.utility.TFGrid.FromFreqRange.rst │ │ ├── pynlo.model.Model.linear_operator.rst │ │ ├── pynlo.model.Model.update_linearity.rst │ │ ├── pynlo.model.NLSE.update_linearity.rst │ │ ├── pynlo.model.UPE.nonlinear_operator.rst │ │ ├── pynlo.utility.chi2.domain_inversions.rst │ │ ├── pynlo.light.Pulse.FromPowerSpectrum.rst │ │ ├── pynlo.model.NLSE.nonlinear_operator.rst │ │ ├── pynlo.model.UPE.update_nonlinearity.rst │ │ ├── pynlo.model.Model.estimate_step_size.rst │ │ ├── pynlo.model.Model.nonlinear_operator.rst │ │ ├── pynlo.model.NLSE.update_nonlinearity.rst │ │ ├── pynlo.model.Model.update_nonlinearity.rst │ │ ├── pynlo.model.UPE.nonlinear_operator_separable.rst │ │ ├── pynlo.light.rst │ │ ├── pynlo.medium.rst │ │ ├── pynlo.model.rst │ │ ├── pynlo.utility.chi2.rst │ │ ├── pynlo.utility.chi1.rst │ │ ├── pynlo.utility.fft.rst │ │ ├── pynlo.utility.chi3.rst │ │ ├── pynlo.model.NLSE.rst │ │ ├── pynlo.model.UPE.rst │ │ ├── pynlo.model.Model.rst │ │ ├── pynlo.utility.rst │ │ ├── pynlo.medium.Mode.rst │ │ ├── pynlo.light.Pulse.rst │ │ └── pynlo.utility.TFGrid.rst │ ├── _templates │ │ ├── base.rst │ │ ├── class.rst │ │ └── module.rst │ ├── examples │ │ ├── phase-matching.rst │ │ ├── optical-solitons.rst │ │ ├── ppln_cascaded-chi2.rst │ │ └── silica-pcf_supercontinuum.rst │ ├── _static │ │ ├── custom.css │ │ ├── pynlo-dark.svg │ │ └── pynlo-light.svg │ ├── guides.rst │ ├── api.rst │ ├── notes.rst │ ├── examples.rst │ ├── index.rst │ ├── overview.rst │ └── conf.py ├── build.bat ├── build │ └── html │ │ ├── objects.inv │ │ ├── _sources │ │ ├── api │ │ │ ├── pynlo.device.rst.txt │ │ │ ├── pynlo.medium.Mode.D.rst.txt │ │ │ ├── pynlo.medium.Mode.n.rst.txt │ │ │ ├── pynlo.medium.Mode.z.rst.txt │ │ │ ├── pynlo.utility.fft.fft.rst.txt │ │ │ ├── pynlo.utility.shift.rst.txt │ │ │ ├── pynlo.light.Pulse.CW.rst.txt │ │ │ ├── pynlo.medium.Mode.g2.rst.txt │ │ │ ├── pynlo.medium.Mode.g3.rst.txt │ │ │ ├── pynlo.medium.Mode.r3.rst.txt │ │ │ ├── pynlo.utility.fft.ifft.rst.txt │ │ │ ├── pynlo.utility.fft.rfft.rst.txt │ │ │ ├── pynlo.utility.vacuum.rst.txt │ │ │ ├── pynlo.light.Pulse.v0.rst.txt │ │ │ ├── pynlo.medium.Mode.copy.rst.txt │ │ │ ├── pynlo.medium.Mode.n_g.rst.txt │ │ │ ├── pynlo.medium.Mode.v_g.rst.txt │ │ │ ├── pynlo.utility.TFGrid.n.rst.txt │ │ │ ├── pynlo.utility.chi3.raman.rst.txt │ │ │ ├── pynlo.utility.fft.irfft.rst.txt │ │ │ ├── pynlo.light.Pulse.Sech.rst.txt │ │ │ ├── pynlo.light.Pulse.a_t.rst.txt │ │ │ ├── pynlo.light.Pulse.a_v.rst.txt │ │ │ ├── pynlo.light.Pulse.copy.rst.txt │ │ │ ├── pynlo.light.Pulse.e_p.rst.txt │ │ │ ├── pynlo.light.Pulse.p_t.rst.txt │ │ │ ├── pynlo.light.Pulse.p_v.rst.txt │ │ │ ├── pynlo.medium.Mode.beta.rst.txt │ │ │ ├── pynlo.medium.Mode.d_12.rst.txt │ │ │ ├── pynlo.model.Model.step.rst.txt │ │ │ ├── pynlo.utility.TFGrid.dt.rst.txt │ │ │ ├── pynlo.utility.TFGrid.dv.rst.txt │ │ │ ├── pynlo.utility.TFGrid.rn.rst.txt │ │ │ ├── pynlo.utility.chi2.g2_shg.rst.txt │ │ │ ├── pynlo.utility.chi3.g3_spm.rst.txt │ │ │ ├── pynlo.light.Pulse.phi_t.rst.txt │ │ │ ├── pynlo.light.Pulse.phi_v.rst.txt │ │ │ ├── pynlo.light.Pulse.ra_t.rst.txt │ │ │ ├── pynlo.light.Pulse.rp_t.rst.txt │ │ │ ├── pynlo.light.Pulse.tg_v.rst.txt │ │ │ ├── pynlo.light.Pulse.vg_t.rst.txt │ │ │ ├── pynlo.medium.Mode.alpha.rst.txt │ │ │ ├── pynlo.medium.Mode.beta1.rst.txt │ │ │ ├── pynlo.medium.Mode.beta2.rst.txt │ │ │ ├── pynlo.medium.Mode.gamma.rst.txt │ │ │ ├── pynlo.utility.TFGrid.copy.rst.txt │ │ │ ├── pynlo.utility.TFGrid.rdt.rst.txt │ │ │ ├── pynlo.utility.TFGrid.rdv.rst.txt │ │ │ ├── pynlo.utility.fft.fftshift.rst.txt │ │ │ ├── pynlo.utility.resample_t.rst.txt │ │ │ ├── pynlo.utility.resample_v.rst.txt │ │ │ ├── pynlo.light.Pulse.v0_idx.rst.txt │ │ │ ├── pynlo.medium.Mode.g2_inv.rst.txt │ │ │ ├── pynlo.medium.Mode.g2_pol.rst.txt │ │ │ ├── pynlo.medium.Mode.v_grid.rst.txt │ │ │ ├── pynlo.medium.Mode.z_mode.rst.txt │ │ │ ├── pynlo.model.UPE.propagate.rst.txt │ │ │ ├── pynlo.utility.chi2.g2_split.rst.txt │ │ │ ├── pynlo.utility.chi3.g3_split.rst.txt │ │ │ ├── pynlo.utility.fft.ifftshift.rst.txt │ │ │ ├── pynlo.light.Pulse.Gaussian.rst.txt │ │ │ ├── pynlo.light.Pulse.t_width.rst.txt │ │ │ ├── pynlo.light.Pulse.v_width.rst.txt │ │ │ ├── pynlo.medium.Mode.rv_grid.rst.txt │ │ │ ├── pynlo.medium.Mode.z_linear.rst.txt │ │ │ ├── pynlo.model.Model.simulate.rst.txt │ │ │ ├── pynlo.model.NLSE.propagate.rst.txt │ │ │ ├── pynlo.utility.TFGrid.t_ref.rst.txt │ │ │ ├── pynlo.utility.TFGrid.v_ref.rst.txt │ │ │ ├── pynlo.utility.chi1.beta_to_n.rst.txt │ │ │ ├── pynlo.utility.chi1.n_to_beta.rst.txt │ │ │ ├── pynlo.light.Pulse.Parabolic.rst.txt │ │ │ ├── pynlo.model.Model.propagate.rst.txt │ │ │ ├── pynlo.utility.TFGrid.rt_ref.rst.txt │ │ │ ├── pynlo.utility.TFGrid.rv_ref.rst.txt │ │ │ ├── pynlo.utility.TFGrid.t_grid.rst.txt │ │ │ ├── pynlo.utility.TFGrid.v_grid.rst.txt │ │ │ ├── pynlo.utility.chi1.D_to_beta2.rst.txt │ │ │ ├── pynlo.utility.chi1.beta2_to_D.rst.txt │ │ │ ├── pynlo.utility.taylor_series.rst.txt │ │ │ ├── pynlo.light.Pulse.Lorentzian.rst.txt │ │ │ ├── pynlo.light.Pulse.spectrogram.rst.txt │ │ │ ├── pynlo.utility.TFGrid.rn_range.rst.txt │ │ │ ├── pynlo.utility.TFGrid.rn_slice.rst.txt │ │ │ ├── pynlo.utility.TFGrid.rt_grid.rst.txt │ │ │ ├── pynlo.utility.TFGrid.rv_grid.rst.txt │ │ │ ├── pynlo.utility.TFGrid.t_window.rst.txt │ │ │ ├── pynlo.utility.TFGrid.v_window.rst.txt │ │ │ ├── pynlo.utility.chi3.g3_to_gamma.rst.txt │ │ │ ├── pynlo.utility.chi3.gamma_to_g3.rst.txt │ │ │ ├── pynlo.medium.Mode.z_nonlinear.rst.txt │ │ │ ├── pynlo.model.UPE.update_poling.rst.txt │ │ │ ├── pynlo.utility.TFGrid.rt_window.rst.txt │ │ │ ├── pynlo.utility.TFGrid.rtf_grids.rst.txt │ │ │ ├── pynlo.utility.TFGrid.rv_window.rst.txt │ │ │ ├── pynlo.model.Model.update_poling.rst.txt │ │ │ ├── pynlo.light.Pulse.autocorrelation.rst.txt │ │ │ ├── pynlo.medium.Mode.linear_operator.rst.txt │ │ │ ├── pynlo.model.Model.linear_operator.rst.txt │ │ │ ├── pynlo.model.NLSE.update_linearity.rst.txt │ │ │ ├── pynlo.utility.TFGrid.FromFreqRange.rst.txt │ │ │ ├── pynlo.utility.chi2.domain_inversions.rst.txt │ │ │ ├── pynlo.light.Pulse.FromPowerSpectrum.rst.txt │ │ │ ├── pynlo.model.Model.update_linearity.rst.txt │ │ │ ├── pynlo.model.UPE.nonlinear_operator.rst.txt │ │ │ ├── pynlo.model.Model.nonlinear_operator.rst.txt │ │ │ ├── pynlo.model.NLSE.nonlinear_operator.rst.txt │ │ │ ├── pynlo.model.NLSE.update_nonlinearity.rst.txt │ │ │ ├── pynlo.model.UPE.update_nonlinearity.rst.txt │ │ │ ├── pynlo.model.Model.estimate_step_size.rst.txt │ │ │ ├── pynlo.model.Model.update_nonlinearity.rst.txt │ │ │ ├── pynlo.model.UPE.nonlinear_operator_separable.rst.txt │ │ │ ├── pynlo.light.rst.txt │ │ │ ├── pynlo.medium.rst.txt │ │ │ ├── pynlo.model.rst.txt │ │ │ ├── pynlo.utility.chi2.rst.txt │ │ │ ├── pynlo.utility.chi1.rst.txt │ │ │ ├── pynlo.utility.chi3.rst.txt │ │ │ ├── pynlo.utility.fft.rst.txt │ │ │ ├── pynlo.model.NLSE.rst.txt │ │ │ ├── pynlo.model.UPE.rst.txt │ │ │ ├── pynlo.model.Model.rst.txt │ │ │ ├── pynlo.utility.rst.txt │ │ │ ├── pynlo.medium.Mode.rst.txt │ │ │ ├── pynlo.light.Pulse.rst.txt │ │ │ └── pynlo.utility.TFGrid.rst.txt │ │ ├── examples │ │ │ ├── optical-solitons.rst.txt │ │ │ ├── phase-matching.rst.txt │ │ │ ├── ppln_cascaded-chi2.rst.txt │ │ │ └── silica-pcf_supercontinuum.rst.txt │ │ ├── guides.rst.txt │ │ ├── api.rst.txt │ │ ├── notes.rst.txt │ │ ├── examples.rst.txt │ │ ├── index.rst.txt │ │ └── overview.rst.txt │ │ ├── _static │ │ ├── file.png │ │ ├── minus.png │ │ ├── plus.png │ │ ├── styles │ │ │ └── theme.css │ │ ├── vendor │ │ │ └── fontawesome │ │ │ │ └── 6.5.1 │ │ │ │ ├── webfonts │ │ │ │ ├── fa-brands-400.ttf │ │ │ │ ├── fa-solid-900.ttf │ │ │ │ ├── fa-brands-400.woff2 │ │ │ │ ├── fa-regular-400.ttf │ │ │ │ ├── fa-regular-400.woff2 │ │ │ │ ├── fa-solid-900.woff2 │ │ │ │ ├── fa-v4compatibility.ttf │ │ │ │ └── fa-v4compatibility.woff2 │ │ │ │ ├── js │ │ │ │ └── all.min.js.LICENSE.txt │ │ │ │ └── LICENSE.txt │ │ ├── custom.css │ │ ├── scripts │ │ │ └── bootstrap.js.LICENSE.txt │ │ ├── documentation_options.js │ │ ├── nbsphinx-gallery.css │ │ ├── design-tabs.js │ │ ├── webpack-macros.html │ │ ├── nbsphinx-no-thumbnail.svg │ │ ├── pynlo-dark.svg │ │ ├── pynlo-light.svg │ │ ├── nbsphinx-broken-thumbnail.svg │ │ ├── doctools.js │ │ ├── sphinx_highlight.js │ │ └── language_data.js │ │ ├── .buildinfo │ │ └── _sphinx_design_static │ │ └── design-tabs.js ├── autosummary │ └── templates │ │ └── autosummary │ │ ├── base.rst │ │ ├── class.rst │ │ └── module.rst ├── index.html ├── update_api.bat ├── Makefile └── make.bat ├── .gitignore ├── pyproject.toml ├── pynlo ├── __init__.py └── utility │ ├── chi1.py │ ├── misc.py │ └── fft.py ├── README.rst ├── tests └── test_light.py ├── examples ├── silica-pcf_supercontinuum.py └── ppln_cascaded-chi2.py └── COPYING.LESSER.txt /docs/.nojekyll: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .spyproject/ 2 | *.pyc 3 | docs/build/doctrees/ 4 | .pylint.d/ 5 | -------------------------------------------------------------------------------- /docs/source/api/pynlo.device.rst: -------------------------------------------------------------------------------- 1 | pynlo.device 2 | ============ 3 | .. automodule:: pynlo.device -------------------------------------------------------------------------------- /docs/build.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | 3 | rd "source\api" /s /q 4 | rd "build\" /s /q 5 | 6 | make html 7 | -------------------------------------------------------------------------------- /docs/build/html/objects.inv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cdfredrick/PyNLO/HEAD/docs/build/html/objects.inv -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.device.rst.txt: -------------------------------------------------------------------------------- 1 | pynlo.device 2 | ============ 3 | .. automodule:: pynlo.device -------------------------------------------------------------------------------- /docs/build/html/_static/file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cdfredrick/PyNLO/HEAD/docs/build/html/_static/file.png -------------------------------------------------------------------------------- /docs/build/html/_static/minus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cdfredrick/PyNLO/HEAD/docs/build/html/_static/minus.png -------------------------------------------------------------------------------- /docs/build/html/_static/plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cdfredrick/PyNLO/HEAD/docs/build/html/_static/plus.png -------------------------------------------------------------------------------- /docs/source/api/pynlo.medium.Mode.D.rst: -------------------------------------------------------------------------------- 1 | Mode.D 2 | ====== 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.D -------------------------------------------------------------------------------- /docs/source/api/pynlo.medium.Mode.n.rst: -------------------------------------------------------------------------------- 1 | Mode.n 2 | ====== 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.n -------------------------------------------------------------------------------- /docs/source/api/pynlo.medium.Mode.z.rst: -------------------------------------------------------------------------------- 1 | Mode.z 2 | ====== 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.z -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.fft.fft.rst: -------------------------------------------------------------------------------- 1 | fft 2 | === 3 | 4 | .. currentmodule:: pynlo.utility.fft 5 | 6 | .. autofunction:: fft -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.fft.ifft.rst: -------------------------------------------------------------------------------- 1 | ifft 2 | ==== 3 | 4 | .. currentmodule:: pynlo.utility.fft 5 | 6 | .. autofunction:: ifft -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.fft.rfft.rst: -------------------------------------------------------------------------------- 1 | rfft 2 | ==== 3 | 4 | .. currentmodule:: pynlo.utility.fft 5 | 6 | .. autofunction:: rfft -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.shift.rst: -------------------------------------------------------------------------------- 1 | shift 2 | ===== 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autofunction:: shift -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.vacuum.rst: -------------------------------------------------------------------------------- 1 | vacuum 2 | ====== 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autofunction:: vacuum -------------------------------------------------------------------------------- /docs/source/api/pynlo.light.Pulse.CW.rst: -------------------------------------------------------------------------------- 1 | Pulse.CW 2 | ======== 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. automethod:: Pulse.CW -------------------------------------------------------------------------------- /docs/source/api/pynlo.light.Pulse.v0.rst: -------------------------------------------------------------------------------- 1 | Pulse.v0 2 | ======== 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. autoproperty:: Pulse.v0 -------------------------------------------------------------------------------- /docs/source/api/pynlo.medium.Mode.g2.rst: -------------------------------------------------------------------------------- 1 | Mode.g2 2 | ======= 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.g2 -------------------------------------------------------------------------------- /docs/source/api/pynlo.medium.Mode.g3.rst: -------------------------------------------------------------------------------- 1 | Mode.g3 2 | ======= 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.g3 -------------------------------------------------------------------------------- /docs/source/api/pynlo.medium.Mode.r3.rst: -------------------------------------------------------------------------------- 1 | Mode.r3 2 | ======= 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.r3 -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.fft.irfft.rst: -------------------------------------------------------------------------------- 1 | irfft 2 | ===== 3 | 4 | .. currentmodule:: pynlo.utility.fft 5 | 6 | .. autofunction:: irfft -------------------------------------------------------------------------------- /docs/source/api/pynlo.light.Pulse.Sech.rst: -------------------------------------------------------------------------------- 1 | Pulse.Sech 2 | ========== 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. automethod:: Pulse.Sech -------------------------------------------------------------------------------- /docs/source/api/pynlo.light.Pulse.a_t.rst: -------------------------------------------------------------------------------- 1 | Pulse.a\_t 2 | ========== 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. autoproperty:: Pulse.a_t -------------------------------------------------------------------------------- /docs/source/api/pynlo.light.Pulse.a_v.rst: -------------------------------------------------------------------------------- 1 | Pulse.a\_v 2 | ========== 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. autoproperty:: Pulse.a_v -------------------------------------------------------------------------------- /docs/source/api/pynlo.light.Pulse.copy.rst: -------------------------------------------------------------------------------- 1 | Pulse.copy 2 | ========== 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. automethod:: Pulse.copy -------------------------------------------------------------------------------- /docs/source/api/pynlo.light.Pulse.e_p.rst: -------------------------------------------------------------------------------- 1 | Pulse.e\_p 2 | ========== 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. autoproperty:: Pulse.e_p -------------------------------------------------------------------------------- /docs/source/api/pynlo.light.Pulse.p_t.rst: -------------------------------------------------------------------------------- 1 | Pulse.p\_t 2 | ========== 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. autoproperty:: Pulse.p_t -------------------------------------------------------------------------------- /docs/source/api/pynlo.light.Pulse.p_v.rst: -------------------------------------------------------------------------------- 1 | Pulse.p\_v 2 | ========== 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. autoproperty:: Pulse.p_v -------------------------------------------------------------------------------- /docs/source/api/pynlo.medium.Mode.beta.rst: -------------------------------------------------------------------------------- 1 | Mode.beta 2 | ========= 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.beta -------------------------------------------------------------------------------- /docs/source/api/pynlo.medium.Mode.copy.rst: -------------------------------------------------------------------------------- 1 | Mode.copy 2 | ========= 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. automethod:: Mode.copy -------------------------------------------------------------------------------- /docs/source/api/pynlo.medium.Mode.d_12.rst: -------------------------------------------------------------------------------- 1 | Mode.d\_12 2 | ========== 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. automethod:: Mode.d_12 -------------------------------------------------------------------------------- /docs/source/api/pynlo.medium.Mode.n_g.rst: -------------------------------------------------------------------------------- 1 | Mode.n\_g 2 | ========= 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.n_g -------------------------------------------------------------------------------- /docs/source/api/pynlo.medium.Mode.v_g.rst: -------------------------------------------------------------------------------- 1 | Mode.v\_g 2 | ========= 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.v_g -------------------------------------------------------------------------------- /docs/source/api/pynlo.model.Model.step.rst: -------------------------------------------------------------------------------- 1 | Model.step 2 | ========== 3 | 4 | .. currentmodule:: pynlo.model 5 | 6 | .. automethod:: Model.step -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.TFGrid.n.rst: -------------------------------------------------------------------------------- 1 | TFGrid.n 2 | ======== 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.n -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.chi3.raman.rst: -------------------------------------------------------------------------------- 1 | raman 2 | ===== 3 | 4 | .. currentmodule:: pynlo.utility.chi3 5 | 6 | .. autofunction:: raman -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.medium.Mode.D.rst.txt: -------------------------------------------------------------------------------- 1 | Mode.D 2 | ====== 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.D -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.medium.Mode.n.rst.txt: -------------------------------------------------------------------------------- 1 | Mode.n 2 | ====== 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.n -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.medium.Mode.z.rst.txt: -------------------------------------------------------------------------------- 1 | Mode.z 2 | ====== 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.z -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.fft.fft.rst.txt: -------------------------------------------------------------------------------- 1 | fft 2 | === 3 | 4 | .. currentmodule:: pynlo.utility.fft 5 | 6 | .. autofunction:: fft -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.shift.rst.txt: -------------------------------------------------------------------------------- 1 | shift 2 | ===== 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autofunction:: shift -------------------------------------------------------------------------------- /docs/source/api/pynlo.light.Pulse.ra_t.rst: -------------------------------------------------------------------------------- 1 | Pulse.ra\_t 2 | =========== 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. autoproperty:: Pulse.ra_t -------------------------------------------------------------------------------- /docs/source/api/pynlo.light.Pulse.rp_t.rst: -------------------------------------------------------------------------------- 1 | Pulse.rp\_t 2 | =========== 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. autoproperty:: Pulse.rp_t -------------------------------------------------------------------------------- /docs/source/api/pynlo.light.Pulse.tg_v.rst: -------------------------------------------------------------------------------- 1 | Pulse.tg\_v 2 | =========== 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. autoproperty:: Pulse.tg_v -------------------------------------------------------------------------------- /docs/source/api/pynlo.light.Pulse.vg_t.rst: -------------------------------------------------------------------------------- 1 | Pulse.vg\_t 2 | =========== 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. autoproperty:: Pulse.vg_t -------------------------------------------------------------------------------- /docs/source/api/pynlo.medium.Mode.alpha.rst: -------------------------------------------------------------------------------- 1 | Mode.alpha 2 | ========== 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.alpha -------------------------------------------------------------------------------- /docs/source/api/pynlo.medium.Mode.beta1.rst: -------------------------------------------------------------------------------- 1 | Mode.beta1 2 | ========== 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.beta1 -------------------------------------------------------------------------------- /docs/source/api/pynlo.medium.Mode.beta2.rst: -------------------------------------------------------------------------------- 1 | Mode.beta2 2 | ========== 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.beta2 -------------------------------------------------------------------------------- /docs/source/api/pynlo.medium.Mode.gamma.rst: -------------------------------------------------------------------------------- 1 | Mode.gamma 2 | ========== 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.gamma -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.TFGrid.dt.rst: -------------------------------------------------------------------------------- 1 | TFGrid.dt 2 | ========= 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.dt -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.TFGrid.dv.rst: -------------------------------------------------------------------------------- 1 | TFGrid.dv 2 | ========= 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.dv -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.TFGrid.rn.rst: -------------------------------------------------------------------------------- 1 | TFGrid.rn 2 | ========= 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.rn -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.chi2.g2_shg.rst: -------------------------------------------------------------------------------- 1 | g2\_shg 2 | ======= 3 | 4 | .. currentmodule:: pynlo.utility.chi2 5 | 6 | .. autofunction:: g2_shg -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.chi3.g3_spm.rst: -------------------------------------------------------------------------------- 1 | g3\_spm 2 | ======= 3 | 4 | .. currentmodule:: pynlo.utility.chi3 5 | 6 | .. autofunction:: g3_spm -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.light.Pulse.CW.rst.txt: -------------------------------------------------------------------------------- 1 | Pulse.CW 2 | ======== 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. automethod:: Pulse.CW -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.medium.Mode.g2.rst.txt: -------------------------------------------------------------------------------- 1 | Mode.g2 2 | ======= 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.g2 -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.medium.Mode.g3.rst.txt: -------------------------------------------------------------------------------- 1 | Mode.g3 2 | ======= 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.g3 -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.medium.Mode.r3.rst.txt: -------------------------------------------------------------------------------- 1 | Mode.r3 2 | ======= 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.r3 -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.fft.ifft.rst.txt: -------------------------------------------------------------------------------- 1 | ifft 2 | ==== 3 | 4 | .. currentmodule:: pynlo.utility.fft 5 | 6 | .. autofunction:: ifft -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.fft.rfft.rst.txt: -------------------------------------------------------------------------------- 1 | rfft 2 | ==== 3 | 4 | .. currentmodule:: pynlo.utility.fft 5 | 6 | .. autofunction:: rfft -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.vacuum.rst.txt: -------------------------------------------------------------------------------- 1 | vacuum 2 | ====== 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autofunction:: vacuum -------------------------------------------------------------------------------- /docs/build/html/_static/styles/theme.css: -------------------------------------------------------------------------------- 1 | /* Provided by Sphinx's 'basic' theme, and included in the final set of assets */ 2 | @import "../basic.css"; 3 | -------------------------------------------------------------------------------- /docs/source/_templates/base.rst: -------------------------------------------------------------------------------- 1 | {{ objname | escape | underline}} 2 | 3 | .. currentmodule:: {{ module }} 4 | 5 | .. auto{{ objtype }}:: {{ objname }} 6 | -------------------------------------------------------------------------------- /docs/source/api/pynlo.light.Pulse.phi_t.rst: -------------------------------------------------------------------------------- 1 | Pulse.phi\_t 2 | ============ 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. autoproperty:: Pulse.phi_t -------------------------------------------------------------------------------- /docs/source/api/pynlo.light.Pulse.phi_v.rst: -------------------------------------------------------------------------------- 1 | Pulse.phi\_v 2 | ============ 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. autoproperty:: Pulse.phi_v -------------------------------------------------------------------------------- /docs/source/api/pynlo.medium.Mode.g2_inv.rst: -------------------------------------------------------------------------------- 1 | Mode.g2\_inv 2 | ============ 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.g2_inv -------------------------------------------------------------------------------- /docs/source/api/pynlo.medium.Mode.g2_pol.rst: -------------------------------------------------------------------------------- 1 | Mode.g2\_pol 2 | ============ 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.g2_pol -------------------------------------------------------------------------------- /docs/source/api/pynlo.medium.Mode.v_grid.rst: -------------------------------------------------------------------------------- 1 | Mode.v\_grid 2 | ============ 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.v_grid -------------------------------------------------------------------------------- /docs/source/api/pynlo.medium.Mode.z_mode.rst: -------------------------------------------------------------------------------- 1 | Mode.z\_mode 2 | ============ 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.z_mode -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.TFGrid.copy.rst: -------------------------------------------------------------------------------- 1 | TFGrid.copy 2 | =========== 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. automethod:: TFGrid.copy -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.TFGrid.rdt.rst: -------------------------------------------------------------------------------- 1 | TFGrid.rdt 2 | ========== 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.rdt -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.TFGrid.rdv.rst: -------------------------------------------------------------------------------- 1 | TFGrid.rdv 2 | ========== 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.rdv -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.chi2.g2_split.rst: -------------------------------------------------------------------------------- 1 | g2\_split 2 | ========= 3 | 4 | .. currentmodule:: pynlo.utility.chi2 5 | 6 | .. autofunction:: g2_split -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.chi3.g3_split.rst: -------------------------------------------------------------------------------- 1 | g3\_split 2 | ========= 3 | 4 | .. currentmodule:: pynlo.utility.chi3 5 | 6 | .. autofunction:: g3_split -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.fft.fftshift.rst: -------------------------------------------------------------------------------- 1 | fftshift 2 | ======== 3 | 4 | .. currentmodule:: pynlo.utility.fft 5 | 6 | .. autofunction:: fftshift -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.fft.ifftshift.rst: -------------------------------------------------------------------------------- 1 | ifftshift 2 | ========= 3 | 4 | .. currentmodule:: pynlo.utility.fft 5 | 6 | .. autofunction:: ifftshift -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.resample_t.rst: -------------------------------------------------------------------------------- 1 | resample\_t 2 | =========== 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autofunction:: resample_t -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.resample_v.rst: -------------------------------------------------------------------------------- 1 | resample\_v 2 | =========== 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autofunction:: resample_v -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.light.Pulse.v0.rst.txt: -------------------------------------------------------------------------------- 1 | Pulse.v0 2 | ======== 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. autoproperty:: Pulse.v0 -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.medium.Mode.copy.rst.txt: -------------------------------------------------------------------------------- 1 | Mode.copy 2 | ========= 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. automethod:: Mode.copy -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.medium.Mode.n_g.rst.txt: -------------------------------------------------------------------------------- 1 | Mode.n\_g 2 | ========= 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.n_g -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.medium.Mode.v_g.rst.txt: -------------------------------------------------------------------------------- 1 | Mode.v\_g 2 | ========= 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.v_g -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.TFGrid.n.rst.txt: -------------------------------------------------------------------------------- 1 | TFGrid.n 2 | ======== 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.n -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.chi3.raman.rst.txt: -------------------------------------------------------------------------------- 1 | raman 2 | ===== 3 | 4 | .. currentmodule:: pynlo.utility.chi3 5 | 6 | .. autofunction:: raman -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.fft.irfft.rst.txt: -------------------------------------------------------------------------------- 1 | irfft 2 | ===== 3 | 4 | .. currentmodule:: pynlo.utility.fft 5 | 6 | .. autofunction:: irfft -------------------------------------------------------------------------------- /docs/source/api/pynlo.light.Pulse.t_width.rst: -------------------------------------------------------------------------------- 1 | Pulse.t\_width 2 | ============== 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. automethod:: Pulse.t_width -------------------------------------------------------------------------------- /docs/source/api/pynlo.light.Pulse.v0_idx.rst: -------------------------------------------------------------------------------- 1 | Pulse.v0\_idx 2 | ============= 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. autoproperty:: Pulse.v0_idx -------------------------------------------------------------------------------- /docs/source/api/pynlo.light.Pulse.v_width.rst: -------------------------------------------------------------------------------- 1 | Pulse.v\_width 2 | ============== 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. automethod:: Pulse.v_width -------------------------------------------------------------------------------- /docs/source/api/pynlo.medium.Mode.rv_grid.rst: -------------------------------------------------------------------------------- 1 | Mode.rv\_grid 2 | ============= 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.rv_grid -------------------------------------------------------------------------------- /docs/source/api/pynlo.model.UPE.propagate.rst: -------------------------------------------------------------------------------- 1 | UPE.propagate 2 | ============= 3 | 4 | .. currentmodule:: pynlo.model 5 | 6 | .. automethod:: UPE.propagate -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.light.Pulse.Sech.rst.txt: -------------------------------------------------------------------------------- 1 | Pulse.Sech 2 | ========== 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. automethod:: Pulse.Sech -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.light.Pulse.a_t.rst.txt: -------------------------------------------------------------------------------- 1 | Pulse.a\_t 2 | ========== 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. autoproperty:: Pulse.a_t -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.light.Pulse.a_v.rst.txt: -------------------------------------------------------------------------------- 1 | Pulse.a\_v 2 | ========== 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. autoproperty:: Pulse.a_v -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.light.Pulse.copy.rst.txt: -------------------------------------------------------------------------------- 1 | Pulse.copy 2 | ========== 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. automethod:: Pulse.copy -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.light.Pulse.e_p.rst.txt: -------------------------------------------------------------------------------- 1 | Pulse.e\_p 2 | ========== 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. autoproperty:: Pulse.e_p -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.light.Pulse.p_t.rst.txt: -------------------------------------------------------------------------------- 1 | Pulse.p\_t 2 | ========== 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. autoproperty:: Pulse.p_t -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.light.Pulse.p_v.rst.txt: -------------------------------------------------------------------------------- 1 | Pulse.p\_v 2 | ========== 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. autoproperty:: Pulse.p_v -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.medium.Mode.beta.rst.txt: -------------------------------------------------------------------------------- 1 | Mode.beta 2 | ========= 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.beta -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.medium.Mode.d_12.rst.txt: -------------------------------------------------------------------------------- 1 | Mode.d\_12 2 | ========== 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. automethod:: Mode.d_12 -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.model.Model.step.rst.txt: -------------------------------------------------------------------------------- 1 | Model.step 2 | ========== 3 | 4 | .. currentmodule:: pynlo.model 5 | 6 | .. automethod:: Model.step -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.TFGrid.dt.rst.txt: -------------------------------------------------------------------------------- 1 | TFGrid.dt 2 | ========= 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.dt -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.TFGrid.dv.rst.txt: -------------------------------------------------------------------------------- 1 | TFGrid.dv 2 | ========= 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.dv -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.TFGrid.rn.rst.txt: -------------------------------------------------------------------------------- 1 | TFGrid.rn 2 | ========= 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.rn -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.chi2.g2_shg.rst.txt: -------------------------------------------------------------------------------- 1 | g2\_shg 2 | ======= 3 | 4 | .. currentmodule:: pynlo.utility.chi2 5 | 6 | .. autofunction:: g2_shg -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.chi3.g3_spm.rst.txt: -------------------------------------------------------------------------------- 1 | g3\_spm 2 | ======= 3 | 4 | .. currentmodule:: pynlo.utility.chi3 5 | 6 | .. autofunction:: g3_spm -------------------------------------------------------------------------------- /docs/source/api/pynlo.light.Pulse.Gaussian.rst: -------------------------------------------------------------------------------- 1 | Pulse.Gaussian 2 | ============== 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. automethod:: Pulse.Gaussian -------------------------------------------------------------------------------- /docs/source/api/pynlo.light.Pulse.Parabolic.rst: -------------------------------------------------------------------------------- 1 | Pulse.Parabolic 2 | =============== 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. automethod:: Pulse.Parabolic -------------------------------------------------------------------------------- /docs/source/api/pynlo.medium.Mode.z_linear.rst: -------------------------------------------------------------------------------- 1 | Mode.z\_linear 2 | ============== 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.z_linear -------------------------------------------------------------------------------- /docs/source/api/pynlo.model.Model.propagate.rst: -------------------------------------------------------------------------------- 1 | Model.propagate 2 | =============== 3 | 4 | .. currentmodule:: pynlo.model 5 | 6 | .. automethod:: Model.propagate -------------------------------------------------------------------------------- /docs/source/api/pynlo.model.Model.simulate.rst: -------------------------------------------------------------------------------- 1 | Model.simulate 2 | ============== 3 | 4 | .. currentmodule:: pynlo.model 5 | 6 | .. automethod:: Model.simulate -------------------------------------------------------------------------------- /docs/source/api/pynlo.model.NLSE.propagate.rst: -------------------------------------------------------------------------------- 1 | NLSE.propagate 2 | ============== 3 | 4 | .. currentmodule:: pynlo.model 5 | 6 | .. automethod:: NLSE.propagate -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.TFGrid.rt_ref.rst: -------------------------------------------------------------------------------- 1 | TFGrid.rt\_ref 2 | ============== 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.rt_ref -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.TFGrid.rv_ref.rst: -------------------------------------------------------------------------------- 1 | TFGrid.rv\_ref 2 | ============== 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.rv_ref -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.TFGrid.t_grid.rst: -------------------------------------------------------------------------------- 1 | TFGrid.t\_grid 2 | ============== 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.t_grid -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.TFGrid.t_ref.rst: -------------------------------------------------------------------------------- 1 | TFGrid.t\_ref 2 | ============= 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.t_ref -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.TFGrid.v_grid.rst: -------------------------------------------------------------------------------- 1 | TFGrid.v\_grid 2 | ============== 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.v_grid -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.TFGrid.v_ref.rst: -------------------------------------------------------------------------------- 1 | TFGrid.v\_ref 2 | ============= 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.v_ref -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.chi1.D_to_beta2.rst: -------------------------------------------------------------------------------- 1 | D\_to\_beta2 2 | ============ 3 | 4 | .. currentmodule:: pynlo.utility.chi1 5 | 6 | .. autofunction:: D_to_beta2 -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.chi1.beta2_to_D.rst: -------------------------------------------------------------------------------- 1 | beta2\_to\_D 2 | ============ 3 | 4 | .. currentmodule:: pynlo.utility.chi1 5 | 6 | .. autofunction:: beta2_to_D -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.chi1.beta_to_n.rst: -------------------------------------------------------------------------------- 1 | beta\_to\_n 2 | =========== 3 | 4 | .. currentmodule:: pynlo.utility.chi1 5 | 6 | .. autofunction:: beta_to_n -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.chi1.n_to_beta.rst: -------------------------------------------------------------------------------- 1 | n\_to\_beta 2 | =========== 3 | 4 | .. currentmodule:: pynlo.utility.chi1 5 | 6 | .. autofunction:: n_to_beta -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.taylor_series.rst: -------------------------------------------------------------------------------- 1 | taylor\_series 2 | ============== 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autofunction:: taylor_series -------------------------------------------------------------------------------- /docs/autosummary/templates/autosummary/base.rst: -------------------------------------------------------------------------------- 1 | {{ fullname | escape | underline}} 2 | 3 | .. currentmodule:: {{ module }} 4 | 5 | .. auto{{ objtype }}:: {{ objname }} 6 | -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.light.Pulse.phi_t.rst.txt: -------------------------------------------------------------------------------- 1 | Pulse.phi\_t 2 | ============ 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. autoproperty:: Pulse.phi_t -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.light.Pulse.phi_v.rst.txt: -------------------------------------------------------------------------------- 1 | Pulse.phi\_v 2 | ============ 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. autoproperty:: Pulse.phi_v -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.light.Pulse.ra_t.rst.txt: -------------------------------------------------------------------------------- 1 | Pulse.ra\_t 2 | =========== 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. autoproperty:: Pulse.ra_t -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.light.Pulse.rp_t.rst.txt: -------------------------------------------------------------------------------- 1 | Pulse.rp\_t 2 | =========== 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. autoproperty:: Pulse.rp_t -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.light.Pulse.tg_v.rst.txt: -------------------------------------------------------------------------------- 1 | Pulse.tg\_v 2 | =========== 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. autoproperty:: Pulse.tg_v -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.light.Pulse.vg_t.rst.txt: -------------------------------------------------------------------------------- 1 | Pulse.vg\_t 2 | =========== 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. autoproperty:: Pulse.vg_t -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.medium.Mode.alpha.rst.txt: -------------------------------------------------------------------------------- 1 | Mode.alpha 2 | ========== 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.alpha -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.medium.Mode.beta1.rst.txt: -------------------------------------------------------------------------------- 1 | Mode.beta1 2 | ========== 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.beta1 -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.medium.Mode.beta2.rst.txt: -------------------------------------------------------------------------------- 1 | Mode.beta2 2 | ========== 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.beta2 -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.medium.Mode.gamma.rst.txt: -------------------------------------------------------------------------------- 1 | Mode.gamma 2 | ========== 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.gamma -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.TFGrid.copy.rst.txt: -------------------------------------------------------------------------------- 1 | TFGrid.copy 2 | =========== 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. automethod:: TFGrid.copy -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.TFGrid.rdt.rst.txt: -------------------------------------------------------------------------------- 1 | TFGrid.rdt 2 | ========== 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.rdt -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.TFGrid.rdv.rst.txt: -------------------------------------------------------------------------------- 1 | TFGrid.rdv 2 | ========== 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.rdv -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.fft.fftshift.rst.txt: -------------------------------------------------------------------------------- 1 | fftshift 2 | ======== 3 | 4 | .. currentmodule:: pynlo.utility.fft 5 | 6 | .. autofunction:: fftshift -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.resample_t.rst.txt: -------------------------------------------------------------------------------- 1 | resample\_t 2 | =========== 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autofunction:: resample_t -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.resample_v.rst.txt: -------------------------------------------------------------------------------- 1 | resample\_v 2 | =========== 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autofunction:: resample_v -------------------------------------------------------------------------------- /docs/source/api/pynlo.light.Pulse.Lorentzian.rst: -------------------------------------------------------------------------------- 1 | Pulse.Lorentzian 2 | ================ 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. automethod:: Pulse.Lorentzian -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.TFGrid.rt_grid.rst: -------------------------------------------------------------------------------- 1 | TFGrid.rt\_grid 2 | =============== 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.rt_grid -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.TFGrid.rv_grid.rst: -------------------------------------------------------------------------------- 1 | TFGrid.rv\_grid 2 | =============== 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.rv_grid -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.chi3.g3_to_gamma.rst: -------------------------------------------------------------------------------- 1 | g3\_to\_gamma 2 | ============= 3 | 4 | .. currentmodule:: pynlo.utility.chi3 5 | 6 | .. autofunction:: g3_to_gamma -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.chi3.gamma_to_g3.rst: -------------------------------------------------------------------------------- 1 | gamma\_to\_g3 2 | ============= 3 | 4 | .. currentmodule:: pynlo.utility.chi3 5 | 6 | .. autofunction:: gamma_to_g3 -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.light.Pulse.v0_idx.rst.txt: -------------------------------------------------------------------------------- 1 | Pulse.v0\_idx 2 | ============= 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. autoproperty:: Pulse.v0_idx -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.medium.Mode.g2_inv.rst.txt: -------------------------------------------------------------------------------- 1 | Mode.g2\_inv 2 | ============ 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.g2_inv -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.medium.Mode.g2_pol.rst.txt: -------------------------------------------------------------------------------- 1 | Mode.g2\_pol 2 | ============ 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.g2_pol -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.medium.Mode.v_grid.rst.txt: -------------------------------------------------------------------------------- 1 | Mode.v\_grid 2 | ============ 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.v_grid -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.medium.Mode.z_mode.rst.txt: -------------------------------------------------------------------------------- 1 | Mode.z\_mode 2 | ============ 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.z_mode -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.model.UPE.propagate.rst.txt: -------------------------------------------------------------------------------- 1 | UPE.propagate 2 | ============= 3 | 4 | .. currentmodule:: pynlo.model 5 | 6 | .. automethod:: UPE.propagate -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.chi2.g2_split.rst.txt: -------------------------------------------------------------------------------- 1 | g2\_split 2 | ========= 3 | 4 | .. currentmodule:: pynlo.utility.chi2 5 | 6 | .. autofunction:: g2_split -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.chi3.g3_split.rst.txt: -------------------------------------------------------------------------------- 1 | g3\_split 2 | ========= 3 | 4 | .. currentmodule:: pynlo.utility.chi3 5 | 6 | .. autofunction:: g3_split -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.fft.ifftshift.rst.txt: -------------------------------------------------------------------------------- 1 | ifftshift 2 | ========= 3 | 4 | .. currentmodule:: pynlo.utility.fft 5 | 6 | .. autofunction:: ifftshift -------------------------------------------------------------------------------- /docs/source/api/pynlo.light.Pulse.spectrogram.rst: -------------------------------------------------------------------------------- 1 | Pulse.spectrogram 2 | ================= 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. automethod:: Pulse.spectrogram -------------------------------------------------------------------------------- /docs/source/api/pynlo.medium.Mode.z_nonlinear.rst: -------------------------------------------------------------------------------- 1 | Mode.z\_nonlinear 2 | ================= 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.z_nonlinear -------------------------------------------------------------------------------- /docs/source/api/pynlo.model.UPE.update_poling.rst: -------------------------------------------------------------------------------- 1 | UPE.update\_poling 2 | ================== 3 | 4 | .. currentmodule:: pynlo.model 5 | 6 | .. automethod:: UPE.update_poling -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.TFGrid.rn_range.rst: -------------------------------------------------------------------------------- 1 | TFGrid.rn\_range 2 | ================ 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.rn_range -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.TFGrid.rn_slice.rst: -------------------------------------------------------------------------------- 1 | TFGrid.rn\_slice 2 | ================ 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.rn_slice -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.TFGrid.rtf_grids.rst: -------------------------------------------------------------------------------- 1 | TFGrid.rtf\_grids 2 | ================= 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. automethod:: TFGrid.rtf_grids -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.TFGrid.t_window.rst: -------------------------------------------------------------------------------- 1 | TFGrid.t\_window 2 | ================ 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.t_window -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.TFGrid.v_window.rst: -------------------------------------------------------------------------------- 1 | TFGrid.v\_window 2 | ================ 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.v_window -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.light.Pulse.Gaussian.rst.txt: -------------------------------------------------------------------------------- 1 | Pulse.Gaussian 2 | ============== 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. automethod:: Pulse.Gaussian -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.light.Pulse.t_width.rst.txt: -------------------------------------------------------------------------------- 1 | Pulse.t\_width 2 | ============== 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. automethod:: Pulse.t_width -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.light.Pulse.v_width.rst.txt: -------------------------------------------------------------------------------- 1 | Pulse.v\_width 2 | ============== 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. automethod:: Pulse.v_width -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.medium.Mode.rv_grid.rst.txt: -------------------------------------------------------------------------------- 1 | Mode.rv\_grid 2 | ============= 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.rv_grid -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.medium.Mode.z_linear.rst.txt: -------------------------------------------------------------------------------- 1 | Mode.z\_linear 2 | ============== 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.z_linear -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.model.Model.simulate.rst.txt: -------------------------------------------------------------------------------- 1 | Model.simulate 2 | ============== 3 | 4 | .. currentmodule:: pynlo.model 5 | 6 | .. automethod:: Model.simulate -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.model.NLSE.propagate.rst.txt: -------------------------------------------------------------------------------- 1 | NLSE.propagate 2 | ============== 3 | 4 | .. currentmodule:: pynlo.model 5 | 6 | .. automethod:: NLSE.propagate -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.TFGrid.t_ref.rst.txt: -------------------------------------------------------------------------------- 1 | TFGrid.t\_ref 2 | ============= 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.t_ref -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.TFGrid.v_ref.rst.txt: -------------------------------------------------------------------------------- 1 | TFGrid.v\_ref 2 | ============= 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.v_ref -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.chi1.beta_to_n.rst.txt: -------------------------------------------------------------------------------- 1 | beta\_to\_n 2 | =========== 3 | 4 | .. currentmodule:: pynlo.utility.chi1 5 | 6 | .. autofunction:: beta_to_n -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.chi1.n_to_beta.rst.txt: -------------------------------------------------------------------------------- 1 | n\_to\_beta 2 | =========== 3 | 4 | .. currentmodule:: pynlo.utility.chi1 5 | 6 | .. autofunction:: n_to_beta -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.TFGrid.rt_window.rst: -------------------------------------------------------------------------------- 1 | TFGrid.rt\_window 2 | ================= 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.rt_window -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.TFGrid.rv_window.rst: -------------------------------------------------------------------------------- 1 | TFGrid.rv\_window 2 | ================= 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.rv_window -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.light.Pulse.Parabolic.rst.txt: -------------------------------------------------------------------------------- 1 | Pulse.Parabolic 2 | =============== 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. automethod:: Pulse.Parabolic -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.model.Model.propagate.rst.txt: -------------------------------------------------------------------------------- 1 | Model.propagate 2 | =============== 3 | 4 | .. currentmodule:: pynlo.model 5 | 6 | .. automethod:: Model.propagate -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.TFGrid.rt_ref.rst.txt: -------------------------------------------------------------------------------- 1 | TFGrid.rt\_ref 2 | ============== 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.rt_ref -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.TFGrid.rv_ref.rst.txt: -------------------------------------------------------------------------------- 1 | TFGrid.rv\_ref 2 | ============== 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.rv_ref -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.TFGrid.t_grid.rst.txt: -------------------------------------------------------------------------------- 1 | TFGrid.t\_grid 2 | ============== 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.t_grid -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.TFGrid.v_grid.rst.txt: -------------------------------------------------------------------------------- 1 | TFGrid.v\_grid 2 | ============== 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.v_grid -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.chi1.D_to_beta2.rst.txt: -------------------------------------------------------------------------------- 1 | D\_to\_beta2 2 | ============ 3 | 4 | .. currentmodule:: pynlo.utility.chi1 5 | 6 | .. autofunction:: D_to_beta2 -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.chi1.beta2_to_D.rst.txt: -------------------------------------------------------------------------------- 1 | beta2\_to\_D 2 | ============ 3 | 4 | .. currentmodule:: pynlo.utility.chi1 5 | 6 | .. autofunction:: beta2_to_D -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.taylor_series.rst.txt: -------------------------------------------------------------------------------- 1 | taylor\_series 2 | ============== 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autofunction:: taylor_series -------------------------------------------------------------------------------- /docs/source/api/pynlo.model.Model.update_poling.rst: -------------------------------------------------------------------------------- 1 | Model.update\_poling 2 | ==================== 3 | 4 | .. currentmodule:: pynlo.model 5 | 6 | .. automethod:: Model.update_poling -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.light.Pulse.Lorentzian.rst.txt: -------------------------------------------------------------------------------- 1 | Pulse.Lorentzian 2 | ================ 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. automethod:: Pulse.Lorentzian -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.light.Pulse.spectrogram.rst.txt: -------------------------------------------------------------------------------- 1 | Pulse.spectrogram 2 | ================= 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. automethod:: Pulse.spectrogram -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.TFGrid.rn_range.rst.txt: -------------------------------------------------------------------------------- 1 | TFGrid.rn\_range 2 | ================ 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.rn_range -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.TFGrid.rn_slice.rst.txt: -------------------------------------------------------------------------------- 1 | TFGrid.rn\_slice 2 | ================ 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.rn_slice -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.TFGrid.rt_grid.rst.txt: -------------------------------------------------------------------------------- 1 | TFGrid.rt\_grid 2 | =============== 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.rt_grid -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.TFGrid.rv_grid.rst.txt: -------------------------------------------------------------------------------- 1 | TFGrid.rv\_grid 2 | =============== 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.rv_grid -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.TFGrid.t_window.rst.txt: -------------------------------------------------------------------------------- 1 | TFGrid.t\_window 2 | ================ 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.t_window -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.TFGrid.v_window.rst.txt: -------------------------------------------------------------------------------- 1 | TFGrid.v\_window 2 | ================ 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.v_window -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.chi3.g3_to_gamma.rst.txt: -------------------------------------------------------------------------------- 1 | g3\_to\_gamma 2 | ============= 3 | 4 | .. currentmodule:: pynlo.utility.chi3 5 | 6 | .. autofunction:: g3_to_gamma -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.chi3.gamma_to_g3.rst.txt: -------------------------------------------------------------------------------- 1 | gamma\_to\_g3 2 | ============= 3 | 4 | .. currentmodule:: pynlo.utility.chi3 5 | 6 | .. autofunction:: gamma_to_g3 -------------------------------------------------------------------------------- /docs/source/api/pynlo.light.Pulse.autocorrelation.rst: -------------------------------------------------------------------------------- 1 | Pulse.autocorrelation 2 | ===================== 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. automethod:: Pulse.autocorrelation -------------------------------------------------------------------------------- /docs/source/api/pynlo.medium.Mode.linear_operator.rst: -------------------------------------------------------------------------------- 1 | Mode.linear\_operator 2 | ===================== 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. automethod:: Mode.linear_operator -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.TFGrid.FromFreqRange.rst: -------------------------------------------------------------------------------- 1 | TFGrid.FromFreqRange 2 | ==================== 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. automethod:: TFGrid.FromFreqRange -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.medium.Mode.z_nonlinear.rst.txt: -------------------------------------------------------------------------------- 1 | Mode.z\_nonlinear 2 | ================= 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. autoproperty:: Mode.z_nonlinear -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.model.UPE.update_poling.rst.txt: -------------------------------------------------------------------------------- 1 | UPE.update\_poling 2 | ================== 3 | 4 | .. currentmodule:: pynlo.model 5 | 6 | .. automethod:: UPE.update_poling -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.TFGrid.rt_window.rst.txt: -------------------------------------------------------------------------------- 1 | TFGrid.rt\_window 2 | ================= 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.rt_window -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.TFGrid.rtf_grids.rst.txt: -------------------------------------------------------------------------------- 1 | TFGrid.rtf\_grids 2 | ================= 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. automethod:: TFGrid.rtf_grids -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.TFGrid.rv_window.rst.txt: -------------------------------------------------------------------------------- 1 | TFGrid.rv\_window 2 | ================= 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. autoproperty:: TFGrid.rv_window -------------------------------------------------------------------------------- /docs/source/api/pynlo.model.Model.linear_operator.rst: -------------------------------------------------------------------------------- 1 | Model.linear\_operator 2 | ====================== 3 | 4 | .. currentmodule:: pynlo.model 5 | 6 | .. automethod:: Model.linear_operator -------------------------------------------------------------------------------- /docs/source/api/pynlo.model.Model.update_linearity.rst: -------------------------------------------------------------------------------- 1 | Model.update\_linearity 2 | ======================= 3 | 4 | .. currentmodule:: pynlo.model 5 | 6 | .. automethod:: Model.update_linearity -------------------------------------------------------------------------------- /docs/source/api/pynlo.model.NLSE.update_linearity.rst: -------------------------------------------------------------------------------- 1 | NLSE.update\_linearity 2 | ====================== 3 | 4 | .. currentmodule:: pynlo.model 5 | 6 | .. automethod:: NLSE.update_linearity -------------------------------------------------------------------------------- /docs/source/api/pynlo.model.UPE.nonlinear_operator.rst: -------------------------------------------------------------------------------- 1 | UPE.nonlinear\_operator 2 | ======================= 3 | 4 | .. currentmodule:: pynlo.model 5 | 6 | .. automethod:: UPE.nonlinear_operator -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.chi2.domain_inversions.rst: -------------------------------------------------------------------------------- 1 | domain\_inversions 2 | ================== 3 | 4 | .. currentmodule:: pynlo.utility.chi2 5 | 6 | .. autofunction:: domain_inversions -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.model.Model.update_poling.rst.txt: -------------------------------------------------------------------------------- 1 | Model.update\_poling 2 | ==================== 3 | 4 | .. currentmodule:: pynlo.model 5 | 6 | .. automethod:: Model.update_poling -------------------------------------------------------------------------------- /docs/build/html/_static/vendor/fontawesome/6.5.1/webfonts/fa-brands-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cdfredrick/PyNLO/HEAD/docs/build/html/_static/vendor/fontawesome/6.5.1/webfonts/fa-brands-400.ttf -------------------------------------------------------------------------------- /docs/build/html/_static/vendor/fontawesome/6.5.1/webfonts/fa-solid-900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cdfredrick/PyNLO/HEAD/docs/build/html/_static/vendor/fontawesome/6.5.1/webfonts/fa-solid-900.ttf -------------------------------------------------------------------------------- /docs/source/api/pynlo.light.Pulse.FromPowerSpectrum.rst: -------------------------------------------------------------------------------- 1 | Pulse.FromPowerSpectrum 2 | ======================= 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. automethod:: Pulse.FromPowerSpectrum -------------------------------------------------------------------------------- /docs/source/api/pynlo.model.NLSE.nonlinear_operator.rst: -------------------------------------------------------------------------------- 1 | NLSE.nonlinear\_operator 2 | ======================== 3 | 4 | .. currentmodule:: pynlo.model 5 | 6 | .. automethod:: NLSE.nonlinear_operator -------------------------------------------------------------------------------- /docs/source/api/pynlo.model.UPE.update_nonlinearity.rst: -------------------------------------------------------------------------------- 1 | UPE.update\_nonlinearity 2 | ======================== 3 | 4 | .. currentmodule:: pynlo.model 5 | 6 | .. automethod:: UPE.update_nonlinearity -------------------------------------------------------------------------------- /docs/build/html/_static/vendor/fontawesome/6.5.1/webfonts/fa-brands-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cdfredrick/PyNLO/HEAD/docs/build/html/_static/vendor/fontawesome/6.5.1/webfonts/fa-brands-400.woff2 -------------------------------------------------------------------------------- /docs/build/html/_static/vendor/fontawesome/6.5.1/webfonts/fa-regular-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cdfredrick/PyNLO/HEAD/docs/build/html/_static/vendor/fontawesome/6.5.1/webfonts/fa-regular-400.ttf -------------------------------------------------------------------------------- /docs/build/html/_static/vendor/fontawesome/6.5.1/webfonts/fa-regular-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cdfredrick/PyNLO/HEAD/docs/build/html/_static/vendor/fontawesome/6.5.1/webfonts/fa-regular-400.woff2 -------------------------------------------------------------------------------- /docs/build/html/_static/vendor/fontawesome/6.5.1/webfonts/fa-solid-900.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cdfredrick/PyNLO/HEAD/docs/build/html/_static/vendor/fontawesome/6.5.1/webfonts/fa-solid-900.woff2 -------------------------------------------------------------------------------- /docs/source/api/pynlo.model.Model.estimate_step_size.rst: -------------------------------------------------------------------------------- 1 | Model.estimate\_step\_size 2 | ========================== 3 | 4 | .. currentmodule:: pynlo.model 5 | 6 | .. automethod:: Model.estimate_step_size -------------------------------------------------------------------------------- /docs/source/api/pynlo.model.Model.nonlinear_operator.rst: -------------------------------------------------------------------------------- 1 | Model.nonlinear\_operator 2 | ========================= 3 | 4 | .. currentmodule:: pynlo.model 5 | 6 | .. automethod:: Model.nonlinear_operator -------------------------------------------------------------------------------- /docs/source/api/pynlo.model.NLSE.update_nonlinearity.rst: -------------------------------------------------------------------------------- 1 | NLSE.update\_nonlinearity 2 | ========================= 3 | 4 | .. currentmodule:: pynlo.model 5 | 6 | .. automethod:: NLSE.update_nonlinearity -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.light.Pulse.autocorrelation.rst.txt: -------------------------------------------------------------------------------- 1 | Pulse.autocorrelation 2 | ===================== 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. automethod:: Pulse.autocorrelation -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.medium.Mode.linear_operator.rst.txt: -------------------------------------------------------------------------------- 1 | Mode.linear\_operator 2 | ===================== 3 | 4 | .. currentmodule:: pynlo.medium 5 | 6 | .. automethod:: Mode.linear_operator -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.model.Model.linear_operator.rst.txt: -------------------------------------------------------------------------------- 1 | Model.linear\_operator 2 | ====================== 3 | 4 | .. currentmodule:: pynlo.model 5 | 6 | .. automethod:: Model.linear_operator -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.model.NLSE.update_linearity.rst.txt: -------------------------------------------------------------------------------- 1 | NLSE.update\_linearity 2 | ====================== 3 | 4 | .. currentmodule:: pynlo.model 5 | 6 | .. automethod:: NLSE.update_linearity -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.TFGrid.FromFreqRange.rst.txt: -------------------------------------------------------------------------------- 1 | TFGrid.FromFreqRange 2 | ==================== 3 | 4 | .. currentmodule:: pynlo.utility 5 | 6 | .. automethod:: TFGrid.FromFreqRange -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.chi2.domain_inversions.rst.txt: -------------------------------------------------------------------------------- 1 | domain\_inversions 2 | ================== 3 | 4 | .. currentmodule:: pynlo.utility.chi2 5 | 6 | .. autofunction:: domain_inversions -------------------------------------------------------------------------------- /docs/build/html/_static/vendor/fontawesome/6.5.1/webfonts/fa-v4compatibility.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cdfredrick/PyNLO/HEAD/docs/build/html/_static/vendor/fontawesome/6.5.1/webfonts/fa-v4compatibility.ttf -------------------------------------------------------------------------------- /docs/source/api/pynlo.model.Model.update_nonlinearity.rst: -------------------------------------------------------------------------------- 1 | Model.update\_nonlinearity 2 | ========================== 3 | 4 | .. currentmodule:: pynlo.model 5 | 6 | .. automethod:: Model.update_nonlinearity -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.light.Pulse.FromPowerSpectrum.rst.txt: -------------------------------------------------------------------------------- 1 | Pulse.FromPowerSpectrum 2 | ======================= 3 | 4 | .. currentmodule:: pynlo.light 5 | 6 | .. automethod:: Pulse.FromPowerSpectrum -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.model.Model.update_linearity.rst.txt: -------------------------------------------------------------------------------- 1 | Model.update\_linearity 2 | ======================= 3 | 4 | .. currentmodule:: pynlo.model 5 | 6 | .. automethod:: Model.update_linearity -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.model.UPE.nonlinear_operator.rst.txt: -------------------------------------------------------------------------------- 1 | UPE.nonlinear\_operator 2 | ======================= 3 | 4 | .. currentmodule:: pynlo.model 5 | 6 | .. automethod:: UPE.nonlinear_operator -------------------------------------------------------------------------------- /docs/build/html/_static/vendor/fontawesome/6.5.1/webfonts/fa-v4compatibility.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cdfredrick/PyNLO/HEAD/docs/build/html/_static/vendor/fontawesome/6.5.1/webfonts/fa-v4compatibility.woff2 -------------------------------------------------------------------------------- /docs/source/examples/phase-matching.rst: -------------------------------------------------------------------------------- 1 | Phase Matching 2 | ============== 3 | .. literalinclude:: ../../../examples/phase-matching.py 4 | :caption: examples/phase-matching.py 5 | :language: python 6 | 7 | -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.model.Model.nonlinear_operator.rst.txt: -------------------------------------------------------------------------------- 1 | Model.nonlinear\_operator 2 | ========================= 3 | 4 | .. currentmodule:: pynlo.model 5 | 6 | .. automethod:: Model.nonlinear_operator -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.model.NLSE.nonlinear_operator.rst.txt: -------------------------------------------------------------------------------- 1 | NLSE.nonlinear\_operator 2 | ======================== 3 | 4 | .. currentmodule:: pynlo.model 5 | 6 | .. automethod:: NLSE.nonlinear_operator -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.model.NLSE.update_nonlinearity.rst.txt: -------------------------------------------------------------------------------- 1 | NLSE.update\_nonlinearity 2 | ========================= 3 | 4 | .. currentmodule:: pynlo.model 5 | 6 | .. automethod:: NLSE.update_nonlinearity -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.model.UPE.update_nonlinearity.rst.txt: -------------------------------------------------------------------------------- 1 | UPE.update\_nonlinearity 2 | ======================== 3 | 4 | .. currentmodule:: pynlo.model 5 | 6 | .. automethod:: UPE.update_nonlinearity -------------------------------------------------------------------------------- /docs/source/examples/optical-solitons.rst: -------------------------------------------------------------------------------- 1 | Optical Solitons 2 | ================ 3 | .. literalinclude:: ../../../examples/optical-solitons.py 4 | :caption: examples/optical-solitons.py 5 | :language: python 6 | -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.model.Model.estimate_step_size.rst.txt: -------------------------------------------------------------------------------- 1 | Model.estimate\_step\_size 2 | ========================== 3 | 4 | .. currentmodule:: pynlo.model 5 | 6 | .. automethod:: Model.estimate_step_size -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.model.Model.update_nonlinearity.rst.txt: -------------------------------------------------------------------------------- 1 | Model.update\_nonlinearity 2 | ========================== 3 | 4 | .. currentmodule:: pynlo.model 5 | 6 | .. automethod:: Model.update_nonlinearity -------------------------------------------------------------------------------- /docs/source/_static/custom.css: -------------------------------------------------------------------------------- 1 | div.math { 2 | overflow-x: auto; 3 | overflow-y: hidden; 4 | } 5 | 6 | p + div.math { 7 | margin-top: -24px; 8 | } 9 | 10 | .wy-nav-content { 11 | max-width: 850px; 12 | } -------------------------------------------------------------------------------- /docs/build/html/_static/custom.css: -------------------------------------------------------------------------------- 1 | div.math { 2 | overflow-x: auto; 3 | overflow-y: hidden; 4 | } 5 | 6 | p + div.math { 7 | margin-top: -24px; 8 | } 9 | 10 | .wy-nav-content { 11 | max-width: 850px; 12 | } -------------------------------------------------------------------------------- /docs/build/html/_sources/examples/optical-solitons.rst.txt: -------------------------------------------------------------------------------- 1 | Optical Solitons 2 | ================ 3 | .. literalinclude:: ../../../examples/optical-solitons.py 4 | :caption: examples/optical-solitons.py 5 | :language: python 6 | -------------------------------------------------------------------------------- /docs/build/html/_sources/examples/phase-matching.rst.txt: -------------------------------------------------------------------------------- 1 | Phase Matching 2 | ============== 3 | .. literalinclude:: ../../../examples/phase-matching.py 4 | :caption: examples/phase-matching.py 5 | :language: python 6 | 7 | -------------------------------------------------------------------------------- /docs/source/api/pynlo.model.UPE.nonlinear_operator_separable.rst: -------------------------------------------------------------------------------- 1 | UPE.nonlinear\_operator\_separable 2 | ================================== 3 | 4 | .. currentmodule:: pynlo.model 5 | 6 | .. automethod:: UPE.nonlinear_operator_separable -------------------------------------------------------------------------------- /docs/source/examples/ppln_cascaded-chi2.rst: -------------------------------------------------------------------------------- 1 | PPLN: Cascaded Chi2 2 | =================== 3 | .. literalinclude:: ../../../examples/ppln_cascaded-chi2.py 4 | :caption: examples/ppln_cascaded-chi2.py 5 | :language: python 6 | 7 | -------------------------------------------------------------------------------- /docs/source/api/pynlo.light.rst: -------------------------------------------------------------------------------- 1 | pynlo.light 2 | =========== 3 | .. automodule:: pynlo.light 4 | 5 | Classes 6 | ------- 7 | .. autosummary:: 8 | :template: class.rst 9 | :toctree: 10 | :caption: Classes 11 | 12 | Pulse -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.model.UPE.nonlinear_operator_separable.rst.txt: -------------------------------------------------------------------------------- 1 | UPE.nonlinear\_operator\_separable 2 | ================================== 3 | 4 | .. currentmodule:: pynlo.model 5 | 6 | .. automethod:: UPE.nonlinear_operator_separable -------------------------------------------------------------------------------- /docs/build/html/_sources/examples/ppln_cascaded-chi2.rst.txt: -------------------------------------------------------------------------------- 1 | PPLN: Cascaded Chi2 2 | =================== 3 | .. literalinclude:: ../../../examples/ppln_cascaded-chi2.py 4 | :caption: examples/ppln_cascaded-chi2.py 5 | :language: python 6 | 7 | -------------------------------------------------------------------------------- /docs/source/api/pynlo.medium.rst: -------------------------------------------------------------------------------- 1 | pynlo.medium 2 | ============ 3 | .. automodule:: pynlo.medium 4 | 5 | Classes 6 | ------- 7 | .. autosummary:: 8 | :template: class.rst 9 | :toctree: 10 | :caption: Classes 11 | 12 | Mode -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | Redirect to Documentation Webpage 9 | 10 | 11 | -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.light.rst.txt: -------------------------------------------------------------------------------- 1 | pynlo.light 2 | =========== 3 | .. automodule:: pynlo.light 4 | 5 | Classes 6 | ------- 7 | .. autosummary:: 8 | :template: class.rst 9 | :toctree: 10 | :caption: Classes 11 | 12 | Pulse -------------------------------------------------------------------------------- /docs/source/examples/silica-pcf_supercontinuum.rst: -------------------------------------------------------------------------------- 1 | Silica PCF: Supercontinuum 2 | ========================== 3 | .. literalinclude:: ../../../examples/silica-pcf_supercontinuum.py 4 | :caption: examples/silica-pcf_supercontinuum.py 5 | :language: python 6 | -------------------------------------------------------------------------------- /docs/update_api.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | 3 | rd "source\api" /s /q 4 | 5 | setlocal 6 | 7 | set SPHINX_APIDOC_OPTIONS=show-inheritance 8 | 9 | sphinx-apidoc --no-toc --module-first --templatedir="source\_templates" -o "source\api" "..\pynlo" 10 | 11 | endlocal -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.medium.rst.txt: -------------------------------------------------------------------------------- 1 | pynlo.medium 2 | ============ 3 | .. automodule:: pynlo.medium 4 | 5 | Classes 6 | ------- 7 | .. autosummary:: 8 | :template: class.rst 9 | :toctree: 10 | :caption: Classes 11 | 12 | Mode -------------------------------------------------------------------------------- /docs/build/html/.buildinfo: -------------------------------------------------------------------------------- 1 | # Sphinx build info version 1 2 | # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. 3 | config: fee5708fbe89b9b330e6cd9de290883f 4 | tags: 645f666f9bcd5a90fca523b33c5a78b7 5 | -------------------------------------------------------------------------------- /docs/source/api/pynlo.model.rst: -------------------------------------------------------------------------------- 1 | pynlo.model 2 | =========== 3 | .. automodule:: pynlo.model 4 | 5 | Classes 6 | ------- 7 | .. autosummary:: 8 | :template: class.rst 9 | :toctree: 10 | :caption: Classes 11 | 12 | Model 13 | NLSE 14 | UPE -------------------------------------------------------------------------------- /docs/build/html/_sources/examples/silica-pcf_supercontinuum.rst.txt: -------------------------------------------------------------------------------- 1 | Silica PCF: Supercontinuum 2 | ========================== 3 | .. literalinclude:: ../../../examples/silica-pcf_supercontinuum.py 4 | :caption: examples/silica-pcf_supercontinuum.py 5 | :language: python 6 | -------------------------------------------------------------------------------- /docs/source/guides.rst: -------------------------------------------------------------------------------- 1 | User Guide 2 | ========== 3 | 4 | .. include:: ../../README.rst 5 | :start-line: 8 6 | 7 | .. toctree:: 8 | :hidden: 9 | :maxdepth: 1 10 | :titlesonly: 11 | 12 | Introduction 13 | overview 14 | examples 15 | -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.model.rst.txt: -------------------------------------------------------------------------------- 1 | pynlo.model 2 | =========== 3 | .. automodule:: pynlo.model 4 | 5 | Classes 6 | ------- 7 | .. autosummary:: 8 | :template: class.rst 9 | :toctree: 10 | :caption: Classes 11 | 12 | Model 13 | NLSE 14 | UPE -------------------------------------------------------------------------------- /docs/build/html/_sources/guides.rst.txt: -------------------------------------------------------------------------------- 1 | User Guide 2 | ========== 3 | 4 | .. include:: ../../README.rst 5 | :start-line: 8 6 | 7 | .. toctree:: 8 | :hidden: 9 | :maxdepth: 1 10 | :titlesonly: 11 | 12 | Introduction 13 | overview 14 | examples 15 | -------------------------------------------------------------------------------- /docs/build/html/_static/scripts/bootstrap.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v5.3.2 (https://getbootstrap.com/) 3 | * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 5 | */ 6 | -------------------------------------------------------------------------------- /docs/build/html/_static/vendor/fontawesome/6.5.1/js/all.min.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | * Copyright 2023 Fonticons, Inc. 5 | */ 6 | -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.chi2.rst: -------------------------------------------------------------------------------- 1 | pynlo.utility.chi2 2 | ================== 3 | .. automodule:: pynlo.utility.chi2 4 | 5 | Functions 6 | --------- 7 | .. autosummary:: 8 | :template: base.rst 9 | :toctree: 10 | :caption: Functions 11 | 12 | g2_split 13 | g2_shg 14 | domain_inversions -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.chi2.rst.txt: -------------------------------------------------------------------------------- 1 | pynlo.utility.chi2 2 | ================== 3 | .. automodule:: pynlo.utility.chi2 4 | 5 | Functions 6 | --------- 7 | .. autosummary:: 8 | :template: base.rst 9 | :toctree: 10 | :caption: Functions 11 | 12 | g2_split 13 | g2_shg 14 | domain_inversions -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.chi1.rst: -------------------------------------------------------------------------------- 1 | pynlo.utility.chi1 2 | ================== 3 | .. automodule:: pynlo.utility.chi1 4 | 5 | Functions 6 | --------- 7 | .. autosummary:: 8 | :template: base.rst 9 | :toctree: 10 | :caption: Functions 11 | 12 | n_to_beta 13 | beta_to_n 14 | D_to_beta2 15 | beta2_to_D -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.fft.rst: -------------------------------------------------------------------------------- 1 | pynlo.utility.fft 2 | ================= 3 | .. automodule:: pynlo.utility.fft 4 | 5 | Functions 6 | --------- 7 | .. autosummary:: 8 | :template: base.rst 9 | :toctree: 10 | :caption: Functions 11 | 12 | fft 13 | ifft 14 | rfft 15 | irfft 16 | fftshift 17 | ifftshift -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.chi3.rst: -------------------------------------------------------------------------------- 1 | pynlo.utility.chi3 2 | ================== 3 | .. automodule:: pynlo.utility.chi3 4 | 5 | Functions 6 | --------- 7 | .. autosummary:: 8 | :template: base.rst 9 | :toctree: 10 | :caption: Functions 11 | 12 | gamma_to_g3 13 | g3_to_gamma 14 | g3_split 15 | g3_spm 16 | raman -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.chi1.rst.txt: -------------------------------------------------------------------------------- 1 | pynlo.utility.chi1 2 | ================== 3 | .. automodule:: pynlo.utility.chi1 4 | 5 | Functions 6 | --------- 7 | .. autosummary:: 8 | :template: base.rst 9 | :toctree: 10 | :caption: Functions 11 | 12 | n_to_beta 13 | beta_to_n 14 | D_to_beta2 15 | beta2_to_D -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.chi3.rst.txt: -------------------------------------------------------------------------------- 1 | pynlo.utility.chi3 2 | ================== 3 | .. automodule:: pynlo.utility.chi3 4 | 5 | Functions 6 | --------- 7 | .. autosummary:: 8 | :template: base.rst 9 | :toctree: 10 | :caption: Functions 11 | 12 | gamma_to_g3 13 | g3_to_gamma 14 | g3_split 15 | g3_spm 16 | raman -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.fft.rst.txt: -------------------------------------------------------------------------------- 1 | pynlo.utility.fft 2 | ================= 3 | .. automodule:: pynlo.utility.fft 4 | 5 | Functions 6 | --------- 7 | .. autosummary:: 8 | :template: base.rst 9 | :toctree: 10 | :caption: Functions 11 | 12 | fft 13 | ifft 14 | rfft 15 | irfft 16 | fftshift 17 | ifftshift -------------------------------------------------------------------------------- /docs/source/api.rst: -------------------------------------------------------------------------------- 1 | PyNLO Reference 2 | ===================== 3 | .. automodule:: pynlo 4 | 5 | 6 | Modules 7 | ------- 8 | .. autosummary:: 9 | :template: module.rst 10 | :toctree: api/ 11 | :caption: Modules 12 | :recursive: 13 | 14 | pynlo.light 15 | pynlo.medium 16 | pynlo.device 17 | pynlo.model 18 | pynlo.utility -------------------------------------------------------------------------------- /docs/source/api/pynlo.model.NLSE.rst: -------------------------------------------------------------------------------- 1 | NLSE 2 | ==== 3 | .. currentmodule:: pynlo.model 4 | .. autoclass:: NLSE 5 | 6 | Methods 7 | ------- 8 | .. autosummary:: 9 | :template: base.rst 10 | :toctree: 11 | :caption: Methods 12 | 13 | ~NLSE.propagate 14 | ~NLSE.nonlinear_operator 15 | ~NLSE.update_linearity 16 | ~NLSE.update_nonlinearity -------------------------------------------------------------------------------- /docs/build/html/_sources/api.rst.txt: -------------------------------------------------------------------------------- 1 | PyNLO Reference 2 | ===================== 3 | .. automodule:: pynlo 4 | 5 | 6 | Modules 7 | ------- 8 | .. autosummary:: 9 | :template: module.rst 10 | :toctree: api/ 11 | :caption: Modules 12 | :recursive: 13 | 14 | pynlo.light 15 | pynlo.medium 16 | pynlo.device 17 | pynlo.model 18 | pynlo.utility -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.model.NLSE.rst.txt: -------------------------------------------------------------------------------- 1 | NLSE 2 | ==== 3 | .. currentmodule:: pynlo.model 4 | .. autoclass:: NLSE 5 | 6 | Methods 7 | ------- 8 | .. autosummary:: 9 | :template: base.rst 10 | :toctree: 11 | :caption: Methods 12 | 13 | ~NLSE.propagate 14 | ~NLSE.nonlinear_operator 15 | ~NLSE.update_linearity 16 | ~NLSE.update_nonlinearity -------------------------------------------------------------------------------- /docs/source/api/pynlo.model.UPE.rst: -------------------------------------------------------------------------------- 1 | UPE 2 | === 3 | .. currentmodule:: pynlo.model 4 | .. autoclass:: UPE 5 | 6 | Methods 7 | ------- 8 | .. autosummary:: 9 | :template: base.rst 10 | :toctree: 11 | :caption: Methods 12 | 13 | ~UPE.propagate 14 | ~UPE.nonlinear_operator 15 | ~UPE.nonlinear_operator_separable 16 | ~UPE.update_nonlinearity 17 | ~UPE.update_poling -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.model.UPE.rst.txt: -------------------------------------------------------------------------------- 1 | UPE 2 | === 3 | .. currentmodule:: pynlo.model 4 | .. autoclass:: UPE 5 | 6 | Methods 7 | ------- 8 | .. autosummary:: 9 | :template: base.rst 10 | :toctree: 11 | :caption: Methods 12 | 13 | ~UPE.propagate 14 | ~UPE.nonlinear_operator 15 | ~UPE.nonlinear_operator_separable 16 | ~UPE.update_nonlinearity 17 | ~UPE.update_poling -------------------------------------------------------------------------------- /docs/source/notes.rst: -------------------------------------------------------------------------------- 1 | Notes 2 | ===== 3 | These notes introduce the mathematics and optical physics used by PyNLO, covering the basics of Fourier transforms and the linear and nonlinear propagation of light in optical modes. 4 | 5 | Topics 6 | ------ 7 | .. toctree:: 8 | :maxdepth: 2 9 | 10 | notes/fourier_transforms 11 | notes/linear_optics 12 | notes/nonlinear_optics 13 | notes/supplemental 14 | -------------------------------------------------------------------------------- /docs/build/html/_static/documentation_options.js: -------------------------------------------------------------------------------- 1 | const DOCUMENTATION_OPTIONS = { 2 | VERSION: '1.dev', 3 | LANGUAGE: 'en', 4 | COLLAPSE_INDEX: false, 5 | BUILDER: 'html', 6 | FILE_SUFFIX: '.html', 7 | LINK_SUFFIX: '.html', 8 | HAS_SOURCE: true, 9 | SOURCELINK_SUFFIX: '.txt', 10 | NAVIGATION_WITH_KEYS: false, 11 | SHOW_SEARCH_SUMMARY: true, 12 | ENABLE_SEARCH_SHORTCUTS: true, 13 | }; -------------------------------------------------------------------------------- /docs/build/html/_sources/notes.rst.txt: -------------------------------------------------------------------------------- 1 | Notes 2 | ===== 3 | These notes introduce the mathematics and optical physics used by PyNLO, covering the basics of Fourier transforms and the linear and nonlinear propagation of light in optical modes. 4 | 5 | Topics 6 | ------ 7 | .. toctree:: 8 | :maxdepth: 2 9 | 10 | notes/fourier_transforms 11 | notes/linear_optics 12 | notes/nonlinear_optics 13 | notes/supplemental 14 | -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["setuptools"] 3 | build-backend = "setuptools.build_meta" 4 | 5 | [project] 6 | name = "pynlo" 7 | description = 'Python nonlinear optics' 8 | readme = "README.rst" 9 | license = {file = "COPYING.LESSER.txt"} 10 | dependencies = [ 11 | "numpy>=1.17", 12 | "scipy>=1.4", 13 | "numba", 14 | "mkl_fft>=1.3" 15 | ] 16 | dynamic = ["version"] 17 | 18 | [tool.setuptools.dynamic] 19 | version = {attr = "pynlo.__version__"} 20 | -------------------------------------------------------------------------------- /docs/source/api/pynlo.model.Model.rst: -------------------------------------------------------------------------------- 1 | Model 2 | ===== 3 | .. currentmodule:: pynlo.model 4 | .. autoclass:: Model 5 | 6 | Methods 7 | ------- 8 | .. autosummary:: 9 | :template: base.rst 10 | :toctree: 11 | :caption: Methods 12 | 13 | ~Model.estimate_step_size 14 | ~Model.simulate 15 | ~Model.propagate 16 | ~Model.step 17 | ~Model.linear_operator 18 | ~Model.nonlinear_operator 19 | ~Model.update_linearity 20 | ~Model.update_nonlinearity 21 | ~Model.update_poling -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.model.Model.rst.txt: -------------------------------------------------------------------------------- 1 | Model 2 | ===== 3 | .. currentmodule:: pynlo.model 4 | .. autoclass:: Model 5 | 6 | Methods 7 | ------- 8 | .. autosummary:: 9 | :template: base.rst 10 | :toctree: 11 | :caption: Methods 12 | 13 | ~Model.estimate_step_size 14 | ~Model.simulate 15 | ~Model.propagate 16 | ~Model.step 17 | ~Model.linear_operator 18 | ~Model.nonlinear_operator 19 | ~Model.update_linearity 20 | ~Model.update_nonlinearity 21 | ~Model.update_poling -------------------------------------------------------------------------------- /pynlo/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Python Nonlinear Optics 4 | 5 | PyNLO provides an easy-to-use, object-oriented set of tools for modeling the 6 | nonlinear interaction of light with matter. 7 | 8 | Notes 9 | ----- 10 | PyNLO is intended to be used with all quantities expressed in base SI units, 11 | i.e. frequency in ``Hz``, time in ``s``, and energy in ``J``. 12 | 13 | """ 14 | __version__ = '1.dev' 15 | __all__ = ["light", "medium", "device", "model", "utility"] 16 | 17 | 18 | # %% Imports 19 | 20 | from pynlo import light, medium, device, model, utility 21 | -------------------------------------------------------------------------------- /docs/autosummary/templates/autosummary/class.rst: -------------------------------------------------------------------------------- 1 | {{ fullname | escape | underline}} 2 | 3 | .. currentmodule:: {{ module }} 4 | 5 | .. autoclass:: {{ objname }} 6 | 7 | {% block methods %} 8 | .. automethod:: __init__ 9 | 10 | {% if methods %} 11 | .. rubric:: {{ _('Methods') }} 12 | 13 | .. autosummary:: 14 | {% for item in methods %} 15 | ~{{ name }}.{{ item }} 16 | {%- endfor %} 17 | {% endif %} 18 | {% endblock %} 19 | 20 | {% block attributes %} 21 | {% if attributes %} 22 | .. rubric:: {{ _('Attributes') }} 23 | 24 | .. autosummary:: 25 | {% for item in attributes %} 26 | ~{{ name }}.{{ item }} 27 | {%- endfor %} 28 | {% endif %} 29 | {% endblock %} 30 | -------------------------------------------------------------------------------- /docs/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line, and also 5 | # from the environment for the first two. 6 | SPHINXOPTS ?= 7 | SPHINXBUILD ?= sphinx-build 8 | SOURCEDIR = source 9 | BUILDDIR = build 10 | 11 | # Put it first so that "make" without argument is like "make help". 12 | help: 13 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 14 | 15 | .PHONY: help Makefile 16 | 17 | # Catch-all target: route all unknown targets to Sphinx using the new 18 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 19 | %: Makefile 20 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 21 | -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.rst: -------------------------------------------------------------------------------- 1 | pynlo.utility 2 | ============= 3 | .. automodule:: pynlo.utility 4 | 5 | Modules 6 | ------- 7 | .. autosummary:: 8 | :template: module.rst 9 | :toctree: 10 | :caption: Modules 11 | :recursive: 12 | 13 | pynlo.utility.chi1 14 | pynlo.utility.chi2 15 | pynlo.utility.chi3 16 | pynlo.utility.fft 17 | 18 | Functions 19 | --------- 20 | .. autosummary:: 21 | :template: base.rst 22 | :toctree: 23 | :caption: Functions 24 | 25 | vacuum 26 | taylor_series 27 | shift 28 | resample_v 29 | resample_t 30 | 31 | Classes 32 | ------- 33 | .. autosummary:: 34 | :template: class.rst 35 | :toctree: 36 | :caption: Classes 37 | 38 | TFGrid -------------------------------------------------------------------------------- /docs/build/html/_static/nbsphinx-gallery.css: -------------------------------------------------------------------------------- 1 | .nbsphinx-gallery { 2 | display: grid; 3 | grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); 4 | gap: 5px; 5 | margin-top: 1em; 6 | margin-bottom: 1em; 7 | } 8 | 9 | .nbsphinx-gallery > a { 10 | padding: 5px; 11 | border: 1px dotted currentColor; 12 | border-radius: 2px; 13 | text-align: center; 14 | } 15 | 16 | .nbsphinx-gallery > a:hover { 17 | border-style: solid; 18 | } 19 | 20 | .nbsphinx-gallery img { 21 | max-width: 100%; 22 | max-height: 100%; 23 | } 24 | 25 | .nbsphinx-gallery > a > div:first-child { 26 | display: flex; 27 | align-items: start; 28 | justify-content: center; 29 | height: 120px; 30 | margin-bottom: 5px; 31 | } 32 | -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.rst.txt: -------------------------------------------------------------------------------- 1 | pynlo.utility 2 | ============= 3 | .. automodule:: pynlo.utility 4 | 5 | Modules 6 | ------- 7 | .. autosummary:: 8 | :template: module.rst 9 | :toctree: 10 | :caption: Modules 11 | :recursive: 12 | 13 | pynlo.utility.chi1 14 | pynlo.utility.chi2 15 | pynlo.utility.chi3 16 | pynlo.utility.fft 17 | 18 | Functions 19 | --------- 20 | .. autosummary:: 21 | :template: base.rst 22 | :toctree: 23 | :caption: Functions 24 | 25 | vacuum 26 | taylor_series 27 | shift 28 | resample_v 29 | resample_t 30 | 31 | Classes 32 | ------- 33 | .. autosummary:: 34 | :template: class.rst 35 | :toctree: 36 | :caption: Classes 37 | 38 | TFGrid -------------------------------------------------------------------------------- /docs/source/_templates/class.rst: -------------------------------------------------------------------------------- 1 | {{ objname | escape | underline}} 2 | .. currentmodule:: {{ module }} 3 | .. autoclass:: {{ objname }} 4 | 5 | 6 | {%- block methods %} 7 | {%- if methods %} 8 | 9 | {{ _('Methods') | underline(line='-') }} 10 | .. autosummary:: 11 | :template: base.rst 12 | :toctree: 13 | :caption: Methods 14 | {% for item in methods %} 15 | ~{{ name }}.{{ item }} 16 | {%- endfor %} 17 | {%- endif %} 18 | {%- endblock %} 19 | 20 | 21 | {%- block attributes %} 22 | {%- if attributes %} 23 | 24 | {{ _('Attributes') | underline(line='-') }} 25 | .. autosummary:: 26 | :template: base.rst 27 | :toctree: 28 | :caption: Attributes 29 | {% for item in attributes %} 30 | ~{{ name }}.{{ item }} 31 | {%- endfor %} 32 | {%- endif %} 33 | {%- endblock %} 34 | -------------------------------------------------------------------------------- /docs/source/api/pynlo.medium.Mode.rst: -------------------------------------------------------------------------------- 1 | Mode 2 | ==== 3 | .. currentmodule:: pynlo.medium 4 | .. autoclass:: Mode 5 | 6 | Methods 7 | ------- 8 | .. autosummary:: 9 | :template: base.rst 10 | :toctree: 11 | :caption: Methods 12 | 13 | ~Mode.d_12 14 | ~Mode.linear_operator 15 | ~Mode.copy 16 | 17 | Attributes 18 | ---------- 19 | .. autosummary:: 20 | :template: base.rst 21 | :toctree: 22 | :caption: Attributes 23 | 24 | ~Mode.z 25 | ~Mode.v_grid 26 | ~Mode.rv_grid 27 | ~Mode.z_mode 28 | ~Mode.z_linear 29 | ~Mode.z_nonlinear 30 | ~Mode.alpha 31 | ~Mode.beta 32 | ~Mode.n 33 | ~Mode.beta1 34 | ~Mode.n_g 35 | ~Mode.v_g 36 | ~Mode.beta2 37 | ~Mode.D 38 | ~Mode.g2 39 | ~Mode.g2_inv 40 | ~Mode.g2_pol 41 | ~Mode.g3 42 | ~Mode.gamma 43 | ~Mode.r3 -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.medium.Mode.rst.txt: -------------------------------------------------------------------------------- 1 | Mode 2 | ==== 3 | .. currentmodule:: pynlo.medium 4 | .. autoclass:: Mode 5 | 6 | Methods 7 | ------- 8 | .. autosummary:: 9 | :template: base.rst 10 | :toctree: 11 | :caption: Methods 12 | 13 | ~Mode.d_12 14 | ~Mode.linear_operator 15 | ~Mode.copy 16 | 17 | Attributes 18 | ---------- 19 | .. autosummary:: 20 | :template: base.rst 21 | :toctree: 22 | :caption: Attributes 23 | 24 | ~Mode.z 25 | ~Mode.v_grid 26 | ~Mode.rv_grid 27 | ~Mode.z_mode 28 | ~Mode.z_linear 29 | ~Mode.z_nonlinear 30 | ~Mode.alpha 31 | ~Mode.beta 32 | ~Mode.n 33 | ~Mode.beta1 34 | ~Mode.n_g 35 | ~Mode.v_g 36 | ~Mode.beta2 37 | ~Mode.D 38 | ~Mode.g2 39 | ~Mode.g2_inv 40 | ~Mode.g2_pol 41 | ~Mode.g3 42 | ~Mode.gamma 43 | ~Mode.r3 -------------------------------------------------------------------------------- /docs/make.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | 3 | pushd %~dp0 4 | 5 | REM Command file for Sphinx documentation 6 | 7 | if "%SPHINXBUILD%" == "" ( 8 | set SPHINXBUILD=sphinx-build 9 | ) 10 | set SOURCEDIR=source 11 | set BUILDDIR=build 12 | 13 | if "%1" == "" goto help 14 | 15 | %SPHINXBUILD% >NUL 2>NUL 16 | if errorlevel 9009 ( 17 | echo. 18 | echo.The 'sphinx-build' command was not found. Make sure you have Sphinx 19 | echo.installed, then set the SPHINXBUILD environment variable to point 20 | echo.to the full path of the 'sphinx-build' executable. Alternatively you 21 | echo.may add the Sphinx directory to PATH. 22 | echo. 23 | echo.If you don't have Sphinx installed, grab it from 24 | echo.http://sphinx-doc.org/ 25 | exit /b 1 26 | ) 27 | 28 | %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% 29 | goto end 30 | 31 | :help 32 | %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% 33 | 34 | :end 35 | popd 36 | -------------------------------------------------------------------------------- /docs/source/api/pynlo.light.Pulse.rst: -------------------------------------------------------------------------------- 1 | Pulse 2 | ===== 3 | .. currentmodule:: pynlo.light 4 | .. autoclass:: Pulse 5 | 6 | Methods 7 | ------- 8 | .. autosummary:: 9 | :template: base.rst 10 | :toctree: 11 | :caption: Methods 12 | 13 | ~Pulse.FromPowerSpectrum 14 | ~Pulse.Gaussian 15 | ~Pulse.Sech 16 | ~Pulse.Parabolic 17 | ~Pulse.Lorentzian 18 | ~Pulse.CW 19 | ~Pulse.v_width 20 | ~Pulse.t_width 21 | ~Pulse.autocorrelation 22 | ~Pulse.spectrogram 23 | ~Pulse.copy 24 | 25 | Attributes 26 | ---------- 27 | .. autosummary:: 28 | :template: base.rst 29 | :toctree: 30 | :caption: Attributes 31 | 32 | ~Pulse.a_v 33 | ~Pulse.p_v 34 | ~Pulse.phi_v 35 | ~Pulse.tg_v 36 | ~Pulse.a_t 37 | ~Pulse.p_t 38 | ~Pulse.phi_t 39 | ~Pulse.vg_t 40 | ~Pulse.ra_t 41 | ~Pulse.rp_t 42 | ~Pulse.e_p 43 | ~Pulse.v0 44 | ~Pulse.v0_idx -------------------------------------------------------------------------------- /docs/source/api/pynlo.utility.TFGrid.rst: -------------------------------------------------------------------------------- 1 | TFGrid 2 | ====== 3 | .. currentmodule:: pynlo.utility 4 | .. autoclass:: TFGrid 5 | 6 | Methods 7 | ------- 8 | .. autosummary:: 9 | :template: base.rst 10 | :toctree: 11 | :caption: Methods 12 | 13 | ~TFGrid.FromFreqRange 14 | ~TFGrid.rtf_grids 15 | ~TFGrid.copy 16 | 17 | Attributes 18 | ---------- 19 | .. autosummary:: 20 | :template: base.rst 21 | :toctree: 22 | :caption: Attributes 23 | 24 | ~TFGrid.n 25 | ~TFGrid.rn 26 | ~TFGrid.rn_range 27 | ~TFGrid.rn_slice 28 | ~TFGrid.v_grid 29 | ~TFGrid.v_ref 30 | ~TFGrid.dv 31 | ~TFGrid.v_window 32 | ~TFGrid.t_grid 33 | ~TFGrid.t_ref 34 | ~TFGrid.dt 35 | ~TFGrid.t_window 36 | ~TFGrid.rv_grid 37 | ~TFGrid.rv_ref 38 | ~TFGrid.rdv 39 | ~TFGrid.rv_window 40 | ~TFGrid.rt_grid 41 | ~TFGrid.rt_ref 42 | ~TFGrid.rdt 43 | ~TFGrid.rt_window -------------------------------------------------------------------------------- /docs/build/html/_static/design-tabs.js: -------------------------------------------------------------------------------- 1 | var sd_labels_by_text = {}; 2 | 3 | function ready() { 4 | const li = document.getElementsByClassName("sd-tab-label"); 5 | for (const label of li) { 6 | syncId = label.getAttribute("data-sync-id"); 7 | if (syncId) { 8 | label.onclick = onLabelClick; 9 | if (!sd_labels_by_text[syncId]) { 10 | sd_labels_by_text[syncId] = []; 11 | } 12 | sd_labels_by_text[syncId].push(label); 13 | } 14 | } 15 | } 16 | 17 | function onLabelClick() { 18 | // Activate other inputs with the same sync id. 19 | syncId = this.getAttribute("data-sync-id"); 20 | for (label of sd_labels_by_text[syncId]) { 21 | if (label === this) continue; 22 | label.previousElementSibling.checked = true; 23 | } 24 | window.localStorage.setItem("sphinx-design-last-tab", syncId); 25 | } 26 | 27 | document.addEventListener("DOMContentLoaded", ready, false); 28 | -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.light.Pulse.rst.txt: -------------------------------------------------------------------------------- 1 | Pulse 2 | ===== 3 | .. currentmodule:: pynlo.light 4 | .. autoclass:: Pulse 5 | 6 | Methods 7 | ------- 8 | .. autosummary:: 9 | :template: base.rst 10 | :toctree: 11 | :caption: Methods 12 | 13 | ~Pulse.FromPowerSpectrum 14 | ~Pulse.Gaussian 15 | ~Pulse.Sech 16 | ~Pulse.Parabolic 17 | ~Pulse.Lorentzian 18 | ~Pulse.CW 19 | ~Pulse.v_width 20 | ~Pulse.t_width 21 | ~Pulse.autocorrelation 22 | ~Pulse.spectrogram 23 | ~Pulse.copy 24 | 25 | Attributes 26 | ---------- 27 | .. autosummary:: 28 | :template: base.rst 29 | :toctree: 30 | :caption: Attributes 31 | 32 | ~Pulse.a_v 33 | ~Pulse.p_v 34 | ~Pulse.phi_v 35 | ~Pulse.tg_v 36 | ~Pulse.a_t 37 | ~Pulse.p_t 38 | ~Pulse.phi_t 39 | ~Pulse.vg_t 40 | ~Pulse.ra_t 41 | ~Pulse.rp_t 42 | ~Pulse.e_p 43 | ~Pulse.v0 44 | ~Pulse.v0_idx -------------------------------------------------------------------------------- /docs/build/html/_sources/api/pynlo.utility.TFGrid.rst.txt: -------------------------------------------------------------------------------- 1 | TFGrid 2 | ====== 3 | .. currentmodule:: pynlo.utility 4 | .. autoclass:: TFGrid 5 | 6 | Methods 7 | ------- 8 | .. autosummary:: 9 | :template: base.rst 10 | :toctree: 11 | :caption: Methods 12 | 13 | ~TFGrid.FromFreqRange 14 | ~TFGrid.rtf_grids 15 | ~TFGrid.copy 16 | 17 | Attributes 18 | ---------- 19 | .. autosummary:: 20 | :template: base.rst 21 | :toctree: 22 | :caption: Attributes 23 | 24 | ~TFGrid.n 25 | ~TFGrid.rn 26 | ~TFGrid.rn_range 27 | ~TFGrid.rn_slice 28 | ~TFGrid.v_grid 29 | ~TFGrid.v_ref 30 | ~TFGrid.dv 31 | ~TFGrid.v_window 32 | ~TFGrid.t_grid 33 | ~TFGrid.t_ref 34 | ~TFGrid.dt 35 | ~TFGrid.t_window 36 | ~TFGrid.rv_grid 37 | ~TFGrid.rv_ref 38 | ~TFGrid.rdv 39 | ~TFGrid.rv_window 40 | ~TFGrid.rt_grid 41 | ~TFGrid.rt_ref 42 | ~TFGrid.rdt 43 | ~TFGrid.rt_window -------------------------------------------------------------------------------- /docs/build/html/_sphinx_design_static/design-tabs.js: -------------------------------------------------------------------------------- 1 | var sd_labels_by_text = {}; 2 | 3 | function ready() { 4 | const li = document.getElementsByClassName("sd-tab-label"); 5 | for (const label of li) { 6 | syncId = label.getAttribute("data-sync-id"); 7 | if (syncId) { 8 | label.onclick = onLabelClick; 9 | if (!sd_labels_by_text[syncId]) { 10 | sd_labels_by_text[syncId] = []; 11 | } 12 | sd_labels_by_text[syncId].push(label); 13 | } 14 | } 15 | } 16 | 17 | function onLabelClick() { 18 | // Activate other inputs with the same sync id. 19 | syncId = this.getAttribute("data-sync-id"); 20 | for (label of sd_labels_by_text[syncId]) { 21 | if (label === this) continue; 22 | label.previousElementSibling.checked = true; 23 | } 24 | window.localStorage.setItem("sphinx-design-last-tab", syncId); 25 | } 26 | 27 | document.addEventListener("DOMContentLoaded", ready, false); 28 | -------------------------------------------------------------------------------- /docs/source/examples.rst: -------------------------------------------------------------------------------- 1 | Examples 2 | ======== 3 | The PyNLO workflow starts by defining a :py:class:`~pynlo.light.Pulse`. This also provides a set of time and frequency grids you can use throughout the rest of your project. The next step is to define a :py:class:`~pynlo.medium.Mode`, which holds the effective linear and nonlinear properties of your fiber, waveguide, or bulk medium. With a `Pulse` and `Mode` object you can initialize a propagation model. Both 2nd-order and 3rd-order nonlinearities can be simulated using the :py:class:`~pynlo.model.UPE` model. The simpler :py:class:`~pynlo.model.NLSE` model can be used if you only need the 3rd-order Kerr and Raman nonlinearities. 4 | 5 | The examples below explore various nonlinear effects and are organized by the nonlinear propagation model used in the simulation. 6 | 7 | .. toctree:: 8 | :maxdepth: 1 9 | :titlesonly: 10 | :caption: NLSE 11 | 12 | examples/optical-solitons 13 | examples/silica-pcf_supercontinuum 14 | 15 | 16 | .. toctree:: 17 | :maxdepth: 1 18 | :titlesonly: 19 | :caption: UPE 20 | 21 | examples/phase-matching 22 | examples/ppln_cascaded-chi2 23 | -------------------------------------------------------------------------------- /docs/build/html/_sources/examples.rst.txt: -------------------------------------------------------------------------------- 1 | Examples 2 | ======== 3 | The PyNLO workflow starts by defining a :py:class:`~pynlo.light.Pulse`. This also provides a set of time and frequency grids you can use throughout the rest of your project. The next step is to define a :py:class:`~pynlo.medium.Mode`, which holds the effective linear and nonlinear properties of your fiber, waveguide, or bulk medium. With a `Pulse` and `Mode` object you can initialize a propagation model. Both 2nd-order and 3rd-order nonlinearities can be simulated using the :py:class:`~pynlo.model.UPE` model. The simpler :py:class:`~pynlo.model.NLSE` model can be used if you only need the 3rd-order Kerr and Raman nonlinearities. 4 | 5 | The examples below explore various nonlinear effects and are organized by the nonlinear propagation model used in the simulation. 6 | 7 | .. toctree:: 8 | :maxdepth: 1 9 | :titlesonly: 10 | :caption: NLSE 11 | 12 | examples/optical-solitons 13 | examples/silica-pcf_supercontinuum 14 | 15 | 16 | .. toctree:: 17 | :maxdepth: 1 18 | :titlesonly: 19 | :caption: UPE 20 | 21 | examples/phase-matching 22 | examples/ppln_cascaded-chi2 23 | -------------------------------------------------------------------------------- /docs/source/index.rst: -------------------------------------------------------------------------------- 1 | .. include:: ../../README.rst 2 | :end-line: 3 3 | 4 | Contents 5 | -------- 6 | .. grid:: 2 7 | :gutter: 3 8 | 9 | .. grid-item-card:: User Guide 10 | :link: guides 11 | :link-type: doc 12 | 13 | An introduction to the PyNLO package and an overview of its features. 14 | 15 | .. grid-item-card:: Examples 16 | :link: examples 17 | :link-type: doc 18 | 19 | Examples using PyNLO for the simulation of 2nd- and 3rd-order nonlinear effects. 20 | 21 | .. grid-item-card:: Notes 22 | :link: notes 23 | :link-type: doc 24 | 25 | Notes on the mathematics and optical physics used by PyNLO, covering Fourier transforms and the linear and nonlinear propagation of light in optical modes. 26 | 27 | .. grid-item-card:: API Reference 28 | :link: api 29 | :link-type: doc 30 | 31 | Detailed reference guide to the modules, classes, and functions included in PyNLO. 32 | 33 | 34 | .. toctree:: 35 | :includehidden: 36 | :titlesonly: 37 | :maxdepth: 2 38 | :hidden: 39 | 40 | User Guide 41 | notes 42 | API Reference 43 | 44 | 45 | Indices and tables 46 | ------------------ 47 | * :ref:`genindex` 48 | * :ref:`modindex` 49 | * :ref:`search` 50 | -------------------------------------------------------------------------------- /docs/build/html/_sources/index.rst.txt: -------------------------------------------------------------------------------- 1 | .. include:: ../../README.rst 2 | :end-line: 3 3 | 4 | Contents 5 | -------- 6 | .. grid:: 2 7 | :gutter: 3 8 | 9 | .. grid-item-card:: User Guide 10 | :link: guides 11 | :link-type: doc 12 | 13 | An introduction to the PyNLO package and an overview of its features. 14 | 15 | .. grid-item-card:: Examples 16 | :link: examples 17 | :link-type: doc 18 | 19 | Examples using PyNLO for the simulation of 2nd- and 3rd-order nonlinear effects. 20 | 21 | .. grid-item-card:: Notes 22 | :link: notes 23 | :link-type: doc 24 | 25 | Notes on the mathematics and optical physics used by PyNLO, covering Fourier transforms and the linear and nonlinear propagation of light in optical modes. 26 | 27 | .. grid-item-card:: API Reference 28 | :link: api 29 | :link-type: doc 30 | 31 | Detailed reference guide to the modules, classes, and functions included in PyNLO. 32 | 33 | 34 | .. toctree:: 35 | :includehidden: 36 | :titlesonly: 37 | :maxdepth: 2 38 | :hidden: 39 | 40 | User Guide 41 | notes 42 | API Reference 43 | 44 | 45 | Indices and tables 46 | ------------------ 47 | * :ref:`genindex` 48 | * :ref:`modindex` 49 | * :ref:`search` 50 | -------------------------------------------------------------------------------- /docs/autosummary/templates/autosummary/module.rst: -------------------------------------------------------------------------------- 1 | {{ fullname | escape | underline}} 2 | 3 | .. automodule:: {{ fullname }} 4 | 5 | {% block attributes %} 6 | {% if attributes %} 7 | .. rubric:: {{ _('Module Attributes') }} 8 | 9 | .. autosummary:: 10 | {% for item in attributes %} 11 | {{ item }} 12 | {%- endfor %} 13 | {% endif %} 14 | {% endblock %} 15 | 16 | {% block functions %} 17 | {% if functions %} 18 | .. rubric:: {{ _('Functions') }} 19 | 20 | .. autosummary:: 21 | {% for item in functions %} 22 | {{ item }} 23 | {%- endfor %} 24 | {% endif %} 25 | {% endblock %} 26 | 27 | {% block classes %} 28 | {% if classes %} 29 | .. rubric:: {{ _('Classes') }} 30 | 31 | .. autosummary:: 32 | {% for item in classes %} 33 | {{ item }} 34 | {%- endfor %} 35 | {% endif %} 36 | {% endblock %} 37 | 38 | {% block exceptions %} 39 | {% if exceptions %} 40 | .. rubric:: {{ _('Exceptions') }} 41 | 42 | .. autosummary:: 43 | {% for item in exceptions %} 44 | {{ item }} 45 | {%- endfor %} 46 | {% endif %} 47 | {% endblock %} 48 | 49 | {% block modules %} 50 | {% if modules %} 51 | .. rubric:: Modules 52 | 53 | .. autosummary:: 54 | :toctree: 55 | :recursive: 56 | {% for item in modules %} 57 | {{ item }} 58 | {%- endfor %} 59 | {% endif %} 60 | {% endblock %} 61 | -------------------------------------------------------------------------------- /docs/source/_templates/module.rst: -------------------------------------------------------------------------------- 1 | {{ fullname | escape | underline}} 2 | .. automodule:: {{ fullname }} 3 | 4 | 5 | {%- block modules %} 6 | {%- if modules %} 7 | 8 | {{ _('Modules') | underline(line='-')}} 9 | .. autosummary:: 10 | :template: module.rst 11 | :toctree: 12 | :caption: Modules 13 | :recursive: 14 | {% for item in modules %} 15 | {{ item }} 16 | {%- endfor %} 17 | {%- endif %} 18 | {%- endblock %} 19 | 20 | 21 | {%- block attributes %} 22 | {%- if attributes %} 23 | 24 | {{ _('Module Attributes') | underline(line='-')}} 25 | .. autosummary:: 26 | :template: base.rst 27 | :toctree: 28 | :caption: Module Attributes 29 | {% for item in attributes %} 30 | {{ item }} 31 | {%- endfor %} 32 | {%- endif %} 33 | {%- endblock %} 34 | 35 | 36 | {%- block functions %} 37 | {%- if functions %} 38 | 39 | {{ _('Functions') | underline(line='-') }} 40 | .. autosummary:: 41 | :template: base.rst 42 | :toctree: 43 | :caption: Functions 44 | {% for item in functions %} 45 | {{ item }} 46 | {%- endfor %} 47 | {%- endif %} 48 | {%- endblock %} 49 | 50 | 51 | {%- block classes %} 52 | {%- if classes %} 53 | 54 | {{ _('Classes') | underline(line='-')}} 55 | .. autosummary:: 56 | :template: class.rst 57 | :toctree: 58 | :caption: Classes 59 | {% for item in classes %} 60 | {{ item }} 61 | {%- endfor %} 62 | {%- endif %} 63 | {%- endblock %} 64 | 65 | 66 | {%- block exceptions %} 67 | {%- if exceptions %} 68 | 69 | {{ _('Exceptions') | underline(line='-') }} 70 | .. autosummary:: 71 | :template: base.rst 72 | :toctree: 73 | :caption: Exceptions 74 | {% for item in exceptions %} 75 | {{ item }} 76 | {%- endfor %} 77 | {%- endif %} 78 | {%- endblock %} 79 | -------------------------------------------------------------------------------- /docs/build/html/_static/webpack-macros.html: -------------------------------------------------------------------------------- 1 | 5 | {# Load FontAwesome icons #} 6 | {% macro head_pre_icons() %} 7 | 8 | 9 | 10 | 11 | {% endmacro %} 12 | 13 | {% macro head_pre_assets() %} 14 | 15 | 16 | 17 | 18 | {% endmacro %} 19 | 20 | {% macro head_js_preload() %} 21 | 22 | 23 | 24 | 25 | {% endmacro %} 26 | 27 | {% macro body_post() %} 28 | 29 | 30 | 31 | {% endmacro %} -------------------------------------------------------------------------------- /pynlo/utility/chi1.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Conversion functions and other calculators relevant to the linear 4 | susceptibility. 5 | 6 | """ 7 | 8 | __all__ = ["n_to_beta", "beta_to_n", "D_to_beta2", "beta2_to_D"] 9 | 10 | 11 | # %% Imports 12 | 13 | from scipy.constants import pi, c 14 | 15 | 16 | #%% Converters 17 | 18 | # TODO: forward and backward transformations, test with equivalents from medium.Mode 19 | 20 | #---- Wavenumber and Linear Susceptibility chi1 21 | def chi1_to_k(v_grid, chi1): 22 | k = 2*pi*v_grid/c * (1 + chi1)**0.5 23 | alpha = 2*k.imag 24 | beta = k.real 25 | return beta, alpha 26 | 27 | def k_to_chi1(v_grid, beta, alpha=None): 28 | if alpha is None: 29 | k = beta 30 | else: 31 | k = beta + 1j/2 * alpha 32 | return (c/(2*pi*v_grid) * k)**2 - 1 33 | 34 | #---- Phase Coefficient and Refractive Index 35 | def n_to_beta(v_grid, n): 36 | """ 37 | Refractive index to phase coefficient. 38 | 39 | Parameters 40 | ---------- 41 | v_grid : array_like of float 42 | The frequency grid. 43 | n : array_like of float 44 | The refractive indices. 45 | 46 | Returns 47 | ------- 48 | beta 49 | 50 | """ 51 | return n * (2*pi*v_grid/c) 52 | 53 | def beta_to_n(v_grid, beta): 54 | """ 55 | Phase coefficient to refractive index 56 | 57 | Parameters 58 | ---------- 59 | v_grid : array_like of float 60 | The frequency grid. 61 | beta : array_like of float 62 | The angular wavenumbers. 63 | 64 | Returns 65 | ------- 66 | n 67 | 68 | """ 69 | return beta / (2*pi*v_grid/c) 70 | 71 | #---- GVD and Dispersion Parameter D 72 | def D_to_beta2(v_grid, D): 73 | """ 74 | Dispersion parameter D to group velocity dispersion beta_2 (GVD). 75 | 76 | Parameters 77 | ---------- 78 | v_grid : array_like of float 79 | The frequency grid. 80 | D : array_like of float 81 | The dispersion parameter D, in units of ``s/m**2``. 82 | 83 | Returns 84 | ------- 85 | The GVD, in units of ``s**2/m``. 86 | 87 | """ 88 | return D / (-2*pi * v_grid**2/c) 89 | 90 | def beta2_to_D(v_grid, beta2): 91 | """ 92 | Group velocity dispersion beta_2 (GVD) to dispersion parameter D. 93 | 94 | Parameters 95 | ---------- 96 | v_grid : array_like of float 97 | The frequency grid. 98 | beta2 : array_like of float 99 | The GVD parameter, in units of ``s**2/m``. 100 | 101 | Returns 102 | ------- 103 | The dispersion parameter, in units of ``s/m**2``. 104 | 105 | """ 106 | return beta2 * (-2*pi * v_grid**2/c) 107 | 108 | 109 | # %% Calculator Functions 110 | 111 | def linear_length(): 112 | pass #TODO 113 | -------------------------------------------------------------------------------- /docs/build/html/_static/nbsphinx-no-thumbnail.svg: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /README.rst: -------------------------------------------------------------------------------- 1 | PyNLO: Python Nonlinear Optics 2 | ============================== 3 | This is a fork of the original PyNLO, a package for modeling the nonlinear interaction of light with matter. It started as an attempt to add 2nd-order nonlinearities to the pulse propagation model and grew into a large-scale rewrite. It is not yet at feature parity with the original, but it is getting close! Contributions and suggestions are welcome. 4 | 5 | Complete documentation for PyNLO can be found on the repository's GitHub Pages website. 6 | 7 | Introduction 8 | ------------ 9 | The PyNLO package provides an easy-to-use, object-oriented set of tools for modeling the nonlinear interaction of light with matter. It provides many functionalities for representing pulses of light and nonlinear materials. 10 | 11 | Features: 12 | - A solver for the propagation of light through materials with both 2nd- and 3rd-order nonlinearities. 13 | 14 | - A highly-efficient adaptive step size algorithm based on the ERK4(3)-IP method from `Balac and Mahé (2013) `_. 15 | 16 | - A flexible object-oriented system for treating laser pulses and optical modes. 17 | 18 | - ...and much more! 19 | 20 | 21 | Installation 22 | ------------ 23 | PyNLO requires Python 3. If you do not already have Python, the `Miniconda `_ distribution is a good place to start. PyNLO depends on the *numpy*, *scipy*, *numba*, and *mkl_fft* packages. The *matplotlib* package is necessary to view real-time simulation updates and to run the example code. 24 | 25 | The most flexible way to install this fork is to download or clone the repository onto your computer, and then add the PyNLO directory to the `sys.path `_ variable before importing the package. If you have the `Spyder IDE `_ you can add the PyNLO directory with its PYTHONPATH manager, found under "Tools" on the menu bar. 26 | 27 | Alternatively, you can install PyNLO using the `local project `_ functionality of pip, i.e.:: 28 | 29 | pip install path/to/PyNLO --no-deps 30 | 31 | The path must be replaced with the actual path to the repository on your machine. Only use the ``--no-deps`` option if in a conda environment, in which case, you should separately install the dependencies using the ``conda install`` command. 32 | 33 | Test out your installation with the scripts in the examples folder. 34 | 35 | 36 | Contributing 37 | ------------ 38 | Open an issue or discussion on the GitHub repository to add suggestions for improvement, ask questions, or make other comments. Additions to the tests, examples, and documentation are highly appreciated. New contributions should be based off the `develop` branch. 39 | 40 | 41 | License 42 | ------- 43 | PyNLO is licensed under the `GNU LGPLv3 license `_. This means that you are free to use PyNLO for any project, but all modifications to it must be kept open source. PyNLO is provided "as is" with absolutely no warranty. 44 | -------------------------------------------------------------------------------- /docs/source/overview.rst: -------------------------------------------------------------------------------- 1 | Package Overview 2 | ================ 3 | In PyNLO, object-oriented programming is used to emulate physical objects. Whenever possible each physical entity with intrinsic properties is mapped to a Python class, e.g. an optical pulse or nonlinear fiber. These classes keep track of the objects’ properties and provide simple calculator-type helper functions. 4 | 5 | 6 | Time and Frequency Grids 7 | ------------------------ 8 | The core functionality of this package is built off of the time and frequency grids given by the :py:class:`pynlo.utility.TFGrid` class. These grids represent physical coordinate spaces. Critically, the frequency grid is only defined for positive frequencies and is aligned to the origin. This facilitates inverse Fourier transforms using both real-valued representations and analytic, or complex-envelope representations. See the notes on :doc:`Fourier transforms ` for more details. 9 | 10 | 11 | Pulses 12 | ------ 13 | Optical pulses are represented in PyNLO with :py:class:`pynlo.light.Pulse` objects. These contain methods for accessing the time and frequency domain properties of the pulse and the underlying time and frequency grids. There are several convenience methods for generating pulses from pre-defined shapes (:py:meth:`~pynlo.light.Pulse.Sech`, :py:meth:`~pynlo.light.Pulse.Gaussian`, etc.) and from existing spectral data (:py:meth:`~pynlo.light.Pulse.FromPowerSpectrum`). 14 | 15 | 16 | Modes 17 | ----- 18 | PyNLO represents the modes within an optical medium as :py:class:`pynlo.medium.Mode` objects. In addition to the linear properties (i.e. the phase and gain coefficients :math:`\beta` and :math:`\alpha`), they also contain an optical mode's effective 2nd- and 3rd-order nonlinearity. If a material has properties that are :math:`z` dependent, those properties can be input as functions who's first argument is the propagation distance. 19 | 20 | 21 | Models 22 | ------ 23 | The propagation models implemented in PyNLO are found in :py:mod:`pynlo.model`. While derived through multi-mode expansion of Maxwell's equations (see the notes on :doc:`nonlinear optics ` for more details), only single-mode simulations are currently supported. Models are initialized with :py:class:`~pynlo.light.Pulse` and :py:class:`~pynlo.medium.Mode` objects. Simulation specific parameters (propagation distance, local error, etc.) should be entered when running a model's :py:meth:`~pynlo.model.Model.simulate` method. Real-time visualizations of a simulation are available by setting the `simulate` method's `plot` keyword. 24 | 25 | 26 | Utilities 27 | --------- 28 | The :py:mod:`pynlo.utility` module includes the :py:class:`~pynlo.utility.TFGrid` class, miscellaneous helper functions (:py:func:`~pynlo.utility.taylor_series`, :py:func:`~pynlo.utility.vacuum`, etc.), as well as other calculator-type utilities. The utilities are organized into submodules based on their relationship to the linear (:py:mod:`~pynlo.utility.chi1`) or nonlinear (:py:mod:`~pynlo.utility.chi2` and :py:mod:`~pynlo.utility.chi3`) susceptibilities. The fast Fourier transforms used in PyNLO are defined in the :py:mod:`~pynlo.utility.fft` submodule. 29 | -------------------------------------------------------------------------------- /docs/build/html/_sources/overview.rst.txt: -------------------------------------------------------------------------------- 1 | Package Overview 2 | ================ 3 | In PyNLO, object-oriented programming is used to emulate physical objects. Whenever possible each physical entity with intrinsic properties is mapped to a Python class, e.g. an optical pulse or nonlinear fiber. These classes keep track of the objects’ properties and provide simple calculator-type helper functions. 4 | 5 | 6 | Time and Frequency Grids 7 | ------------------------ 8 | The core functionality of this package is built off of the time and frequency grids given by the :py:class:`pynlo.utility.TFGrid` class. These grids represent physical coordinate spaces. Critically, the frequency grid is only defined for positive frequencies and is aligned to the origin. This facilitates inverse Fourier transforms using both real-valued representations and analytic, or complex-envelope representations. See the notes on :doc:`Fourier transforms ` for more details. 9 | 10 | 11 | Pulses 12 | ------ 13 | Optical pulses are represented in PyNLO with :py:class:`pynlo.light.Pulse` objects. These contain methods for accessing the time and frequency domain properties of the pulse and the underlying time and frequency grids. There are several convenience methods for generating pulses from pre-defined shapes (:py:meth:`~pynlo.light.Pulse.Sech`, :py:meth:`~pynlo.light.Pulse.Gaussian`, etc.) and from existing spectral data (:py:meth:`~pynlo.light.Pulse.FromPowerSpectrum`). 14 | 15 | 16 | Modes 17 | ----- 18 | PyNLO represents the modes within an optical medium as :py:class:`pynlo.medium.Mode` objects. In addition to the linear properties (i.e. the phase and gain coefficients :math:`\beta` and :math:`\alpha`), they also contain an optical mode's effective 2nd- and 3rd-order nonlinearity. If a material has properties that are :math:`z` dependent, those properties can be input as functions who's first argument is the propagation distance. 19 | 20 | 21 | Models 22 | ------ 23 | The propagation models implemented in PyNLO are found in :py:mod:`pynlo.model`. While derived through multi-mode expansion of Maxwell's equations (see the notes on :doc:`nonlinear optics ` for more details), only single-mode simulations are currently supported. Models are initialized with :py:class:`~pynlo.light.Pulse` and :py:class:`~pynlo.medium.Mode` objects. Simulation specific parameters (propagation distance, local error, etc.) should be entered when running a model's :py:meth:`~pynlo.model.Model.simulate` method. Real-time visualizations of a simulation are available by setting the `simulate` method's `plot` keyword. 24 | 25 | 26 | Utilities 27 | --------- 28 | The :py:mod:`pynlo.utility` module includes the :py:class:`~pynlo.utility.TFGrid` class, miscellaneous helper functions (:py:func:`~pynlo.utility.taylor_series`, :py:func:`~pynlo.utility.vacuum`, etc.), as well as other calculator-type utilities. The utilities are organized into submodules based on their relationship to the linear (:py:mod:`~pynlo.utility.chi1`) or nonlinear (:py:mod:`~pynlo.utility.chi2` and :py:mod:`~pynlo.utility.chi3`) susceptibilities. The fast Fourier transforms used in PyNLO are defined in the :py:mod:`~pynlo.utility.fft` submodule. 29 | -------------------------------------------------------------------------------- /docs/source/_static/pynlo-dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 43 | 45 | 46 | 48 | image/svg+xml 49 | 51 | 52 | 53 | 54 | 59 | PyNLO 74 | 75 | 76 | -------------------------------------------------------------------------------- /docs/build/html/_static/pynlo-dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 43 | 45 | 46 | 48 | image/svg+xml 49 | 51 | 52 | 53 | 54 | 59 | PyNLO 74 | 75 | 76 | -------------------------------------------------------------------------------- /docs/source/_static/pynlo-light.svg: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 43 | 45 | 46 | 48 | image/svg+xml 49 | 51 | 52 | 53 | 54 | 59 | PyNLO 74 | 75 | 76 | -------------------------------------------------------------------------------- /docs/build/html/_static/pynlo-light.svg: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 43 | 45 | 46 | 48 | image/svg+xml 49 | 51 | 52 | 53 | 54 | 59 | PyNLO 74 | 75 | 76 | -------------------------------------------------------------------------------- /docs/source/conf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Configuration file for the Sphinx documentation builder. 4 | 5 | This file only contains a selection of the most common options. For a full 6 | list see the documentation: 7 | https://www.sphinx-doc.org/en/master/usage/configuration.html 8 | 9 | """ 10 | 11 | #--- Path setup -------------------------------------------------------------- 12 | 13 | # If extensions (or modules to document with autodoc) are in another directory, 14 | # add these directories to sys.path here. If the directory is relative to the 15 | # documentation root, use os.path.abspath to make it absolute, like shown here. 16 | # 17 | import datetime 18 | import os 19 | import sys 20 | sys.path.insert(0, os.path.abspath('../..')) 21 | sys.path.insert(1, os.path.abspath('..')) 22 | 23 | #!!!: modified to use by-source ordering (__dict__ instead of dir) 24 | #!!!: check git diff after updating sphinx 25 | import autosummary as new_autosummary 26 | from sphinx.ext import autosummary 27 | autosummary.__dict__.update(new_autosummary.__dict__) 28 | 29 | #--- Project information ----------------------------------------------------- 30 | 31 | project = 'PyNLO' 32 | copyright = '{:}, PyNLO authors'.format(datetime.date.today().year) 33 | author = 'PyNLO authors' 34 | 35 | # The full version, including alpha/beta/rc tags 36 | from pynlo import __version__ 37 | release = __version__ 38 | 39 | 40 | #--- General configuration --------------------------------------------------- 41 | html_show_sourcelink = False 42 | 43 | # Add any Sphinx extension module names here, as strings. They can be 44 | # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom 45 | # ones. 46 | extensions = [ 47 | "sphinx.ext.autodoc", 48 | "numpydoc", 49 | "sphinx.ext.viewcode", 50 | "nbsphinx", 51 | "sphinx_design", 52 | ] 53 | 54 | autodoc_default_options = { 55 | 'show-inheritance':True, 56 | "member-order": "bysource", 57 | } 58 | 59 | autosummary_generate = True # Turn on sphinx.ext.autosummary 60 | autosummary_ignore_module_all = False # Use __all__ 61 | 62 | numpydoc_show_class_members = False 63 | numpydoc_show_inherited_class_members = False 64 | # Report warnings for all validation checks 65 | # numpydoc_validation_checks = {"all"} 66 | 67 | 68 | nbsphinx_execute_arguments = [ 69 | "--InlineBackend.figure_formats={'svg', 'pdf'}", 70 | "--InlineBackend.rc={'figure.dpi': 96}", 71 | ] 72 | 73 | master_doc = "index" 74 | 75 | # Add any paths that contain templates here, relative to this directory. 76 | templates_path = ['_templates'] 77 | 78 | # List of patterns, relative to source directory, that match files and 79 | # directories to ignore when looking for source files. 80 | # This pattern also affects html_static_path and html_extra_path. 81 | exclude_patterns = [] 82 | 83 | 84 | #--- Options for HTML output ------------------------------------------------- 85 | 86 | # The theme to use for HTML and HTML Help pages. See the documentation for 87 | # a list of builtin themes. 88 | # 89 | html_theme = 'pydata_sphinx_theme' 90 | html_theme_options = { 91 | "show_toc_level": 3, 92 | "logo": { 93 | "image_light": "_static/pynlo-light.svg", 94 | "image_dark": "_static/pynlo-dark.svg",} 95 | } 96 | 97 | # Add any paths that contain custom static files (such as style sheets) here, 98 | # relative to this directory. They are copied after the builtin static files, 99 | # so a file named "default.css" will overwrite the builtin "default.css". 100 | html_static_path = ['_static'] 101 | -------------------------------------------------------------------------------- /docs/build/html/_static/nbsphinx-broken-thumbnail.svg: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /tests/test_light.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | TODO: module docs... testing for pynlo.light methods and classes 4 | """ 5 | 6 | # %% Imports 7 | 8 | import numpy as np 9 | from scipy import constants 10 | if __name__ == "__main__": 11 | import matplotlib.pyplot as plt 12 | 13 | from pynlo import light 14 | from pynlo.utility import fft 15 | 16 | 17 | # %% Constants 18 | 19 | pi = constants.pi 20 | 21 | 22 | # %% Pulse 23 | 24 | def test_pulse_shapes(): 25 | v_min = 100e12 26 | v_max = 500e12 27 | n = 2**8 + 0 28 | v_0 = 300e12 29 | e_p = 1 30 | t_fwhm = 100e-15 31 | 32 | #--- Gaussian Pulse 33 | test = light.Pulse.Gaussian(n, v_min, v_max, v_0, e_p, t_fwhm) 34 | t_w = test.t_width() 35 | assert np.isclose(e_p, test.e_p) 36 | assert np.isclose(test.v_grid[test.p_v.argmax()], v_0, atol=test.dv, rtol=0) 37 | assert np.isclose(t_w.fwhm, t_fwhm, atol=test.dv, rtol=0) 38 | 39 | #--- Sech**2 Pulse 40 | test = light.Pulse.Sech(n, v_min, v_max, v_0, e_p, t_fwhm) 41 | t_w = test.t_width() 42 | assert np.isclose(e_p, test.e_p) 43 | assert np.isclose(test.v_grid[test.p_v.argmax()], v_0, atol=test.dv, rtol=0) 44 | assert np.isclose(t_w.fwhm, t_fwhm, atol=test.dv, rtol=0) 45 | 46 | #--- Parabolic Pulse 47 | test = light.Pulse.Parabolic(n, v_min, v_max, v_0, e_p, t_fwhm) 48 | t_w = test.t_width() 49 | assert np.isclose(e_p, test.e_p) 50 | assert np.isclose(test.v_grid[test.p_v.argmax()], v_0, atol=test.dv, rtol=0) 51 | assert np.isclose(t_w.fwhm, t_fwhm, atol=test.dv, rtol=0) 52 | 53 | #--- Lorentzian**2 Pulse 54 | test = light.Pulse.Lorentzian(n, v_min, v_max, v_0, e_p, t_fwhm) 55 | t_w = test.t_width() 56 | assert np.isclose(e_p, test.e_p) 57 | assert np.isclose(test.v_grid[test.p_v.argmax()], v_0, atol=test.dv, rtol=0) 58 | assert np.isclose(t_w.fwhm, t_fwhm, atol=test.dv, rtol=0) 59 | 60 | #--- CW Light 61 | p_p = 1 62 | test = light.Pulse.CW(n, v_min, v_max, v_0, p_p) 63 | assert np.isclose(p_p, test.e_p/test.t_window) 64 | assert np.isclose(test.v_grid[test.p_v.argmax()], v_0, atol=test.dv, rtol=0) 65 | 66 | def test_pulse_properties(): 67 | """ 68 | Test Pulse properties on a generated gaussian pulse. 69 | """ 70 | v_min = 100e12 71 | v_max = 500e12 72 | n = 2**8 + 0 73 | v_0 = 300e12 74 | e_p = 1 75 | t_fwhm = 100e-15 76 | test = light.Pulse.Gaussian(n, v_min, v_max, v_0, e_p, t_fwhm) 77 | 78 | #--- Frequency Domain Properties 79 | assert all(test.a_v == fft.fftshift(test._a_v)) 80 | assert all(test.p_v == fft.fftshift(test._p_v)) 81 | assert all(test.phi_v == fft.fftshift(test._phi_v)) 82 | assert np.allclose(np.log10(test.p_v**0.5 * np.exp(1j*test.phi_v)), np.log10(test.a_v), equal_nan=True) 83 | 84 | #--- Time Domain Properties 85 | assert all(test.a_t == fft.fftshift(test._a_t)) 86 | assert all(test.p_t == fft.fftshift(test._p_t)) 87 | assert all(test.phi_t == fft.fftshift(test._phi_t)) 88 | assert np.allclose(np.log10(test.p_t**0.5 * np.exp(1j*test.phi_t)), np.log10(test.a_t), equal_nan=True) 89 | assert all(test.ra_t == fft.fftshift(test._ra_t)) 90 | assert all(test.rp_t == fft.fftshift(test._rp_t)) 91 | assert np.allclose(np.log10(test.rp_t), np.log10(test.ra_t**2), equal_nan=True) 92 | 93 | #--- Methods 94 | v_w = test.v_width() 95 | t_w = test.t_width() 96 | assert np.isclose(np.log(4)**0.5 / (2*pi*v_w.rms), t_w.fwhm, atol=test.dt) 97 | ac = test.autocorrelation() 98 | assert np.isclose(ac.rms, 2**0.5 * t_w.rms, atol=0) 99 | 100 | #--- Exploratory 101 | if __name__ == "__main__": 102 | test_pulse_shapes() 103 | test_pulse_properties() 104 | 105 | v_min = 100e12 106 | v_max = 500e12 107 | n = 2**8 + 0 108 | v_0 = 300e12 109 | e_p = 1 110 | t_fwhm = 40e-15 111 | test = light.Pulse.Gaussian(n, v_min, v_max, v_0, e_p, t_fwhm) 112 | 113 | # test.phi_v += 2*pi*(.1*1e-12)*test.v_grid 114 | 115 | #--- Complex Envelope 116 | plt.figure("Complex Envelope") 117 | plt.clf() 118 | ax0 = plt.subplot2grid((2,1), (0,0)) 119 | ax1 = plt.subplot2grid((2,1), (1,0), sharex=ax0) 120 | ax0.semilogy(1e12*test.t_grid, test.p_t) 121 | ax1.plot(1e12*test.t_grid, 1e-12*test.vg_t) 122 | plt.tight_layout() 123 | 124 | #--- Power Spectrum 125 | plt.figure("Power Spectrum") 126 | plt.clf() 127 | ax0 = plt.subplot2grid((2,1), (0,0)) 128 | ax1 = plt.subplot2grid((2,1), (1,0), sharex=ax0) 129 | ax0.semilogy(1e-12*test.v_grid, test.p_v) 130 | ax1.plot(1e-12*test.v_grid, 1e12*test.tg_v) 131 | plt.tight_layout() 132 | 133 | #--- Autocorrelation 134 | ac = test.autocorrelation() 135 | 136 | plt.figure("Autocorrelation") 137 | plt.clf() 138 | plt.plot(ac.t_grid, ac.ac_t) 139 | 140 | #--- Spectrogram 141 | spg = test.spectrogram() 142 | plt.figure("Spectrogram") 143 | plt.clf() 144 | plt.imshow(10*np.log10(spg.spg), origin="lower", extent=spg.extent, aspect="auto") 145 | plt.tight_layout() 146 | -------------------------------------------------------------------------------- /docs/build/html/_static/doctools.js: -------------------------------------------------------------------------------- 1 | /* 2 | * doctools.js 3 | * ~~~~~~~~~~~ 4 | * 5 | * Base JavaScript utilities for all Sphinx HTML documentation. 6 | * 7 | * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. 8 | * :license: BSD, see LICENSE for details. 9 | * 10 | */ 11 | "use strict"; 12 | 13 | const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ 14 | "TEXTAREA", 15 | "INPUT", 16 | "SELECT", 17 | "BUTTON", 18 | ]); 19 | 20 | const _ready = (callback) => { 21 | if (document.readyState !== "loading") { 22 | callback(); 23 | } else { 24 | document.addEventListener("DOMContentLoaded", callback); 25 | } 26 | }; 27 | 28 | /** 29 | * Small JavaScript module for the documentation. 30 | */ 31 | const Documentation = { 32 | init: () => { 33 | Documentation.initDomainIndexTable(); 34 | Documentation.initOnKeyListeners(); 35 | }, 36 | 37 | /** 38 | * i18n support 39 | */ 40 | TRANSLATIONS: {}, 41 | PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), 42 | LOCALE: "unknown", 43 | 44 | // gettext and ngettext don't access this so that the functions 45 | // can safely bound to a different name (_ = Documentation.gettext) 46 | gettext: (string) => { 47 | const translated = Documentation.TRANSLATIONS[string]; 48 | switch (typeof translated) { 49 | case "undefined": 50 | return string; // no translation 51 | case "string": 52 | return translated; // translation exists 53 | default: 54 | return translated[0]; // (singular, plural) translation tuple exists 55 | } 56 | }, 57 | 58 | ngettext: (singular, plural, n) => { 59 | const translated = Documentation.TRANSLATIONS[singular]; 60 | if (typeof translated !== "undefined") 61 | return translated[Documentation.PLURAL_EXPR(n)]; 62 | return n === 1 ? singular : plural; 63 | }, 64 | 65 | addTranslations: (catalog) => { 66 | Object.assign(Documentation.TRANSLATIONS, catalog.messages); 67 | Documentation.PLURAL_EXPR = new Function( 68 | "n", 69 | `return (${catalog.plural_expr})` 70 | ); 71 | Documentation.LOCALE = catalog.locale; 72 | }, 73 | 74 | /** 75 | * helper function to focus on search bar 76 | */ 77 | focusSearchBar: () => { 78 | document.querySelectorAll("input[name=q]")[0]?.focus(); 79 | }, 80 | 81 | /** 82 | * Initialise the domain index toggle buttons 83 | */ 84 | initDomainIndexTable: () => { 85 | const toggler = (el) => { 86 | const idNumber = el.id.substr(7); 87 | const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); 88 | if (el.src.substr(-9) === "minus.png") { 89 | el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; 90 | toggledRows.forEach((el) => (el.style.display = "none")); 91 | } else { 92 | el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; 93 | toggledRows.forEach((el) => (el.style.display = "")); 94 | } 95 | }; 96 | 97 | const togglerElements = document.querySelectorAll("img.toggler"); 98 | togglerElements.forEach((el) => 99 | el.addEventListener("click", (event) => toggler(event.currentTarget)) 100 | ); 101 | togglerElements.forEach((el) => (el.style.display = "")); 102 | if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); 103 | }, 104 | 105 | initOnKeyListeners: () => { 106 | // only install a listener if it is really needed 107 | if ( 108 | !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && 109 | !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS 110 | ) 111 | return; 112 | 113 | document.addEventListener("keydown", (event) => { 114 | // bail for input elements 115 | if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; 116 | // bail with special keys 117 | if (event.altKey || event.ctrlKey || event.metaKey) return; 118 | 119 | if (!event.shiftKey) { 120 | switch (event.key) { 121 | case "ArrowLeft": 122 | if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; 123 | 124 | const prevLink = document.querySelector('link[rel="prev"]'); 125 | if (prevLink && prevLink.href) { 126 | window.location.href = prevLink.href; 127 | event.preventDefault(); 128 | } 129 | break; 130 | case "ArrowRight": 131 | if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; 132 | 133 | const nextLink = document.querySelector('link[rel="next"]'); 134 | if (nextLink && nextLink.href) { 135 | window.location.href = nextLink.href; 136 | event.preventDefault(); 137 | } 138 | break; 139 | } 140 | } 141 | 142 | // some keyboard layouts may need Shift to get / 143 | switch (event.key) { 144 | case "/": 145 | if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; 146 | Documentation.focusSearchBar(); 147 | event.preventDefault(); 148 | } 149 | }); 150 | }, 151 | }; 152 | 153 | // quick alias for translations 154 | const _ = Documentation.gettext; 155 | 156 | _ready(Documentation.init); 157 | -------------------------------------------------------------------------------- /pynlo/utility/misc.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Miscellaneous helper classes and functions. 4 | 5 | """ 6 | 7 | __all__ = [] 8 | 9 | 10 | # %% Imports 11 | 12 | import numpy as np 13 | 14 | 15 | # %% Helper Functions 16 | 17 | def replace(array, values, key): 18 | """Copy `array` and replace the elements at `key` with `values`.""" 19 | array = array.copy() 20 | array[key] = values 21 | return array 22 | 23 | 24 | # %% Array Properties for Classes 25 | 26 | class NDArrayDescriptor(np.lib.mixins.NDArrayOperatorsMixin): 27 | """Emulates an NDArray using custom item getters and item setters.""" 28 | def __init__(self, getter=None, setter=None): 29 | self._getter = getter 30 | self._setter = setter 31 | 32 | def __getitem__(self, key): 33 | # Return a view of the array descriptor 34 | def item_getter(new_key): 35 | return self._getter(key)[new_key] 36 | def item_setter(new_key, value): 37 | self._setter(key, replace(self._getter(key), value, new_key)) 38 | return NDArrayDescriptor(getter=item_getter, setter=item_setter) 39 | 40 | def __setitem__(self, key, value): 41 | self._setter(key, value) 42 | 43 | def __array__(self, dtype=None): 44 | # Return the NumPy array 45 | array = self._getter(...) 46 | if dtype is None: 47 | return array 48 | else: 49 | return array.astype(dtype=dtype) 50 | 51 | def __repr__(self): 52 | return repr(self.__array__()) 53 | 54 | def __len__(self): 55 | return len(self.__array__()) 56 | 57 | def __copy__(self): 58 | return self.__array__() 59 | 60 | def __deepcopy__(self, memo): 61 | return self.__array__().copy() 62 | 63 | def __array_ufunc__(self, ufunc, method, *inputs, out=None, **kwargs): 64 | """ 65 | Implemented to support use of the `out` ufunc keyword and seamless 66 | conversion to NumPy arrays. 67 | 68 | Modified from NumPy docs, "__array_ufunc__ for ufuncs" 69 | 70 | """ 71 | #---- Convert Input to NumPy Arrays 72 | inputs = tuple(x.__array__() if isinstance(x, NDArrayDescriptor) else x 73 | for x in inputs) 74 | 75 | #---- Apply Ufunc 76 | if out: 77 | # Convert Output to NumPy Arrays 78 | outputs = [] 79 | out_args = [] 80 | for idx, output in enumerate(out): 81 | if isinstance(output, NDArrayDescriptor): 82 | outputs.append([idx, output]) 83 | out_args.append(output.__array__()) 84 | else: 85 | out_args.append(output) 86 | kwargs['out'] = tuple(out_args) 87 | 88 | # Apply Ufunc 89 | result = getattr(ufunc, method)(*inputs, **kwargs) 90 | 91 | # Write In-Place Output to NDArrayDescriptor 92 | for idx, output in outputs: 93 | output[...] = out_args[idx] # "in place" equivalent 94 | else: 95 | result = getattr(ufunc, method)(*inputs, **kwargs) 96 | 97 | #---- Return Result 98 | if method == 'at': 99 | return None # no return value 100 | else: 101 | return result 102 | 103 | def __getattr__(self, attr): 104 | """Catch-all for other NumPy functions""" 105 | return getattr(self.__array__(), attr) 106 | 107 | 108 | class ndproperty(property): 109 | """ 110 | A subclass of `property` that allows extending the getter and setter 111 | formalism to NumPy array elements. 112 | 113 | Notes 114 | ----- 115 | To allow usage of both `__get__`/`__getitem__` and `__set__`/`__setitem__`, 116 | the methods fed into `ndproperty` must contain a keyword argument and logic 117 | for processing the keys used by `__getitem__` and `__setitem__`. In the 118 | `setter` method, the `value` parameter must precede the `key` parameter. In 119 | the following example, the default key is an open slice (ellipsis), the 120 | entire array is retrieved when individual elements are not requested.:: 121 | 122 | class C(object): 123 | def __init__(self): 124 | self.x = np.array([1,2,3,4]) 125 | 126 | @ndproperty 127 | def y(self, key=...): 128 | return self.x[key]**2 129 | 130 | @y.setter 131 | def y(self, value, key=...): 132 | self.x[key] = value**0.5 133 | 134 | See the documentation of `property` for other implementation details. 135 | 136 | """ 137 | def __get__(self, obj, objtype): 138 | # Return self if not instantiated 139 | if obj is None: 140 | return self 141 | 142 | # Define Item Getter and Setter 143 | def item_getter(key): 144 | return self.fget(obj, key) 145 | 146 | def item_setter(key, value): 147 | if self.fset is None: 148 | self.__set__(obj, value) # raise AttributeError if fset is None 149 | self.fset(obj, value, key) 150 | 151 | # Return ndarray with custom item getters and item setters 152 | array = NDArrayDescriptor(getter=item_getter, setter=item_setter) 153 | return array 154 | -------------------------------------------------------------------------------- /docs/build/html/_static/sphinx_highlight.js: -------------------------------------------------------------------------------- 1 | /* Highlighting utilities for Sphinx HTML documentation. */ 2 | "use strict"; 3 | 4 | const SPHINX_HIGHLIGHT_ENABLED = true 5 | 6 | /** 7 | * highlight a given string on a node by wrapping it in 8 | * span elements with the given class name. 9 | */ 10 | const _highlight = (node, addItems, text, className) => { 11 | if (node.nodeType === Node.TEXT_NODE) { 12 | const val = node.nodeValue; 13 | const parent = node.parentNode; 14 | const pos = val.toLowerCase().indexOf(text); 15 | if ( 16 | pos >= 0 && 17 | !parent.classList.contains(className) && 18 | !parent.classList.contains("nohighlight") 19 | ) { 20 | let span; 21 | 22 | const closestNode = parent.closest("body, svg, foreignObject"); 23 | const isInSVG = closestNode && closestNode.matches("svg"); 24 | if (isInSVG) { 25 | span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); 26 | } else { 27 | span = document.createElement("span"); 28 | span.classList.add(className); 29 | } 30 | 31 | span.appendChild(document.createTextNode(val.substr(pos, text.length))); 32 | const rest = document.createTextNode(val.substr(pos + text.length)); 33 | parent.insertBefore( 34 | span, 35 | parent.insertBefore( 36 | rest, 37 | node.nextSibling 38 | ) 39 | ); 40 | node.nodeValue = val.substr(0, pos); 41 | /* There may be more occurrences of search term in this node. So call this 42 | * function recursively on the remaining fragment. 43 | */ 44 | _highlight(rest, addItems, text, className); 45 | 46 | if (isInSVG) { 47 | const rect = document.createElementNS( 48 | "http://www.w3.org/2000/svg", 49 | "rect" 50 | ); 51 | const bbox = parent.getBBox(); 52 | rect.x.baseVal.value = bbox.x; 53 | rect.y.baseVal.value = bbox.y; 54 | rect.width.baseVal.value = bbox.width; 55 | rect.height.baseVal.value = bbox.height; 56 | rect.setAttribute("class", className); 57 | addItems.push({ parent: parent, target: rect }); 58 | } 59 | } 60 | } else if (node.matches && !node.matches("button, select, textarea")) { 61 | node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); 62 | } 63 | }; 64 | const _highlightText = (thisNode, text, className) => { 65 | let addItems = []; 66 | _highlight(thisNode, addItems, text, className); 67 | addItems.forEach((obj) => 68 | obj.parent.insertAdjacentElement("beforebegin", obj.target) 69 | ); 70 | }; 71 | 72 | /** 73 | * Small JavaScript module for the documentation. 74 | */ 75 | const SphinxHighlight = { 76 | 77 | /** 78 | * highlight the search words provided in localstorage in the text 79 | */ 80 | highlightSearchWords: () => { 81 | if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight 82 | 83 | // get and clear terms from localstorage 84 | const url = new URL(window.location); 85 | const highlight = 86 | localStorage.getItem("sphinx_highlight_terms") 87 | || url.searchParams.get("highlight") 88 | || ""; 89 | localStorage.removeItem("sphinx_highlight_terms") 90 | url.searchParams.delete("highlight"); 91 | window.history.replaceState({}, "", url); 92 | 93 | // get individual terms from highlight string 94 | const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); 95 | if (terms.length === 0) return; // nothing to do 96 | 97 | // There should never be more than one element matching "div.body" 98 | const divBody = document.querySelectorAll("div.body"); 99 | const body = divBody.length ? divBody[0] : document.querySelector("body"); 100 | window.setTimeout(() => { 101 | terms.forEach((term) => _highlightText(body, term, "highlighted")); 102 | }, 10); 103 | 104 | const searchBox = document.getElementById("searchbox"); 105 | if (searchBox === null) return; 106 | searchBox.appendChild( 107 | document 108 | .createRange() 109 | .createContextualFragment( 110 | '" 114 | ) 115 | ); 116 | }, 117 | 118 | /** 119 | * helper function to hide the search marks again 120 | */ 121 | hideSearchWords: () => { 122 | document 123 | .querySelectorAll("#searchbox .highlight-link") 124 | .forEach((el) => el.remove()); 125 | document 126 | .querySelectorAll("span.highlighted") 127 | .forEach((el) => el.classList.remove("highlighted")); 128 | localStorage.removeItem("sphinx_highlight_terms") 129 | }, 130 | 131 | initEscapeListener: () => { 132 | // only install a listener if it is really needed 133 | if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return; 134 | 135 | document.addEventListener("keydown", (event) => { 136 | // bail for input elements 137 | if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; 138 | // bail with special keys 139 | if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return; 140 | if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) { 141 | SphinxHighlight.hideSearchWords(); 142 | event.preventDefault(); 143 | } 144 | }); 145 | }, 146 | }; 147 | 148 | _ready(() => { 149 | /* Do not call highlightSearchWords() when we are on the search page. 150 | * It will highlight words from the *previous* search query. 151 | */ 152 | if (typeof Search === "undefined") SphinxHighlight.highlightSearchWords(); 153 | SphinxHighlight.initEscapeListener(); 154 | }); 155 | -------------------------------------------------------------------------------- /docs/build/html/_static/language_data.js: -------------------------------------------------------------------------------- 1 | /* 2 | * language_data.js 3 | * ~~~~~~~~~~~~~~~~ 4 | * 5 | * This script contains the language-specific data used by searchtools.js, 6 | * namely the list of stopwords, stemmer, scorer and splitter. 7 | * 8 | * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. 9 | * :license: BSD, see LICENSE for details. 10 | * 11 | */ 12 | 13 | var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; 14 | 15 | 16 | /* Non-minified version is copied as a separate JS file, if available */ 17 | 18 | /** 19 | * Porter Stemmer 20 | */ 21 | var Stemmer = function() { 22 | 23 | var step2list = { 24 | ational: 'ate', 25 | tional: 'tion', 26 | enci: 'ence', 27 | anci: 'ance', 28 | izer: 'ize', 29 | bli: 'ble', 30 | alli: 'al', 31 | entli: 'ent', 32 | eli: 'e', 33 | ousli: 'ous', 34 | ization: 'ize', 35 | ation: 'ate', 36 | ator: 'ate', 37 | alism: 'al', 38 | iveness: 'ive', 39 | fulness: 'ful', 40 | ousness: 'ous', 41 | aliti: 'al', 42 | iviti: 'ive', 43 | biliti: 'ble', 44 | logi: 'log' 45 | }; 46 | 47 | var step3list = { 48 | icate: 'ic', 49 | ative: '', 50 | alize: 'al', 51 | iciti: 'ic', 52 | ical: 'ic', 53 | ful: '', 54 | ness: '' 55 | }; 56 | 57 | var c = "[^aeiou]"; // consonant 58 | var v = "[aeiouy]"; // vowel 59 | var C = c + "[^aeiouy]*"; // consonant sequence 60 | var V = v + "[aeiou]*"; // vowel sequence 61 | 62 | var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 63 | var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 64 | var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 65 | var s_v = "^(" + C + ")?" + v; // vowel in stem 66 | 67 | this.stemWord = function (w) { 68 | var stem; 69 | var suffix; 70 | var firstch; 71 | var origword = w; 72 | 73 | if (w.length < 3) 74 | return w; 75 | 76 | var re; 77 | var re2; 78 | var re3; 79 | var re4; 80 | 81 | firstch = w.substr(0,1); 82 | if (firstch == "y") 83 | w = firstch.toUpperCase() + w.substr(1); 84 | 85 | // Step 1a 86 | re = /^(.+?)(ss|i)es$/; 87 | re2 = /^(.+?)([^s])s$/; 88 | 89 | if (re.test(w)) 90 | w = w.replace(re,"$1$2"); 91 | else if (re2.test(w)) 92 | w = w.replace(re2,"$1$2"); 93 | 94 | // Step 1b 95 | re = /^(.+?)eed$/; 96 | re2 = /^(.+?)(ed|ing)$/; 97 | if (re.test(w)) { 98 | var fp = re.exec(w); 99 | re = new RegExp(mgr0); 100 | if (re.test(fp[1])) { 101 | re = /.$/; 102 | w = w.replace(re,""); 103 | } 104 | } 105 | else if (re2.test(w)) { 106 | var fp = re2.exec(w); 107 | stem = fp[1]; 108 | re2 = new RegExp(s_v); 109 | if (re2.test(stem)) { 110 | w = stem; 111 | re2 = /(at|bl|iz)$/; 112 | re3 = new RegExp("([^aeiouylsz])\\1$"); 113 | re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); 114 | if (re2.test(w)) 115 | w = w + "e"; 116 | else if (re3.test(w)) { 117 | re = /.$/; 118 | w = w.replace(re,""); 119 | } 120 | else if (re4.test(w)) 121 | w = w + "e"; 122 | } 123 | } 124 | 125 | // Step 1c 126 | re = /^(.+?)y$/; 127 | if (re.test(w)) { 128 | var fp = re.exec(w); 129 | stem = fp[1]; 130 | re = new RegExp(s_v); 131 | if (re.test(stem)) 132 | w = stem + "i"; 133 | } 134 | 135 | // Step 2 136 | re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; 137 | if (re.test(w)) { 138 | var fp = re.exec(w); 139 | stem = fp[1]; 140 | suffix = fp[2]; 141 | re = new RegExp(mgr0); 142 | if (re.test(stem)) 143 | w = stem + step2list[suffix]; 144 | } 145 | 146 | // Step 3 147 | re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; 148 | if (re.test(w)) { 149 | var fp = re.exec(w); 150 | stem = fp[1]; 151 | suffix = fp[2]; 152 | re = new RegExp(mgr0); 153 | if (re.test(stem)) 154 | w = stem + step3list[suffix]; 155 | } 156 | 157 | // Step 4 158 | re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; 159 | re2 = /^(.+?)(s|t)(ion)$/; 160 | if (re.test(w)) { 161 | var fp = re.exec(w); 162 | stem = fp[1]; 163 | re = new RegExp(mgr1); 164 | if (re.test(stem)) 165 | w = stem; 166 | } 167 | else if (re2.test(w)) { 168 | var fp = re2.exec(w); 169 | stem = fp[1] + fp[2]; 170 | re2 = new RegExp(mgr1); 171 | if (re2.test(stem)) 172 | w = stem; 173 | } 174 | 175 | // Step 5 176 | re = /^(.+?)e$/; 177 | if (re.test(w)) { 178 | var fp = re.exec(w); 179 | stem = fp[1]; 180 | re = new RegExp(mgr1); 181 | re2 = new RegExp(meq1); 182 | re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); 183 | if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) 184 | w = stem; 185 | } 186 | re = /ll$/; 187 | re2 = new RegExp(mgr1); 188 | if (re.test(w) && re2.test(w)) { 189 | re = /.$/; 190 | w = w.replace(re,""); 191 | } 192 | 193 | // and turn initial Y back to y 194 | if (firstch == "y") 195 | w = firstch.toLowerCase() + w.substr(1); 196 | return w; 197 | } 198 | } 199 | 200 | -------------------------------------------------------------------------------- /pynlo/utility/fft.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Aliases to fast FFT implementations and associated helper functions. 4 | 5 | """ 6 | 7 | __all__ = ["fft", "ifft", "rfft", "irfft", 8 | "fftshift", "ifftshift"] 9 | 10 | 11 | # %% Imports 12 | 13 | from scipy.fft import next_fast_len, fftshift as _fftshift, ifftshift as _ifftshift 14 | import mkl_fft 15 | 16 | 17 | # %% Helper Functions 18 | 19 | #---- FFT Shifts 20 | def fftshift(x, axis=-1): 21 | """ 22 | Shift the origin from the beginning to the center of the array. 23 | 24 | This function is used after an `fft` operation to shift from fft to monotic 25 | ordering. 26 | 27 | Parameters 28 | ---------- 29 | x : array_like 30 | Input array 31 | axis : int, optional 32 | The axis over which to shift. The default is the last axis. 33 | 34 | Returns 35 | ------- 36 | ndarray 37 | The shifted array. 38 | 39 | """ 40 | return _fftshift(x, axes=axis) 41 | 42 | def ifftshift(x, axis=-1): 43 | """ 44 | Shift the origin from the center to the beginning of the array. 45 | 46 | The inverse of fftshift. This function is used before an `fft` operation to 47 | shift from monotonic to fft ordering. Although identical for even-length 48 | `x`, `ifftshift` differs from `fftshift` by one sample for odd-length `x`. 49 | 50 | Parameters 51 | ---------- 52 | x : array_like 53 | Input array. 54 | axis : int, optional 55 | The axis over which to shift. The default is the last axis. 56 | 57 | Returns 58 | ------- 59 | ndarray 60 | The shifted array. 61 | 62 | """ 63 | return _ifftshift(x, axes=axis) 64 | 65 | 66 | # %% Transforms 67 | 68 | #---- FFTs 69 | def fft(x, fsc=1.0, n=None, axis=-1, overwrite_x=False): 70 | """ 71 | Use MKL to perform a 1D FFT of the input array along the given axis. 72 | 73 | Parameters 74 | ---------- 75 | x : array_like 76 | Input array, can be complex. 77 | fsc : float, optional 78 | The forward transform scale factor. The default is 1.0. 79 | n : int, optional 80 | Length of the transformed axis of the output. If `n` is smaller than 81 | the length of the input, the input is cropped. If it is larger, the 82 | input is padded with zeros. 83 | axis : int, optional 84 | Axis over which to compute the FFT. The default is the last axis. 85 | overwrite_x : bool, optional 86 | If True, the contents of x may be overwritten during the computation. 87 | The default is False. 88 | 89 | Returns 90 | ------- 91 | complex ndarray 92 | The transformed array. 93 | 94 | """ 95 | return mkl_fft.fft(x, n=n, axis=axis, overwrite_x=overwrite_x, forward_scale=fsc) 96 | 97 | def ifft(x, fsc=1.0, n=None, axis=-1, overwrite_x=False): 98 | """ 99 | Use MKL to perform a 1D IFFT of the input array along the given axis. 100 | 101 | Parameters 102 | ---------- 103 | x : array_like 104 | Input array, can be complex. 105 | fsc : float, optional 106 | The forward transform scale factor. Internally, this function sets the 107 | reverse transform scale factor as ``1/(n*fsc)``. The default is 1.0. 108 | n : int, optional 109 | Length of the transformed axis of the output. If `n` is smaller than 110 | the length of the input, the input is cropped. If it is larger, the 111 | input is padded with zeros. 112 | axis : int, optional 113 | Axis over which to compute the inverse FFT. The default is the last 114 | axis. 115 | overwrite_x : bool, optional 116 | If True, the contents of x may be overwritten during the computation. 117 | The default is False. 118 | 119 | Returns 120 | ------- 121 | complex ndarray 122 | The transformed array. 123 | 124 | """ 125 | return mkl_fft.ifft(x, n=n, axis=axis, overwrite_x=overwrite_x, forward_scale=fsc) 126 | 127 | #---- Real FFTs 128 | def rfft(x, fsc=1.0, n=None, axis=-1): 129 | """ 130 | Use MKL to perform a 1D FFT of the real input array along the given axis. 131 | The output array is complex and only contains positive frequencies. 132 | 133 | The length of the transformed axis is ``n//2 + 1``. 134 | 135 | Parameters 136 | ---------- 137 | x : array_like 138 | Input array, must be real. 139 | fsc : float, optional 140 | The forward transform scale factor. The default is 1.0. 141 | n : int, optional 142 | Number of points to use along the transformed axis of the input. If 143 | `n` is smaller than the length of the input, the input is cropped. If 144 | it is larger, the input is padded with zeros. 145 | axis : int, optional 146 | Axis over which to compute the FFT. The default is the last axis. 147 | 148 | Returns 149 | ------- 150 | complex ndarray 151 | The transformed array. 152 | 153 | """ 154 | return mkl_fft.rfft_numpy(x, n=n, axis=axis, forward_scale=fsc) 155 | 156 | def irfft(x, fsc=1.0, n=None, axis=-1): 157 | """ 158 | Use MKL to perform a 1D IFFT of the input array along the given axis. The 159 | input is assumed to contain only positive frequencies, and the output is 160 | always real. 161 | 162 | If `n` is not given the length of the transformed axis is ``2*(m-1)``, 163 | where `m` is the length of the transformed axis of the input. To get an odd 164 | number of output points, `n` must be specified. 165 | 166 | Parameters 167 | ---------- 168 | x : array_like 169 | Input array, can be complex. 170 | fsc : float, optional 171 | The forward transform scale factor. Internally, this function sets the 172 | reverse transform scale factor as ``1/(n*fsc)``. The default is 1.0. 173 | n : int, optional 174 | Length of the transformed axis of the output. For `n` output points, 175 | ``n//2+1`` input points are necessary. If the input is longer than 176 | this, it is cropped. If it is shorter than this, it is padded with 177 | zeros. 178 | axis : int, optional 179 | Axis over which to compute the inverse FFT. The default is the last 180 | axis. 181 | 182 | Returns 183 | ------- 184 | ndarray 185 | The transformed array. 186 | 187 | """ 188 | return mkl_fft.irfft_numpy(x, n=n, axis=axis, forward_scale=fsc) 189 | -------------------------------------------------------------------------------- /examples/silica-pcf_supercontinuum.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | This example demonstrates supercontinuum generation due to soliton effects in 4 | silica-based photonic crystal fiber. The simulation uses the nonlinear 5 | Schrödinger equation (NLSE) and is based on the parameters given in part V-A of 6 | Dudley et al. (2006). 7 | 8 | References 9 | ---------- 10 | Dudley JM, Genty G, Coen S. Supercontinuum generation in photonic crystal 11 | fiber. Reviews of modern physics. 2006;78(4):1135-84. 12 | https://doi.org/10.1103/RevModPhys.78.1135 13 | 14 | """ 15 | 16 | 17 | # %% Imports 18 | import numpy as np 19 | from scipy.constants import pi, c 20 | from matplotlib import pyplot as plt 21 | 22 | import pynlo 23 | from pynlo import utility as ut 24 | 25 | 26 | # %% Pulse Properties 27 | """ 28 | We start by initializing a hyperbolic secant pulse using one of the built-in 29 | pulse shapes of the `Pulse` class. The first few parameters constrain the 30 | frequency grid, the number of points and the frequency range, while the last 31 | three set the initial pulse properties, its center frequency, pulse energy, and 32 | pulse width. 33 | 34 | """ 35 | n_points = 2**12 36 | v_min = c/1500e-9 # 200 THz 37 | v_max = c/500e-9 # 600 THz 38 | 39 | v0 = c/835e-9 # 360 THz 40 | e_p = 285e-12 # 285 pJ 41 | t_fwhm = 50e-15 # 50 fs 42 | 43 | pulse = pynlo.light.Pulse.Sech(n_points, v_min, v_max, v0, e_p, t_fwhm) 44 | 45 | 46 | # %% Mode Properties 47 | """ 48 | We next need to define both the linear and nonlinear properties of the 49 | waveguide. In this example, we are only given the waveguide properties at a 50 | single frequency so we must extrapolate to the rest of the frequency grid. For 51 | the beta parameter this is accomplished using a Taylor series, but for the 52 | nonlinearity we use the `gamma_to_g3` conversion function from the 53 | `utility.chi3` submodule. This function calculates the generalized 3rd-order 54 | nonlinear parameter (required by the PyNLO propagation models) from the gamma 55 | parameter and the optical shock time scale. If available, the nonlinear 56 | parameter can also be generated from the refractive index, effective area, and 57 | nonlinear susceptibility, see `utility.chi3` for more details. The Raman effect 58 | is implemented using the Raman response function given in section 2.3.3 of 59 | Agrawal. 60 | 61 | References 62 | ---------- 63 | Agrawal GP. Nonlinear Fiber Optics. Sixth ed. London; San Diego, 64 | CA;: Academic Press; 2019. 65 | https://doi.org/10.1016/B978-0-12-817042-7.00009-9 66 | 67 | """ 68 | length = 15e-2 # 15 cm 69 | 70 | #---- Phase Coefficient 71 | beta_n = 11*[0] 72 | beta_n[2] = -11.830 * 1e-12**2/1e3 # -11.830 ps**2 / km 73 | beta_n[3] = 8.1038e-2 * 1e-12**3/1e3 # 8.1038e-2 ps**3 / km 74 | beta_n[4] = -9.5205e-5 * 1e-12**4/1e3 # -9.5205e-5 ps**4 / km 75 | beta_n[5] = 2.0737e-7 * 1e-12**5/1e3 # 2.0737e-7 ps**5 / km 76 | beta_n[6] = -5.3943e-10 * 1e-12**6/1e3 # -5.3943e-10 ps**6 / km 77 | beta_n[7] = 1.3486e-12 * 1e-12**7/1e3 # 1.3486e-12 ps**7 / km 78 | beta_n[8] = -2.5495e-15 * 1e-12**8/1e3 # -2.5495e-15 ps**8 / km 79 | beta_n[9] = 3.0524e-18 * 1e-12**9/1e3 # 3.0524e-18 ps**9 / km 80 | beta_n[10] = -1.7140e-21 * 1e-12**10/1e3 # -1.7140e-21 ps**10 / km 81 | 82 | beta = ut.taylor_series(2*pi*pulse.v0, beta_n)(2*pi*pulse.v_grid) 83 | 84 | #---- 3rd-Order Nonlinearity 85 | gamma = 0.11 # 0.11 / W * m 86 | t_shock = 0.56e-15 # 0.56 fs 87 | g3 = ut.chi3.gamma_to_g3(pulse.v_grid, gamma, t_shock) 88 | 89 | # Raman effect 90 | r_weights = [0.245*(1-0.21), 12.2e-15, 32e-15] # resonant contribution 91 | b_weights = [0.245*0.21, 96e-15] # boson contribution 92 | rv_grid, raman = ut.chi3.raman(pulse.n, pulse.dt, r_weights, b_weights) 93 | 94 | mode = pynlo.medium.Mode(pulse.v_grid, beta, g3=g3, rv_grid=rv_grid, r3=raman) 95 | 96 | 97 | # %% Model 98 | """ 99 | The NLSE model is initialized with the pulse and mode objects defined above. At 100 | this stage we also estimate the optimal initial step size given a target local 101 | error. 102 | 103 | """ 104 | model = pynlo.model.NLSE(pulse, mode) 105 | 106 | #---- Estimate step size 107 | local_error = 1e-6 108 | dz = model.estimate_step_size(local_error=local_error) 109 | 110 | 111 | # %% Simulate 112 | """ 113 | The model's `simulate` method runs the simulation. We input the total 114 | propagation length, the initial step size, local error, and the number of 115 | simulation steps we wish to record. We receive the output pulse and the 116 | propagations distance, pulse spectrum, and complex envelope at each record 117 | point. To view real-time simulation results (updated whenever the simulation 118 | reaches a record point), set the `plot` keyword to "time", "frq", or "wvl". 119 | 120 | """ 121 | pulse_out, z, a_t, a_v = model.simulate( 122 | length, dz=dz, local_error=local_error, n_records=100, plot=None) 123 | 124 | 125 | # %% Plot Results 126 | """ 127 | For comparison with Dudley, we plot the evolution in the time and wavelength 128 | domains. For accurate representation of the density, plotting over wavelength 129 | requires converting the power from a per Hz basis to a per m basis. This is 130 | accomplished by multiplying the frequency domain power spectral density by the 131 | ratio of the frequency and wavelength differentials. The power spectral density 132 | is then converted to decibel (dB) scale to increase the visible dynamic range. 133 | 134 | """ 135 | fig = plt.figure("Simulation Results", clear=True) 136 | ax0 = plt.subplot2grid((3,2), (0, 0), rowspan=1) 137 | ax1 = plt.subplot2grid((3,2), (0, 1), rowspan=1) 138 | ax2 = plt.subplot2grid((3,2), (1, 0), rowspan=2, sharex=ax0) 139 | ax3 = plt.subplot2grid((3,2), (1, 1), rowspan=2, sharex=ax1) 140 | 141 | p_l_dB = 10*np.log10(np.abs(a_v)**2 * model.dv_dl) 142 | p_l_dB -= p_l_dB.max() 143 | ax0.plot(1e9*c/pulse.v_grid, p_l_dB[0], color="b") 144 | ax0.plot(1e9*c/pulse.v_grid, p_l_dB[-1], color="g") 145 | ax2.pcolormesh(1e9*c/pulse.v_grid, 1e3*z, p_l_dB, 146 | vmin=-40.0, vmax=0, shading="auto") 147 | ax0.set_ylim(bottom=-50, top=10) 148 | ax2.set_xlabel('Wavelength (nm)') 149 | 150 | p_t_dB = 10*np.log10(np.abs(a_t)**2) 151 | p_t_dB -= p_t_dB.max() 152 | ax1.plot(1e12*pulse.t_grid, p_t_dB[0], color="b") 153 | ax1.plot(1e12*pulse.t_grid, p_t_dB[-1], color="g") 154 | ax3.pcolormesh(1e12*pulse.t_grid, 1e3*z, p_t_dB, 155 | vmin=-40.0, vmax=0, shading="auto") 156 | ax1.set_ylim(bottom=-50, top=10) 157 | ax3.set_xlabel('Time (ps)') 158 | 159 | ax0.set_ylabel('Power (dB)') 160 | ax2.set_ylabel('Propagation Distance (mm)') 161 | fig.tight_layout() 162 | fig.show() 163 | -------------------------------------------------------------------------------- /examples/ppln_cascaded-chi2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | This example demonstrates supercontinuum generation due to phase-mismatched 4 | second harmonic generation (SHG) in periodically poled lithium niobate (PPLN). 5 | The simulation uses the unidirectional propagation equation (UPE) and is based 6 | on the parameters given for the second example in part III of Conforti et al. 7 | (2010). 8 | 9 | References 10 | ---------- 11 | Conforti M, Baronio F, De Angelis C. Nonlinear envelope equation for broadband 12 | optical pulses in quadratic media. Physical review. A, Atomic, molecular, and 13 | optical physics. 2010;81(5). 14 | https://doi.org/10.1103/PhysRevA.81.053841 15 | 16 | """ 17 | 18 | 19 | # %% Imports 20 | import numpy as np 21 | from scipy.constants import pi, c 22 | from matplotlib import pyplot as plt 23 | 24 | import pynlo 25 | from pynlo import utility as ut 26 | 27 | 28 | # %% Pulse Properties 29 | """ 30 | We first initialize a Gaussian pulse using one of the built-in pulse shapes of 31 | the `Pulse` class. The first few parameters constrain the frequency grid, the 32 | number of points and the frequency range, while the last three set the initial 33 | pulse properties, its center frequency, pulse energy, and pulse width. Since we 34 | are going to be simulating 2nd-order effects, the `alias` parameter has been 35 | increased to support two alias-free Nyquist zones. 36 | 37 | """ 38 | n_points = 2**13 39 | v_min = c/3500e-9 # c / 3500 nm 40 | v_max = c/450e-9 # c / 450 nm 41 | 42 | v0 = c/1580e-9 # c / 1580 nm 43 | e_p = 1e-9 # 1 nJ 44 | t_fwhm = 50e-15 # 50 fs 45 | 46 | pulse = pynlo.light.Pulse.Gaussian(n_points, v_min, v_max, v0, e_p, t_fwhm, 47 | alias=2) # anti-aliasing 48 | 49 | 50 | # %% Mode Properties 51 | """ 52 | In this example we use the refractive index, effective area, and nonlinear 53 | susceptibility to calculate the linear and nonlinear properties of the mode. 54 | The material used in this case is congruent lithium niobate, and we use the 55 | Sellmeier equations from Jundt (1997) for the refractive index. The generalized 56 | 2nd-order nonlinear parameter is weighted for second-harmonic generation using 57 | the `g2_shg` function from the `utility.chi2` submodule. Poling is implemented 58 | by indicating the location of each domain inversion. This is calculated using 59 | the `domain_inversion` function of the `utility.chi2` submodule. This example 60 | only uses a constant poling period, but the function also supports the 61 | generation of arbitrarily chirped poling periods. 62 | 63 | """ 64 | length = 7e-3 # 7 mm 65 | a_eff = 15e-6 * 15e-6 # 15 um * 15 um 66 | 67 | #---- Phase Coefficient 68 | def n_cLN(v, T=24.5): 69 | """ 70 | Refractive index of congruent lithium niobate. 71 | 72 | References 73 | ---------- 74 | Dieter H. Jundt, "Temperature-dependent Sellmeier equation for the index of 75 | refraction, ne, in congruent lithium niobate," Opt. Lett. 22, 1553-1555 76 | (1997). https://doi.org/10.1364/OL.22.001553 77 | 78 | """ 79 | a1 = 5.35583 80 | a2 = 0.100473 81 | a3 = 0.20692 82 | a4 = 100. 83 | a5 = 11.34927 84 | a6 = 1.5334e-2 85 | b1 = 4.629e-7 86 | b2 = 3.862e-8 87 | b3 = -0.89e-8 88 | b4 = 2.657e-5 89 | 90 | wvl = c/v * 1e6 # um 91 | f = (T-24.5)*(T+570.82) 92 | n2 = (a1 + b1*f + (a2 + b2*f)/(wvl**2 - (a3 + b3*f)**2) 93 | + (a4 + b4*f)/(wvl**2 - a5**2) - a6*wvl**2) 94 | return n2**0.5 95 | n_eff = n_cLN(pulse.v_grid) 96 | 97 | beta = n_eff * 2*pi*pulse.v_grid/c 98 | 99 | #---- 2nd-order nonlinearity 100 | d_eff = 27e-12 # 27 pm / V 101 | chi2_eff = 2 * d_eff 102 | g2 = ut.chi2.g2_shg(v0, pulse.v_grid, n_eff, a_eff, chi2_eff) 103 | 104 | # Poling 105 | p0 = 30e-6 # 30 um poling period 106 | z_invs, domains, poled = ut.chi2.domain_inversions(length, 2*pi/p0) 107 | 108 | mode = pynlo.medium.Mode(pulse.v_grid, beta, g2=g2, g2_inv=z_invs) 109 | 110 | 111 | # %% Model 112 | """ 113 | The UPE model is initialized with the pulse and mode objects defined above. At 114 | this stage we also use the target local error to estimate the optimal initial 115 | step size. 116 | 117 | """ 118 | model = pynlo.model.UPE(pulse, mode) 119 | 120 | #---- Estimate step size 121 | local_error = 1e-6 122 | dz = model.estimate_step_size(local_error=local_error) 123 | 124 | 125 | # %% Simulate 126 | """ 127 | The model's `simulate` method runs the simulation. We input the total 128 | propagation length, the initial step size, local error, and the number of 129 | simulation steps we wish to record. We receive the output pulse and the 130 | propagations distance, pulse spectrum, and complex envelope at each record 131 | point. To view real-time simulation results (updated whenever the simulation 132 | reaches a record point), set the `plot` keyword to "time", "frq", or "wvl". 133 | 134 | """ 135 | pulse_out, z, a_t, a_v = model.simulate( 136 | length, dz=dz, local_error=local_error, n_records=100, plot=None) 137 | 138 | 139 | # %% Plot Results 140 | """ 141 | The results are plotted in the time and frequency domains. Although the 142 | 3rd-order nonlinearity is not directly included in the propagation model we see 143 | several 3rd-order phenomena due to cascaded 2nd-order effects. Phase-mismatched 144 | SHG yields an effective Kerr effect (see DeSalvo et al. (1992)), which leads to 145 | soliton and dispersive wave generation. Additionally, the high frequency spike 146 | is third-harmonic generation due to cascaded second-harmonic and sum-frequency 147 | generation from the pump frequency. The other spike is due to SHG quasi-phase 148 | matched off of the 3rd-order spatial harmonic of the poling structure. 149 | 150 | References 151 | ---------- 152 | R. DeSalvo, D. J. Hagan, M. Sheik-Bahae, G. Stegeman, E. W. Van Stryland, and 153 | H. Vanherzeele, "Self-focusing and self-defocusing by cascaded second-order 154 | effects in KTP," Opt. Lett. 17, 28-30 (1992) 155 | 156 | """ 157 | fig = plt.figure("Simulation Results", clear=True) 158 | ax0 = plt.subplot2grid((3,2), (0, 0), rowspan=1) 159 | ax1 = plt.subplot2grid((3,2), (0, 1), rowspan=1) 160 | ax2 = plt.subplot2grid((3,2), (1, 0), rowspan=2, sharex=ax0) 161 | ax3 = plt.subplot2grid((3,2), (1, 1), rowspan=2, sharex=ax1) 162 | 163 | p_v_dB = 10*np.log10(np.abs(a_v)**2) 164 | p_v_dB -= p_v_dB.max() 165 | ax0.plot(1e-12*pulse.v_grid, p_v_dB[0], color="b") 166 | ax0.plot(1e-12*pulse.v_grid, p_v_dB[-1], color="g") 167 | ax2.pcolormesh(1e-12*pulse.v_grid, 1e3*z, p_v_dB, 168 | vmin=-40.0, vmax=0, shading="auto") 169 | ax0.set_ylim(bottom=-50, top=10) 170 | ax2.set_xlabel('Frequency (THz)') 171 | 172 | p_t_dB = 10*np.log10(np.abs(a_t)**2) 173 | p_t_dB -= p_t_dB.max() 174 | ax1.plot(1e12*pulse.t_grid, p_t_dB[0], color="b") 175 | ax1.plot(1e12*pulse.t_grid, p_t_dB[-1], color="g") 176 | ax3.pcolormesh(1e12*pulse.t_grid, 1e3*z, p_t_dB, 177 | vmin=-40.0, vmax=0, shading="auto") 178 | ax1.set_ylim(bottom=-50, top=10) 179 | ax3.set_xlabel('Time (ps)') 180 | 181 | ax0.set_ylabel('Power (dB)') 182 | ax2.set_ylabel('Propagation Distance (mm)') 183 | fig.tight_layout() 184 | fig.show() 185 | -------------------------------------------------------------------------------- /docs/build/html/_static/vendor/fontawesome/6.5.1/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Fonticons, Inc. (https://fontawesome.com) 2 | 3 | -------------------------------------------------------------------------------- 4 | 5 | Font Awesome Free License 6 | 7 | Font Awesome Free is free, open source, and GPL friendly. You can use it for 8 | commercial projects, open source projects, or really almost whatever you want. 9 | Full Font Awesome Free license: https://fontawesome.com/license/free. 10 | 11 | -------------------------------------------------------------------------------- 12 | 13 | # Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/) 14 | 15 | The Font Awesome Free download is licensed under a Creative Commons 16 | Attribution 4.0 International License and applies to all icons packaged 17 | as SVG and JS file types. 18 | 19 | -------------------------------------------------------------------------------- 20 | 21 | # Fonts: SIL OFL 1.1 License 22 | 23 | In the Font Awesome Free download, the SIL OFL license applies to all icons 24 | packaged as web and desktop font files. 25 | 26 | Copyright (c) 2023 Fonticons, Inc. (https://fontawesome.com) 27 | with Reserved Font Name: "Font Awesome". 28 | 29 | This Font Software is licensed under the SIL Open Font License, Version 1.1. 30 | This license is copied below, and is also available with a FAQ at: 31 | http://scripts.sil.org/OFL 32 | 33 | SIL OPEN FONT LICENSE 34 | Version 1.1 - 26 February 2007 35 | 36 | PREAMBLE 37 | The goals of the Open Font License (OFL) are to stimulate worldwide 38 | development of collaborative font projects, to support the font creation 39 | efforts of academic and linguistic communities, and to provide a free and 40 | open framework in which fonts may be shared and improved in partnership 41 | with others. 42 | 43 | The OFL allows the licensed fonts to be used, studied, modified and 44 | redistributed freely as long as they are not sold by themselves. The 45 | fonts, including any derivative works, can be bundled, embedded, 46 | redistributed and/or sold with any software provided that any reserved 47 | names are not used by derivative works. The fonts and derivatives, 48 | however, cannot be released under any other type of license. The 49 | requirement for fonts to remain under this license does not apply 50 | to any document created using the fonts or their derivatives. 51 | 52 | DEFINITIONS 53 | "Font Software" refers to the set of files released by the Copyright 54 | Holder(s) under this license and clearly marked as such. This may 55 | include source files, build scripts and documentation. 56 | 57 | "Reserved Font Name" refers to any names specified as such after the 58 | copyright statement(s). 59 | 60 | "Original Version" refers to the collection of Font Software components as 61 | distributed by the Copyright Holder(s). 62 | 63 | "Modified Version" refers to any derivative made by adding to, deleting, 64 | or substituting — in part or in whole — any of the components of the 65 | Original Version, by changing formats or by porting the Font Software to a 66 | new environment. 67 | 68 | "Author" refers to any designer, engineer, programmer, technical 69 | writer or other person who contributed to the Font Software. 70 | 71 | PERMISSION & CONDITIONS 72 | Permission is hereby granted, free of charge, to any person obtaining 73 | a copy of the Font Software, to use, study, copy, merge, embed, modify, 74 | redistribute, and sell modified and unmodified copies of the Font 75 | Software, subject to the following conditions: 76 | 77 | 1) Neither the Font Software nor any of its individual components, 78 | in Original or Modified Versions, may be sold by itself. 79 | 80 | 2) Original or Modified Versions of the Font Software may be bundled, 81 | redistributed and/or sold with any software, provided that each copy 82 | contains the above copyright notice and this license. These can be 83 | included either as stand-alone text files, human-readable headers or 84 | in the appropriate machine-readable metadata fields within text or 85 | binary files as long as those fields can be easily viewed by the user. 86 | 87 | 3) No Modified Version of the Font Software may use the Reserved Font 88 | Name(s) unless explicit written permission is granted by the corresponding 89 | Copyright Holder. This restriction only applies to the primary font name as 90 | presented to the users. 91 | 92 | 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font 93 | Software shall not be used to promote, endorse or advertise any 94 | Modified Version, except to acknowledge the contribution(s) of the 95 | Copyright Holder(s) and the Author(s) or with their explicit written 96 | permission. 97 | 98 | 5) The Font Software, modified or unmodified, in part or in whole, 99 | must be distributed entirely under this license, and must not be 100 | distributed under any other license. The requirement for fonts to 101 | remain under this license does not apply to any document created 102 | using the Font Software. 103 | 104 | TERMINATION 105 | This license becomes null and void if any of the above conditions are 106 | not met. 107 | 108 | DISCLAIMER 109 | THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 110 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF 111 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT 112 | OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE 113 | COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 114 | INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL 115 | DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 116 | FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM 117 | OTHER DEALINGS IN THE FONT SOFTWARE. 118 | 119 | -------------------------------------------------------------------------------- 120 | 121 | # Code: MIT License (https://opensource.org/licenses/MIT) 122 | 123 | In the Font Awesome Free download, the MIT license applies to all non-font and 124 | non-icon files. 125 | 126 | Copyright 2023 Fonticons, Inc. 127 | 128 | Permission is hereby granted, free of charge, to any person obtaining a copy of 129 | this software and associated documentation files (the "Software"), to deal in the 130 | Software without restriction, including without limitation the rights to use, copy, 131 | modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 132 | and to permit persons to whom the Software is furnished to do so, subject to the 133 | following conditions: 134 | 135 | The above copyright notice and this permission notice shall be included in all 136 | copies or substantial portions of the Software. 137 | 138 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 139 | INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 140 | PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 141 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 142 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 143 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 144 | 145 | -------------------------------------------------------------------------------- 146 | 147 | # Attribution 148 | 149 | Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font 150 | Awesome Free files already contain embedded comments with sufficient 151 | attribution, so you shouldn't need to do anything additional when using these 152 | files normally. 153 | 154 | We've kept attribution comments terse, so we ask that you do not actively work 155 | to remove them from files, especially code. They're a great way for folks to 156 | learn about Font Awesome. 157 | 158 | -------------------------------------------------------------------------------- 159 | 160 | # Brand Icons 161 | 162 | All brand icons are trademarks of their respective owners. The use of these 163 | trademarks does not indicate endorsement of the trademark holder by Font 164 | Awesome, nor vice versa. **Please do not use brand logos for any purpose except 165 | to represent the company, product, or service to which they refer.** 166 | -------------------------------------------------------------------------------- /COPYING.LESSER.txt: -------------------------------------------------------------------------------- 1 | GNU LESSER GENERAL PUBLIC LICENSE 2 | Version 3, 29 June 2007 3 | 4 | Copyright (C) 2007 Free Software Foundation, Inc. 5 | Everyone is permitted to copy and distribute verbatim copies 6 | of this license document, but changing it is not allowed. 7 | 8 | 9 | This version of the GNU Lesser General Public License incorporates 10 | the terms and conditions of version 3 of the GNU General Public 11 | License, supplemented by the additional permissions listed below. 12 | 13 | 0. Additional Definitions. 14 | 15 | As used herein, "this License" refers to version 3 of the GNU Lesser 16 | General Public License, and the "GNU GPL" refers to version 3 of the GNU 17 | General Public License. 18 | 19 | "The Library" refers to a covered work governed by this License, 20 | other than an Application or a Combined Work as defined below. 21 | 22 | An "Application" is any work that makes use of an interface provided 23 | by the Library, but which is not otherwise based on the Library. 24 | Defining a subclass of a class defined by the Library is deemed a mode 25 | of using an interface provided by the Library. 26 | 27 | A "Combined Work" is a work produced by combining or linking an 28 | Application with the Library. The particular version of the Library 29 | with which the Combined Work was made is also called the "Linked 30 | Version". 31 | 32 | The "Minimal Corresponding Source" for a Combined Work means the 33 | Corresponding Source for the Combined Work, excluding any source code 34 | for portions of the Combined Work that, considered in isolation, are 35 | based on the Application, and not on the Linked Version. 36 | 37 | The "Corresponding Application Code" for a Combined Work means the 38 | object code and/or source code for the Application, including any data 39 | and utility programs needed for reproducing the Combined Work from the 40 | Application, but excluding the System Libraries of the Combined Work. 41 | 42 | 1. Exception to Section 3 of the GNU GPL. 43 | 44 | You may convey a covered work under sections 3 and 4 of this License 45 | without being bound by section 3 of the GNU GPL. 46 | 47 | 2. Conveying Modified Versions. 48 | 49 | If you modify a copy of the Library, and, in your modifications, a 50 | facility refers to a function or data to be supplied by an Application 51 | that uses the facility (other than as an argument passed when the 52 | facility is invoked), then you may convey a copy of the modified 53 | version: 54 | 55 | a) under this License, provided that you make a good faith effort to 56 | ensure that, in the event an Application does not supply the 57 | function or data, the facility still operates, and performs 58 | whatever part of its purpose remains meaningful, or 59 | 60 | b) under the GNU GPL, with none of the additional permissions of 61 | this License applicable to that copy. 62 | 63 | 3. Object Code Incorporating Material from Library Header Files. 64 | 65 | The object code form of an Application may incorporate material from 66 | a header file that is part of the Library. You may convey such object 67 | code under terms of your choice, provided that, if the incorporated 68 | material is not limited to numerical parameters, data structure 69 | layouts and accessors, or small macros, inline functions and templates 70 | (ten or fewer lines in length), you do both of the following: 71 | 72 | a) Give prominent notice with each copy of the object code that the 73 | Library is used in it and that the Library and its use are 74 | covered by this License. 75 | 76 | b) Accompany the object code with a copy of the GNU GPL and this license 77 | document. 78 | 79 | 4. Combined Works. 80 | 81 | You may convey a Combined Work under terms of your choice that, 82 | taken together, effectively do not restrict modification of the 83 | portions of the Library contained in the Combined Work and reverse 84 | engineering for debugging such modifications, if you also do each of 85 | the following: 86 | 87 | a) Give prominent notice with each copy of the Combined Work that 88 | the Library is used in it and that the Library and its use are 89 | covered by this License. 90 | 91 | b) Accompany the Combined Work with a copy of the GNU GPL and this license 92 | document. 93 | 94 | c) For a Combined Work that displays copyright notices during 95 | execution, include the copyright notice for the Library among 96 | these notices, as well as a reference directing the user to the 97 | copies of the GNU GPL and this license document. 98 | 99 | d) Do one of the following: 100 | 101 | 0) Convey the Minimal Corresponding Source under the terms of this 102 | License, and the Corresponding Application Code in a form 103 | suitable for, and under terms that permit, the user to 104 | recombine or relink the Application with a modified version of 105 | the Linked Version to produce a modified Combined Work, in the 106 | manner specified by section 6 of the GNU GPL for conveying 107 | Corresponding Source. 108 | 109 | 1) Use a suitable shared library mechanism for linking with the 110 | Library. A suitable mechanism is one that (a) uses at run time 111 | a copy of the Library already present on the user's computer 112 | system, and (b) will operate properly with a modified version 113 | of the Library that is interface-compatible with the Linked 114 | Version. 115 | 116 | e) Provide Installation Information, but only if you would otherwise 117 | be required to provide such information under section 6 of the 118 | GNU GPL, and only to the extent that such information is 119 | necessary to install and execute a modified version of the 120 | Combined Work produced by recombining or relinking the 121 | Application with a modified version of the Linked Version. (If 122 | you use option 4d0, the Installation Information must accompany 123 | the Minimal Corresponding Source and Corresponding Application 124 | Code. If you use option 4d1, you must provide the Installation 125 | Information in the manner specified by section 6 of the GNU GPL 126 | for conveying Corresponding Source.) 127 | 128 | 5. Combined Libraries. 129 | 130 | You may place library facilities that are a work based on the 131 | Library side by side in a single library together with other library 132 | facilities that are not Applications and are not covered by this 133 | License, and convey such a combined library under terms of your 134 | choice, if you do both of the following: 135 | 136 | a) Accompany the combined library with a copy of the same work based 137 | on the Library, uncombined with any other library facilities, 138 | conveyed under the terms of this License. 139 | 140 | b) Give prominent notice with the combined library that part of it 141 | is a work based on the Library, and explaining where to find the 142 | accompanying uncombined form of the same work. 143 | 144 | 6. Revised Versions of the GNU Lesser General Public License. 145 | 146 | The Free Software Foundation may publish revised and/or new versions 147 | of the GNU Lesser General Public License from time to time. Such new 148 | versions will be similar in spirit to the present version, but may 149 | differ in detail to address new problems or concerns. 150 | 151 | Each version is given a distinguishing version number. If the 152 | Library as you received it specifies that a certain numbered version 153 | of the GNU Lesser General Public License "or any later version" 154 | applies to it, you have the option of following the terms and 155 | conditions either of that published version or of any later version 156 | published by the Free Software Foundation. If the Library as you 157 | received it does not specify a version number of the GNU Lesser 158 | General Public License, you may choose any version of the GNU Lesser 159 | General Public License ever published by the Free Software Foundation. 160 | 161 | If the Library as you received it specifies that a proxy can decide 162 | whether future versions of the GNU Lesser General Public License shall 163 | apply, that proxy's public statement of acceptance of any version is 164 | permanent authorization for you to choose that version for the 165 | Library. --------------------------------------------------------------------------------