API reference#
One page per public module, class and function, generated from the docstrings. The user guide explains how the objects fit together; this reference describes their arguments, defaults, units, return values and errors. Quantities are in SI units unless a docstring says otherwise.
For interactive work, solprop.sol gathers the names a session needs behind one
import (import solprop.sol as sol; see the interactive namespace).
In scripts and library code, import from the home modules listed below.
Find an interface by task#
Setting up and running a simulation
module |
what it holds |
|---|---|
the entry points |
|
time and frequency grids ( |
|
initial pulses: |
|
quantities that vary along z: radius, pressure and temperature profiles such as |
|
the steady gas flow of a pressure gradient: |
|
absorbing boundaries in time and frequency |
|
the Runge–Kutta tableaux, the low-call Adams methods ( |
|
shot-noise realisations |
|
parameter scans and where their points run (scans and executors) |
The physics
module |
what it holds |
|---|---|
waveguide modes: Marcatili capillary modes and the |
|
the nonlinear responses — Kerr, Raman, plasma and ionisation — and the mode-averaged GNLSE |
|
frozen helium TDSE physics, calibration, sampling and execution declarations, the haCC basis, the atomic window and the consistency policy (the TDSE response) |
|
atomic preset resolution ( |
|
the haCC weak-field consistency check ( |
|
bulk media and free-space (radial, Cartesian, line) propagation, with the spatial measures of a beam |
|
the real-index path certificate for a medium that varies along z: |
|
the linear operator: dispersion, loss and the moving frame |
|
material data: gases and mixtures (species data), glasses and metals, refractive indices, nonlinear, Raman, ionisation and transport data |
|
Jones optics and the description of transverse polarisation |
|
the Fourier conventions and transforms, and the radial (Hankel) transform |
|
physical constants in SI units |
Reading and using the results
module |
what it holds |
|---|---|
the in-memory and HDF5 output handlers, the run’s metadata record, |
|
post-processing of a saved run: fields, spectra, pulse metrics, coherence, compression, the physical fields of a general modal run, and |
|
coupling simulations through a field plane: |
|
the statistics recorded at the saved planes, and |
|
the standard figures: propagation maps, slices, spectrograms, statistics |
|
linear optics applied to a pulse outside a propagation: materials, chirped mirrors, grating and prism pairs |
|
design calculators: soliton numbers, dispersive-wave phase matching, nonlinear lengths |
Session, logging and errors
module |
what it holds |
|---|---|
the interactive namespace |
|
logging and progress reporting ( |
|
every error and warning solprop raises, under |
|
the command-line launcher of a scan script |
Internals. solprop.translate turns the physics objects into the kernel problem
a backend executes, and solprop.backends holds the in-tree backends (numpy_ref,
numba_cpu), the registry that selects a backend by name and the memory estimate. They
are documented for developers and backend authors rather than for everyday use; the
design behind both is in the developer documentation.
Complete generated reference#
Ultrafast nonlinear pulse propagation. |
The loss specification and the evanescent floor#
Every gas-filled hollow mode — the capillary’s MarcatiliMode, the rectangular
RectMode, the planar SlabMode and the antiresonant modes — takes its loss= in one
vocabulary, LossSpec, and its full model floors the real part of the effective index
at EVANESCENT_INDEX_FLOOR far below the band, where the square root would otherwise
turn evanescent. Both are defined in solprop.modes.fill and are also importable
from solprop.modes.capillary and solprop.modes; they are documented here
under both module paths.
- solprop.modes.fill.LossSpec = bool | float | collections.abc.Callable[[jaxtyping.Float[ndarray, 'n_omega']], jaxtyping.Float[ndarray, 'n_omega']]#
Specify the model loss of any mode that mixes in
GasFillMixin.The vocabulary is documented on
MarcatiliMode, which shares it withRectMode.
- solprop.modes.fill.EVANESCENT_INDEX_FLOOR: Final = 0.001#
Smallest real effective index the full model will return.
Far below the band the square root turns evanescent and
Re n_effruns to zero, which makes the mode-averaged prefactor1 / n_effblow up. The real part is floored at 1e-3, and the derivative is reported as zero where the floor binds because the floored value is constant. The reduced model has no floor.
- solprop.modes.capillary.LossSpec = bool | float | collections.abc.Callable[[jaxtyping.Float[ndarray, 'n_omega']], jaxtyping.Float[ndarray, 'n_omega']]#
Represent a union type
E.g. for int | str
- solprop.modes.capillary.EVANESCENT_INDEX_FLOOR = 0.001#
Convert a string or number to a floating-point number, if possible.