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

solprop.driver

the entry points prop_gnlse, prop_capillary, prop_waveguide, prop_radial, prop_free and prop_planar, the Simulation object behind them, and run_problem, the loop over save planes that takes a translated problem, a backend already holding its initial state and an output handler, for a batch runner of your own

solprop.grid

time and frequency grids (FieldGrid, EnvelopeGrid) and the free-space transverse grids (RadialGrid, FreeGrid, LineGrid)

solprop.pulses

initial pulses: GaussianPulse, SechPulse, CustomPulse, DataPulse, and spatial and planar pulses

solprop.profiles

quantities that vary along z: radius, pressure and temperature profiles such as PiecewiseLinear and PressureGradient

solprop.gasflow

the steady gas flow of a pressure gradient: steady_fill, choked ends, flow_report

solprop.boundaries

absorbing boundaries in time and frequency

solprop.stepper

the Runge–Kutta tableaux, the low-call Adams methods (multistep), the step-size controller and fixed step schedules (FixedSchedule)

solprop.noise

shot-noise realisations

solprop.driver.scan, solprop.driver.executors

parameter scans and where their points run (scans and executors)

The physics

module

what it holds

solprop.modes

waveguide modes: Marcatili capillary modes and the CoherentWall, antiresonant, rectangular, slab and tabulated modes, the step-index and graded-index providers, and ModalGuide for the general modal route

solprop.nonlinear

the nonlinear responses — Kerr, Raman, plasma and ionisation — and the mode-averaged GNLSE

solprop.nonlinear.tdse

frozen helium TDSE physics, calibration, sampling and execution declarations, the haCC basis, the atomic window and the consistency policy (the TDSE response)

solprop.driver.tdse

atomic preset resolution (basis_from_preset, the haCC hacc_preset and hacc_basis); its binding interfaces are for developers

solprop.driver.tdse_consistency

the haCC weak-field consistency check (check_consistency, ConsistencyResult), its cache and the cubic evidence extraction (the consistency check)

solprop.spatial

bulk media and free-space (radial, Cartesian, line) propagation, with the spatial measures of a beam

solprop.adiabatic

the real-index path certificate for a medium that varies along z: AdiabaticAccuracy and its admission record

solprop.linear

the linear operator: dispersion, loss and the moving frame

solprop.physdata

material data: gases and mixtures (species data), glasses and metals, refractive indices, nonlinear, Raman, ionisation and transport data

solprop.polarisation

Jones optics and the description of transverse polarisation

solprop.fourier, solprop.hankel

the Fourier conventions and transforms, and the radial (Hankel) transform

solprop.constants

physical constants in SI units

Reading and using the results

module

what it holds

solprop.output

the in-memory and HDF5 output handlers, the run’s metadata record, open_file and resuming a run, live snapshots (SnapshotController, read_snapshot, restore_snapshot; the output page), and the raw TDSE response archive (TDSEArchive, open_tdse_archive; the TDSE response)

solprop.processing

post-processing of a saved run: fields, spectra, pulse metrics, coherence, compression, the physical fields of a general modal run, and field_plane, a saved plane read back for coupling

solprop.coupling

coupling simulations through a field plane: FieldPlane (from a run, a SpatialPulse, an analytic field or arrays), regrid, InputPort, couple under a CouplingModel with its CouplingReport, the scalar profiles ScalarModeBasis, the recorded pair envelopes and Outcouple; transport through the linear elements FreeSpace, ThinLens, Aperture, TransmissionMask, Alignment, PolarisationTransform, Mirror, PlanarInterface and SpectralTransfer (coupling simulations; the transport report)

solprop.stats

the statistics recorded at the saved planes, and StatsSpec to choose them

solprop.plotting

the standard figures: propagation maps, slices, spectrograms, statistics

solprop.optics

linear optics applied to a pulse outside a propagation: materials, chirped mirrors, grating and prism pairs

solprop.tools

design calculators: soliton numbers, dispersive-wave phase matching, nonlinear lengths

Session, logging and errors

module

what it holds

solprop.sol

the interactive namespace

solprop.log, solprop.driver.summary

logging and progress reporting (configure_logging), and the summary a run shows before its first step

solprop.exceptions

every error and warning solprop raises, under SolpropError and SolpropWarning

solprop.scan

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#

solprop

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 with RectMode.

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_eff runs to zero, which makes the mode-averaged prefactor 1 / n_eff blow 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.