solprop.driver.inputs#
A run’s input: its pulse, its launch, its shot noise and its peak field.
The keyword routes shape their pulses and draw their noise here; a derived run’s input is checked and installed here; and the input’s peak field sets the range of each optmat ionisation rate a run carries (SEP 3).
Module Attributes
What a modal constructor's |
Functions
|
Return the field amplitudes an ionisation table covers, from the input's peak. |
- solprop.driver.inputs.ModalLaunch = collections.abc.Mapping[str | int, float | collections.abc.Mapping[str, float]] | collections.abc.Sequence[collections.abc.Mapping[str | int, float | collections.abc.Mapping[str, float]]]#
What a modal constructor’s
launchkeyword takes (SEP 41, S5).A mapping from a mode’s display label or index to its share, or to
{"share": s, "phase": phi}with the phase in radians; or a list of such mappings, one for each input pulse (docs/guide/setup/pulses.md).
- solprop.driver.inputs.default_field_range(peak_field)[source]#
Return the field amplitudes an ionisation table covers, from the input’s peak.
The table is built in
logfield and its knots double until it is converged (solprop.translate.ionisation.build_rate_table()), so a generous range costs little; getting it wrong is what costs. Belowfield_minthe rate is taken as zero, which is right because every rate this package carries is exactly zero below its threshold, and the threshold is where the lower limit ends up anyway. Abovefield_maxthe table holds its last value, so an upper limit that is too low is a silent clip of the rate exactly where ionisation matters most.Hence three decades below the input peak and thirty times above it. The lower factor only has to reach under the rate’s threshold, which for the noble gases at the intensities a capillary reaches sits one to two decades below the peak. The upper factor has to clear the self-compressed peak: a capillary compressing a pump to a few optical cycles raises the on-axis field by a small single-digit factor before ionisation-induced defocusing and loss clamp it, so thirty is roughly an order of margin on that – a thousand times in intensity.
- Parameters:
- peak_fieldfloat
Peak field amplitude of the input, V/m, > 0: on a capillary the largest over the axis and the transverse nodes.
- Returns:
- tuple of float
Lower and upper field amplitude in V/m.
- Raises:
- DriverError
If the peak field is not positive, which means the input is empty.
Examples
>>> from solprop.driver.inputs import default_field_range >>> low, high = default_field_range(1e10) >>> f"{low:.3g} {high:.3g}" '1e+07 3e+11'