Every key the engine reads, with its JSON type, SI unit, default and meaning. The same registry produces the
JSON Schemas (schemas/, Schemas) and the unknown-key warnings, so this page is complete by construction.
Units: the key suffix names the unit (lengthM metres, durationFwhmS seconds, gddFs2 fs²).
Top-level keys of a .ufs system file.
An optical system: a chain of elements. More: system-file.md
| key | type | unit | default | meaning |
|---|---|---|---|---|
format |
string | "ultrafast-system" | ||
version |
integer | 2 | Format version | |
name |
string | Name of the system | ||
description |
string | Free text | ||
source |
object | Provenance of the file (written by exporters, e.g. the zemax plugin); free-form | ||
sampling |
object (samplingWavelengths) |
Wavelengths of all per-wavelength arrays in the file | ||
environment |
object (environment) |
Air of the laboratory and the index reference of quoted data | ||
materials |
object | Materials defined in this file, by name (docs/reference/materials.md) | ||
coatings |
object | Coatings defined in this file, by name (docs/reference/coatings.md) | ||
substrates |
object | Mirror substrates defined in this file, by name: material, thicknessM, backCoating / backReflectance, wedgeDeg (docs/reference/coatings.md#substrate-echoes) | ||
inputBeam |
model (beam) | Default beam for nonlinear elements without one | ||
elements |
array of element |
The beam path, in order Required. | ||
overrides |
array of override |
Changes to models or values (docs/reference/models.md#overrides) |
Top-level keys of a run spec (run.json). Plugins add keys (see Plugin keys).
A run: the pulse, the instruments and numerical settings. More: run-spec.md
| key | type | unit | default | meaning |
|---|---|---|---|---|
format |
string | "ultrafast-run" | ||
version |
integer | 2 | Format version | |
name |
string | Name of the run | ||
pulse |
object (pulse) |
The input pulse Required. | ||
grid |
object (grid) |
Time/frequency grid | ||
physics |
object (physics) |
Physics switches | ||
stepper |
object (stepper) |
Nonlinear solver settings | ||
probes |
any | "end" | Snapshots of the pulse: "all", "end" or a list of element ids | |
instruments |
array of instrument |
Instruments | ||
detectors |
object | Detector presets by name: {instrument: {keys for an instrument that does not set them}, detector: {read-out}}; an instrument says "detector": "name" (docs/reference/instruments.md#detector-presets) | ||
overrides |
array of override |
Overrides (highest priority) | ||
inputBeam |
model (beam) | Default beam for nonlinear elements without one | ||
outputs |
object (outputs) |
Which files to write | ||
compute |
object (compute) |
Compute back-end and threads | ||
coherence |
object (coherence) |
Partially coherent beam: a run over coherent modes (docs/reference/transverse.md#partial-coherence) |
run.pulse.
The input pulse (docs/reference/run-spec.md#pulse).
| key | type | unit | default | meaning |
|---|---|---|---|---|
shape |
"gaussian" | "sech2" | "superGaussian" | "spectrum" | "cw" |
gaussian | Pulse shape; cw: one spectral bin at centerWavelengthM, with powerW | |
centerWavelengthM |
number | m | Carrier wavelength (for spectrum: default = intensity-weighted mean) | |
centerWavelengthNm |
number | nm | Carrier wavelength in nm (alternative) | |
durationFwhmS |
number | s | Transform-limited intensity FWHM | |
durationFwhmFs |
number | fs | Transform-limited FWHM in fs (alternative) | |
bandwidthFwhmM |
number | m | Spectral FWHM (alternative to the duration) | |
bandwidthFwhmNm |
number | nm | Spectral FWHM in nm | |
order |
integer | 2 | superGaussian order | |
energyJ |
number | J | Pulse energy | |
averagePowerW |
number | W | Average power (with repRateHz) | |
peakPowerW |
number | W | Peak power (alternative) | |
powerW |
number | W | Power of a cw source (shape cw) | |
repRateHz |
number | Hz | Repetition rate | |
chirp |
object (chirp) |
Spectral phase about the carrier: gddS2/todS3/fodS4 or gddFs2/todFs3/fodFs4 | ||
cepRad |
number | rad | 0 | Carrier-envelope phase |
polarization |
any | "x" | "x", "y", "45", "-45", "rcp", "lcp", {angleDeg, ellipticity} or [exRe, exIm, eyRe, eyIm] | |
spectrum |
object (pulseSpectrum) |
Measured spectrum (shape: spectrum): wavelengthsM + intensity (+ phaseRad), or csv | ||
delayS |
number | s | 0 | Time offset |
pedestal |
any | Pedestal / contrast components: one object or a list (replica, prePulse, postPulse, ase, phaseNoise, exponential, measured) | ||
noise |
object (pulseNoise) |
Quantum noise on the input: one photon per frequency mode with random phase (supercontinuum coherence, parametric seeding) |
run.grid.
The time/frequency grid (docs/reference/run-spec.md#grid).
| key | type | unit | default | meaning |
|---|---|---|---|---|
auto |
boolean | true | Size the grid from pulse and system | |
n |
integer | 4096 | Number of samples (with auto: a minimum) | |
windowS |
number | s | 30 x the transform limit | Time window |
windowPs |
number | ps | Time window in ps | |
maxN |
integer | 4194304 | Largest allowed n | |
snapCarrier |
boolean | true | Put the carrier on the frequency grid. A cw source is not snapped (its line sits on centerWavelengthM) unless this is written | |
spectralMargin |
number | auto | Spectral span factor | |
minSpanFraction |
number | 0.1 | Nonlinear runs: minimum half-span / carrier | |
minPointsPerFwhm |
number | 12 | Samples across the transform-limited FWHM | |
satelliteLevel |
number | 1e-8 | Weakest combination of ghost / replica satellites the window makes room for (relative intensity); weaker multi-satellite combinations may wrap around the window | |
extendForSatellites |
boolean | false | Manual window (auto false): grow the window, keeping dt, so that ghosts, echoes and pedestal replicas above satelliteLevel fit | |
strict |
boolean | false | A ghost, echo or pedestal that wraps around the window is an error instead of a warning | |
tail |
any | false | Delayed-light ledger: true, or {windowS, warnEnergyFraction, exactSteps (every linear element takes the exact long-grid step; default false), crossPhase (first-order cross-phase of the tail by the main pulse in nonlinear elements; default true)}. A second, long, linear grid with the same time step carries ghosts, echoes and gas-line tails next to the main nonlinear grid (docs/reference/delayed-light.md) |
run.physics.
Physics switches (docs/reference/run-spec.md#physics).
| key | type | unit | default | meaning |
|---|---|---|---|---|
nonlinear |
boolean | true | Master switch for nonlinear propagation | |
selfSteepening |
boolean | true | Self-steepening | |
raman |
boolean | true | Delayed (Raman) response of materials that have one | |
fieldMode |
"auto" | "envelope" | "carrier" |
auto | Envelope or carrier-resolved (real field) propagation | |
fieldHarmonic |
number | 3 | Highest harmonic the carrier-resolved grid holds | |
absoluteIndex |
boolean | true | Add air dispersion to air paths quoted relative to air | |
strictMaterialsAllow |
array | Catalogue quantities that strictMaterials accepts although they are not verified, by catalogue path (e.g. "CS2.n2") as listed in the error and in summary.json unverifiedInputs; matching is case-insensitive and an entry name such as "CS2" accepts all its quantities | ||
strictMaterials |
boolean | false | Refuse a run that uses approximate or unverified material-catalogue values (the compile error lists them; override each, or give a verified value in your own catalogue file). The environment variable ULTRAFAST_STRICT_MATERIALS=1 does the same | |
polarization |
"jones" | "scalar" |
jones | Jones (two polarisations) or scalar | |
losses |
boolean | true | false removes flat loss terms | |
beamTracking |
any | "auto" | Gaussian beam (q) tracking: "auto" (on with a Gaussian inputBeam), "on", "off" | |
spatioTemporal |
any | "auto" | Spatio-temporal couplings (angular / spatial dispersion, pulse-front tilt) with the tracked beam: "auto" (tracked, and their group-delay dispersion applied unless an element has traced groupDelayS), "on", "track" (reported only), "profile" (gratings and tilted surfaces tilt each frequency of a carried cartesian profile; the field holds the coupling), "off" (docs/reference/components.md#spatio-temporal-couplings) | |
transverse |
object (transverse) |
Default spatial model for every bulk/gap/crystal without one | ||
ionization |
any | false | Photo-ionisation and plasma in every nonlinear bulk element: true or an ionization object |
run.stepper.
Nonlinear solver (docs/reference/solvers.md).
| key | type | unit | default | meaning |
|---|---|---|---|---|
method |
"adaptive" | "rk4ip" |
adaptive | Adaptive ERK4(3)-IP or fixed-step RK4IP | |
tolerance |
number | 1e-6 | Adaptive: local relative error per step | |
maxPhasePerStepRad |
number | rad | 0.01 | Fixed: max nonlinear phase per step; adaptive: initial step |
maxAreaChangePerStep |
number | 0.05 | Limit on |d ln A_eff| per step (focusing beams) | |
minStepM |
number | m | Smallest step | |
maxStepM |
number | m | Largest step | |
maxSteps |
integer | Step limit per element | ||
steps |
integer | Fixed number of steps (rk4ip) |
run.outputs.
Files written by the CLI / WriteAll.
| key | type | unit | default | meaning |
|---|---|---|---|---|
json |
boolean | true | summary.json and provenance.json | |
npz |
boolean | true | result.npz | |
csv |
boolean | true | CSV files | |
maxPoints |
integer | 0 | Cap exported traces (0 = full grid incl. complex fields) | |
keepProfiles |
"all" | "used" |
all | Transverse profiles kept in the result: all (after every element) or used (only where an instrument or the end reads one, and before such an element); used saves memory on large grids |
system.elements[], by type. Every element also accepts the common element keys.
Multipass or regenerative amplifier around one gain medium (1-D). More: gain.md#the-amplifier-element
Also accepts: gainCommon (see Common key groups).
| key | type | unit | default | meaning |
|---|---|---|---|---|
ghosts |
any | false | Ghost replicas of the end faces: true / false or a ghosts object (components.md#ghost-reflections) | |
geometry |
"multipass" | "regenerative" |
multipass | Amplifier type | |
passes |
integer | 4 | Passes (multipass) | |
betweenPasses |
object (betweenPasses) |
loss, gddFs2, todFs3, materials | ||
roundTrips |
any | "auto" | Round trips (regenerative) or "auto" (eject at the maximum) | |
passesPerRoundTrip |
integer | 2 | Crystal passes per round trip | |
maxRoundTrips |
integer | 300 | Limit for auto | |
cavity |
object (betweenPasses) |
lossPerRoundTrip, gddFs2, todFs3, materials |
An acousto-optic programmable dispersive filter: programmed spectral phase (delay, GDD, TOD, FOD or a table), finite acoustic window, diffraction efficiency, amplitude table and a spurious replica. More: plugins/ao.md#aopdf
| key | type | unit | default | meaning |
|---|---|---|---|---|
centerWavelengthM |
number | m | the carrier | Wavelength at which the polynomial phase is expanded |
delayFs |
number | fs | 0 | Group delay at the centre |
gddFs2 |
number | fs^2 | 0 | Group-delay dispersion |
todFs3 |
number | fs^3 | 0 | Third-order dispersion |
fodFs4 |
number | fs^4 | 0 | Fourth-order dispersion |
spectralPhaseRad |
number or array | rad | Extra spectral phase table over tableWavelengthsM | |
amplitudeTable |
number or array | Amplitude transmission table over tableWavelengthsM | ||
tableWavelengthsM |
number or array | m | Wavelengths of the tables | |
windowS |
number | s | 0 | Acoustic window: components whose programmed group delay is outside +-window/2 are not diffracted (0 = unlimited) |
efficiency |
number | 1 | Diffraction efficiency (power) | |
replicaAmplitude |
number | 0 | Spurious replica split off the main pulse: H x (1 + a exp(i omega tau)) / sqrt(1 + a^2) | |
replicaDelayS |
number | s | 0 | Delay of the spurious replica |
A hard or soft aperture (clips; acts on a carried transverse profile). More: system-file.md
Also accepts: beamSize (see Common key groups).
| key | type | unit | default | meaning |
|---|---|---|---|---|
radiusM |
number | m | Circular radius | |
halfWidthXM |
number | m | Rectangular half-width x | |
halfWidthYM |
number | m | Rectangular half-width y | |
softRadiusM |
number | m | Soft (Gaussian / super-Gaussian) aperture radius | |
order |
integer | 1 | Super-Gaussian order of the soft aperture | |
aperture |
model (aperture) | Aperture model |
Lossless 2x2 splitter: c = t a - r b, d = r a + t b. More: branches.md#beam-splitters
Also accepts: elementCommon (see Common key groups).
| key | type | unit | default | meaning |
|---|---|---|---|---|
reflectivity |
number | 0.5 | Power reflectivity R | |
output |
string | c | Port that continues in a Sequential system (c, d; also transmitted, reflected) | |
side |
integer | 1 | Side the light meets: 2 reverses the sign of r (Michelson return) |
Propagation in a material, nonlinear when it has a beam and n2. More: system-file.md
Also accepts: nonlinearMedium (see Common key groups).
| key | type | unit | default | meaning |
|---|---|---|---|---|
material |
string | Material name (the file's materials or a built-in) Required. | ||
lengthM |
number | m | Length Required. | |
groupDelayS |
number or array | s | Traced group delay (used instead of the material index unless overridden) | |
groupDelayYS |
number or array | s | Traced group delay of y | |
transmission |
number or array | Per-wavelength internal transmission (else the material's attenuation) | ||
dispersionSource |
"data" | "material" |
data | Use traced data or the material index | |
airPathM |
number | m | Air path whose data are relative to air | |
air |
any | gap only: this gap's air (temperatureC, pressurePa, humidity, co2ppm, and the keys of environment.air), overriding the system's environment.air (docs/reference/gases.md#air-in-the-gaps) | ||
ghosts |
any | false | Ghost replicas of the end faces: true / false or a ghosts object (components.md#ghost-reflections) |
Chirped (dispersive) mirror: GDD/TOD/FOD per bounce. More: system-file.md
| key | type | unit | default | meaning |
|---|---|---|---|---|
gddS2 |
number | s^2 | GDD per bounce | |
todS3 |
number | s^3 | TOD per bounce | |
fodS4 |
number | s^4 | FOD per bounce | |
gddFs2 |
number | fs^2 | GDD per bounce in fs^2 | |
todFs3 |
number | fs^3 | TOD per bounce in fs^3 | |
fodFs4 |
number | fs^4 | FOD per bounce in fs^4 | |
bounces |
integer | 1 | Number of bounces | |
reflectance |
number | 1 | Reflectance per bounce | |
rippleGddFs2 |
number | fs^2 | GDD ripple amplitude per bounce | |
rippleGddS2 |
number | s^2 | GDD ripple amplitude per bounce | |
ripplePeriodNm |
number | nm | Ripple period in wavelength at the carrier | |
ripplePeriodThz |
number | THz | Ripple period in frequency | |
ripplePeriodRadPerS |
number | rad/s | Ripple period in angular frequency | |
ripplePhaseRad |
number | rad | 0 | Ripple phase at the carrier |
complementaryPairs |
boolean | false | Bounces come in complementary pairs (ripples cancel per pair) | |
referenceWavelengthM |
number | m | the carrier | Expansion wavelength |
Chi(2) frequency conversion and parametric amplification (SHG, SFG, OPA, DFG). More: crystals.md
| key | type | unit | default | meaning |
|---|---|---|---|---|
ghosts |
any | false | Ghost replicas of the end faces: true / false or a ghosts object (components.md#ghost-reflections) | |
crystal |
model (crystal) | Built-in crystal name (BBO, LBO, KTP, KDP, LiNbO3, MgO:LiNbO3, BiBO, AgGaSe2), a materials entry, or an object Required. | ||
lengthM |
number | m | Length Required. | |
interaction |
object (interaction) |
process, type, plane, polarizations, noncollinearDeg, qpm Required. | ||
cut |
any | "auto" | "auto" or {thetaDeg, phiDeg, detuneDeg} | |
detuneDeg |
number | deg | Tilt from the phase-matching angle | |
beam |
model (beam) | Main beam model | ||
aux |
array of auxBeam |
Auxiliary beams (pump, signal, b) | ||
mainRole |
string | Role of the main beam (signal, idler, pump, a) | ||
output |
string | Field that continues as the main beam | ||
record |
array | Names of fields kept as by-products | ||
overlap |
any | "gaussian" | "gaussian", "planeWave", {model, radiusM} or {areaM2} | |
deffPmPerV |
number | pm/V | Effective nonlinearity (overrides the tensor) | |
temperatureC |
number | degC | Crystal temperature | |
chi3 |
boolean | true | Include the crystal's chi(3) (SPM/XPM) | |
n2 |
number | m^2/W | n2 of the crystal | |
seedNoise |
boolean | true | Seed generated fields with vacuum noise | |
noiseSeed |
integer | Noise random seed | ||
spectralMargin |
number | Spectral span factor | ||
polarizationAxisDeg |
number | deg | Angle of the crystal's slow axis in the lab x-y plane | |
transverse |
object (transverse) |
Spatial model |
A spectral filter: any filter model (transmission and phase). More: system-file.md
| key | type | unit | default | meaning |
|---|---|---|---|---|
filter |
model (filter) | Filter model | ||
model |
model (filter) | Filter model (alternative key) | ||
mechanism |
string | filter | Name of the loss in the budget |
A parametric deformable mirror on the carried transverse profile: actuator layout, Gaussian influence function, stroke limit, drive quantisation. Compiles to a modulator with an optical-path (achromatic) map. Generic: no vendor data. More: plugins/ao.md#deformablemirror
| key | type | unit | default | meaning |
|---|---|---|---|---|
layout |
"square" | "hex" | "ring" | "explicit" |
square | Actuator layout | |
actuatorsX |
integer | Actuators along x (square), per row (hex) | ||
actuatorsY |
integer | actuatorsX | Actuators along y (square), rows (hex) | |
ringCounts |
number or array | ring layout: actuators on ring k (radius k pitch); the first entry is the centre actuator count | ||
positionsXM |
number or array | m | explicit layout: actuator x positions | |
positionsYM |
number or array | m | explicit layout: actuator y positions | |
pitchM |
number | m | Actuator pitch Required. | |
commandsM |
any | m | 0 | Drive coefficient per actuator (the surface is the sum of the influence functions: a uniform drive gives about 1.7 x the drive in the interior at coupling 0.15, not a uniform piston), positive away from the incoming beam (lengthens the path): a list in layout order, or [actuatorsX][actuatorsY] for the square layout |
influenceCoupling |
number | 0.15 | Surface value at a neighbouring actuator when one actuator is driven (Gaussian influence function exp(ln(c) (r/pitch)^2)) | |
strokeM |
number | m | unlimited | Mechanical stroke limit (commands are clipped to +-strokeM) |
driveBits |
integer | 0 | Drive resolution in bits over +-strokeM (needs strokeM); 0 = continuous | |
incidenceAngleRad |
number | rad | 0 | Angle of incidence; the wavefront changes by 2 cos(aoi) times the surface |
clearApertureRadiusM |
number | m | 0 | Radius of the circular clear aperture (0 = the actuator footprint) |
marginPitches |
number | 0.5 | Border around the outermost actuators, in pitches | |
reflectivity |
number | 1 | Power reflectivity | |
samplesPerActuator |
integer | 4 | Surface cells per actuator pitch along x and y | |
designWavelengthM |
number | m | the carrier | Wavelength at which the optical path becomes a phase |
A pure delay on a stage: a path in vacuum, or a time. More: branches.md#delays
Also accepts: elementCommon (see Common key groups).
| key | type | unit | default | meaning |
|---|---|---|---|---|
delayS |
number | s | Delay | |
lengthM |
number | m | ... or the vacuum path giving it | |
tiltXRad |
number | rad | 0 | Tilt of the beam against the axis |
tiltYRad |
number | rad | 0 | Tilt in y |
offsetXM |
number | m | 0 | Offset of the beam from the axis |
offsetYM |
number | m | 0 | Offset in y |
A spectral splitter: reflects one side of an edge, transmits the other. More: branches.md#beam-splitters
Also accepts: elementCommon (see Common key groups).
| key | type | unit | default | meaning |
|---|---|---|---|---|
edgeWavelengthM |
number | m | Wavelength of R = 1/2 Required. | |
edgeWidthM |
number | m | 10e-9 | 10-90 % width of the edge |
reflectLong |
boolean | true | Reflect wavelengths above the edge (else below) | |
output |
string | c | Port that continues in a Sequential system (c, d) |
Linear dispersion: sampled group delay, spectral phase or Taylor coefficients. More: system-file.md
| key | type | unit | default | meaning |
|---|---|---|---|---|
groupDelayS |
number or array | s | Per-wavelength absolute group delay (e.g. traced group path / c) | |
groupDelayYS |
number or array | s | Group delay of the y polarisation (if different) | |
phaseRad |
number or array | rad | Per-wavelength spectral phase (alternative) | |
gddS2 |
number | s^2 | GDD | |
todS3 |
number | s^3 | TOD | |
fodS4 |
number | s^4 | FOD | |
gddFs2 |
number | fs^2 | GDD in fs^2 | |
todFs3 |
number | fs^3 | TOD in fs^3 | |
fodFs4 |
number | fs^4 | FOD in fs^4 | |
groupDelayAtCarrierS |
number | s | Absolute group delay at the carrier | |
referenceWavelengthM |
number | m | the carrier | Expansion wavelength |
transmission |
number or array | Per-wavelength power transmission | ||
lossMechanism |
string | transmission | Name of the transmission loss in the budget | |
airPathM |
number | m | Length of air whose data are relative to air (absolute-index correction) | |
lengthM |
number | m | Geometric length (informational) |
Faraday rotator: non-reciprocal rotation with Verdet dispersion, optional crystal (dispersion, B-integral). More: components.md#faraday-rotators
Also accepts: nonlinearMedium (see Common key groups).
| key | type | unit | default | meaning |
|---|---|---|---|---|
rotationDeg |
number | deg | 45 | Rotation at the design wavelength |
designWavelengthM |
number | m | the carrier | Design wavelength |
verdetRadPerTM |
number | rad/(T m) | Verdet constant (with fieldT and lengthM) | |
fieldT |
number | T | Magnetic field | |
lengthM |
number | m | Crystal length | |
material |
string | Crystal (e.g. TGG) | ||
verdetDispersion |
"inverseSquare" | "none" |
inverseSquare | V ~ 1/(lambda^2 - lambda0^2) | |
verdetPoleWavelengthM |
number | m | 258e-9 | lambda0 |
direction |
number | 1 | +1 forward, -1 backward (non-reciprocal) | |
transmission |
number | 1 | Power transmission |
A single-mode fibre or waveguide: Taylor betas, a dispersion curve or a material; gamma or n2 + effective area; loss; gain; Raman; soliton and dispersive-wave diagnostics. More: fibers.md
| key | type | unit | default | meaning |
|---|---|---|---|---|
lengthM |
number | m | Fibre length Required. | |
betas |
number or array | s^k/m | Taylor coefficients [beta2, beta3, ...] at referenceWavelengthM (SI) | |
betasPsKm |
number or array | ps^k/km | Taylor coefficients [beta2, beta3, ...] in ps^k/km (pyNLO / fibre-datasheet units) | |
referenceWavelengthM |
number | m | the carrier | Wavelength of the Taylor expansion |
dispersion |
object (fiberDispersion) |
Dispersion curve {wavelengthsM, dPsNmKm | beta2S2PerM} (alternative to betas) | ||
material |
string | Bulk material for the dispersion (alternative to betas) | ||
effectiveIndex |
number | 1.45 | Mode index at the reference (sets only the absolute phase / group delay) | |
gamma |
any | 1/(W m) | Nonlinear coefficient: a number, or an expression in z (m) for a tapered fibre | |
n2 |
number | m^2/W | 2.6e-20 | Nonlinear index (with effectiveAreaM2 or modeFieldDiameterM, instead of gamma) |
effectiveAreaM2 |
number | m^2 | 1e-11 with gamma | Effective mode area |
modeFieldDiameterM |
number | m | Mode-field diameter (A_eff = pi MFD^2 / 4) | |
lossDbPerKm |
number | dB/km | 0 | Propagation loss |
loss |
object (fiberLossTable) |
Loss vs wavelength {wavelengthsM, dbPerKm} (alternative) | ||
gainDbPerM |
number | dB/m | 0 | Flat (small-signal) gain |
gain |
object (fiberGain) |
Gain spectrum {wavelengthsM, dbPerM, outputEnergyJ | outputPowerW} | ||
raman |
any | "silica" | Raman model: "silica" (Blow-Wood), "linAgrawal", "hollenbeck", "none" / false, or a delayed-response model | |
ramanFraction |
number | the model's (0.18; Lin-Agrawal 0.245) | Raman fraction | |
nonlinear |
boolean | true | false forces linear propagation | |
selfSteepening |
boolean | run setting | Self-steepening (optical shock) | |
timeResponse |
model (timeResponse) | An extra time-domain response n(t, I) | ||
replaceKerr |
boolean | false | true switches off the built-in Kerr/Raman | |
ionization |
any | false | Photo-ionisation (hollow-core gas fibres): true or an ionization object |
A spectral filter: any filter model (transmission and phase). More: system-file.md
| key | type | unit | default | meaning |
|---|---|---|---|---|
filter |
model (filter) | Filter model | ||
model |
model (filter) | Filter model (alternative key) | ||
mechanism |
string | filter | Name of the loss in the budget |
A pumped gain medium crossed once (1-D or spatial). More: gain.md
Also accepts: gainCommon (see Common key groups).
| key | type | unit | default | meaning |
|---|---|---|---|---|
ghosts |
any | false | Ghost replicas of the end faces: true / false or a ghosts object (components.md#ghost-reflections) |
Free space (air by default); linear unless nonlinear: true. More: system-file.md
Also accepts: nonlinearMedium (see Common key groups).
| key | type | unit | default | meaning |
|---|---|---|---|---|
material |
string | Air | Material name (the file's materials or a built-in) | |
lengthM |
number | m | Length Required. | |
groupDelayS |
number or array | s | Traced group delay (used instead of the material index unless overridden) | |
groupDelayYS |
number or array | s | Traced group delay of y | |
transmission |
number or array | Per-wavelength internal transmission (else the material's attenuation) | ||
dispersionSource |
"data" | "material" |
data | Use traced data or the material index | |
airPathM |
number | m | Air path whose data are relative to air | |
air |
any | gap only: this gap's air (temperatureC, pressurePa, humidity, co2ppm, and the keys of environment.air), overriding the system's environment.air (docs/reference/gases.md#air-in-the-gaps) | ||
ghosts |
any | false | Ghost replicas of the end faces: true / false or a ghosts object (components.md#ghost-reflections) |
A diffracting surface (one grating). More: system-file.md
Also accepts: beamSize (see Common key groups).
| key | type | unit | default | meaning |
|---|---|---|---|---|
mode |
"refract" | "reflect" | "diffract" |
diffract | Surface action | |
before |
string | Air | Medium before the surface | |
after |
string | Medium after (mirror: substrate/metal; omitted = ideal) | ||
aoiRad |
number or array | rad | Angle of incidence (per wavelength or scalar) | |
aoiDeg |
number or array | deg | Angle of incidence in degrees | |
coating |
model (coating) | Coating name (from coatings) or inline coating; none = bare Fresnel | ||
ripple |
any | Phase / amplitude ripple of the coating: {phaseRmsRad, amplitudeRms, maxDelayS (5e-12), seed, components (64)} -- a random ripple whose pedestal lies within +-maxDelayS (docs/reference/coatings.md#coating-ripple). Measured ripple: a table coating | ||
delayedScatter |
any | Scatter returned as delayed light: {fraction, delay: {kind: uniform|exponential|table, minS, maxS, tauS, delaysS, weights}, spectralExponent, seed}, or the analytic surface model {model: "surface", roughnessRmsM, correlationLengthM, beamRadiusM, surfaces, delay} (docs/reference/coatings.md#delayed-scatter) | ||
substrate |
any | mirror: the substrate behind the coating -- a name (from the file's substrates or the built-in catalogue, e.g. "FS-12.7mm") or {material, thicknessM, backCoating | backReflectance, wedgeDeg, orders}. Light leaking through the coating reflects from the back face and returns as a delayed echo (docs/reference/coatings.md#substrate-echoes) | ||
linesPerMm |
number | 1/mm | grating: groove density -- angular dispersion, anamorphic magnification and spatio-temporal couplings on the tracked beam | |
linesPerM |
number | 1/m | grating: groove density (alternative) | |
order |
integer | -1 | grating: diffraction order m, sin(theta_out) = sin(theta_in) + m lambda / period with signed angles in the unfolded beam | |
efficiency |
number or array | Diffraction efficiency (grating, no coating) | ||
efficiencyS |
number or array | s efficiency | ||
efficiencyP |
number or array | p efficiency | ||
kIn |
number or array | Incoming ray direction (global) for exact s/p basis transport | ||
kOut |
number or array | Outgoing ray direction | ||
normal |
number or array | Surface normal | ||
planeOfIncidenceDeg |
number | deg | 90 | s-direction angle from local x when no vectors are given Also: planeOfIncidence. |
semiDiameterM |
number | m | Hard circular aperture | |
clearApertureM |
number | m | Clear aperture (alternative) | |
aperture |
model (aperture) | Aperture model | ||
beam |
model (beam) | Beam at the surface (instead of beamRadiusM) | ||
roughnessRmsM |
number | m | Rms roughness -> total integrated scatter | |
lidt |
object (lidt) |
Damage threshold (else the coating's, else the material's) | ||
radiusOfCurvatureM |
number | m | Curved mirror: f = R/2 (off-axis: f_t = R cos(aoi)/2, f_s = R/(2 cos(aoi))) on the tracked beam and a carried profile | |
focalLengthM |
number | m | Focal length (mirror, alternative to the radius) | |
aberration |
object (aberration) |
Wavefront error / surface figure (Zernike, random figure) |
Treacy grating pair (exact dispersion; negative separation = stretcher). More: system-file.md
| key | type | unit | default | meaning |
|---|---|---|---|---|
linesPerMm |
number | 1/mm | Groove density | |
linesPerM |
number | 1/m | Groove density (alternative) | |
aoiDeg |
number | deg | Angle of incidence Required. | |
aoiRad |
number | rad | Angle of incidence | |
separationM |
number | m | Perpendicular separation (negative for a stretcher) Required. | |
order |
integer | -1 | Diffraction order | |
passes |
integer | 2 | Passes through the pair | |
efficiency |
number | 1 | Efficiency per diffraction |
A refracting surface: Fresnel or coating, clipping, polarisation basis. More: system-file.md
Also accepts: beamSize (see Common key groups).
| key | type | unit | default | meaning |
|---|---|---|---|---|
mode |
"refract" | "reflect" | "diffract" |
refract | Surface action | |
before |
string | Air | Medium before the surface | |
after |
string | Medium after (mirror: substrate/metal; omitted = ideal) | ||
aoiRad |
number or array | rad | Angle of incidence (per wavelength or scalar) | |
aoiDeg |
number or array | deg | Angle of incidence in degrees | |
coating |
model (coating) | Coating name (from coatings) or inline coating; none = bare Fresnel | ||
ripple |
any | Phase / amplitude ripple of the coating: {phaseRmsRad, amplitudeRms, maxDelayS (5e-12), seed, components (64)} -- a random ripple whose pedestal lies within +-maxDelayS (docs/reference/coatings.md#coating-ripple). Measured ripple: a table coating | ||
delayedScatter |
any | Scatter returned as delayed light: {fraction, delay: {kind: uniform|exponential|table, minS, maxS, tauS, delaysS, weights}, spectralExponent, seed}, or the analytic surface model {model: "surface", roughnessRmsM, correlationLengthM, beamRadiusM, surfaces, delay} (docs/reference/coatings.md#delayed-scatter) | ||
substrate |
any | mirror: the substrate behind the coating -- a name (from the file's substrates or the built-in catalogue, e.g. "FS-12.7mm") or {material, thicknessM, backCoating | backReflectance, wedgeDeg, orders}. Light leaking through the coating reflects from the back face and returns as a delayed echo (docs/reference/coatings.md#substrate-echoes) | ||
linesPerMm |
number | 1/mm | grating: groove density -- angular dispersion, anamorphic magnification and spatio-temporal couplings on the tracked beam | |
linesPerM |
number | 1/m | grating: groove density (alternative) | |
order |
integer | -1 | grating: diffraction order m, sin(theta_out) = sin(theta_in) + m lambda / period with signed angles in the unfolded beam | |
efficiency |
number or array | Diffraction efficiency (grating, no coating) | ||
efficiencyS |
number or array | s efficiency | ||
efficiencyP |
number or array | p efficiency | ||
kIn |
number or array | Incoming ray direction (global) for exact s/p basis transport | ||
kOut |
number or array | Outgoing ray direction | ||
normal |
number or array | Surface normal | ||
planeOfIncidenceDeg |
number | deg | 90 | s-direction angle from local x when no vectors are given Also: planeOfIncidence. |
semiDiameterM |
number | m | Hard circular aperture | |
clearApertureM |
number | m | Clear aperture (alternative) | |
aperture |
model (aperture) | Aperture model | ||
beam |
model (beam) | Beam at the surface (instead of beamRadiusM) | ||
roughnessRmsM |
number | m | Rms roughness -> total integrated scatter | |
lidt |
object (lidt) |
Damage threshold (else the coating's, else the material's) | ||
radiusOfCurvatureM |
number | m | Curved mirror: f = R/2 (off-axis: f_t = R cos(aoi)/2, f_s = R/(2 cos(aoi))) on the tracked beam and a carried profile | |
focalLengthM |
number | m | Focal length (mirror, alternative to the radius) | |
aberration |
object (aberration) |
Wavefront error / surface figure (Zernike, random figure) |
A mirror that leaks: reflected light continues, the leak is a port. More: branches.md#beam-splitters
Also accepts: elementCommon (see Common key groups).
| key | type | unit | default | meaning |
|---|---|---|---|---|
transmission |
number | 0.01 | Power transmission | |
wavelengthsM |
number or array | m | Wavelengths of transmissionSpectrum | |
transmissionSpectrum |
number or array | Power transmission at each wavelength (instead of transmission) | ||
gddFs2 |
number | fs^2 | 0 | GDD of the reflected beam |
leakGddFs2 |
number | fs^2 | 0 | GDD of the leak (substrate) |
output |
string | out | Port that continues in a Sequential system (out, leak) |
Thin lens on a carried transverse profile (chromatic with a material). More: system-file.md
| key | type | unit | default | meaning |
|---|---|---|---|---|
ghosts |
any | false | Ghost replicas of the end faces: true / false or a ghosts object (components.md#ghost-reflections) | |
focalLengthM |
number | m | Focal length at the carrier Required. | |
material |
string | Lens glass (chromatic focal length) | ||
medium |
string | Air | Surrounding medium | |
thicknessM |
number | m | 0 | Glass thickness (adds its dispersion) |
focalLengthXM |
number | m | Focal length in x (cylindrical / astigmatic) | |
focalLengthYM |
number | m | Focal length in y | |
aberration |
object (aberration) |
Wavefront error |
A thin mask on the carried transverse profile: axicon, Fresnel zone plate, vortex phase plate, slits, or an amplitude / phase map from a file. More: transverse.md#masks
| key | type | unit | default | meaning |
|---|---|---|---|---|
kind |
"axicon" | "zonePlate" | "vortex" | "slits" | "file" |
Mask Required. | ||
coneAngleRad |
number | rad | axicon: deflection angle (phase -k r sin(angle)) | |
focalLengthM |
number | m | zonePlate: first-order focal length at the design wavelength | |
binaryPhase |
boolean | false | zonePlate: closed zones shift by pi instead of blocking | |
designWavelengthM |
number | m | the carrier | zonePlate: design wavelength; file: wavelength of phase_rad |
charge |
integer | 1 | vortex: topological charge l (phase l phi) | |
count |
integer | 2 | slits: number of slits | |
widthM |
number | m | slits: slit width | |
separationM |
number | m | slits: centre-to-centre distance | |
heightM |
number | m | unlimited | slits: height in y |
file |
string | file: NPZ with x_m, y_m (or r_m), amplitude, and optionally phase_rad; relative to the system file | ||
decenterXM |
number | m | Decentre in x | |
decenterYM |
number | m | Decentre in y |
A reflecting surface: coating, AOI, s/p phases, curvature. More: system-file.md
Also accepts: beamSize (see Common key groups).
| key | type | unit | default | meaning |
|---|---|---|---|---|
mode |
"refract" | "reflect" | "diffract" |
reflect | Surface action | |
before |
string | Air | Medium before the surface | |
after |
string | Medium after (mirror: substrate/metal; omitted = ideal) | ||
aoiRad |
number or array | rad | Angle of incidence (per wavelength or scalar) | |
aoiDeg |
number or array | deg | Angle of incidence in degrees | |
coating |
model (coating) | Coating name (from coatings) or inline coating; none = bare Fresnel | ||
ripple |
any | Phase / amplitude ripple of the coating: {phaseRmsRad, amplitudeRms, maxDelayS (5e-12), seed, components (64)} -- a random ripple whose pedestal lies within +-maxDelayS (docs/reference/coatings.md#coating-ripple). Measured ripple: a table coating | ||
delayedScatter |
any | Scatter returned as delayed light: {fraction, delay: {kind: uniform|exponential|table, minS, maxS, tauS, delaysS, weights}, spectralExponent, seed}, or the analytic surface model {model: "surface", roughnessRmsM, correlationLengthM, beamRadiusM, surfaces, delay} (docs/reference/coatings.md#delayed-scatter) | ||
substrate |
any | mirror: the substrate behind the coating -- a name (from the file's substrates or the built-in catalogue, e.g. "FS-12.7mm") or {material, thicknessM, backCoating | backReflectance, wedgeDeg, orders}. Light leaking through the coating reflects from the back face and returns as a delayed echo (docs/reference/coatings.md#substrate-echoes) | ||
linesPerMm |
number | 1/mm | grating: groove density -- angular dispersion, anamorphic magnification and spatio-temporal couplings on the tracked beam | |
linesPerM |
number | 1/m | grating: groove density (alternative) | |
order |
integer | -1 | grating: diffraction order m, sin(theta_out) = sin(theta_in) + m lambda / period with signed angles in the unfolded beam | |
efficiency |
number or array | Diffraction efficiency (grating, no coating) | ||
efficiencyS |
number or array | s efficiency | ||
efficiencyP |
number or array | p efficiency | ||
kIn |
number or array | Incoming ray direction (global) for exact s/p basis transport | ||
kOut |
number or array | Outgoing ray direction | ||
normal |
number or array | Surface normal | ||
planeOfIncidenceDeg |
number | deg | 90 | s-direction angle from local x when no vectors are given Also: planeOfIncidence. |
semiDiameterM |
number | m | Hard circular aperture | |
clearApertureM |
number | m | Clear aperture (alternative) | |
aperture |
model (aperture) | Aperture model | ||
beam |
model (beam) | Beam at the surface (instead of beamRadiusM) | ||
roughnessRmsM |
number | m | Rms roughness -> total integrated scatter | |
lidt |
object (lidt) |
Damage threshold (else the coating's, else the material's) | ||
radiusOfCurvatureM |
number | m | Curved mirror: f = R/2 (off-axis: f_t = R cos(aoi)/2, f_s = R/(2 cos(aoi))) on the tracked beam and a carried profile | |
focalLengthM |
number | m | Focal length (mirror, alternative to the radius) | |
aberration |
object (aberration) |
Wavefront error / surface figure (Zernike, random figure) |
A pixelated thin phase / amplitude modulator (spatial light modulator, deformable-mirror surface, tile mask) on the carried transverse profile: a cell grid with a fill factor, gaps, quantisation, phase wrapping, cross-talk and a stated chromatic rule. More: modulator.md
| key | type | unit | default | meaning |
|---|---|---|---|---|
cellsX |
integer | from the map | Cells along x | |
cellsY |
integer | from the map | Cells along y | |
pitchXM |
number | m | Cell pitch along x Required. | |
pitchYM |
number | m | pitchXM | Cell pitch along y |
offsetXM |
number | m | 0 | Centre of the array in x |
offsetYM |
number | m | 0 | Centre of the array in y |
rotationRad |
number | rad | 0 | Rotation of the array about its centre |
phaseRad |
any | rad | Commanded phase at designWavelengthM: an array [cellsX][cellsY] or a callback "@name" f(x, y, z) (cell centres, z = 0) | |
opdM |
any | m | Commanded optical path instead of phaseRad (same forms) | |
amplitude |
any | 1 | Amplitude transmission per cell (same forms) | |
file |
string | NPZ with phase_rad or opd_m, and amplitude, shaped [cellsX][cellsY]; relative to the system file | ||
designWavelengthM |
number | m | the carrier | Wavelength at which phaseRad holds |
chromatic |
"opd" | "phaseAtDesign" | "fixedPhase" | "index" |
opd | opd (also phaseAtDesign): the written phase is an optical path, phase = phaseRad * omega / omega_design (a wrapped map is a grating); fixedPhase: the phase does not change with frequency; index: phase = phaseRad * omega dn(omega) / (omega_design dn(omega_design)), a liquid-crystal cell with a dispersive index modulation dn | |
deltaIndexCauchy |
number or array | chromatic index: dn = A + B / lambda^2 + C / lambda^4 as [A, B (m^2), C (m^4)]; only the ratio dn(lambda) / dn(design) matters | ||
deltaIndex |
number or array | chromatic index: a table of dn (linear in lambda between points), with deltaIndexWavelengthsM | ||
deltaIndexWavelengthsM |
number or array | m | Wavelengths of the deltaIndex table | |
fillFactor |
number | 1 | Active fraction of the pitch in x and y (0-1] | |
gapTransmission |
number | 0 | Amplitude transmission of the gaps | |
outsideTransmission |
number | 0 | Amplitude transmission outside the array | |
zeroOrderLeak |
number | 0 | Amplitude fraction eta that passes unmodulated (phase 0) inside active cells: t = a [(1 - eta) e^(i phi) + eta]; a flat map stays lossless | |
crosstalkSigmaCells |
number | 0 | Gaussian fringing-field cross-talk, standard deviation in cells (applied to the written phase and amplitude) | |
crosstalkKernel |
number or array | Explicit cross-talk kernel in cells (odd length, centre weight in the middle, normalised to unit sum), applied along x and along y to the written phase and amplitude; overrides crosstalkSigmaCells; weights must be >= 0 | ||
quantisationLevels |
integer | 0 | Phase levels over phaseWrapRad (2 pi if that is 0); 0 = continuous | |
phaseWrapRad |
number | rad | 0 | Wrap the commanded phase to [0, phaseWrapRad); 0 = no wrapping |
A neutral-density filter (absorptive or reflective): OD or OD(lambda), substrate, ghosts. More: components.md#ndfilter
Also accepts: nonlinearMedium, beamSize (see Common key groups).
| key | type | unit | default | meaning |
|---|---|---|---|---|
material |
string | N-BK7 (absorptive) / FusedSilica (reflective) | Substrate | |
thicknessM |
number | m | 2e-3 / 1e-3 | Thickness |
aoiDeg |
number | deg | 0 | Angle of incidence |
aoiRad |
number | rad | Angle of incidence | |
planeOfIncidenceDeg |
number | deg | 90 | s-direction angle from x |
medium |
string | Air | Surrounding medium | |
coating |
model (coating) | Coating of both surfaces | ||
coatingFront |
model (coating) | Front coating | ||
coatingBack |
model (coating) | Back coating | ||
wedgeDeg |
number | deg | 0 | Wedge angle (tilts the ghosts) |
ghosts |
any | false | true / false or a ghosts object | |
delayedScatter |
any | Bulk back-scatter returned as delayed light: {fraction, delay: {kind: uniform, maxS (default 2 n_g d cos(theta)/c)}, spectralExponent, seed}, or the analytic surface model {model: "surface", roughnessRmsM, correlationLengthM, beamRadiusM, surfaces (default 2), delay} (docs/reference/coatings.md#delayed-scatter) | ||
od |
number or array | Optical density (number, or per wavelength) | ||
kind |
"absorptive" | "reflective" |
absorptive | ND type (ndFilter) |
A mode-locked laser that replaces the incoming beam (parametric, Haus or cavity model). More: oscillators.md
| key | type | unit | default | meaning |
|---|---|---|---|---|
model |
"parametric" | "haus" | "cavity" |
Model Required. | ||
repRateHz |
number | Hz | Repetition rate | |
cavityLengthM |
number | m | Cavity length (alternative) | |
ring |
boolean | false | Ring cavity | |
outputCoupler |
number | Output-coupler transmission | ||
output |
object (pulse) |
parametric: the output pulse (run-spec pulse keys) | ||
gain |
object | haus: lumped gain {smallSignalGain|smallSignalLnGain, saturationEnergyJ|saturationPowerW, shape, centerWavelengthM, bandwidthM, fluenceSaturationEnergyJ}; cavity: a gain medium (gain-element keys) | ||
absorber |
object | haus: saturable absorber (absorber parameters) | ||
lossPerRoundTrip |
number | Lumped loss | ||
gddFs2 |
number | fs^2 | Round-trip GDD | |
todFs3 |
number | fs^3 | Round-trip TOD | |
gddS2 |
number | s^2 | Round-trip GDD | |
todS3 |
number | s^3 | Round-trip TOD | |
spmRadPerW |
number | rad/W | Lumped SPM delta | |
elements |
array of element |
cavity: elements run every round trip | ||
start |
"noise" | "pulse" |
Start from quantum noise or from the run's pulse | ||
seed |
integer | Noise seed | ||
seedEnergyJ |
number | J | Energy of the starting pulse | |
roundTrips |
any | Maximum round trips, or {max} | ||
checkEvery |
integer | 25 | Convergence check interval | |
tolerance |
number | Convergence tolerance | ||
gridPoints |
integer | 4096 | Samples the oscillator iterates on | |
relaxation |
number | 0.2 | cavity: inversion relaxation per round trip | |
passesPerRoundTrip |
integer | 2 | cavity: crystal passes per round trip | |
snapshots |
integer | Evolution snapshots kept |
A plane-parallel plate or window: two surfaces, bulk dispersion, absorption and nonlinearity, ghost replicas. More: components.md#plate
Also accepts: nonlinearMedium, beamSize (see Common key groups).
| key | type | unit | default | meaning |
|---|---|---|---|---|
material |
string | Plate material Required. | ||
thicknessM |
number | m | Thickness Required. | |
aoiDeg |
number | deg | 0 | Angle of incidence |
aoiRad |
number | rad | Angle of incidence | |
planeOfIncidenceDeg |
number | deg | 90 | s-direction angle from x |
medium |
string | Air | Surrounding medium | |
coating |
model (coating) | Coating of both surfaces | ||
coatingFront |
model (coating) | Front coating | ||
coatingBack |
model (coating) | Back coating | ||
wedgeDeg |
number | deg | 0 | Wedge angle (tilts the ghosts) |
ghosts |
any | false | true / false or a ghosts object | |
delayedScatter |
any | Bulk back-scatter returned as delayed light: {fraction, delay: {kind: uniform, maxS (default 2 n_g d cos(theta)/c)}, spectralExponent, seed}, or the analytic surface model {model: "surface", roughnessRmsM, correlationLengthM, beamRadiusM, surfaces (default 2), delay} (docs/reference/coatings.md#delayed-scatter) | ||
od |
number or array | (ndFilter only) | ||
kind |
"absorptive" | "reflective" |
absorptive | ND type (ndFilter) |
A linear polariser. More: system-file.md
| key | type | unit | default | meaning |
|---|---|---|---|---|
axisDeg |
number | deg | 0 | Transmission axis from x |
axisRad |
number | rad | Transmission axis | |
extinctionRatio |
number | 1e5 | Extinction ratio | |
transmission |
number | 1 | Transmission along the axis |
A polarising splitter: p (x) mostly transmitted, s (y) mostly reflected. More: branches.md#beam-splitters
Also accepts: elementCommon (see Common key groups).
| key | type | unit | default | meaning |
|---|---|---|---|---|
transmissionP |
number | 1 | Power transmission of x | |
reflectivityS |
number | 1 | Power reflectivity of y | |
output |
string | c | Port that continues in a Sequential system (c, d) | |
side |
integer | 1 | 2 reverses the sign of r |
A prism in air: two refracting faces and the glass on the chief ray; disperses the tracked beam. More: components.md#spatio-temporal-couplings
| key | type | unit | default | meaning |
|---|---|---|---|---|
material |
string | Prism glass Required. | ||
apexDeg |
number | deg | Apex angle Required. | |
aoiDeg |
number | deg | Signed angle of incidence on the first face Required. | |
pathM |
number | m | 0 | Glass path of the carrier's ray |
medium |
string | Air | Surrounding medium | |
planeOfIncidenceDeg |
number | deg | 90 | s-direction angle from local x Also: planeOfIncidence. |
fresnel |
boolean | true | Fresnel losses of the two faces |
A named place in the beam (does nothing; snapshots and instruments). More: system-file.md
No parameters of its own.
A passive resonator around nested elements: round-trip matrix, stability, eigenmode on the tracked beam; with a transverse grid, the Fox-Li mode and diffraction loss. More: oscillators.md#resonators
| key | type | unit | default | meaning |
|---|---|---|---|---|
elements |
any | The elements of one pass (gaps, lenses, mirrors, apertures ...) Required. | ||
geometry |
"ring" | "linear" |
ring | ring: once per round trip; linear: forward and back, end elements once | |
transverse |
object (transverse) |
Grid of the Fox-Li iteration (given to nested gaps and bulks without one) | ||
roundTrips |
any | {max (400), tolerance (1e-6)} |
Rotates the polarisation (and the image). More: system-file.md
| key | type | unit | default | meaning |
|---|---|---|---|---|
angleDeg |
number | deg | 0 | Rotation angle |
angleRad |
number | rad | Rotation angle |
Saturable absorber: slow (SESAM), fast or Kerr-lens loss modulation. More: oscillators.md#saturable-absorbers
Also accepts: absorberParams (see Common key groups).
| key | type | unit | default | meaning |
|---|---|---|---|---|
absorber |
model (absorber) | Absorber model (kind slow / fast / kerrLens and its parameters), or the parameters directly on the element |
A parametric phase-only liquid-crystal spatial light modulator: pixels, fill factor, grey levels through a voltage-to-phase curve, dispersive birefringence, fringing cross-talk. Compiles to a modulator. Generic: no vendor data. More: plugins/ao.md#slm
| key | type | unit | default | meaning |
|---|---|---|---|---|
pixelsX |
integer | from the map | Pixels along x | |
pixelsY |
integer | from the map | Pixels along y | |
pitchM |
number | m | Pixel pitch Required. | |
pitchYM |
number | m | pitchM | Pixel pitch along y |
offsetXM |
number | m | 0 | Centre of the panel in x |
offsetYM |
number | m | 0 | Centre of the panel in y |
rotationRad |
number | rad | 0 | Rotation of the panel |
fillFactor |
number | 1 | Active fraction of the pitch (0-1] | |
gapTransmission |
number | 0 | Amplitude transmission of the gaps | |
outsideTransmission |
number | 0 | Amplitude transmission outside the panel | |
greyLevels |
integer | 256 | Number of grey levels | |
lutKind |
"linear" | "tanh" | "table" |
linear | Voltage-to-phase curve: linear (maxPhaseRad k / levels), tanh (S-shaped, lutSteepness) or table (lutPhaseRad) | |
maxPhaseRad |
number | rad | 2 pi | Phase range of the curve at the design wavelength |
lutSteepness |
number | 2 | tanh curve steepness | |
lutPhaseRad |
number or array | rad | table curve: phase of each grey level (non-decreasing) | |
greyLevel |
any | Grey level of each pixel [pixelsX][pixelsY] | ||
phaseTargetRad |
any | rad | Wanted phase [pixelsX][pixelsY]: wrapped to 2 pi and mapped to the nearest grey level of the curve | |
file |
string | NPZ with grey_level or phase_target_rad [pixelsX][pixelsY]; relative to the system file | ||
designWavelengthM |
number | m | the carrier | Wavelength at which the curve holds |
dispersion |
"liquidCrystal" | "none" |
liquidCrystal | liquidCrystal: phase scales with omega dn(omega) (the written 2 pi reset is only 2 pi at the design wavelength); none: an achromatic optical path | |
deltaIndexCauchy |
number or array | Birefringence dn = A + B/lambda^2 + C/lambda^4 as [A, B (m^2), C (m^4)]; default a GENERIC nematic preset (unverified) | ||
crosstalkSigmaCells |
number | 0 | Gaussian fringing-field cross-talk, standard deviation in pixels | |
crosstalkKernel |
number or array | Explicit cross-talk kernel (odd length, non-negative) | ||
zeroOrderLeak |
number | 0 | Amplitude fraction that passes unmodulated |
A pixelated spectral phase / amplitude mask in the Fourier plane of a 4f line (1-D SLM pulse shaper), as a linear spectral transfer function. The programmed group delay is kept in the transfer (the pulse moves inside the time window). More: plugins/ao.md#spectralshaper
| key | type | unit | default | meaning |
|---|---|---|---|---|
pixels |
integer | Number of pixels Required. | ||
pixelPitchM |
number | m | Pixel pitch Required. | |
fillFactor |
number | 1 | Active fraction of the pitch (0-1] | |
gapTransmission |
number | 0 | Amplitude transmission of the gaps | |
outsideTransmission |
number | 0 | Amplitude transmission beyond the array | |
centerWavelengthM |
number | m | the carrier | Wavelength at the centre of the array |
offsetM |
number | m | 0 | Position of the array centre relative to the centre wavelength's focus |
dispersionMPerM |
number | from the grating | Focal-plane position per wavelength (m of position per m of wavelength; 1e6 = 1 mm/nm) | |
gratingLinesPerMm |
number | 1/mm | Grating line density | |
incidenceAngleRad |
number | rad | 0 | Angle of incidence on the grating |
order |
number | 1 | Diffraction order | |
focalLengthM |
number | m | Focal length of the 4f lens | |
spotRadiusM |
number | m | lambda f / (pi inputBeamRadiusM) | 1/e^2 field radius of the focused monochromatic spot |
inputBeamRadiusM |
number | m | Beam radius at the grating (sets the spot size) | |
phaseRad |
any | rad | 0 | Phase per pixel |
amplitude |
any | 1 | Amplitude transmission per pixel | |
phaseWrapRad |
number | rad | 2 pi | Wrap the phase to [0, phaseWrapRad); 0 = no wrapping |
greyLevels |
integer | 0 | Phase levels over 2 pi; 0 = continuous |
Thin-film polariser at its design angle: physical quarter-wave stack (TMM) or ideal, transmitted (p) or reflected (s) port. More: components.md#thin-film-polarisers
Also accepts: nonlinearMedium, beamSize (see Common key groups).
| key | type | unit | default | meaning |
|---|---|---|---|---|
model |
"stack" | "ideal" |
stack | Coating model | |
output |
"transmitted" | "reflected" |
transmitted | Port that continues | |
aoiDeg |
number | deg | 56 | Angle of incidence |
aoiRad |
number | rad | Angle of incidence | |
axisDeg |
number | deg | 0 | Transmission (p) axis from x |
axisRad |
number | rad | Transmission axis | |
substrate |
string | FusedSilica | Substrate | |
thicknessM |
number | m | 3e-3 | Substrate thickness |
medium |
string | Air | Surrounding medium | |
designWavelengthM |
number | m | the carrier | Stack design wavelength |
pairs |
integer | 12 | HL pairs | |
high |
string | HfO2 | High-index film | |
low |
string | SiO2_film | Low-index film | |
coatingBack |
model (coating) | Back-surface coating | ||
transmissionP |
number | 0.98 | ideal: Tp | |
transmissionS |
number | 1e-3 | ideal: Ts | |
reflectanceS |
number | 0.998 | ideal: Rs | |
reflectanceP |
number | 1 - Tp | ideal: Rp |
Fittable physical changes to the beam: spectral phase / amplitude, energy, polarisation, contrast (replicas, phase noise, pedestals), wavefront. More: plugins/fitting.md#transform-elements
| key | type | unit | default | meaning |
|---|---|---|---|---|
operators |
array of fitting:operator |
The operators, applied in order Required. | ||
regularization |
number | the run's backward.regularization | Backward propagation: relative Tikhonov level for inverting this element |
Your own function of the main beam's spectrum (Python, C#, C). More: system-file.md
| key | type | unit | default | meaning |
|---|---|---|---|---|
callback |
model (callback) | "@name" of a registered element callback Required. | ||
params |
any | Any JSON passed to the function | ||
lengthM |
number | m | Length (informational) |
A wavefront error (Zernike, random figure) and optional focal power at one plane. More: components.md#aberrations
| key | type | unit | default | meaning |
|---|---|---|---|---|
aberration |
object (aberration) |
The wavefront error | ||
zernikeNollWaves |
number or array | waves | Zernike coefficients (flat form) | |
radiusM |
number | m | Normalisation radius (flat form) | |
referenceWavelengthM |
number | m | Wavelength of the coefficients | |
terms |
object | Zernike terms by name | ||
randomRmsM |
number | m | Random figure rms | |
correlationLengthM |
number | m | Correlation length | |
seed |
integer | Random seed | ||
focalLengthM |
number | m | Focal power | |
focalLengthXM |
number | m | Focal length in x | |
focalLengthYM |
number | m | Focal length in y | |
beamRadiusM |
number | m | Beam radius for the 1-D Strehl estimate |
A waveplate: dispersionless design model, or a thick birefringent plate (multi-order, zero-order, compound) with "material". More: components.md#waveplates
| key | type | unit | default | meaning |
|---|---|---|---|---|
plate |
"half" | "quarter" |
half | Plate type | |
retardanceWaves |
number | waves | Retardance at the design wavelength | |
axisDeg |
number | deg | 0 | Fast-axis angle from x |
axisRad |
number | rad | Fast-axis angle | |
designWavelengthM |
number | m | the carrier | Design wavelength |
material |
string | Birefringent crystal: Quartz, MgF2, Sapphire, Calcite, YVO4, aBBO (enables the thick-plate model) | ||
indexOrdinary |
model (index) | Ordinary index (user crystal) | ||
indexExtraordinary |
model (index) | Extraordinary index (user crystal) | ||
construction |
"single" | "compound" |
single | One plate, or a compound zero-order pair with crossed axes | |
thicknessM |
number | m | Plate thickness (single) | |
order |
integer | 0 | Order m: retardance = m + retardanceWaves (single, when no thickness) | |
plateThicknessM |
number | m | 1e-3 | Thickness of the thicker plate (compound) |
run.instruments[], by kind. Every instrument also accepts the common instrument keys.
Intensity or interferometric autocorrelation. More: instruments.md#autocorrelator
| key | type | unit | default | meaning |
|---|---|---|---|---|
type |
"intensity" | "interferometric" |
intensity | AC type | |
rangeS |
number | s | 3 x FWHM | Delay range (interferometric) |
points |
integer | 4001 | Output points (interferometric) | |
resolutionS |
number | s | 0 | Delay resolution of the scan (Gaussian FWHM, intensity AC) |
shgAcceptanceFwhmM |
number | m | 0 | Phase-matching acceptance of the SHG crystal (FWHM of the SH wavelength window); 0: unlimited |
acceptancePoints |
integer | 512 | Grid of the finite-acceptance computation | |
maxN |
integer | 65536 | Grid cap for the computation |
Fluence vs radius (or x/y cuts), radius, M^2, true peak fluence. More: instruments.md#beamprofile
No parameters of its own.
A camera: imaging plane (near / far / relay) + sensor. More: instruments.md#camera
Also accepts: sensorFlat (see Common key groups).
| key | type | unit | default | meaning |
|---|---|---|---|---|
imaging |
object (imaging) |
What the sensor sees | ||
sensor |
object (sensor) |
The detector | ||
plane |
string | Shortcut for imaging.plane | ||
bandM |
number or array | m | [min, max] band-pass filter |
Ideal compressor: GDD/TOD that maximise peak power. More: instruments.md#compressor
| key | type | unit | default | meaning |
|---|---|---|---|---|
optimizeTod |
boolean | true | Also optimise TOD | |
maxN |
integer | 131072 | Grid cap | |
points |
integer | 4096 | Output points |
Intensity in dB, pre/post-pulse contrast, pedestal fraction (ideal). More: instruments.md#contrast
| key | type | unit | default | meaning |
|---|---|---|---|---|
resolutionS |
number | s | Temporal resolution | |
windowS |
number | s | 5 x FWHM | Pre/post window |
dynamicRangeDb |
number | dB | 120 | Noise floor |
points |
integer | 8192 | Output points |
Energies and photon numbers of every field leaving an active element. More: instruments.md#conversion
No parameters of its own.
Third-order (SHG-gated) cross-correlator: high-dynamic-range contrast with noise floor, resolution, scan grid, polarisation. More: instruments.md#crosscorrelator
| key | type | unit | default | meaning |
|---|---|---|---|---|
rangeS |
number or array | s | the simulated window | [min, max] delay scan (relative to the peak) |
stepS |
number | s | Coarse step | |
points |
integer | 2001 | Coarse points (when no step) | |
fineStepS |
number | s | Fine step near zero delay | |
fineRangeS |
number | s | Half-range of the fine steps | |
dynamicRangeDb |
number | dB | 110 | Noise floor below the peak |
noiseFloor |
number | Noise floor (relative to the peak; alternative to dynamicRangeDb) | ||
noise |
boolean | true | Fluctuating detector background (else a flat floor) | |
seed |
integer | 1 | Noise seed | |
saturationLevel |
number | 0 | Detector saturation: the reading (signal x attenuation + floor) is clipped at this level, relative to the unattenuated peak (0 or omitted: none) | |
segments |
any | Attenuation-range stitching: a list of {fromS, toS, attenuation (or gain), noiseFloor} -- the signal in that delay range is measured through the attenuation (power factor) and divided by it afterwards, so the floor rises as 1/attenuation and saturation moves up accordingly | ||
resolutionS |
number | s | 0 | Extra temporal resolution (Gaussian FWHM) |
shgAcceptanceFwhmM |
number | m | SHG crystal acceptance (SH wavelength FWHM) | |
polarization |
any | "total" | "total", "x", "y" or an analyser angle in degrees | |
gateArm |
any | Elements in the gate arm only: {elements: [...], materials: {...}}. The second-harmonic gate (at lambda0/2) passes them before the sum-frequency step; the probe channel does not. Window: the instrument's (grid.windowS or grid.tail) must hold the replicas | ||
probeDelaysS |
number or array | s | Delays at which to report the contrast in dB | |
windowS |
number | s | 5 x FWHM | Pre/post window around the peak |
Re-runs a crystal for aux delays: output energy vs delay. More: instruments.md#delayscan
| key | type | unit | default | meaning |
|---|---|---|---|---|
fromS |
number | s | -1e-12 | First delay |
toS |
number | s | 1e-12 | Last delay |
points |
integer | 21 | Points |
Dispersion scan: SHG spectrum vs glass insertion or GDD. More: instruments.md#dscan
| key | type | unit | default | meaning |
|---|---|---|---|---|
material |
string | Wedge material (with insertionM) | ||
insertionM |
number or array | m | [min, max] insertion | |
gddRangeS2 |
number or array | s^2 | [min, max] GDD (alternative) | |
steps |
integer | 101 | Scan steps | |
spectralResolutionM |
number | m | 0 | Spectrometer resolution (Gaussian FWHM at the SH wavelength) |
shgAcceptanceFwhmM |
number | m | 0 | Phase-matching acceptance of the SHG crystal (FWHM of the SH wavelength window); 0: unlimited |
Pulse energy and average power (optionally behind a polariser / band). More: instruments.md#energymeter
| key | type | unit | default | meaning |
|---|---|---|---|---|
rangeM |
number or array | m | [min, max] wavelength band | |
polarizerDeg |
number | deg | Analyser angle | |
repRateHz |
number | Hz | the pulse's repetition rate | Repetition rate for average power |
Temporal phase, instantaneous wavelength, group delay, CEP (virtual). More: instruments.md#virtual-instruments
| key | type | unit | default | meaning |
|---|---|---|---|---|
threshold |
number | 1e-3 | Relative intensity threshold | |
realField |
boolean | false | Also the real field on the optical cycle | |
maxN |
integer | 8192 | Grid cap |
SHG, PG or self-diffraction (SD) FROG trace. More: instruments.md#frog
| key | type | unit | default | meaning |
|---|---|---|---|---|
type |
"shg" | "pg" | "sd" |
shg | FROG geometry: shg (E E), pg (E |E|^2), sd (E^2 E*) | |
points |
integer | 256 | Delay and frequency points | |
spectralResolutionM |
number | m | 0 | Spectrometer resolution (Gaussian FWHM at the signal wavelength) |
shgAcceptanceFwhmM |
number | m | 0 | Phase-matching acceptance of the SHG crystal (FWHM of the SH wavelength window); 0: unlimited |
Low-conversion phase-matching curve of a crystal vs angle, wavelength, temperature or period. More: instruments.md#phasematchingcurve
| key | type | unit | default | meaning |
|---|---|---|---|---|
scan |
"angle" | "wavelength" | "temperature" | "period" |
angle | Scan variable | |
rangeDeg |
number | deg | 1 | Angle range |
rangeM |
number | m | Wavelength or period range | |
rangeK |
number | K | 20 | Temperature range |
points |
integer | 201 | Points |
Stokes parameters, integrated and vs wavelength. More: instruments.md#polarimeter
| key | type | unit | default | meaning |
|---|---|---|---|---|
points |
integer | 1024 | Output points | |
extinctionRatio |
number | 0 | Power extinction ratio of the analysers (0: perfect); Stokes readings scale by (1 - e) / (1 + e) |
Every scalar pulse metric. More: instruments.md#pulsesummary
No parameters of its own.
Detected power vs time with a rise time / bandwidth. More: instruments.md#scope
| key | type | unit | default | meaning |
|---|---|---|---|---|
riseTimeS |
number | s | 0 | 10-90 % rise time of the detection |
bandwidthHz |
number | Hz | Bandwidth (alternative: rise time = 0.35 / bandwidth) | |
points |
integer | 4096 | Output points |
Single-shot time-to-space cross-correlator: two beams cross in a nonlinear crystal and the signal across the overlap is a delay trace (window and resolution from the geometry). More: instruments.md#singleshotcorrelator
| key | type | unit | default | meaning |
|---|---|---|---|---|
crossingAngleDeg |
number | deg | Full angle between the pulse under test and the sampling beam INSIDE the crystal (or give externalCrossingAngleDeg) | |
externalCrossingAngleDeg |
number | deg | Full angle between the beams in air; both hit a face normal to their bisector, each refracts with its own index (alternative to crossingAngleDeg) | |
beamWidthM |
number | m | Width W of the beam overlap across the signal (sets the delay window T = W x slope) Required. | |
crystalLengthM |
number | m | 0 | Crystal length L along the signal (sets the geometric resolution L |n_T cos a - n_S cos b| / c) |
crystal |
string | "BBO" | Crystal of the library whose ordinary (x) index gives the angles and the delay slope | |
indexPt |
number | Refractive index at the pulse under test instead of the crystal's (also the group index unless groupIndexPt) | ||
indexSampling |
number | Index at the sampling pulse | ||
groupIndexPt |
number | Group index at the pulse under test (with indexPt) | ||
groupIndexSampling |
number | Group index at the sampling pulse (with indexSampling) | ||
delayIndex |
"group" | "phase" |
group | Index in the depth term of the resolution: group (the crystal's dispersion through dk_z/d omega; default) or phase (the form of Ma et al.'s eq. (2)); the window uses the phase indices either way | |
samplingPulse |
"secondHarmonic" | "fundamental" |
secondHarmonic | secondHarmonic: the sampling pulse is the second harmonic of the pulse (third-order contrast correlator); fundamental: the pulse itself (single-shot autocorrelator) | |
points |
integer | 256 | Camera pixels across the overlap | |
delayOffsetS |
number | s | 0 | Delay at the centre of the overlap |
dynamicRangeDb |
number | dB | 60 | Camera floor below the peak |
noiseFloor |
number | Floor relative to the peak (alternative to dynamicRangeDb) | ||
noise |
boolean | true | Fluctuating floor (else flat) | |
seed |
integer | 1 | Noise seed | |
windowAroundPeakS |
number | s | 5 x FWHM | Pre / post-pulse contrast is read outside this distance from the peak |
I(r, t) and S(r, lambda) across the beam (virtual). More: instruments.md#virtual-instruments
| key | type | unit | default | meaning |
|---|---|---|---|---|
points |
integer | 512 | Time samples | |
maxRadiusM |
number | m | 2.5 w | Largest radius |
axis |
"x" | "y" |
x | Cartesian cut axis |
Spectrum vs wavelength with resolution. More: instruments.md#spectrometer
| key | type | unit | default | meaning |
|---|---|---|---|---|
resolutionM |
number | m | 0 | Gaussian resolution FWHM |
rangeM |
number or array | m | the spectrum's support | [min, max] wavelength range |
points |
integer | 2048 | Output points | |
wavelengthOffsetM |
number | m | 0 | Wavelength calibration error: added to the reported axis |
polarizerDeg |
number | deg | Analyser angle | |
normalize |
"peak" | "area" | "none" | true | false |
peak | Normalisation of the output spectrum: peak = 1, area = 1 (per metre), none = spectral energy density in J/m; true = peak, false = none | |
db |
boolean | false | Also report the spectrum in dB (relative to its peak) |
Shack-Hartmann-like wavefront sensor: map, Zernike terms, curvature. More: instruments.md#wavefrontsensor
| key | type | unit | default | meaning |
|---|---|---|---|---|
pixels |
any | 64 | Lenslets | |
wavelengthM |
number | m | spectral centroid | Reconstruction wavelength |
threshold |
number | 0.01 | Fluence threshold relative to the peak | |
apertureRadiusM |
number | m | 1/e^2 radius | Pupil radius |
halfWidthM |
number | m | Map half-width | |
zernikeTerms |
integer | 15 | Zernike terms (max 36) | |
propagateM |
number | m | Propagation before the sensor | |
bandM |
number or array | m | [min, max] band |
Wigner distribution or spectrogram (virtual). More: instruments.md#virtual-instruments
| key | type | unit | default | meaning |
|---|---|---|---|---|
points |
integer | 256 | Time rows | |
gateFwhmS |
number | s | 0 | > 0: spectrogram gate |
maxN |
integer | 65536 | Grid cap |
Cross-correlation FROG (sum-frequency, SFG-FROG): the pulse gated by a known reference pulse. More: instruments.md#frog
| key | type | unit | default | meaning |
|---|---|---|---|---|
reference |
any | The known gate pulse, as a run-spec pulse object (shape, centerWavelengthM, durationFwhmS, gddS2, ...); any carrier. Required | ||
points |
integer | 256 | Delay and frequency points | |
spectralResolutionM |
number | m | 0 | Spectrometer resolution (Gaussian FWHM at the signal wavelength) |
Keys shared by several components.
Saturable-absorber parameters.
| key | type | unit | default | meaning |
|---|---|---|---|---|
kind |
"slow" | "fast" | "kerrLens" |
slow | Absorber type | |
modulationDepth |
number | Saturable loss q0 | ||
nonsaturableLoss |
number | Non-saturable loss | ||
recoveryTimeS |
number | s | Recovery time (slow) | |
saturationFluenceJPerM2 |
number | J/m^2 | Saturation fluence (slow) | |
saturationEnergyJ |
number | J | Saturation energy (slow, alternative) | |
saturationPowerW |
number | W | Saturation power (fast) | |
saturationIntensityWPerM2 |
number | W/m^2 | Saturation intensity (fast) | |
kappaPerW |
number | 1/W | Kerr-lens loss slope | |
spotRadiusM |
number | m | Spot radius on the absorber | |
areaM2 |
number | m^2 | Spot area | |
beam |
model (beam) | Beam on the absorber |
Beam size at a surface.
| key | type | unit | default | meaning |
|---|---|---|---|---|
beamRadiusM |
number or array | m | 1/e^2 beam radius (per wavelength) | |
beamRadiusXM |
number or array | m | Beam radius in x | |
beamRadiusYM |
number or array | m | Beam radius in y | |
decenterXM |
number | m | Beam decentre in x | |
decenterYM |
number | m | Beam decentre in y |
Keys every element accepts.
| key | type | unit | default | meaning |
|---|---|---|---|---|
id |
string | Unique id Required. | ||
type |
string | Element type (omit with sameAs) Required. | ||
sameAs |
string | Id of an element this one is a copy of: the same type and physical numbers (e.g. a transform used on several passes); it may set only id, label, enabled, wiring (next, inputs, loop, output) and geometry (aoiDeg, aoiRad, tiltXRad, side). Its input pulse and beam are its own (docs/reference/system-file.md#identical-elements) | ||
label |
string | Display name | ||
enabled |
boolean | true | false skips the element | |
next |
any | Branched systems: where the light goes. A target ("bs:1", {"id": "bs", "port": 1}, "end", "virtual"), or an object of targets by output port (docs/reference/branches.md) | ||
inputs |
any | Virtual input beams by input port: the keys of an aux beam, with phaseRad and coherentWith, or {"virtual": true} for an input left empty on purpose (docs/reference/branches.md) | ||
loop |
any | Branched systems: on the element where light enters a loop: kind ("ringDown", "steadyState"), maxRoundTrips, tolerance (docs/reference/branches.md) | ||
surfaces |
number or array | [first, last] source surfaces (OpticStudio rows), informational | ||
wavelengthsM |
number or array | m | Wavelengths of this element's per-wavelength arrays (default: the file's sampling) | |
indexProfile |
model (field) | Position-dependent index change dn(x, y, z) (docs/reference/spatial-properties.md) | ||
absorptionProfile |
model (field) | Position-dependent absorption alpha(x, y, z) [1/m] | ||
n2Scale |
model (field) | Position-dependent factor on n2 | ||
params |
any | Free parameters (expressions, user elements) |
Keys of gain and amplifier elements.
| key | type | unit | default | meaning |
|---|---|---|---|---|
medium |
model (gainMedium) | Yb:YAG, Ti:sapphire, Nd:YAG, a materials entry, or an object Required. | ||
lengthM |
number | m | Crystal length Required. | |
pump |
object (pump) |
kind, powerW / energyJ, wavelengthM, radiusM, profile, order, passes, delayS | ||
inversion |
object (inversion) |
fraction or smallSignalGain (instead of / before a pump) | ||
beam |
model (beam) | Signal beam | ||
modeRadiusM |
number | m | Signal 1/e^2 radius (mode area pi w^2 / 2) | |
transverse |
object (transverse) |
Spatial gain | ||
thermalLens |
any | true / false or {rodRadiusM, heatFraction, apply, track, focalLengthM, passGapM, stress}: track (default true; amplifier: only when given) puts the thermal lens on the tracked Gaussian beam as a graded-index duct (a regenerative amplifier also needs an integer roundTrips); passGapM is the free path between amplifier passes; focalLengthM is a measured thermal focal length used instead of the heat model; stress adds thermal birefringence: a lumped depolarisation, or the four-lobed pattern on a cartesian transverse grid (docs/reference/gain.md#thermal-lens) | ||
slices |
integer | 24 | Slices along z | |
segments |
integer | auto | Time-ordered saturation groups | |
spm |
boolean | true | SPM of the host | |
host |
string | Host material (dispersion, n2) | ||
repRateHz |
number | Hz | Repetition rate (overrides the pulse's) | |
steadyState |
any | true | true / false or {maxPulses, tolerance} | |
dopingProfile |
model (field) | Position-dependent doping factor | ||
ase |
boolean | false | Seed amplified spontaneous emission (1-D) | |
aseSeed |
integer | ASE random seed | ||
aseModel |
any | false | true / false or {solidAngleSr, polarizations, points, bandLowerM, bandUpperM}: inter-pulse ASE in both directions over the inversion lifetime; it depletes the inversion between pulses and reports the ASE power in the signal mode (docs/reference/gain.md#ase) | |
temperatureK |
number | K | Crystal temperature | |
dopingDensityM3 |
number | 1/m^3 | Doping density (overrides the medium's) |
Keys of elements that propagate nonlinearly in a material.
| key | type | unit | default | meaning |
|---|---|---|---|---|
beam |
model (beam) | Beam model along the element (z from the element start); needed for nonlinear propagation | ||
nonlinear |
boolean | true (gap: false) | false forces linear propagation | |
n2 |
number | m^2/W | Nonlinear index (overrides the material's) | |
kerrAnisotropy |
number | the material's (BaF2 -1.2, others 0) | Cubic anisotropy sigma = (chi1111 - 3 chi1122) / chi1111 of the electronic Kerr response (overrides the material's); n2 is then the value for light along [100] | |
kerrCutAxis |
number or array | [0, 0, 1] | Propagation direction in crystal coordinates [h, k, l] of a cubic crystal with kerrAnisotropy != 0 ([001] cut, [011] holographic cut, ...) | |
kerrAzimuthDeg |
number | deg | 0 | Angle of the lab x axis from the in-plane reference axis (the projection of [100], or of [010] for a [100] cut) about the propagation direction |
timeResponse |
model (timeResponse) | An extra time-domain response n(t, I) | ||
replaceKerr |
boolean | false | true switches off the built-in Kerr/Raman (use with your own timeResponse) | |
raman |
any | false, or a delayed-response model | ||
fR |
number | Raman fraction | ||
selfSteepening |
boolean | run setting | Per-element self-steepening switch | |
ionization |
any | physics.ionization | Photo-ionisation and plasma: true or an ionization object | |
transverse |
object (transverse) |
Spatial model |
Sensor keys (inside sensor, or at the instrument's top level).
| key | type | unit | default | meaning |
|---|---|---|---|---|
pixels |
any | 256 | n or [nx, ny] | |
pixelSizeM |
number | m | auto: ~5 beam radii across | Pixel pitch on the sensor |
qe |
model (filter) | Quantum efficiency vs wavelength (a filter model: constant, table, gaussian, expression) | ||
bitDepth |
integer | 0 | ADC bits (0: ideal) | |
fullScaleJPerM2 |
number | J/m^2 | 1.1 x peak | Fluence at full scale |
readNoiseCounts |
number | counts | 0 | Read noise rms |
backgroundCounts |
number | counts | 0 | Dark / background offset |
hotPixelFraction |
number | 0 | Fraction of stuck pixels | |
noiseSeed |
integer | 1 | Random seed | |
centerXM |
number | m | 0 | Sensor centre x |
centerYM |
number | m | 0 | Sensor centre y |
propagateM |
number | m | Free-space propagation before imaging (v1 key) | |
magnification |
number | Magnification (v1 key) | ||
focalLengthM |
number | m | Far-field focal length (v1 key) |
Keys every instrument accepts (core and plugins).
Keys every instrument accepts.
| key | type | unit | default | meaning |
|---|---|---|---|---|
kind |
string | Instrument kind Required. | ||
name |
string | kind_at | Name in the results (unique; repeated names get _2, _3) | |
at |
string | "end" | "input", an element id (after that element) or "end" | |
sampling |
object (sampling) |
What part of the beam the instrument sees: near / far field, pinhole, fibre, slit (non-imaging instruments) | ||
beam |
model (beam) | Beam model for 1-D locations (cameras, sampling): the instrument images this ideal Gaussian | ||
filter |
model (filter) | Spectral transmission in front of the instrument (optics, detector spectral response): applied to the field before it is measured | ||
detector |
any | Read-out of the recorded trace / readings: an object (calibration, noise, noise floor, bit depth, saturation, spectral response) or the name of a preset from the run spec's detectors, or {preset: name | file, ...overrides} | ||
axis |
object (instrumentAxis) |
Where a curve instrument takes its readings: explicit points or from / to / step, bin (pixel) width, Gaussian resolution | ||
measured |
object (measured) |
Recorded data to compare this instrument with: a file name (CSV, NPZ, JSON), or an object (file, columns, normalize, sigma, background, rangeX, units, values, weight, resolutionM / resolutionS). docs/reference/measured-data.md |
Top-level run-spec keys provided by plugins.
| key | type | unit | default | meaning |
|---|---|---|---|---|
fit |
object (fitting:fit) |
Fit transform parameters (and any listed number) to every instrument with measured data (fitting plugin). | ||
backward |
object (fitting:backward) |
Backward propagation: the pulse is the field measured downstream; find the field at every plane upstream (fitting plugin). |
Wavefront error of a surface (docs/reference/components.md#aberrations).
| key | type | unit | default | meaning |
|---|---|---|---|---|
zernikeNollWaves |
number or array | waves | Zernike coefficients in Noll order from Z1, waves rms at referenceWavelengthM | |
terms |
object | Zernike terms by name: {"Z4": 0.1, "Z11": -0.05} | ||
radiusM |
number | m | Normalisation radius of the Zernike terms | |
referenceWavelengthM |
number | m | the carrier | Wavelength of the coefficients |
surface |
boolean | false | true: the numbers are surface height (x 2 cos(aoi) for a mirror, x (n2 - n1) refracting) | |
randomRmsM |
number | m | Random figure rms (cartesian grids) | |
correlationLengthM |
number | m | 0.1 x grid | Correlation length of the random figure |
seed |
integer | 1 | Random seed |
Laboratory air (Ciddor).
| key | type | unit | default | meaning |
|---|---|---|---|---|
temperatureC |
number | degC | 20 | Temperature |
pressurePa |
number | Pa | 101325 | Pressure |
humidity |
number | 0 | Relative humidity 0..1 | |
co2ppm |
number | ppm | 450 | CO2 |
kind |
string | An index model kind instead (e.g. "ciddor", or "hitran" with the hitran plugin) | ||
applyToGaps |
boolean | false | Use this air (humidity, temperature, pressure, gas lines) as the "Air" of every gap; a gap's own "air" overrides it. Off by default: existing results do not change |
An auxiliary beam entering an active element (docs/reference/active-elements.md#auxiliary-beams).
| key | type | unit | default | meaning |
|---|---|---|---|---|
role |
string | pump | pump, signal, idler, b | |
pulse |
object (pulse) |
The aux pulse (same keys as the run's pulse) | ||
from |
string | Results folder of a previous run (its output field) | ||
energyJ |
number | J | Rescale a 'from' field to this energy | |
beam |
object (auxBeamShape) |
Transverse shape of the aux beam | ||
fromPort |
boolean | Take this beam from a link to the port named by role (Branched systems; docs/reference/branches.md) | ||
delayS |
any | s | 0 | Delay relative to the main beam, or "auto" (centroids coincide) |
Transverse shape of an auxiliary beam.
| key | type | unit | default | meaning |
|---|---|---|---|---|
kind |
"gaussian" | "superGaussian" | "flatTop" |
gaussian | Shape | |
radiusM |
number | m | 1/e^2 radius (edge radius for flatTop) | |
radiusXM |
number | m | x radius | |
radiusYM |
number | m | y radius | |
w0M |
number | m | Radius (alternative key) | |
order |
integer | 6 | superGaussian order | |
radiusOfCurvatureM |
number | m | Wavefront radius of curvature | |
decenterXM |
number | m | Decentre x | |
decenterYM |
number | m | Decentre y |
Losses and dispersion between passes / per round trip.
| key | type | unit | default | meaning |
|---|---|---|---|---|
loss |
number | Power loss | ||
lossPerRoundTrip |
number | Power loss per round trip | ||
gddFs2 |
number | fs^2 | GDD | |
todFs3 |
number | fs^3 | TOD | |
gddS2 |
number | s^2 | GDD | |
todS3 |
number | s^3 | TOD | |
materials |
array of materialPath |
Material paths {name, lengthM} |
Spectral phase coefficients about the carrier.
| key | type | unit | default | meaning |
|---|---|---|---|---|
gddS2 |
number | s^2 | Group-delay dispersion | |
todS3 |
number | s^3 | Third-order dispersion | |
fodS4 |
number | s^4 | Fourth-order dispersion | |
gddFs2 |
number | fs^2 | GDD in fs^2 | |
todFs3 |
number | fs^3 | TOD in fs^3 | |
fodFs4 |
number | fs^4 | FOD in fs^4 |
A Gaussian-Schell beam as an incoherent sum of Hermite-Gauss modes (docs/reference/transverse.md#partial-coherence).
| key | type | unit | default | meaning |
|---|---|---|---|---|
model |
"gaussianSchell" |
gaussianSchell | Coherence model | |
m2 |
number | Beam quality M^2 >= 1 Required. | ||
modes |
integer | 12 | Modes kept per axis | |
dimensions |
integer | 2; 1 for a grid with ny = 1 | 1 (x only) or 2 | |
element |
string | the first with a transverse object | Element whose transverse.initialProfile the modes replace |
Compute back-end (docs/reference/speed.md).
| key | type | unit | default | meaning |
|---|---|---|---|---|
backend |
string | cpu | Back-end: cpu, auto (the fastest available that supports each element), or one a plugin registers (cuda, opencl) | |
threads |
integer | 0 | Worker threads (0 = all cores) | |
fft |
"auto" | "managed" | "fftw" | "accelerate" |
ULTRAFAST_FFT or auto | CPU FFT provider (process-wide): auto = Accelerate on macOS, FFTW when installed, else managed | |
device |
integer | -1 (first suitable) | GPU device index (ultrafast devices lists them) | |
gpuMinPoints |
integer | 8192 (1-D), 32768 (spatial); 0 for an explicit GPU back-end | backend auto: smallest problem (complex samples) sent to a GPU; smaller ones stay on the CPU | |
deviceSlots |
integer | 4 | GPU back-ends: element propagations running on one device at the same time (parallel studies, fits); when all are busy, auto runs the element on the CPU and an explicit back-end waits |
Detector read-out applied to an instrument's recorded arrays and readings (spectrometer, scope, autocorrelator, FROG, d-scan, energy meter); width and peak readings are re-evaluated on the detected trace. More: instruments.md#detector-model
| key | type | unit | default | meaning |
|---|---|---|---|---|
calibration |
number | 1 | Calibration factor (reading / true value) | |
noise |
number | 0 | Multiplicative noise, relative rms | |
noiseFloor |
number | 0 | Additive noise rms relative to the trace peak | |
dynamicRangeDb |
number | dB | Noise floor as a dynamic range (alternative to noiseFloor) | |
response |
any | Spectral response of the detector (spectral instruments): {wavelengthsM, values} -- the reading is multiplied by values(lambda) (e.g. the quantum efficiency), interpolated, held at the ends | ||
counting |
"energy" | "photons" |
energy | photons: the spectrum is converted from energy to photon counts (x lambda / lambda_carrier) before the response | |
saturationLevel |
number | 0 | Detector saturation: readings are clipped at this fraction of the trace peak (0 or omitted: none) | |
bitDepth |
integer | 0 | ADC bits, full scale at the trace maximum (0: ideal) | |
seed |
integer | 1 | Random seed |
Laboratory air.
| key | type | unit | default | meaning |
|---|---|---|---|---|
indexReference |
"air" | "vacuum" |
vacuum (air for zemax exports) | Quoted data are relative to air (OpticStudio) or vacuum | |
air |
object (air) |
Air: temperatureC, pressurePa, humidity, co2ppm, or an index model with kind |
Tabulated fibre dispersion.
| key | type | unit | default | meaning |
|---|---|---|---|---|
wavelengthsM |
number or array | m | Wavelengths | |
wavelengthsNm |
number or array | nm | Wavelengths in nm | |
dPsNmKm |
number or array | ps/(nm km) | Dispersion parameter D | |
beta2S2PerM |
number or array | s^2/m | beta2 (alternative) |
Fibre gain spectrum, optionally scaled at run time to reach an output.
| key | type | unit | default | meaning |
|---|---|---|---|---|
wavelengthsM |
number or array | m | Wavelengths | |
wavelengthsNm |
number or array | nm | Wavelengths in nm | |
dbPerM |
number or array | dB/m | Gain (or a relative shape when an output target is given) | |
outputEnergyJ |
number | J | Scale the gain so the output has this energy | |
outputPowerW |
number | W | ... or this average power (needs repRateHz) |
Fibre loss vs wavelength.
| key | type | unit | default | meaning |
|---|---|---|---|---|
wavelengthsM |
number or array | m | Wavelengths | |
wavelengthsNm |
number or array | nm | Wavelengths in nm | |
dbPerKm |
number or array | dB/km | Loss |
Backward propagation (fitting plugin). More: plugins/fitting.md#backward-propagation
| key | type | unit | default | meaning |
|---|---|---|---|---|
from |
string | "end" | Plane where the run's pulse was measured: an element id (after it) or "end" | |
to |
string | "input" | Plane to propagate back to: an element id (after it) or "input" | |
regularization |
number | 1e-3 | Relative Tikhonov level for inverting linear terms (transmission below this x the peak is not recovered) | |
active |
"error" | "linearized" | "identity" |
error | Amplifiers, crystals and spatial elements: refuse, undo as the filter they were in a forward reference run, or pass through | |
referencePulse |
object (pulse) |
active = linearized: the input pulse of the forward reference run |
One operating condition of a multi-condition fit (fitting plugin). More: plugins/fitting.md#fitting-across-conditions
| key | type | unit | default | meaning |
|---|---|---|---|---|
name |
string | Label (unique); used in the report as condition/instrument Required. | ||
heldOut |
boolean | false | Not in the cost: predicted from the fit and compared with its data afterwards | |
weight |
number | 1 | Weight of this condition's residuals in the cost (chi^2 is multiplied by it) | |
variables |
any | Named numbers describing the condition ({"energyJ": 2e-6}); the inputs of parametric and smooth dependence on the condition | ||
set |
any | Path -> value written into the files for this condition (a number, or a string such as instrument:spec/measured/file); same paths as fit.parameters |
How a fitted number depends on the condition (fitting plugin). More: plugins/fitting.md#fitting-across-conditions
| key | type | unit | default | meaning |
|---|---|---|---|---|
kind |
"constant" | "proportional" | "linear" | "polynomial" | "power" | "chebyshev" | "network" |
linear | Form: c0 | c0 u | c0 + c1 u | sum ck u^k | c0 u^c1 | sum ck Tk(xi) | a small tanh network with built-in constraints; u = variable / reference | |
variable |
string | Name of the condition variable (conditions[].variables) Required. | ||
degree |
integer | 2 | polynomial / chebyshev: highest order | |
reference |
number | mean of the training values | u = variable / reference | |
range |
array | chebyshev: [lo, hi] mapped to xi = -1..1 (outside it the series extrapolates) | ||
smoothnessPaths |
number | 0 | surface: weight on second differences across the paths | |
smoothnessVariable |
number | 0 | surface (chebyshev): weight on second differences across the variable | |
coefficients |
array | Per order: {initial, min, max, scale, prior, step} of that coefficient (network: one object {scale, min, max} for all weights) | ||
hidden |
integer | 4 | network: tanh units | |
output |
"none" | "bounded" | "positive" |
none | network: output constraint (bounded: lo + (hi - lo) sigmoid; positive: softplus), exact by construction | |
outputRange |
array | network, output bounded: [lo, hi] | ||
monotone |
"none" | "increasing" | "decreasing" |
none | network: output monotone in the variable (squared weights), exact by construction | |
weightDecay |
number | 1e-4 | network: L2 penalty on the weights (a prior of sigma 1/sqrt(weightDecay)) |
Fit (fitting plugin). More: plugins/fitting.md#fitting
| key | type | unit | default | meaning |
|---|---|---|---|---|
parameters |
array of fitting:parameter |
Numbers to fit by path (in addition to the transform parameters marked for fitting) | ||
estimator |
"levenbergMarquardt" | "cmaes" | "mcmc" |
levenbergMarquardt | Fitting algorithm (plugins may register more) | |
maxIterations |
integer | 20 (LM), 60 (CMA-ES) | Iterations (LM) / generations (CMA-ES) | |
tolerance |
number | 1e-4 (LM), 1e-6 (CMA-ES) | Relative chi^2 change (LM) / cost spread (CMA-ES) that ends the fit | |
conditions |
array of fitting:condition |
Operating conditions fitted together with one set of shared parameters (energies, angles, ...); empty: one condition, the run itself | ||
surfaces |
array of fitting:surface |
Smooth surfaces: several numbers (e.g. the knots of a spectral phase) as Chebyshev series of a condition variable, with smoothness penalties in both directions | ||
freezeGrid |
boolean | true | Fix the time/frequency grid (2x the planned bandwidth) for all evaluations | |
parallel |
integer | 1 | Simulations run at the same time (Jacobian columns, CMA-ES population, MCMC walkers) | |
population |
integer | 4 + 3 ln n | CMA-ES population | |
sigma0 |
number | 0.3 | CMA-ES initial step (in units of each parameter's scale) | |
polish |
boolean | true | CMA-ES: finish with Levenberg-Marquardt | |
walkers |
integer | max(2n + 2, 8) | MCMC walkers | |
steps |
integer | 200 | MCMC steps | |
burnIn |
number | 0.5 | MCMC burn-in fraction | |
thin |
integer | 1 | MCMC thinning | |
start |
"optimum" | "initial" |
optimum | MCMC start: a Levenberg-Marquardt optimum or the initial values | |
spread |
number | 0.1 | MCMC starting ball (in units of each scale) | |
seed |
integer | 1 | Random seed (CMA-ES, MCMC) |
Spline knots of a transform operator.
| key | type | unit | default | meaning |
|---|---|---|---|---|
wavelengthsM |
number or array | m | Knot wavelengths | |
wavelengthsNm |
number or array | nm | Knot wavelengths in nm | |
phaseRad |
array | spectralPhase: phase at the knots (numbers or fit objects) | ||
transmission |
array | spectralAmplitude: power transmission at the knots | ||
transmissionDb |
array | spectralAmplitude: transmission in dB at the knots |
One transform operator (kind + parameters; numbers may be fit objects). More: plugins/fitting.md#operators
| key | type | unit | default | meaning |
|---|---|---|---|---|
kind |
"spectralPhase" | "spectralAmplitude" | "energy" | "delay" | "jones" | "replica" | "phaseNoise" | "pedestal" | "wavefront" | "nonlinearPhase" |
Operator kind (plugins may add more) Required. | ||
enabled |
boolean | true | false skips the operator | |
fit |
array | Names of parameters to fit (dotted for nested: "knots.phaseRad" fits every knot), alternative to fit objects | ||
bounds |
object | Bounds for the names in "fit": {name: [min, max]} | ||
priors |
object | Gaussian priors for the names in "fit": {name: sigma | {mean, sigma}} | ||
smoothness |
number | 0 | Regularisation weight on the second differences of fitted knots | |
gddFs2 |
number or fit object | fs^2 | spectralPhase: GDD | |
todFs3 |
number or fit object | fs^3 | spectralPhase: TOD | |
fodFs4 |
number or fit object | fs^4 | spectralPhase: FOD | |
fifthFs5 |
number or fit object | fs^5 | spectralPhase: fifth order | |
gddS2 |
number or fit object | s^2 | spectralPhase: GDD in s^2 | |
todS3 |
number or fit object | s^3 | spectralPhase: TOD in s^3 | |
fodS4 |
number or fit object | s^4 | spectralPhase: FOD in s^4 | |
centerWavelengthM |
number or fit object | m | the element's carrier | Reference / centre wavelength |
centerWavelengthNm |
number or fit object | nm | Reference / centre wavelength in nm | |
knots |
object (fitting:knots) |
Spline knots: wavelengthsM | wavelengthsNm with phaseRad (spectralPhase) or transmission | transmissionDb (spectralAmplitude) | ||
shape |
"gaussian" | "superGaussian" | "tilt" | "spline" | "model" |
from the keys given | spectralAmplitude: shape | |
fwhmM |
number or fit object | m | spectralAmplitude: band FWHM | |
fwhmNm |
number or fit object | nm | spectralAmplitude: band FWHM in nm | |
order |
number or fit object | 2 | superGaussian order | |
peak |
number or fit object | 1 | Peak power transmission | |
tiltDbPerNm |
number or fit object | dB/nm | spectralAmplitude: transmission slope | |
curvatureDbPerNm2 |
number or fit object | dB/nm^2 | spectralAmplitude: curvature | |
model |
model (filter) | spectralAmplitude: any filter model (shape: model) | ||
passive |
boolean | true | spectralAmplitude: clip the transmission to <= 1 | |
causal |
boolean | false | spectralAmplitude: add the minimum phase (Kramers-Kronig) | |
floor |
number | 1e-8 | causal: smallest relative transmission used in the logarithm | |
bRad |
number or fit object | rad | nonlinearPhase: peak nonlinear phase (B-integral of a thin Kerr plate), phi(t) = bRad I(t)/max I | |
transmission |
number or fit object | 1 | energy: power transmission | |
gainDb |
number or fit object | dB | energy: gain (alternative) | |
delayS |
number or fit object | s | delay / replica: delay | |
delayFs |
number or fit object | fs | delay / replica: delay in fs | |
delayPs |
number or fit object | ps | replica: delay in ps | |
retardanceRad |
number or fit object | rad | jones: retardance | |
axisDeg |
number or fit object | deg | jones: retarder fast axis | |
diattenuation |
number or fit object | jones: power loss of the weak axis (0..1) | ||
diattenuationAxisDeg |
number or fit object | deg | axisDeg | jones: weak axis |
rotationDeg |
number or fit object | deg | jones: rotation of the polarisation | |
relativeIntensity |
number or fit object | replica / pedestal: intensity relative to the main peak | ||
relativeIntensityDb |
number or fit object | dB | replica / pedestal: the same in dB (better for fitting levels spanning decades) | |
phaseRad |
number or fit object | rad | replica: relative phase | |
rmsRad |
number or fit object | rad | phaseNoise: phase noise rms | |
amplitudeRms |
number or fit object | phaseNoise: amplitude noise rms | ||
correlationNm |
number or fit object | nm | phaseNoise: correlation width | |
correlationRadPerS |
number or fit object | rad/s | phaseNoise: correlation width | |
seed |
integer | 1 | phaseNoise / pedestal: random seed | |
type |
"ase" | "exponential" |
ase | pedestal: incoherent background type | |
durationS |
number or fit object | s | 10e-9 | pedestal (ase): duration |
energyFraction |
number or fit object | pedestal (ase): energy / main energy | ||
level |
number or fit object | pedestal (exponential): level at the peak | ||
levelDb |
number or fit object | dB | pedestal (exponential): level in dB | |
riseS |
number or fit object | s | pedestal (exponential): rise | |
fallS |
number or fit object | s | pedestal (exponential): fall | |
bandwidthFwhmNm |
number or fit object | nm | pedestal: spectral FWHM (default: the pulse's spectrum) | |
zernike |
object | wavefront: Noll index -> waves rms, e.g. {"4": 0.1, "11": 0.02}; values may be fit objects | ||
radiusM |
number or fit object | m | the beam's 1/e^2 radius | wavefront: normalisation radius |
wavelengthM |
number or fit object | m | the carrier | wavefront: wavelength of the waves |
tiltXRad |
number or fit object | rad | wavefront: pointing x | |
tiltYRad |
number or fit object | rad | wavefront: pointing y | |
params |
object | Parameters of operator kinds added by other plugins (free-form; numbers may be fit objects) |
One fit parameter.
| key | type | unit | default | meaning |
|---|---|---|---|---|
path |
string | pulse/..., element:ID/..., instrument:NAME/..., material:NAME/prop, run/..., system/... Required. | ||
name |
string | the path | Label | |
initial |
number | the value in the files | Start value | |
min |
number | Lower bound | ||
max |
number | Upper bound | ||
scale |
number | (max - min) / 4 | Typical change | |
step |
number | 1e-3 x scale | Finite-difference step | |
unit |
string | Unit label for reports | ||
dependence |
object (fitting:dependence) |
The value follows the condition variable: its coefficients are fitted instead (fitting across conditions) | ||
perCondition |
boolean | false | Multi-condition fit: one value per training condition instead of one shared value | |
prior |
any | Gaussian prior: sigma (mean = initial) or {mean, sigma} |
A smooth surface of several numbers over a condition variable (fitting plugin). More: plugins/fitting.md#fitting-across-conditions
| key | type | unit | default | meaning |
|---|---|---|---|---|
name |
string | Label Required. | ||
paths |
array | The numbers (same paths as fit.parameters); or pathTemplate + count | ||
pathTemplate |
string | A path with {i} replaced by 0..count-1 (e.g. element:t/operators/0/knots/phaseRad/{i}) | ||
count |
integer | Number of paths for pathTemplate | ||
kind |
"constant" | "proportional" | "linear" | "polynomial" | "chebyshev" | "network" |
chebyshev | Basis over the variable | |
variable |
string | Name of the condition variable Required. | ||
degree |
integer | 2 | Highest order | |
reference |
number | u = variable / reference | ||
range |
array | [lo, hi] of the Chebyshev map | ||
smoothnessPaths |
number | 0 | Weight on second differences across the paths | |
smoothnessVariable |
number | 0 | Weight on second differences across the variable | |
coefficients |
array | Per order: {initial, min, max, scale, prior, step} | ||
hidden |
integer | 4 | network: tanh units | |
output |
"none" | "bounded" | "positive" |
none | network: output constraint (bounded: lo + (hi - lo) sigmoid; positive: softplus), exact by construction | |
outputRange |
array | network, output bounded: [lo, hi] | ||
monotone |
"none" | "increasing" | "decreasing" |
none | network: output monotone in the variable (squared weights), exact by construction | |
weightDecay |
number | 1e-4 | network: L2 penalty on the weights (a prior of sigma 1/sqrt(weightDecay)) |
A fit parameter in place of a number: its value, and how to fit it. More: plugins/fitting.md#marking-parameters-for-fitting
| key | type | unit | default | meaning |
|---|---|---|---|---|
value |
number | The value (used by plain runs; the start value of a fit) Required. | ||
fit |
boolean | false | Fit this number | |
min |
number | Lower bound | ||
max |
number | Upper bound | ||
scale |
number | (max - min) / 4, else a per-quantity default | Typical size of a change | |
step |
number | 1e-3 x scale | Finite-difference step | |
prior |
any | Gaussian prior: sigma (mean = value) or {mean, sigma} | ||
name |
string | element.operator.key | Label in reports | |
unit |
string | from the key | Unit label |
A gas at pressure and temperature.
| key | type | unit | default | meaning |
|---|---|---|---|---|
species |
string | Ar, Ne, He, Kr, Xe, N2, O2, air, CO2, H2, ... Required. | ||
pressureBar |
number | bar | 1 | Pressure |
pressurePa |
number | Pa | Pressure (alternative) | |
temperatureK |
number | K | 293.15 | Temperature |
Ghost replicas of a plate (docs/reference/components.md#ghost-reflections).
| key | type | unit | default | meaning |
|---|---|---|---|---|
orders |
integer | 1 | Number of replicas (round trips) | |
overlap |
number | Field overlap with the main beam (default: from the offset, wedge and beam radius) | ||
beamRadiusM |
number | m | tracked beam | Beam radius for the overlap |
frontReflectance |
number | Internal reflectance of the front surface (default: its coating / Fresnel; 0.5 for a reflective ND) | ||
backReflectance |
number | Reflectance of the back surface (default: its coating / Fresnel) | ||
material |
string | Material of the inside, when the element does not say (crystals defined inline) | ||
wedgeDeg |
number | deg | 0 | Wedge between the end faces (bulk, crystal, gain, lens) |
Camera imaging.
| key | type | unit | default | meaning |
|---|---|---|---|---|
plane |
"near" | "far" | "relay" |
near | near: the beam at the location (+ propagateM, relay); far: focal plane of focalLengthM | |
propagateM |
number | m | 0 | Free-space propagation before imaging (negative: back to a waist) |
focalLengthM |
number | m | 1 | Far field: focal length |
magnification |
number | 1 | Imaging magnification onto the sensor | |
relay |
array of relayStep |
Thin lenses {focalLengthM} and gaps {gapM}, in order |
Initial transverse field.
| key | type | unit | default | meaning |
|---|---|---|---|---|
kind |
"gaussian" | "superGaussian" | "flatTop" | "tophat" | "hermiteGauss" | "laguerreGauss" | "besselGauss" | "airy" | "measured" | "tiles" |
gaussian | Shape: Gaussian, super-Gaussian (order), flatTop (super-Gaussian of order 10), tophat (hard edge, uniform), Hermite-Gauss (modeX, modeY), Laguerre-Gauss (modeP, modeL), Bessel-Gauss (coneAngleRad), Airy (radiusM = scale, truncation), measured (file) | |
modeX |
integer | 0 | hermiteGauss: order in x | |
modeY |
integer | 0 | hermiteGauss: order in y | |
modeP |
integer | 0 | laguerreGauss: radial index p | |
modeL |
integer | 0 | laguerreGauss: azimuthal index l (helical phase, cartesian grids) | |
coneAngleRad |
number | rad | besselGauss: cone angle of the plane waves, k_r = k sin(angle) | |
radialWavenumberPerM |
number | rad/m | besselGauss: k_r (alternative) | |
truncation |
number | 0.1 | airy: the exponential truncation a in Ai(x / x0) exp(a x / x0) | |
file |
string | measured: NPZ with x_m, y_m (or r_m), fluence or amplitude, and optionally phase_rad; relative to the file that names it | ||
background |
any | measured: a number subtracted from the fluence, or "auto" (the median of the map's edge) | ||
pixelSizeM |
number | m | measured: pixel size of a PNG image | |
threshold |
number | 0 | measured: fluence below this fraction of the peak is set to zero | |
center |
boolean | false | measured: move the fluence centroid to the axis | |
geometry |
"round" | "square" |
round | round: a function of r (elliptical with radiusXM != radiusYM); square: separable in x and y (rectangular, cartesian grids) | |
order |
integer | 4 | superGaussian order (also tiles with tileShape superGaussian) | |
layout |
"square" | "hex" | "ring" |
square | tiles: arrangement of the sub-beams (square: countX x countY; hex: rings around a centre tile; ring: count tiles on a circle) | |
pitchM |
number | m | tiles: centre-to-centre distance | |
count |
integer | 2 | tiles: tiles per side (square) or on the ring | |
countX |
integer | tiles: square layout, tiles along x | ||
countY |
integer | 1 if countX is given, else count | tiles: square layout, tiles along y | |
rings |
integer | 1 | tiles: hex layout, rings around the centre tile (1: 7 tiles, 2: 19, 3: 37, 4: 61) | |
ringRadiusM |
number | m | tiles: ring layout, circle radius | |
positionsM |
any | m | tiles: explicit centres, a list of [x, y] | |
tileRadiusM |
number | m | tiles: 1/e^2 radius of one tile (hard radius for tileShape tophat) | |
tileShape |
"gaussian" | "tophat" | "superGaussian" |
gaussian | tiles: transverse shape of one tile | |
amplitudes |
any | 1 | tiles: amplitude per tile (a number or one per tile) | |
pistonRad |
any | rad | 0 | tiles: piston phase at the carrier per tile |
tileTiltXRad |
any | rad | 0 | tiles: tilt about y per tile (a number or one per tile) |
tileTiltYRad |
any | rad | 0 | tiles: tilt about x per tile |
delaysS |
any | s | 0 | tiles: envelope delay per tile (adds (omega - omega_centre) tau to the phase; needs enough spectralSamples to resolve it) |
pistonRmsRad |
number | rad | 0 | tiles: random Gaussian piston error added to pistonRad (seed: seed) |
decenterXM |
number | m | Decentre in x | |
decenterYM |
number | m | Decentre in y | |
tiltXRad |
number | rad | Tilt about y | |
tiltYRad |
number | rad | Tilt about x | |
radiusOfCurvatureM |
number | m | Wavefront radius of curvature (negative: converging) | |
radiusM |
number | m | 1/e^2 radius; tophat: edge radius or half-width (default: from the element's beam) | |
radiusXM |
number | m | Radius / half-width in x (default radiusM) | |
radiusYM |
number | m | Radius / half-width in y (default radiusXM) | |
ripple |
any | Seed ripple (cartesian): {periodM, relativeAmplitude, angleDeg, phaseRad}: amplitude x (1 + a cos(2 pi (x cos t + y sin t) / period + phase)). The Bespalov-Talanov seed (docs/reference/transverse.md#small-scale-self-focusing) | ||
noise |
any | Seeded random noise (cartesian): {relativeAmplitudeRms, phaseRmsRad, correlationLengthM, seed, components} |
Sampling of a curve instrument's axis (spectrometer wavelengths, scope times, autocorrelator / cross-correlator delays, polarimeter wavelengths, delay scan, contrast, beam profile, phase-matching curve). Units: those of the axis (m, s). More: instruments.md#axis-where-readings-are-taken
| key | type | unit | default | meaning |
|---|---|---|---|---|
values |
number or array | SI | Explicit reading positions (e.g. the pixel wavelengths of your spectrometer) | |
from |
number | SI | the start of the simulated axis | First reading |
to |
number | SI | the end of the simulated axis | Last reading |
step |
number | SI | Spacing of the readings | |
points |
integer | as simulated | Number of readings (with from / to, when no step) | |
binWidth |
any | SI | 0 (point readings) | Width each reading integrates over: a number, or "pixel" (the spacing between readings) |
resolution |
number | SI | 0 | Gaussian blur (FWHM) applied before binning |
The chi(2) process.
| key | type | unit | default | meaning |
|---|---|---|---|---|
process |
"shg" | "sfg" | "opa" | "dfg" |
Process Required. | ||
type |
string | I (0 with qpm) | I, II (IIa), IIb or 0 | |
plane |
"XY" | "XZ" | "YZ" |
auto | Biaxial plane | |
polarizations |
object | Explicit polarisations per field, e.g. {signal: o, idler: o, pump: e} | ||
noncollinearDeg |
any | deg | Angle between the inputs inside the crystal (opa, dfg, sfg), or "magic" (opa, dfg) | |
externalAngleDeg |
number | deg | Angle between the inputs outside the crystal (sfg; opa, dfg: the pump's angle to the signal, at a face normal to the signal); default: from the arms' tiltXRad | |
qpm |
any | true or {periodM, model: averaged|domains, phaseDeg, periodExpr} |
Initial inversion.
| key | type | unit | default | meaning |
|---|---|---|---|---|
fraction |
number | N2 / N_t | ||
smallSignalGain |
number | Single-pass small-signal gain | ||
wavelengthM |
number | m | Wavelength of smallSignalGain |
Photo-ionisation and plasma (docs/reference/ionization.md).
| key | type | unit | default | meaning |
|---|---|---|---|---|
model |
"ppt" | "adk" | "mpi" | "keldysh" |
ppt (gases) / keldysh (solids) | Rate model | |
ionizationEv |
number | eV | Ionisation potential (gases) | |
zEff |
number | Effective charge (molecules) | ||
bandGapEv |
number | eV | Band gap (solids) | |
effectiveMass |
number | Reduced mass / m_e (solids) | ||
neutralDensityM3 |
number | 1/m^3 | Density of ionisable atoms / valence electrons | |
sigmaK |
number | (m^2/W)^K/s | MPI cross section | |
photons |
integer | MPI order K | ||
collisionTimeS |
number | s | Electron collision time | |
recombinationTimeS |
number | s | Recombination / trapping time | |
recombinationBetaM3PerS |
number | m^3/s | Two-body recombination | |
electronDensityM3 |
number | 1/m^3 | 0 | Free-electron density present before the pulse (a prepared plasma) |
frequencyResolved |
boolean | true | Apply the Drude index at every frequency of the pulse (1/(omega (omega + i nu))); false: at the carrier only | |
avalanche |
boolean | true for solids | Avalanche (impact) ionisation | |
absorption |
boolean | true | Plasma and ionisation losses | |
species |
string | Gas species (when the material does not say) |
Laser-induced damage threshold.
| key | type | unit | default | meaning |
|---|---|---|---|---|
fluenceJPerCm2 |
number | J/cm^2 | Threshold fluence Required. | |
pulseDurationS |
number | s | Pulse duration the threshold was measured at | |
scalingExponent |
number | 0.5 | tau^x scaling exponent | |
wavelengthM |
number | m | Wavelength of the measurement |
A material (docs/reference/materials.md).
| key | type | unit | default | meaning |
|---|---|---|---|---|
base |
string | Start from a built-in material | ||
index |
model (index) | Refractive index model | ||
indexReference |
"air" | "vacuum" |
vacuum | The index is relative to air or vacuum | |
n2 |
number | m^2/W | Nonlinear index | |
kerrAnisotropy |
number | 0 | Cubic anisotropy sigma = (chi1111 - 3 chi1122) / chi1111 of the electronic Kerr response (docs/reference/nonlinear.md#cubic-anisotropy-xpw) | |
raman |
model (delayedResponse) | Raman response | ||
ramanFraction |
number | Raman fraction fR | ||
attenuation |
model (attenuation) | Absorption model | ||
lidt |
object (lidt) |
Damage threshold | ||
gas |
object (gas) |
A gas: species, pressureBar, temperatureK | ||
crystal |
object | A user chi(2) crystal (docs/reference/crystals.md#user-crystals) | ||
gain |
object | A user gain medium (docs/reference/gain.md) | ||
densityKgPerM3 |
number | kg/m^3 | Density (informational) | |
name |
string | Display name | ||
rotationalRaman |
any | on for N2, O2, CO2, H2, air | Molecular gases: false, or {species, pressureBar, temperatureK, dephasingTimeS} |
A length of material.
| key | type | unit | default | meaning |
|---|---|---|---|---|
name |
string | Material Required. | ||
lengthM |
number | m | Length Required. |
Recorded data for one instrument, compared with its simulated reading on the measured axis (only where the simulated instrument has readings), after matching the recording's resolution. More: measured-data.md
| key | type | unit | default | meaning |
|---|---|---|---|---|
file |
string | CSV, NPZ or JSON file, relative to the run file | ||
columns |
object | Column / array names: x, y, sigma (curves); rows, cols, trace (traces) | ||
normalize |
"peak" | "maximum" | "area" | "scale" | "none" |
peak | How data and simulation are normalised before comparing | |
sigma |
number | 0.02 | Uncertainty of each point relative to the data peak | |
background |
any | none | A number to subtract, "auto" (median of the darker edge of the axis; for traces, the edges of the columns), "min" or "none" | |
rangeX |
number or array | SI | Compare only this [min, max] of the measured axis | |
xUnit |
string | Unit of the x column (overrides the name suffix) | ||
yUnit |
string | Unit of the y column ("dB" for logarithmic data) | ||
rowUnit |
string | Unit of the trace rows | ||
colUnit |
string | Unit of the trace columns | ||
values |
object | Scalar readings {name: value | [value, sigma]} | ||
valueSigma |
number | 0.02 | Relative uncertainty of values given without one | |
valueWeight |
number | 1 | Extra weight of the scalar residuals | |
weight |
number | 1 | Weight of this instrument in a fit's chi^2 | |
simulated |
object | Which arrays of the instrument to compare with: x, y | rows, cols, trace | ||
scale |
"linear" | "log" |
linear | Compare in linear units, or in dB (high-dynamic-range data: contrast, cross-correlators) | |
sigmaDb |
number | dB | 1 | scale log: uncertainty of each point in dB |
floorDb |
number | dB | the data's minimum | scale log: floor relative to the peak (values below are clipped to it) |
resolutionM |
number | m | Resolution (Gaussian FWHM) of the recording spectrometer / profiler, in the unit of the axis | |
resolutionS |
number | s | Temporal / delay resolution (Gaussian FWHM) of the recording instrument | |
matchResolution |
boolean | true | Curves: when the recording is coarser than the simulated instrument, blur the simulated reading by the missing width before comparing |
One override (docs/reference/models.md#overrides).
| key | type | unit | default | meaning |
|---|---|---|---|---|
target |
string | material:NAME, element:ID (trailing * wildcard), element:*, type:TYPE or global Required. | ||
property |
string | Property to change (lengthM, n2, index, beam, coating, timeResponse, filter, enabled, ...) Required. | ||
value |
any | New value (numbers may carry a unit string: "2.2E-20 m^2/W") | ||
model |
any | New model (an object with kind, an expression, or "@callback") | ||
mode |
"replace" | "add" |
replace | replace, or add (time responses and filters) | |
source |
string | Provenance label | ||
origin |
string | Provenance detail |
A pedestal / contrast component of the input pulse (docs/reference/run-spec.md#pedestal).
| key | type | unit | default | meaning |
|---|---|---|---|---|
kind |
"replica" | "prePulse" | "postPulse" | "ase" | "phaseNoise" | "exponential" | "measured" |
Component Required. | ||
delayS |
number | s | Delay (replica; ASE envelope centre) | |
relativeIntensity |
number | Intensity relative to the main peak | ||
relativeEnergy |
number | Energy relative to the main pulse (replica) | ||
phaseRad |
number | rad | Replica phase | |
gddFs2 |
number | fs^2 | Extra GDD of a replica | |
gddS2 |
number | s^2 | Extra GDD of a replica | |
durationS |
number | s | 10e-9 | ASE duration |
energyFraction |
number | ASE energy / main energy | ||
bandwidthFwhmM |
number | m | Spectral FWHM of ASE / exponential pedestal | |
bandwidthFwhmNm |
number | nm | Spectral FWHM in nm | |
centerWavelengthM |
number | m | Centre of that spectrum | |
rmsRad |
number | rad | Spectral phase noise rms | |
amplitudeRms |
number | Spectral amplitude noise rms | ||
correlationNm |
number | nm | Noise correlation width | |
correlationRadPerS |
number | rad/s | Noise correlation width | |
level |
number | Exponential pedestal level at the peak | ||
riseS |
number | s | Exponential rise (before the peak) | |
fallS |
number | s | Exponential fall (after the peak) | |
csv |
string | measured: CSV file of a contrast trace (columns time_ or delay_, and relativeIntensity, intensity or contrast_dB) | ||
timesS |
any | s | measured: delays of the trace points (alternative to csv; use with relativeIntensity) | |
relativeIntensities |
any | measured: intensity relative to the main peak at each delay (alternative to csv) | ||
excludeWithinS |
number | s | 0 | measured: trace points closer than this to t = 0 are ignored (the main pulse is already there) |
outside |
string | zero | measured: "zero" (no pedestal beyond the trace) or "hold" (the end values continue) | |
seed |
integer | 1 | Random seed |
Quantum noise added to the input pulse (docs/reference/fibers.md#noise-and-coherence).
| key | type | unit | default | meaning |
|---|---|---|---|---|
kind |
"onePhotonPerMode" | "none" |
onePhotonPerMode | Noise model | |
seed |
integer | 1 | Random seed (a coherence study varies it) | |
polarization |
"same" | "both" |
same | Noise in the pulse's polarisation only, or one photon in each of x and y |
A measured input spectrum.
| key | type | unit | default | meaning |
|---|---|---|---|---|
wavelengthsM |
number or array | m | Wavelengths | |
wavelengthsNm |
number or array | nm | Wavelengths in nm | |
intensity |
number or array | Intensity per unit wavelength | ||
phaseRad |
number or array | rad | Spectral phase (optional) | |
csv |
string | CSV file: wavelength, intensity, optional phase | ||
wavelengthUnit |
string | nm | Unit of the CSV wavelength column | |
resolutionM |
number | m | 0 (unknown) | Resolution (Gaussian FWHM) of the spectrometer that recorded it |
resolutionNm |
number | nm | Resolution in nm | |
deconvolve |
boolean | false | Remove the recording resolution (Richardson-Lucy) before use | |
deconvolveIterations |
integer | 30 | Richardson-Lucy iterations | |
extrapolate |
"zero" | "gaussian" |
zero | Outside the measured wavelengths: no light, or Gaussian tails fitted to the data | |
background |
any | none | Background to subtract: a number (intensity units), "auto" (median of the darker edge, robust to a spectrum cut off on one side), "min" or "none" | |
threshold |
number | 0 | After background subtraction, values below this fraction of the peak are set to zero |
A pump for gain media.
| key | type | unit | default | meaning |
|---|---|---|---|---|
kind |
"cw" | "pulsed" | "none" |
cw | Pump type | |
powerW |
number | W | cw power | |
energyJ |
number | J | Pump pulse energy | |
pumpDurationS |
number | s | Pump pulse duration | |
wavelengthM |
number | m | Pump wavelength | |
radiusM |
number | m | 1/e^2 or edge radius | |
profile |
"tophat" | "gaussian" | "superGaussian" |
tophat | Pump profile | |
order |
integer | superGaussian order | ||
passes |
integer | 1 | 1, or 2 (reflected back) | |
delayS |
number | s | Pulsed pump: time before the seed |
A relay step: a thin lens or a free-space gap.
| key | type | unit | default | meaning |
|---|---|---|---|---|
focalLengthM |
number | m | Thin lens | |
gapM |
number | m | Free-space gap |
Near / far field and apertures for non-imaging instruments. More: instruments.md#sampling
| key | type | unit | default | meaning |
|---|---|---|---|---|
plane |
"near" | "far" |
near | Near field, or the focal plane of a lens | |
focalLengthM |
number | m | 0.2 | Far field: focal length |
propagateM |
number | m | 0 | Near field: free-space propagation before the aperture |
aperture |
object (samplingAperture) |
The aperture |
Sampling aperture.
| key | type | unit | default | meaning |
|---|---|---|---|---|
kind |
"integrated" | "pinhole" | "iris" | "fibre" | "fiber" | "slit" | "point" |
pinhole | Aperture type | |
radiusM |
number | m | 50e-6 (fibre 25e-6) | Radius (pinhole, iris, fibre core) |
widthM |
number | m | 2 x radius | Slit width |
centerXM |
number | m | 0 | Aperture centre x |
centerYM |
number | m | 0 | Aperture centre y |
na |
number | 0.22 | Fibre numerical aperture |
Sampling wavelengths of per-wavelength arrays.
| key | type | unit | default | meaning |
|---|---|---|---|---|
wavelengthsM |
number or array | m | Wavelengths | |
wavelengthsNm |
number or array | nm | Wavelengths in nm (alternative) |
A camera sensor.
Also accepts: sensorFlat (see Common key groups).
No parameters of its own.
Spatial model of an element (docs/reference/spatial-models.md).
| key | type | unit | default | meaning |
|---|---|---|---|---|
model |
"none" | "radial" | "cartesian" |
none | Representation | |
points |
integer | 64 | Radial samples (cartesian: nx = ny if omitted) | |
nx |
integer | Cartesian samples in x | ||
ny |
integer | Cartesian samples in y | ||
radiusM |
number | m | extentFactor x expected radius | Radial grid extent |
halfWidthM |
number | m | Cartesian half-width | |
halfWidthXM |
number | m | Cartesian half-width in x | |
halfWidthYM |
number | m | Cartesian half-width in y | |
extentFactor |
number | 3.5 | Grid extent / expected beam radius | |
paraxial |
boolean | false | Paraxial diffraction operator instead of the exact one | |
transport |
"auto" | "exact" | "rescale" | "beam" |
auto | How a profile from before is brought in | |
initialProfile |
object (initialProfile) |
The field at the first spatial element | ||
polarization |
"auto" | "scalar" | "vector" |
auto | Jones (vector) fields on the grid: auto = when the beam carries a y component | |
equation |
"envelope" | "uppe" |
envelope | Nonlinear coupling: paraxial envelope, or UPPE (n omega / c k_z per plane wave) | |
spectralSamples |
integer | 48 | Frequencies at which the transverse profile is stored and (linear elements) propagated; fewer is faster for narrowband pulses | |
frequencyBlock |
integer | 0 | Streaming: a linear spatial element propagates the stored frequencies in blocks of this many, so its propagator holds a block instead of all of them and a block-sized work buffer is added (saves memory for blocks under half the stored frequencies); the result does not depend on it. 0 = all at once | |
absorbingBoundary |
any | false | Linear elements: absorb light leaving the grid instead of reflecting / wrapping it -- true (outer 15 %) or {widthFraction}; the absorbed energy is booked as 'grid boundary' (docs/reference/transverse.md#diffraction-and-apertures) |
Models with declared parameters (other kinds are described in Models). Every model object also takes kind and optionally name, source, reference.
Absorption from the k data of a refractiveindex.info page.
| key | type | unit | default | meaning |
|---|---|---|---|---|
page |
string | Page name or file | ||
file |
string | YAML file (alternative) | ||
pressureBar |
number | bar | Gas pressure | |
temperatureK |
number | K | Temperature |
Constant beam size.
| key | type | unit | default | meaning |
|---|---|---|---|---|
radiusM |
number | m | 1/e^2 radius | |
radiusXM |
number | m | x radius | |
radiusYM |
number | m | y radius | |
areaM2 |
number | m^2 | Effective area |
Gaussian beam w(z) = w0 sqrt(1 + ((z - zWaist)/zR)^2). More: models.md#beam
| key | type | unit | default | meaning |
|---|---|---|---|---|
w0M |
number | m | Waist 1/e^2 radius | |
w0xM |
number | m | Waist in x | |
w0yM |
number | m | Waist in y | |
zWaistM |
number | m | 0 | Waist position from the element start |
zWaistXM |
number | m | Waist position x | |
zWaistYM |
number | m | Waist position y | |
m2 |
number | 1 | Beam quality | |
m2x |
number | M^2 in x | ||
m2y |
number | M^2 in y | ||
wavelengthM |
number | m | Wavelength (filled in from the carrier) | |
n |
number | Index of the medium (filled in from the material) | ||
zRayleighM |
number | m | Rayleigh range (instead of wavelength) | |
zRayleighXM |
number | m | Rayleigh range x | |
zRayleighYM |
number | m | Rayleigh range y |
Beam radii sampled along z (e.g. from OpticStudio).
| key | type | unit | default | meaning |
|---|---|---|---|---|
zM |
number or array | m | Positions | |
radiusM |
number or array | m | Radii | |
radiusXM |
number or array | m | x radii | |
radiusYM |
number or array | m | y radii |
Delayed response h(t) from a registered callback, normalised to unit integral on the grid and forced causal. More: nonlinear.md#raman-models
| key | type | unit | default | meaning |
|---|---|---|---|---|
name |
string | Registered callback name Required. | ||
fR |
number | Raman (delayed) fraction of n2 | ||
anisotropicFraction |
number | 0 | Anisotropic share b of the response, h_b = b h and h_a = (1 - b) h (vector Raman: ellipse rotation, circular light). 0 isotropic, 1 purely anisotropic (h_a = 0), 1.5 purely orientational (h_a = -h_b/3, e.g. liquid CS2). Allowed 0 to 1.5 |
Single damped oscillator h(t) ~ exp(-t/tau2) sin(t/tau1). More: nonlinear.md#raman-models
| key | type | unit | default | meaning |
|---|---|---|---|---|
tau1 |
number | s | Period parameter | |
tau2 |
number | s | Damping time | |
fR |
number | Raman fraction | ||
anisotropicFraction |
number | 0 | Anisotropic share of the response (vector Raman: ellipse rotation, circular light) |
Delayed response h(t) from an expression in t (s), normalised to unit integral on the grid and forced causal. More: nonlinear.md#raman-models
| key | type | unit | default | meaning |
|---|---|---|---|---|
expr |
string | Expression in t (s) and the entries of params Required. | ||
fR |
number | Raman (delayed) fraction of n2 | ||
anisotropicFraction |
number | 0 | Anisotropic share b of the response, h_b = b h and h_a = (1 - b) h (vector Raman: ellipse rotation, circular light). 0 isotropic, 1 purely anisotropic (h_a = 0), 1.5 purely orientational (h_a = -h_b/3, e.g. liquid CS2). Allowed 0 to 1.5 |
Hollenbeck & Cantrell 2002 silica Raman: 13 vibrational modes with intermediate broadening, fR = 0.18. More: nonlinear.md#raman-models
| key | type | unit | default | meaning |
|---|---|---|---|---|
fR |
number | 0.18 | Raman fraction | |
anisotropicFraction |
number | 0.25 | Anisotropic share of the response (vector Raman: ellipse rotation, circular light) |
Lin & Agrawal 2006 silica Raman: damped oscillator + boson peak (pyNLO's full model), fR = 0.245. More: nonlinear.md#raman-models
| key | type | unit | default | meaning |
|---|---|---|---|---|
fR |
number | 0.245 | Raman fraction | |
tau1 |
number | s | 12.2e-15 | Oscillator period parameter |
tau2 |
number | s | 32e-15 | Oscillator damping time |
taub |
number | s | 96e-15 | Boson-peak time |
fa |
number | 0.75 | Weight a | |
fb |
number | 0.21 | Weight b (boson peak) | |
fc |
number | 0.04 | Weight c | |
anisotropicFraction |
number | (fb + fc): h_b = fc h_a + fb h_b | Anisotropic share of the response (vector Raman: ellipse rotation, circular light) |
Molecular reorientation of a liquid (CS2): h(t) = (exp(-t/decayS) - exp(-t/riseS)) / (decayS - riseS), purely anisotropic Kerr tensor (h_a = -h_b/3). More: nonlinear.md#raman-models
| key | type | unit | default | meaning |
|---|---|---|---|---|
riseS |
number | s | 0.2e-12 | Rise time (molecular inertia) |
decayS |
number | s | 1.6e-12 | Decay time (diffusive reorientation) |
fR |
number | Delayed fraction of n2 | ||
anisotropicFraction |
number | 1.5 | Anisotropic share b of the response, h_b = b h and h_a = (1 - b) h (vector Raman: ellipse rotation, circular light). 0 isotropic, 1 purely anisotropic (h_a = 0), 1.5 purely orientational (h_a = -h_b/3, e.g. liquid CS2). Allowed 0 to 1.5 |
Fused-silica Raman response: Blow-Wood damped oscillator (12.2 / 32 fs), fR = 0.18. More: nonlinear.md#raman-models
| key | type | unit | default | meaning |
|---|---|---|---|---|
fR |
number | 0.18 | Raman fraction | |
anisotropicFraction |
number | 0.25 | Anisotropic share of the response (vector Raman: ellipse rotation, circular light) |
Constant transmission.
| key | type | unit | default | meaning |
|---|---|---|---|---|
value |
number | Power transmission | ||
transmission |
number | Power transmission | ||
phaseRad |
number | rad | Phase |
Gaussian band-pass.
| key | type | unit | default | meaning |
|---|---|---|---|---|
centerWavelengthM |
number | m | Centre | |
fwhmM |
number | m | FWHM | |
peak |
number | 1 | Peak transmission |
Super-Gaussian band-pass.
| key | type | unit | default | meaning |
|---|---|---|---|---|
centerWavelengthM |
number | m | Centre | |
fwhmM |
number | m | FWHM | |
peak |
number | 1 | Peak transmission | |
order |
integer | 2 | Order |
Tabulated transmission / phase vs wavelength.
| key | type | unit | default | meaning |
|---|---|---|---|---|
wavelengthsM |
number or array | m | Wavelengths | |
wavelengthsNm |
number or array | nm | Wavelengths in nm | |
wavelengthsUm |
number or array | um | Wavelengths in um | |
transmission |
number or array | Power transmission | ||
phaseRad |
number or array | rad | Phase | |
groupDelayS |
number or array | s | Group delay (alternative to the phase) |
Constant index.
| key | type | unit | default | meaning |
|---|---|---|---|---|
value |
number | Index |
A refractiveindex.info page (bundled, imported, a file, or ULTRAFAST_RII_PATH). More: materials.md#refractiveindexinfo-pages
| key | type | unit | default | meaning |
|---|---|---|---|---|
page |
string | Page name ("main/SiO2/Malitson") or file | ||
file |
string | YAML file (alternative) | ||
pressureBar |
number | bar | Gas pressure (density scaling from the page's SPECS) | |
temperatureK |
number | K | Temperature | |
dnDT |
number | 1/K | 0 | Thermo-optic coefficient (solids) |
relativeToAir |
boolean | false | The page's n are relative to air |
Sellmeier: n^2 = A + sum B lambda^2 / (lambda^2 - C) (lambda in um, C in um^2). More: models.md#kinds-per-category
| key | type | unit | default | meaning |
|---|---|---|---|---|
B |
number or array | B coefficients | ||
C |
number or array | um^2 | C coefficients | |
A |
number | 1 | Constant term |