solprop.calibration.problems#

The calibration’s synthetic problems (SEP 46 section 6.3).

Five problems that solprop ships, so that a calibration never needs a user’s simulation: a GNLSE with Raman response and self-steepening, a four-mode helium capillary with plasma, a mode-averaged hydrogen capillary with Raman response, a radial argon filament with plasma and a one-dimensional free-space line. Together they exercise every CPU operation class: stage passes, responses with short and long columns, modal and dense products, Raman histories, plasma columns, radial and temporal transforms. Each is adapted from the benchmark tracking set’s case of the same physics (benchmarks/builders.py), with no noise so that every candidate does the same work, and with a scale that sizes its grid: the time window for the one-dimensional problems and the transverse count for the spatial ones. A run times their trial steps (StepDriver.timed_step), never a propagation.

Four of them also come at production size (*_large), as large as the tracking set’s cases of their kind: on these alone a narrower team or a higher threshold that wins on the small problems shows what it costs a production run. On 16 cores of a Google Axion, a team of 8 won the small problems by 16 % and ran the tracking set’s large cases up to 1.8 times slower (SEP 46 Part II).

Module Attributes

PROBLEMS

The calibration problems, each built at a scale (1 is the standard size).

Functions

build(name[, scale])

Build one calibration problem at a scale of its standard size.

solprop.calibration.problems.PROBLEMS: dict[str, Callable[[float], Simulation]] = {'averaged': <function _averaged>, 'capillary': <function _capillary>, 'capillary_large': <function <lambda>>, 'gnlse': <function _gnlse>, 'gnlse_large': <function <lambda>>, 'line': <function <lambda>>, 'line_large': <function <lambda>>, 'radial': <function <lambda>>, 'radial_large': <function <lambda>>}#

The calibration problems, each built at a scale (1 is the standard size).

solprop.calibration.problems.build(name, scale=1.0)[source]#

Build one calibration problem at a scale of its standard size.

Parameters:
namestr

One of PROBLEMS.

scalefloat, optional

Its grid’s size relative to the standard one: the time window of the one-dimensional problems, the transverse count of the spatial ones.

Returns:
solprop.driver.Simulation

The simulation, on the native backend, without noise.

Raises:
KeyError

For an unknown name.