SEP 21 — Temporal boundaries: wider windows, absorption and the escaped field#
SEP |
21 |
Title |
Temporal boundaries: wider windows, absorption and the escaped field |
Author |
John Travers |
Drafting agent |
Opus 5.5 (2026-10-16); GPT-6 (review revisions, 2026-10-16; window-strategy revision, 2026-10-20) |
Status |
Draft |
Review status |
Reviewed |
Reviewers |
John Travers (human); GPT-6 (AI); Fable 5.1 (AI); Opus 5.5 (AI) |
Type |
Change |
Created |
2026-10-16 |
Resolution |
— |
Requires |
SEP 14 (the collar study and the Adams limits); SEP 16 (the default multistep stepper and the collar ablation) |
Supersedes |
— |
Superseded-by |
— |
Implementation |
— |
Manual pages |
— |
Part I — Proposal#
1. Abstract#
The temporal absorbing collar stops light that walks out of the time window from wrapping around the periodic grid. Done as solprop does it, as a damping rate inside every source evaluation, it can also be the stiffest term the default multistep stepper integrates. Its peak-rate stability cap puts a conservative floor under the step count for the default strength, independent of fibre length or tolerance: about 420 steps at order three (PEC3/4) and 1450 at order five (PEC5/6). On short runs and on runs whose pulse stays clear of the collar, that floor sets the cost. One alternative is the existing per-step split, whose collar map has no explicit stability cap, but whose first-order error reaches the physical window wherever the collar holds field.
This SEP compares retaining the field on a larger time window with absorbing it:
whether to absorb at all: a wider window without temporal absorption, with monitored guard regions, as a production candidate as well as a reference;
how to use the window: fixed launch placement and prescribed frames, including an asymmetric allocation of time around the launch and a fastest-light frame;
its geometry and strength: the collar’s width, its rate profile and how its strength is set;
how it is integrated: in-stage, split, or an implicit–explicit (IMEX) treatment;
what it reports: diagnostics, and an optional record of the radiation it removes.
Every option is judged against a separately converged wide-window reference. The campaign measures wall time and memory at matched physical accuracy, including the cost and reliability of boundary checks. It explicitly considers a default without temporal absorption that warns on boundary approach and stops before significant wrapping. No default is selected in advance. The implicit-collar study proceeds only for a case where a collar remains useful after this comparison. Only qualified strategies are implemented; an escaped-field reconstruction is not a prerequisite for a useful boundary alarm.
2. Motivation and scope#
The cost. The in-stage collar’s peak rate bounds the negative-real spectrum of its
projected operator (ADR-025). The bound need not be an attained eigenvalue. For the
default Multistep it sets a floor of \(A N/(2r)\) steps over the run (§4.3): \(A = 12.6\)
is the profile depth, \(N\) = boundary_N = 20, and \(r\) is the method’s real stability
interval. This is the constant-step scalar estimate used to interpret the cap; it is not
a stability theorem for variable steps, non-commuting dispersion and nonlinear sources.
SEP 14 found the floor holding the Adams march on a CtC slice at its order-three
stability limit “whatever the tolerance”. SEP 16 found it setting the median step of the
full canonical run in the exponential formulation (1329 calls against 965 with the
per-step collar, which removes the explicit cap but still absorbs).
It also held a 2 cm gradient’s Adams steps near 30 µm (503 attempts to 1 cm, against 27
with the per-step collar). And because each order’s limit is \(2r/\alpha_{\max}\), the
floor pushes the variable-order choice towards orders two and three.
The two existing schemes each fail somewhere. The per-step split is free of the
floor, but it is a Lie splitting: it is first order wherever the collar holds field, and
that error reaches the physical window. SEP 14 measured 2.3e-4 within ±300 fs on the RDW
capillary, against 3e-7 with the in-stage collar, and 6.9e-3 to 2.6e-3 on CtC between
rtol 1e-4 and 1e-6. The symmetric (Strang) split tested with unchanged Adams history did not fix this
for a nonlinear source (SEP 14 phase 4; qualified in §4.5). So today’s guidance has a manual decision in it:
“take the per-step collar where the pulse stays clear of the collar”
(Adams). The
project’s standing preference is a robust default over conditional speed-ups.
The absorber is silent. Nothing reports how much energy the temporal collar removed,
or how much of the field sat inside it. warn_walkoff is an a-priori estimate from a
span the caller supplies. The spatial routes already measure their collar’s fluence
fraction at field-bearing saved planes (spatial_collar_fraction); SEP 22 deliberately
skips that diagnostic at statistics-only planes. Neither that diagnostic nor sparse
output is a boundary-safety monitor. The temporal collar has no equivalent. A run
whose physics happens inside the absorber is answered differently
by the absorber, as the boundaries page warns. The Raman self-frequency-shift gallery
example plots its soliton out to 1.7 ps in a ±1.75 ps window whose temporal collar
begins at 1.64 ps.
What the measurements so far did not compare against. Every collar study to date (ADR-025, SEP 14, SEP 16 Q4) measured a scheme against a converged run with the in-stage collar. That establishes consistency, not correctness. The collar is meant to imitate an unbounded window. Its own perturbation of the in-window field, as against a run on a wider window, has never been measured, so it is not known whether the split’s 2e-4 is large or small next to the in-stage collar’s own error.
A wider window may be the cheaper calculation. At fixed temporal resolution, extra samples cost roughly linearly for local responses and as \(n_t\log n_t\) for transforms. Removing the temporal collar can save both its transform pass and the steps forced by its stability cap. It also removes the collar’s modelling error, provided the retained field stays clear of the periodic seam. The saving is not universal: SEP 16’s canonical call reduction is only a factor of 1.38, and weakening the RDW collar barely reduced calls. Neither study measured an enlarged window without temporal absorption. Sections 4.10–4.12 make that comparison mandatory, including efficient placement, frame choice and the cost of detecting inadequate windows. A monitored failure is preferable to silently returning wrapped light; whether that policy makes a robust default is a campaign result, not an assumption.
In scope:
production windows with no temporal absorber, retaining the spectral collar and hard band mask, compared at matched observable errors and measured resource limits;
fixed launch offsets and prescribed propagation frames in that comparison; the supported settings, coordinate metadata and guidance needed for qualified choices;
guard-region diagnostics independent of the absorber, their sampling cadence, warning/error policy, and evaluation of a monitored default without temporal absorption;
the temporal collar on field and envelope grids, on every route that carries one;
its geometry: the collar width (
collar_fraction), the rate profile, and how strength is parameterised (boundary_N,boundary_length, or a protected walk-off);its integration: the in-stage term, the per-step split, and a new IMEX candidate for the multistep stepper in both formulations;
diagnostics: absorbed energy, collar occupancy and guard occupancy, with in-run boundary alarms and an end-of-run report;
an optional escaped-field record: the spectrum and energy of what left the window, estimated from crossings through a surface in the flat region before the collar, subject to the qualification of §4.7;
a phase-space filter, measured as an exploratory candidate on the Runge–Kutta path;
the keyword switches the roadmap asks for (
absorber=False,absorber_scheme=);the wide-window reference and the campaign that uses it.
Out of scope:
The spectral collar. It is diagonal in ω and folded into the linear operator, so the propagator applies it exactly at no cost (ADR-007). It has no stability or splitting problem. Its strongly damped bins already take the anchor’s value in dense output (ADR-039).
The transverse spatial collars. They use the same bounded profile and the same in-stage form (free-space model), so §4 motivates testing whether the geometry results transfer. Phase 0 measures this (R4); changing the real-space collars’ geometry or strength is left to a later proposal. SEP 22 delivered the k⊥ collar and decoupled the in-stage collars’ strength from the spectral rate’s ceiling (its
collar_length, Q16). Its temporal and real-space spatial strengths still share that length; this SEP must not alter spatial absorption inadvertently.Adaptive window machinery: recentering from the evolving solution, expanding the grid during propagation, remeshing, and automatic restart on a larger grid. Fixed launch placement and prescribed frames are in scope (§4.11); a general offset-grid API and independently asymmetric absorber ramps remain follow-up work.
Production perfectly matched layers, transparent boundary conditions and phase-space filters (§10); the phase-space filter prototype remains in scope.
Implicit or IMEX treatment for the Runge–Kutta stepper. Its floor is about 38 steps (§4.3; about 45 for the low-storage RK4 march of SEP 24, which must refuse an implicit scheme as the Runge–Kutta march does) and rarely binds.
Reimplementing the spectral-only collar’s keyword (
temporal=False) or its compiled-away zero-rate pass: SEP 22 phase 1 supplied them (Q16). This SEP uses them in the comparison and retains them.
3. Context#
What exists. solprop.boundaries and the manual’s
absorbing boundaries page:
the spectral rate \(\alpha(\omega) = -2\log W(\omega)/\ell\), folded into \(D\);
the temporal rate \(\alpha(t) = A(1-W(t))/\ell\) with \(A\) =
TEMPORAL_ALPHA_LENGTH= 12.6 and \(\ell = L/N\) (ADR-007);two temporal schemes behind
absorber_scheme:"nonlinear", the in-stage term \(-\alpha E/2\) masked to the active band (the default), and"split_step", the factor \(e^{-\alpha h/2}\) once per accepted step followed by the hard band mask (ADR-025);absorber(grid, temporal=False), with no temporal pass after translation, while the spectral rate and hard band mask remain (SEP 22);linear.Frame, including a fixedbeta1or the reference mode’s group delay evaluated along z, and pulse delays for fixed placement; these do not yet provide an automatic fastest-light frame or a qualified boundary alarm;stable_step,warn_walkoff, and the translation refusal of a replayed schedule or step floor past the limit;for the multistep stepper, the stability-capped order choice of the exponential formulation (SEP 16 phase 6). The per-step collar refuses interpolated planes.
The grids build the temporal collar in solprop.grid._temporal_collar. Its flat region
is \(\pm\min(T_{\mathrm{req}}/2,\,(1-2f)T/2)\), with \(T\) the realised window and \(f\) =
collar_fraction = 0.05. Each edge is therefore at least 5 % of the window, and is
otherwise whatever slack the transform size leaves.
Prior studies this builds on:
ADR-007 and ADR-025: rates instead of masks, and the in-stage default with its order ladder.
SEP 14 §4.5 and phase 4: the stability intervals, the Strang study and its failed exit criterion, and the CtC-slice diagnosis. SEP 14 also deferred “lower the collar’s peak rate by default” as “a physical setting, measured separately”. That is part of what this SEP measures.
SEP 15 Q5: an implicit–explicit collar was deferred because the exponential formulation’s endpoint weight does not commute with the collar.
SEP 16 Q4: the ablation concluded that an implicit or inner collar would buy nothing beyond the per-step collar where that is valid, and so built none.
Roadmap items. This SEP covers two in part:
An absorber switch on the keyword interfaces. The
absorber=Falseandabsorber_scheme=keywords are in scope. Whether spatial runs should default to an absorber is not.The split-step collar on the general modal route, Kokkos against the reference. The split scheme’s out-of-band disagreement has to be resolved before phase 0 compares that scheme on a general modal guide. The item is linked and kept.
3.1 Implemented contracts and sequencing#
The campaign starts from the delivered contracts below, not the earlier drafting costs or proposed interfaces. This cross-check is dated 2026-10-20: SEP 22 and SEP 24 are Final on the integration branch; SEP 23’s three CPU implementations are delivered, with closing qualification still pending. SEP 27’s accepted implementation is nearing completion; SEP 28 is Accepted and has not begun implementation. A campaign records the exact solprop and backend revisions it actually uses.
SEP |
Contract this proposal must preserve |
Consequence for SEP 21 |
|---|---|---|
All-zero temporal rates compile no temporal pass under either scheme; |
Use the real zero-pass baseline. Keep spatial strengths fixed when disabling temporal absorption. Monitor independently of output, with backend reductions rather than mandatory whole-field downloads (§4.12, Q16). |
|
|
Preserve the four-channel meaning and order. Add temporal diagnostics separately; compare rate definitions and qualified integrals, not an unresolved endpoint trapezoid (§4.6, §7). |
|
24 (implemented stepper) |
|
Include it in the campaign with independently calibrated schedules. Checks use sufficiently close committed endpoints; extra check steps require a newly calibrated schedule. Do not restore full-volume storage merely to monitor the boundary. |
Field-grid rate plasma uses the held-current source, including two gated products and a sampled-gate certificate. The source gate remains when temporal field absorption is off. |
Plasma candidates and references must all use this source. Converge the gate products and response preparation separately from the field absorber (§4.8); old gated-polarisation results do not settle the boundary choice. |
|
CPU source evaluation, temporal tiles, projections and register folds change while the source physics and canonical state layout stay fixed. |
Its baseline must include SEP 27’s streams and lifetimes. SEP 21 must measure monitor overhead on that execution path and repeat affected free-space cost comparisons before recommending a default. |
Execution order. SEP 27’s acceptance and execution agreement explicitly places SEP 28 after the physics change and its measured baseline. Finish and integrate that source first; inventory its retained inputs, both current-product transforms and projection streams in SEP 28’s phase 0. Use the same source and gates on both sides of SEP 28’s performance comparison. Any adjustment to SEP 28’s accepted inventory belongs in its implementation record, with approval if it changes the accepted scope.
SEP 21 need not wait to develop analytic witnesses, guard prototypes, window/frame derivations or plasma-free comparisons. Its plasma campaign must use the integrated, qualified SEP 27 source, and its final CPU free-space cost recommendation must be checked after SEP 28 on the affected routes and grid sizes. Earlier measurements are labelled with their baseline and repeated where source cost or storage changes; modal results are not invalidated merely because a free-space path was optimised. R6/R7 state this qualification explicitly rather than applying a presumed speed-up.
For production work, the recommended order is SEP 27, then SEP 28’s shared source and buffer changes, then SEP 21’s native monitor/accumulator integration on those paths. Independent SEP 21 work can proceed alongside them. Earlier integration of a shared endpoint hook requires an agreed ownership contract and requalification after the other changes; competing edits to stage buffers are not independent work. Use the next free kernel/output schemas at integration, not version numbers reserved by an older draft. This is an integration constraint, not a requirement to finish the escaped-field reconstruction before choosing a useful window or alarm.
4. Theory#
Conventions are those of conventions.md. The equations below use the internal FFT convention and internal amplitude \(E\) (called \(a\) in conventions), not the saved true-power amplitude \(b\). \(\alpha\) is a nominal power coefficient: the field falls as \(e^{-\alpha z/2}\). \(t\) is the retarded time in the frame of the grid. \(P\) is the projection onto the active band.
4.1 The equation and the collar term#
In the interaction picture the state \(\tilde u(\omega,z) = e^{-\Phi(\omega,z)}E(\omega,z)\) obeys
where \(\Phi\) is the cumulative diagonal linear operator, including the spectral collar. \(C\) is diagonal in neither ω nor (because of \(P\)) t. It is self-adjoint and negative semidefinite in the unweighted Parseval metric on the represented band, with spectrum in \([-\alpha_{\max}/2, 0]\); this does not assert passivity in every physical energy metric (§4.6). On an oversampled grid the implementation is the corresponding compression \(J^* C_0 J\), where \(C_0=-\mathrm{diag}(\alpha)/2\) and \(J\) synthesises the represented band on the fine grid with the Parseval scaling. Field grids require the real-field transform and its weighted adjoint, with self-adjointness and CG understood in the equivalent real vector space. Half-spectrum multiplication by a real temporal profile need not be complex-linear. These pad/crop and endpoint weights must be retained in prototypes. Coupled linear routes use their full evolution operator in place of the scalar \(e^\Phi\) (§4.7). The in-stage scheme evaluates the second term explicitly with the source. The split scheme instead applies \(e^{-\alpha h/2}\) in t, then \(P\), once per accepted step.
4.2 What the collar must do: transmission and reflection#
In the time domain the propagation equation is a Schrödinger equation in t, with z as the evolution variable and \(\beta(\omega)\) as the dispersion relation. The collar is then a complex absorbing potential, of the kind that admits transmission and suits periodic grids [1, §3, eqs 171–173]. A collar can fail in two ways.
Transmission. A packet crosses the collar before it has been absorbed, and on a periodic grid re-enters from the other edge [1, p. 45].
Reflection. A packet is scattered onto the branch that walks back into the window.
Transmission. For a weak, smooth potential the semiclassical (JWKB) transmission is \(|T|^2 = \exp(-2\,\mathrm{Im}\int k\,\mathrm{d}x)\), with no reflection [1, eqs 206–207]. In the weak-potential, narrow-packet, steady-drift approximation this gives \(|T|^2 \simeq e^{-2\Gamma}\), with \(\Gamma\) derived below. It is not an exact transmission law for a dispersing or nonlinear packet.
Reflection. For quadratic dispersion the wavenumber in this analogy is the packet’s offset \(\Omega\) from the frame’s zero-walk-off frequency, not the optical carrier. A general dispersion relation can have several such frequencies, or no reflected branch in the represented band. For a stationary medium and collar, elastic scattering conserves the real exterior propagation constant in the frame, \(K(\omega) = \beta(\omega) - \beta_1^{\mathrm{f}}\omega\). It therefore reflects a packet at \(\omega\) onto the frequency \(\omega'\) with \(K(\omega') = K(\omega)\) and the opposite walk-off. With \(\beta_2\) alone, that partner is at \(-\Omega\), a gap of \(2\Omega\). A smooth collar of width \(w\) has little Fourier content at that gap when \(\Omega w\) is large. The literature’s rule of thumb is \(kL \gtrsim 10\) for smooth monomial potentials [1, §3.2, p. 39], with the JWKB validity condition [1, eqs 208–209] as the local form. It is more restrictive at low energy [1, p. 42]. For quadratic dispersion the local JWKB parameter is \(|k'|/k^2 \approx \alpha'/(2\beta_2\Omega^3)\) with \(\alpha' \sim \alpha_{\max}/w\): at fixed \(\Omega w\) it is proportional to the collar’s strength, so reflection is a function of \((\Omega w, AN)\), not of \(\Omega w\) alone.
So fast walkers set the transmission requirement and slow walkers set the reflection limit. For quadratic dispersion, \(\Omega w \lesssim 10\) identifies packets for a reflection sweep, not a universal threshold or a predicted reflected fraction. With full dispersion the gaps to all same-\(K\) branches, the collar strength and its smoothness also matter. On the RDW grid (\(w\) = 20.5 fs), \(\Omega w = 10\) means \(\Omega \approx 0.5\) rad/fs. Moderate walkers may sit in the reflecting range, which phase 0 measures. The carrier frequency plays no part: reflection is not small just because the collar spans many optical cycles.
For a narrow packet with constant group-delay drift \(v = |\partial_z\tau|\) (s/m), neglecting dispersion, reflection and nonlinear evolution during the crossing, the field attenuation accumulated crossing one edge is
with \(w\) the edge width and \(\Delta\tau = vL\) the drift over the run. The last step uses
the Planck taper’s symmetry, \(W(x) + W(w-x) = 1\), so \(\int_0^w (1-W) = w/2\) (this is
the “6.3 per collar width per reference length” of the boundaries page). \(\Gamma\) is the
attenuation of one edge. warn_walkoff (solprop.boundaries) integrates the rate
over the whole time axis, both edges, and requires \(2\Gamma \ge \Gamma_{\min} = \ln 10^3\);
a wrapping packet does cross both edges before it re-enters the flat region, so the
one-edge criterion \(\Gamma \ge \Gamma_{\min}\) used below is conservative by a factor of two
in the exponent. Which count the design adopts is open (Q17); the tables of §4.3, the
strength formula of §6 and Q3’s figures all count one edge. The protected walk-off,
the largest uniform drift meeting this model’s one-edge attenuation target, is then
or \(18.2\,w\) counting both edges as warn_walkoff does.
4.3 The stiffness floor#
Using the peak rate as a conservative scalar cap for an explicit method with negative-real stability interval \(r\) gives \(h\,\alpha_{\max}/2 \le r\), and \(\alpha_{\max} = A/\ell = AN/L\). The number of steps over the run is therefore at least
The first form says the floor depends only on the absorber’s dimensionless strength and
the method. The second says what it costs: protecting a walk-off of \(\Delta\tau_p\) through
an edge of width \(w\). With today’s \(A N = 252\) and the intervals of
benchmarks/sep13/stability.py:
method |
\(r\) |
\(n_{\min}\) |
|---|---|---|
IP-DOPRI5 |
3.31 |
38 |
RK4 (SEP 24’s implemented low-storage march) |
2.785 |
45 |
PEC2/3 |
0.55 |
229 |
PEC3/4 |
0.30 |
420 |
PEC4/5 |
0.16 |
788 |
PEC5/6 |
0.087 |
1448 |
The same numbers come out of the default grids for the benchmark cases, which differ in everything but \(AN\):
case |
window |
collar edge |
\(\alpha_{\max}\) (1/m) |
protected walk-off (one edge) |
|---|---|---|---|---|
RDW, He, 1.5 m |
410 fs |
20.5 fs (5.0 %) |
168 |
185 fs (9.0 \(w\)) |
CtC reduced, H2, 0.1 m |
1.14 ps |
69 fs (6.1 %) |
2520 |
0.63 ps (9.0 \(w\)) |
CtC, H2, 0.2 m |
6.19 ps |
1.10 ps (17.7 %) |
1260 |
10.0 ps (9.1 \(w\)) |
SSFS example, H2, 2 m |
3.64 ps |
182 fs (5.0 %) |
126 |
1.65 ps (9.1 \(w\)) |
Four consequences follow.
Strength is tied to the run length, not to the walk-off. \(\alpha_{\max} = AN/L\). Rebuilding the absorber from a short slice’s length therefore gives a proportionally stronger collar for the same physics (SEP 14’s 2 cm CtC slice: 12 600 against 2520 m⁻¹).
Grid slack strengthens the collar without being asked. The edge width is whatever the transform rounding leaves, from 5 % to tens of per cent. Absorption grows with \(w\) while \(\alpha_{\max}\), and so the floor, stay fixed. On the full CtC grid the default protects a 10 ps walk-off on a 6.2 ps window.
The width is the lever. At fixed protected walk-off, \(n_{\min} \propto 1/w\): doubling the collar halves the floor. It costs either physical window or samples, and on a power-of-two grid the slack is sometimes already there.
The profile’s shape gains at most a factor of two. The complement profile’s peak is twice its edge mean. A flat profile, ratio one, is the lower bound, but it is discontinuous. A plateau that rises over half the edge has ratio about 1.33. A steeper rise also steepens \(\alpha'(t)\), which raises the split scheme’s error (§4.5) and can increase reflection (§4.2); the actual scattering must be measured. Some optimised potentials, such as Manolopoulos’s double pole [1, eqs 216–220], have unbounded peaks, which is the wrong direction for this explicit rate cap. This does not rule out bounded optimised profiles for other error objectives.
4.4 Explicit damping, PMLs and transparent boundaries#
Whatever its form, an absorbing term in the equation that removes a packet crossing width \(w\) at speed \(v\) must damp it at a z-rate averaging \(\Gamma v/w\) while the packet is inside. A bounded negative-semidefinite damping operator treated explicitly therefore has a rate-dependent stability restriction. This is not a no-go theorem for every possible nonlocal boundary construction or exponential treatment.
A perfectly matched layer [3, 4] damps per unit of phase travelled. Its modelling error is \(\exp(-2k\sin\gamma\,\sigma_{\max}d/(p+1))\) [4, eq. 4.7]: it depends on the integral of the stretching, and decreases with increasing positive wavenumber. The attenuation exponent grows with wavenumber. In both papers the layer is discretised by finite differences and stepped by Crank–Nicolson, so the scalar dissipative stability restriction is removed; accuracy and the full discrete operator still need checking. It is implicit, which moves the stiffness rather than removing it. The optimised layer is thinner than a third of the dominant wavelength [4, Table 2], so its z-rate, about \(\Gamma v/d\) with \(d \ll w\), would be stiffer still if treated explicitly.
Three considerations argue against adopting those PMLs unchanged here:
It loses the exact linear propagator. A stretched layer is equivalent to a modified kinetic operator plus a complex potential [4, eq. 2.9], so with full or tabulated \(\beta(\omega)\) the operator is diagonal in neither domain.
A fixed stretch can amplify outgoing content. The stretch damps according to the sign of the wavenumber, and both papers choose branches that align that sign with the outgoing direction [3, p. 4; 4, p. 6]. Here the walk-off direction is the sign of \(\beta_1(\omega) - \beta_1^{\mathrm{f}}\), which need not have the sign of \(\Omega\): higher-order dispersion can break the alignment. Where the signs disagree, that stretch would amplify outgoing content.
It still reflects when truncated. A finite layer reflects at its outer wall [4, eq. 4.1; 2, p. 26], so it is reflectionless only when untruncated.
Transparent boundary conditions [2] are nonlocal in the evolution variable, z here [2, eq. 2.1]. Sum-of-exponentials and rational approximations make them local [2, §§3.3–3.4], so that is an approximation and a cost. Two further changes would be needed:
the constant-coefficient constructions considered here assume a homogeneous exterior and need the roots of the dispersion relation continued off the real frequency axis [2, eqs 2.5–2.7], which a table on the real axis does not supply;
they need an explicit boundary/interface treatment in place of the present periodic FFT discretisation. This is a redesign, not a mathematical impossibility.
These papers do not supply a ready discrete boundary operator for solprop’s full-dispersion, band-limited propagation problem.
The stiffness of an absorbing term can therefore be moved (§4.5), reduced (§4.3), or avoided by a different integration or boundary formulation. Diagnostics (§4.6, §4.7) expose errors; they do not make a distorted solution accurate. An operation applied between steps adds no eigenvalue. Examples are the per-step split and the phase-space filter of Soffer and Stucchio [5], which removes only content that is outgoing (§4.9). Such an operation trades stiffness for an error of a different kind.
4.5 Integrating the collar#
The in-stage term integrates \(C\) at the method’s own order, inside the method’s stability region (above).
The per-step split first advances the non-collar vector field \(G(E)=\mathcal L E+N(E)\), then applies the time multiplier and projection. Before projection, with \(C_0=-\alpha/2\), its leading local defect relative to the combined flow is
Thus the nonlinear contribution involves \(C_0N(E)-N'(E)C_0E\), not the operator commutator \([C_0,N']E\). For quadratic dispersion, \([\partial_t^2,\alpha]=\alpha''+2\alpha'\partial_t\); higher-order or tabulated dispersion and band projection need not give a local error supported only on the ramp. At fixed protection a geometrically rescaled collar has \(\alpha'\propto w^{-2}\), which motivates measuring, rather than assuming, a reduction of split error.
The projection adds a separate defect. On one common time grid, write \(P\) in the time representation for this paragraph. The implemented collar map is \(S_h=P e^{hC_0}P\), restricted to \(\operatorname{ran}P\). It is a contraction in the Parseval norm, but
The time multiplier is exact for its unprojected scalar subproblem; the complete map is not the exact flow of the projected collar. The in-stage and split implementations also use fine and coarse temporal rates, respectively. Phase 0 separates that discretisation difference from splitting and projection error before attributing an observed discrepancy to one mechanism.
Strang composition of exact subflows is second order. SEP 14’s implementation transported Adams history through the collar without recomputing nonlinear history: a stored Kerr derivative then scales as \(e^{-\alpha h/2}\) while the derivative of the damped state scales as \(e^{-3\alpha h/2}\). That implementation lost order. This is not a general impossibility of second-order splitting with a multistep subsolver, but repairing its history and projected subflow is outside this study.
IMEX, interaction formulation. Treat \(C\) implicitly in the corrector and \(N\) explicitly. A variable-step Adams–Moulton corrector for the collar part has the form \(\tilde u_{n+1} = r_n + h\beta_0\,e^{-\Phi_{n+1}}Ce^{\Phi_{n+1}}\tilde u_{n+1}\). With \(x = e^{\Phi_{n+1}}\tilde u_{n+1}\), the lab-frame spectrum at the new point, this becomes
The conjugation by the linear flow drops out. What is left is symmetric positive definite on the band, provided \(\beta_0>0\), with condition number at most \(1+h\beta_0\alpha_{\max}/2\) in the Parseval metric.
Without \(P\) it is a pointwise division in t, one transform pair: the collar is diagonal on the modal time-domain field.
With \(P\), there are two choices: the pointwise division followed by \(P\), which is generally not the inverse of the compressed operator and needs a measured residual and convergence test; or conjugate gradients, whose iterations each cost one transform pair and have the standard energy-norm bound \(\|e_k\|_A/\|e_0\|_A \le 2[(\sqrt\kappa-1)/(\sqrt\kappa+1)]^k\). The stopping tolerance is tied to the step’s error budget, not a fixed iteration count.
Either way the cost is transforms, not source calls. Within the AM intervals the
condition number is at most \(1+\beta_0 r_{\rm AM}\): 3.5, 2.1, 1.6 and 1.4 for corrector
orders 3 to 6, so the CG bound below needs about 13, 9, 7 and 6 transform pairs per solve
to \(10^{-6}\), in the predictor and in the corrector, against about one pair for a Kerr
source; the trapezoid at \(x = 100\) needs about 50. Since Multistep() is the default for
every run, that is cheap only where the source is expensive (plasma, Raman, the TDSE
response), and phase 1 reports transforms beside source calls (§11).
The implicit part’s stability depends on its order. The constant-step Adams–Moulton
methods’ real intervals (independently recomputed from the characteristic polynomial;
see [9]) against the PEC intervals of today’s march. The rows are keyed by the
corrector’s order, which is one above solprop’s order: PEC\(q\)/\((q+1)\), order \(q\),
corrects with the Adams–Moulton formula of order \(q+1\). So the abstract’s “order
three” is PEC3/4, the corrector-order-4 row.
corrector order |
today’s scheme ( |
AM, implicit collar |
PEC, explicit collar |
|---|---|---|---|
2 (trapezoid) |
— |
unbounded (A-stable) |
— |
3 |
PEC2/3 (2) |
6.0 |
0.55 |
4 |
PEC3/4 (3) |
3.0 |
0.30 |
5 |
PEC4/5 (4) |
1.84 |
0.16 |
6 |
PEC5/6 (5) |
1.18 |
0.087 |
For order \(q\), integrate the Lagrange basis on nodes \(1,0,\ldots,2-q\) over \([0,1]\) to obtain \(\beta_j\). The polynomial is \(\rho(\zeta)-h\lambda\sigma(\zeta)\), with \(\rho=\zeta^{q-1}-\zeta^{q-2}\) and \(\sigma=\sum_{j=0}^{q-1}\beta_j\zeta^{q-1-j}\). The negative-real endpoint for \(q>2\) is \(-\rho(-1)/\sigma(-1)\). This table does not qualify variable-step coefficients or the complete IMEX method; phase 1 checks the supported step ratios, startup, order changes and non-commuting operators.
Five points qualify the table. With \(x = h\alpha/2\):
An implicit collar at the corrector’s own order moves the floor out 10–14 times, and no further. Past its interval the AM collar is not merely inaccurate but strongly unstable: its largest root reaches 1.7–3.6 in modulus for large \(x\). The order choice must therefore stay inside the implicit intervals, as it stays inside the explicit ones today (SEP 16 phase 6).
The trapezoid is A-stable but not L-stable. Its collar factor per step is \((1-x/2)/(1+x/2)\), which tends to \(-1\): \(+0.33\), \(-0.67\), \(-0.96\) at \(x\) = 1, 10, 100. The sign flips for \(x>2\). For \(x \gg 1\) it absorbs about \(4/x\) nepers per step instead of \(x\), so a stronger collar absorbs less. That is the transmission failure of §4.2, and the undamped, sign-flipping collar field also drives the explicit source. Ascher, Ruuth and Wetton found exactly this with Crank–Nicolson–Adams–Bashforth (CNAB): weak damping of stiff modes caused aliasing in spectral computations, and they advise against such schemes there [7, pp. 8, 22, 26]. The trapezoid therefore removes the stability floor but not the cost: where the collar holds field, its absorption is wrong unless \(x \lesssim 1\). Its \(O(h^3)\) local error in the collar part also holds only for \(x \lesssim 1\). The factor tending to \(-1\) already demonstrates the unresolved stiff transient; stiff order reduction of coupled IMEX schemes is an additional issue [8, pp. 25, 28].
Modified CNAB improves stiff decay but does not eliminate it. In the two-step family of [7, eq. 15], the implicit weights are \(9/16,3/8,1/16\). The stiff-limit polynomial is \(9\zeta^2+6\zeta+1\), with a repeated root \(-1/3\). Backward Euler has a zero stiff-limit factor but order one. These facts do not establish a universal optimal-decay bound for every possible Adams-like formula.
The predictor and estimator are part of the method. An explicit predictor can feed a badly amplified collar state to the nonlinear source even when the implicit corrector is stable. Phase 1 derives and tests each complete predictor–corrector recurrence. Giving predictor and corrector the same implicit collar can cancel its defect in their difference, so an embedded difference alone may miss collar error. Each candidate needs an independent collar-error check, for example step doubling in the study. Occupancy diagnostics cannot replace integration-error control.
Semi-implicit BDF (SBDF) is the strongly damping alternative. Its implicit part damps stiff modes to zero [7, pp. 8, 13], and it evaluates the source once per step, so its asymptotic source-call count can match today’s, apart from startup, rejection and error-estimation costs. Its source-only imaginary-axis intervals must be recomputed from the chosen recurrence and compared with PEC3/4 and PEC4/5; the advection–diffusion CFL bounds in [7] are not interchangeable with those intervals. It was also the only IMEX family to integrate Kennedy and Carpenter’s severe case at constant step [8, p. 23]. But adopting it means replacing the Adams march for the source as well, and BDF has a larger error constant [7, p. 9]. Phase 1 carries it as a reference, not a candidate default.
The history must hold the collar at the corrected state. The intervals above assume the stored derivative’s collar part is \(C\) at the corrected state. Today’s PEC march stores the predicted-state source (
backends/multistep.py, the history entry marked"predicted"). An implicit collar at the new point beside predicted-state collar history recovers intervals indistinguishable from PEC’s (a companion-matrix check at review: 1.24, 0.60, 0.31, 0.17 and 0.088 fororder1 to 5). Phase 1 states the storage rule. With an exact solve the corrected collar term is free, \(Cx = (x - b)/(h\beta_0)\); with the projected pointwise solve it is not.A hard step cap in both formulations. Past \(r_{\rm AM}\) the AM collar is unstable, and a collar shared by predictor and corrector can hide from their difference (above). Today
KernelProblem._check_collar_stabilityreturns for any scheme but"nonlinear", and the order cap exists only in the exponential formulation and weighs the order, not the step. Phase 4 therefore refuses a replayed step or adz_minpast \(2r_{\rm AM}/\alpha_{\max}\) under"implicit"in both formulations, and says what"implicit"does beside the always-explicit spatial collar (_check_spatial_collar_stability).
These are scalar results with the collar and the source commuting, so they are necessary conditions only [7, p. 15]. The non-commuting coupling of the real problem has to be measured.
IMEX, exponential formulation. The endpoint is \(u_{n+1} = e^{hD}u_n + h\sum_j w_j(hD)S_j\). An implicit collar there needs \((I - h\,w_0(hD)\,C)\,u = b\), and \(w_0(hD)\) does not commute with \(C\) (SEP 15 Q5). It is not pointwise. Two candidates:
a Krylov solve (GMRES), whose iterations each cost a transform pair;
giving the collar part a non-exponential weight in the lab frame, which reduces the solve to the interaction case’s. The trapezoidal weight inherits the trapezoid’s weak damping above; a backward-Euler or modified-CNAB weight damps, at order one or two.
What no treatment changes. The collar is an artificial term in the model. An integrator must reproduce its effect on the requested observables to the specified accuracy. This does not require resolving every discarded stiff transient, nor does unconditional stability guarantee correct transmission. The accuracy and cost benefit of an implicit method, particularly with nonlinear content in the collar, remains the phase 1 question.
4.6 Diagnostics#
Occupancy and energy are different measurements. On a conventional modal route, use the nonnegative diagnostic
where \(b\) is the true-power analytic amplitude of conventions §4, with the field-grid endpoint weights respected. This is an energy-density proxy, not the temporal Poynting trace, which differs for a broadband dispersive index. Define zero occupancy for a zero field. General modal and spatial routes must use their documented metric and state the diagnostic’s meaning; a sum of squared internal modal amplitudes is not a universal physical energy. Spatial vacuum-admittance statistics retain their existing limitation (conventions §4).
The energy ledger uses the actual evolution operator. Write the route’s energy as \(U=E^\dagger M(z)E\), with \(M\) including quadrature, DFT, real-field and power weights. For \(E'=\mathcal L E+N(E)+CE\),
The temporal removal rate is \(R_t=-2\operatorname{Re}(E^\dagger MCE)\) and \(U_t(z)=\int_0^zR_t(s)\,ds\); spectral removal uses the spectral-collar contribution in exactly the same identity. The familiar \(\int\alpha|E(t)|^2dt\) follows for an unprojected scalar envelope with a constant power weight. For a frequency-dependent metric, \(M\) and \(C\) need not commute: unweighted contractivity does not prove \(R_t\ge0\). Do not clip a signed contribution to force a positive ledger. Phase 0 checks passivity in the actual metrics and reports any failure before recommending a default. Changing the collar operator to enforce another metric needs a recorded maintainer decision (Q15), not an unnoticed normalisation change.
Under the split, record \(U(E^-)-U(S_hE^-)\) using the same endpoint metric and the actual map, including projection; distinguish the time multiplier’s loss from the hard mask’s loss where they can be evaluated separately. This discrete difference avoids a trapezoid approximation to an unresolved damping substep. A general energy balance must also include material absorption, energy exchange with Raman/plasma or other responses, changing metrics, and any further projections. The short ledger \(U_0=U+U_t+U_\omega+U_{\mathrm{loss}}\) is an acceptance identity only in a case where all other contributions are proved zero or explicitly included.
SEP 23’s existing absorbed_power is an instantaneous four-channel rate, not a
temporal escape counter. Preserve its spectral, transverse (k⊥), evanescent and
material channels; material gain can make the last one negative. On its supported
routes, a spectral integral uses the same actual summed spectral_rate and metric.
SEP 22’s custom spectral rate is not separately attributable to the soft collar
(Q16). Temporal removal and any real-space spatial removal require separately named
quantities; neither may be relabelled as SEP 23’s transverse channel.
Sampling and accuracy. Accumulate in-stage rates by trapezoidal quadrature at
actual accepted endpoints, with an independently measured second-order error bound;
the march’s tolerance does not bound this quadrature error. The spectral channel is
diagonal and exact under the linear flow, and its rate reaches \(60/\ell\), so \(\alpha h/2\)
can exceed one on its bins; there an endpoint trapezoid of \(\alpha|E|^2\) has no
resolved-quadrature error bound at that step size. For an exact isolated linear
flow, use the per-step factor \(1-e^{-\alpha h}\) (exponential weights). Coupled source
evolution needs a separately qualified exponential-weighted or refined rate integral;
that factor alone is not its exact total loss. Do not use the last trial
stage as if it were the corrected endpoint. In the current shared driver,
_on_accepted_step runs before state/position commitment on an adaptive run and after
it on replay; the quadrature alarm deliberately consumes trial buffers. The new
accumulators therefore need a hook after state and position commitment, or explicit
accepted endpoint data, consistently on adaptive RK, both multistep formulations and
replay, including the low-storage march after its finish/commit block. Rejections
contribute nothing. An in-place stage register is not retained endpoint data; any
extra buffer must respect the march’s ownership contract and appear in its ledger.
Any change to that protected hook surface bumps the kernel schema. Extra transforms
needed to form endpoint rates are counted, even when a trial buffer can sometimes
be reused. Accumulator interpolation at dense save planes must be qualified separately;
until then recording these quantities requires step planes.
Warn when measured occupancy or removal relative to \(U_0\) exceeds the phase 0
thresholds, with a defined zero-input case. Sample occupancy through between_planes
and report the maximum over the samples actually taken; it cannot certify that no
short excursion occurred between samples. Resume restores accumulators and their last
endpoint, so splitting a run or changing output cadence does not lose or double-count
removal. These are requirements for phase 2, not capabilities of the current alarm hook.
Two optional diagnostics help interpret failures:
Directional occupancy. A windowed Fourier analysis in each collar classifies outgoing, incoming and unresolved cells from \(\beta_1(\omega)-\beta_1^{\mathrm f}\), accounting for frequency resolution, mode dependence and dispersive spread [5]. Use a specified frame normalisation so classified occupancies sum to the measured proxy. Incoming content can be reflection, wrap-around or genuine returning physics; this diagnostic alone does not distinguish them. A nonlinear walker can violate the free-flow classification without triggering a reliable automatic flag. Phase 0 measures its usefulness before it becomes part of phase 2.
Surface crossing. The commutator of §4.7 produces a complex amplitude source, not by itself a positive directional energy flux. In a constant-metric, lossless quadratic-dispersion limit its quadratic-form balance gives the usual current. General dispersion requires the metric balance above and comparison against the wide window. Opposite-edge incoming content is evidence to investigate wrap-around, not an unconditional direct measurement of it.
4.7 The escaped field#
Two records are possible: the linearly propagated amplitude removed by the collar (reactant–product decoupling [1, eq. 227]), and a reconstruction from a surface before the collar (inspired by tSURFF [6]). Q11 prefers the latter, subject to phase 0 establishing its accuracy for this nonlocal, band-limited problem. tSURFF’s local Hamiltonian result does not by itself prove absorber independence here.
The surface record and its identity. Choose smooth leading and trailing windows \(\theta\) ramping from zero to one in the flat region before their collars. On a common represented band set \(Q=P\mathcal F\theta\mathcal F^{-1}P\), or the corresponding fine-grid compression. These are smooth windows, not idempotent projections. Let \(\mathcal U(z,s)\) be the collar-free linear evolution operator, including material loss and the spectral collar. For a diagonal route it is \(\exp[\Phi(z)-\Phi(s)]\); a z-dependent coupled route uses its full linear flow. The proposed record solves
or equivalently
The initial term is required for pulse tails or initial noise outside the surface. A surface moving relative to the chosen propagation coordinates would add \(Q'E\) and is outside this record’s scope; §4.11’s prescribed frames keep these surfaces fixed in their coordinates and change \(\mathcal L\) consistently. For a collar-free solution \(F'=\mathcal L F+N(F)\) with the same initial field, subtraction gives
This is the exact continuous identity of the proposed discrete operator model. For a source-free problem (\(N\equiv0\)) the second term vanishes; for a linear source, such as SEP 14’s time-local witnesses, it does not, and the identity holds with \(\mathcal U\) the flow of \(\mathcal L+N\) instead. Equality \(A=QF\) requires the first term to vanish as well: the absorbed and collar-free solutions must agree wherever the commutator samples them. With a local differential operator that can be a narrow surface layer; with full/tabulated dispersion, a hard band limit or spectral loss, the commutator can have long tails. Its effective width and the resulting bias must be measured (Q12). Even when \(\theta=1\) on the damping region, \(QC=C\) does not follow after band compression. Reflected and wrapped content invalidate the reconstruction by changing \(E\) where the commutator acts. There is no identity valid for every collar setting, and no finite buffer guarantees exact locality.
The \(QN\) term includes nonlinear generation in the selected exterior of the absorbed run. It is not a correction for the missing nonlinear evolution of already removed radiation. The record is useful only where that exterior evolution is adequately linear, or its error is independently small. A Raman soliton, plasma wake or persistent rotational coherence can violate this assumption. Diagnostics may suggest a problem; only the wide-window test qualifies the reconstruction.
Integration and cost. Evaluate the commutator with the actual discrete operator, including the projected window products. For a fixed diagonal flow this takes roughly two transform pairs per endpoint and edge without reusable intermediates; count shared work, fine-grid padding and coupled-flow actions in the measured ledger. Integrate with forward local propagators, never a global \(e^{-\Phi(z)}\) accumulator: inverse material/spectral damping can overflow. Use exponential weights or another stable treatment for the linear part. A trapezoid is an initial second-order candidate for the remaining integrand, not a guarantee of accuracy: phase mismatch can make it oscillatory even when it contains no stiff collar factor. Compare three step levels, set a record-specific error budget, and refuse unsupported dense planes. Keep a state array per edge and the endpoint/work buffers that the chosen quadrature requires.
The removal record. With \(B(0)=0\), solve
With \(N\equiv0\), \(E+B=\mathcal U(z,0)E(0)\) in the continuous discrete-space model, and with a linear \(N\) the same holds for \(\mathcal U\) the flow of \(\mathcal L+N\), since \((E+B)'=\mathcal L(E+B)+N(E)\). This holds for arbitrary non-commuting \(C\) and \(\mathcal L\); numerical integration still has to satisfy the identity. For a split step, propagate the old record by the same collar-free linear map and add the complete complement \((I-S_h)E^-\) of the actual projected collar map. Then the linear identity telescopes to rounding relative to that numerical linear flow. Recording only the unprojected \((1-e^{-\alpha h/2})E^-\) misses the mask’s removal. Under the in-stage scheme, a trapezoid may underresolve \(CE\); its error needs its own convergence bound. Storing collar history at the march’s order is an alternative with a larger memory cost.
This record is simpler and needs no surface buffer, so it is the fallback if the flux record is unaffordable or fails its accuracy gate. It reconstructs what the numerical collar removed, not necessarily the physical field outside the requested window.
What may be reported.
Store complex amplitudes, with the output’s optics convention, coordinate origin, route normalisation, surface definitions and reconstruction error recorded. Expose spectral densities using the existing physical weights and Jacobians, not raw \(|A_k|^2\). Leading and trailing contributions may interfere at a given frequency; retain their phases even if plots normally show each separately.
A periodised, adequately sampled field has Fourier-series coefficients equal to samples of its continuous spectrum, with the stated DFT factors. This does not make the proposed numerical record exact: discretisation, reconstruction, periodisation and unresolved fine spectral structure still need qualification. Zero-padding interpolates the sampled surface source; it does not recover a missed exterior or lost spectral information. Energy must come from an independently checked balance, not an unqualified sum over an undersampled escaped spectrum.
Temporal separation alone does not justify adding spectral intensities. Coherent spectral sums are meaningful when the reconstruction, phase origin and resolution are qualified; for the linear removal identity the coherent sum is essential. An incoherent sum is a separate diagnostic, appropriate only after ensemble or instrument averaging suppresses the cross term. Any spectrometer prediction must average the coherent spectrum over its stated response.
A smooth exterior window’s norm and the interior remainder’s norm do not add to the total without cross terms. The same issue, together with \(M\), prevents treating this amplitude record as an automatically positive escaped-energy ledger.
The record covers crossings up to the final propagation plane only. Slowly walking content still inside the surface has not escaped. Extending z for completeness would change the physical propagation length, unlike waiting after a TDSE pulse.
4.8 The reference: a wide window#
The reference and the production candidates of §4.10 have distinct roles. The reference is widened and refined until its uncertainty is below the comparison budget; a candidate is the least costly qualified window at a target accuracy. The widest reference’s cost is not assigned to every candidate without absorption.
The collar imitates an unbounded window, so the reference is the same problem on a window \(M\) times wider at the same sample spacing, compared on the requested analysis region \(|t| \le T_{\mathrm{req}}/2\). Today’s narrow collar may enter that region; the comparison must expose that intrusion. Start with \(M=2\)–4, but widen further if needed. Convergence means the \(M\)-to-\(2M\) difference is below a stated absolute/relative budget for every reported observable, not literal equality. Independently tighten the step tolerance and check frequency-grid interpolation/linear tables, temporal resolution and response quadrature. Keep the physical launch, dispersion, spectral collar and material parameters fixed; disable the temporal collar in the reference or show its influence is below that budget. For comparison use the same explicitly defined time aperture on both fields, and the Fourier transform of that aperture for an in-window spectrum. Do not compare unequal frequency meshes without a documented restriction/resampling and DFT scaling.
Use noise-free witnesses first. Equal seeds on different FFT grids do not give the same physical noise field: noisy comparisons need a common prescribed realisation with consistent spectral normalisation, or a separate ensemble uncertainty. Extended temporal support also changes response memory and initial preparation, which must be converged. The measured quantities are:
the absorber error: the in-window field and spectrum, per mode, against the reference, plus the band observables each case is known for (the UV energy for RDW, the soliton centroid for SSFS);
the leak: the reference’s out-of-window field that wraps back in through the narrow window, and the narrow run’s energy in the region that should be empty;
the escaped records’ errors: the flux record and the removal record, each against the reference’s out-of-window spectrum;
the reflection: packets of controlled walk-off launched into the collar, with \(\Omega w\) from 1 to 30 and the strength \(AN\) from 50 to 270 (the walk-off default’s range on the cases of §4.3, more on slices), against the §4.2 criterion; reflection grows with the strength at fixed \(\Omega w\) (§4.2), so a sweep in \(\Omega w\) alone cannot support R1.
This separates each discrete absorber model’s intrinsic error from numerical integration error, which earlier studies measured relative to a fixed collar. With different projected or sampled collar operators, their converged absorber models can differ too; each scheme therefore needs its own step-refined limit. When frames or launch positions differ, align the fields in one physical retarded time and phase convention before applying the same analysis aperture. Preserve physical pulse separations, carrier phase and material preparation. Changing window size can also change a response gate or causal-memory truncation; record and converge that change separately, including the atomic source gate where present. Disabling the temporal field absorber must not silently disable a response’s source policy.
The SEP 27 plasma baseline. Field-grid rate plasma forms its polarisation-equivalent source on active bins as
where \(g_s\) is the fine-grid source gate and \(g_s'\) its analytic time derivative.
This is a source prescription, distinct from the damping rate \(\alpha(t)\) and from
the monitor’s guard weight. temporal=False removes neither product nor the gate
certificate. The same held-current source is required in every plasma candidate and
reference. A steady residual current at an edge is intentional; demanding that \(J\)
vanish there would reject the very case SEP 27 treats. Conversely, negligible optical
field in a guard does not certify that current variation or Raman memory is negligible.
Changing window size, placement or gate geometry must preserve the source preparation and rebuild the derivative and sampled-gate certificate where their inputs change. SEP 27’s approved T2 correction requires independent sampling-error bounds for \(\operatorname{DFT}[g_sJ]\) and \(\operatorname{DFT}[g_s'J]\): cancellation between the two edges can make the steady-current certificate pass while a current confined to one edge remains inaccurate. Include those one-edge witnesses and separate product refinement; a passing certificate or field guard is not a full source-error bound. Keep the source gate fixed when varying only damping strength/profile on a given grid. If a geometry change also changes the source gate, identify and converge both effects. Envelope plasma, Kerr/Raman and the TDSE source retain their own policies.
4.9 The phase-space filter#
Soffer and Stucchio’s time-dependent phase-space filter [5] is designed for periodic FFT interiors, as are the absorbing potentials already in use here. Its distinguishing feature is selecting outgoing content in phase space.
How it works.
The frame. At intervals, it projects the field in a buffer at each edge onto a Gaussian windowed-Fourier frame [5, eqs 2.1–2.5], computed by local transforms over the buffer only.
What it deletes. It deletes the framelets that the free flow would carry out of the window before they could return [5, eqs 2.8–2.9]. Here that needs each framelet’s walk-off rate and its dispersive spread, both cheap from the known \(\beta(\omega)\).
What it keeps. Slow framelets, and framelets moving along the boundary, are classed ambiguous. They are kept and reported, and if their norm exceeds a tolerance the run stops [5, Remark 2.3]. In their tests this flagged every failure, with a few false alarms.
How it differs from both of today’s schemes.
It is not a term in the equation, so it adds no eigenvalue and no floor.
It removes only content that is leaving anyway. It avoids the same repeated time-multiplier split, but localisation, outgoing classification and finite-interval errors remain; these must be measured.
Its boundary error falls exponentially with the buffer width, under the paper’s free Schrödinger-flow assumptions, provided the interval stays below a cap: the buffer width divided by three times the fastest walk-off [5, p. 2–3]. The full proof is in their later work, not this paper. Extending that bound to full UPPE dispersion and the hard band mask is a hypothesis for the prototype, not an established error estimate.
Where it fails.
Its assumption is that the field in the buffer evolves freely. A nonlinearity there breaks it, which is the remaining part of the split’s error, through the source.
Their success on fast NLS solitons is, in their words, coincidental [5, pp. 11–12].
The interval cap may be short for broadband supercontinua.
Slow content at the edges, including shot noise, is by construction ambiguous.
As a discrete operation at fixed z it would restart the multistep history. Whether that is needed when the source is negligible in the buffer is untested.
It is therefore measured in phase 0 as an exploratory candidate on the Runge–Kutta path, which keeps no history, and its classification is used as a diagnostic (§4.6). It is not a candidate default.
4.10 Retaining the field: cost and accuracy without temporal absorption#
At fixed fine and coarse sample spacings and represented frequency range, a window \(q\) times wider has about \(q\) times as many samples and frequency spacing \(1/q\) as large. Local response work and state/history storage grow approximately as \(q\); FFT work grows as
This is an operation-count model, not a timing prediction. Actual coarse/fine sizes, FFT rounding, modal/node work, response memory, cache/device capacity and any separate atomic window determine cost. At \(n_t=2^{14}\), the model gives factors 2.14 and 4.57 for doubling and quadrupling the window. Measure both power-of-two and smooth sizes; report realised widths and sample counts, not only requested enlargement factors.
Write total measured cost as \(K C+T_{\rm monitor}+T_{\rm other}\), where \(K\) counts physical-source evaluations including rejected attempts, \(C\) is their mean cost including the associated march work, and the remaining terms include boundary checks, setup and output. Ignoring the latter terms only for an initial estimate, the enlarged window wins when
The absence of the temporal transform pass helps this inequality. Retaining the
default temporal rate on a wider grid does not remove its peak-rate cap (§4.3).
The comparison therefore uses temporal=False, leaving the spectral collar and hard
mask fixed. Extra response work over retained tails and extra monitoring are counted.
The hypothesis is strongest where the collar forces hundreds of steps but the physical source needs far fewer. It is weaker where nonlinear accuracy or source-history variation already limits the step. SEP 16’s 1329-to-965 canonical call reduction came from a per-step collar, not an enlarged grid without absorption; by itself it would not pay the FFT cost of doubling. Its RDW ablation found little benefit from weakening the collar. These observations motivate distinct cases, not a universal speed-up.
Removing a collar removes an artificial term and its integration error. It does not remove temporal aliasing, truncation of response memory, spectral discretisation error or propagation error. Fewer steps are a cost benefit, not an accuracy argument. For each strategy, sweep tolerance and width to find its measured wall-time/memory tradeoff at the same predeclared observable-error targets against §4.8. Compare the same physical analysis aperture and also declared weak-band or exterior observables; a small error in total energy can conceal a large error in weak radiation. A candidate with significant wrap-around is inadmissible regardless of its runtime.
Phase 0 includes the current realised width without temporal absorption, then wider windows starting at factors two and four and intermediate smooth sizes where useful. The no-absorption candidate must not be charged an unnecessary enlargement if the original window is already adequate. If no affordable candidate meets the accuracy and monitoring requirements, record the measured memory/runtime limit and retain a collar for that case. Reference construction and optional escaped-field recording are costed separately; comparisons enable equivalent requested outputs.
4.11 Placement and frame: reducing unused time samples#
For a linearly propagating packet born at \((z_b,\tau_b)\), stationary phase in the conventions of this SEP gives
The fastest light has the smallest group delay per metre among the relevant modes and frequencies, not necessarily the highest frequency. Choosing that delay as the frame makes the linear walk-off one-sided; placing the launch towards the early edge then uses the window efficiently. A midpoint frame is another candidate. In a constant medium, for co-launched packets sharing an initial support of width \(W_0\), the extreme packet separation at length \(L\) is
This is a packet-support estimate with dispersion and tail margins still to be added, not a compact-support theorem for a band-limited field. A fastest-light frame with asymmetric launch placement and a midpoint frame with symmetric placement can both reach this estimate. A centred launch in the fastest-light frame instead requires about \(W_0+2\Delta\tau\). These are alternative ways of recovering unused space, not independent factors to multiply. No frame reduces the separation of retained packets.
In a varying or nonlinear problem, use the envelope of trajectories over the entire run, including late-born radiation, modal walk-off, spreading and frequency evolution. A frame following the pulse can remove common drift but cannot remove its growing temporal extent. A velocity range inferred only from the launch spectrum can miss new radiation. Phase 0 states the range used for planning and a conservative range for boundary monitoring; it reports the cost of either range rather than silently discarding weak bands. A monitoring velocity bound does not set absorber strength or reverse Q3’s rejection of that strength prescription. Near-zero drift can still carry dispersive spreading.
Compare the existing frame and centred launch with fixed asymmetric placement, a
midpoint frame and a fastest-light frame where their construction is supported.
Start with constant-frame witnesses using linear.Frame; a prescribed varying
frame is a prototype until its representation, smoothness and support are specified.
All modes share one frame. Keep the envelope carrier definition separate from the
frame’s group delay, and preserve field-grid carrier-envelope phase. Evaluate cost
again after changing frame: exact linear translation does not imply frame-independent
errors in the exponential multistep approximation to the source history.
Fixed placement can use pulse delays on the existing centred lattice, with matching output coordinate metadata and all drives/preparations shifted consistently. It does not require a general offset-grid API. Phase 2 implements only the qualified setting support and guidance selected by R6/R7. Solution-dependent recentering and expansion remain out of scope: they require transport of multistep history, noise, response memory and output coordinates, and cannot recover content that has already wrapped.
4.12 Monitoring a window without an absorber#
An alarm, not an escaped-field reconstruction. Reserve guard strips inside both periodic edges, separately from any absorbing profile. On the conventional modal route, use the nonnegative proxy of §4.6 with a guard weight \(g(t)\in[0,1]\):
The declared analysis aperture lies inside the guards. The requested computational window includes those margins explicitly; a zero temporal rate neither grows the grid nor silently reduces the analysis aperture (Q4/Q16). Report each edge separately, its peak field/power proxy and the maximum occupancy over the samples actually checked. Fix and record \(U_{\rm ref}\) and absolute as well as relative thresholds; define zero-input behaviour without division by zero. Other routes require their qualified metric (§4.6). Occupancy is accurately computable for the sampled state but is not cumulative escaped energy or a universal bound on boundary error. A fraction \(\epsilon\) in energy has field-norm scale \(\sqrt{\epsilon}\); interference and nonlinear sensitivity can amplify its effect. Weak-band observables, intentional shot noise and response tails need explicit threshold treatment. A noise subtraction must not hide amplified radiation.
Wrapping cannot be inferred from a final state alone. On a periodic grid, pure advection through one complete window multiplies every Fourier coefficient by \(e^{-2\pi i k}=1\). The initial and final fields, their energy and edge occupancies are identical despite a complete crossing. Neither conservation of total energy nor small final edge values certify containment. A last-trial stage is not the accepted endpoint, and even endpoint checks can miss an excursion between them.
Sampling is part of the numerical contract. For guard width \(w_g\) and a stated bound \(v_{\max}\) on relative group-delay drift, the packet estimate
sets an initial check cadence. Phase 0 calibrates \(\theta\) and adds spreading and nonlinear allowances; for negligible drift, spreading still sets a check interval. This is not a finite-propagation-speed theorem for full dispersion and projection. Reference [5]’s related buffer/velocity criterion assumes free exterior evolution; it is not automatically an error bound here. Check cadence is independent of saved planes. Qualified dense output may supply interior checks without physical-source calls; otherwise land on check planes and include the resulting steps in the cost. Interpolation has its own error budget and must detect the crossing witnesses below. An adaptive march must reject or subdivide a step whose check coverage cannot be established; an unexamined interval cannot be marked safe. A fixed replay schedule must satisfy the required coverage before execution. In particular, SEP 24 supplies no dense checks: reject an inadequate schedule or construct and calibrate a new one, including any added check planes. Do not silently subdivide a replay and still claim the original schedule’s convergence result. Output thinning must not disable checks.
Observation and memory contracts. SEP 22’s observe(field=False) deliberately
avoids downloading the field and skips the spatial collar diagnostic, recording
collar_diagnostic_skipped. Neither that observation nor periodic statistics supply
the independent safety coverage required here. Implement checks as backend-resident
transforms/reductions where supported, returning compact measurements. Do not require
a whole-field host copy or alter the accepted state to form them. Reusing source
scratch needs proof that it represents the committed endpoint and that every source
stream has finished with it; SEP 27’s two current products and SEP 28’s tiled buffers
make that ownership explicit. Count any additional scratch, transforms, device
synchronisation and host traffic in both the memory ledger and the campaign.
What a flux measurement adds. For the scalar constant-metric envelope witness \(\partial_z a=-v\partial_t a+i\beta_2\partial_t^2a/2\) with a local conservative Kerr term allowed, \(v\) is relative group delay in s/m and \(\beta_2\) is in s²/m. Multiplying by \(a^*\) and adding the conjugate gives
Thus \(d\int_{t_l}^{t_r}|a|^2dt/dz=j(t_l)-j(t_r)\); pure advection is the \(\beta_2=0\) case. Boundary flux and its z-quadrature can be tested against this identity. General dispersion, changing metrics, losses and nonlocal sources require the operator balance of §4.6. Signed net flux does not count unique outward escape: recrossings, coherent contributions and already wrapped content prevent that interpretation without further assumptions. Directional analysis (§4.6) and the surface record (§4.7) are optional refinements, not requirements for the basic alarm.
Policy and qualification. The candidate default has an early warning threshold and a larger stop threshold, both calibrated to act while significant field is still inside the guards and before the declared error budget is exceeded. An explicit warn-only policy may continue, but records the violation and does not certify subsequent results as free of boundary contamination. A failure reports edge, z, measured value, threshold, guard geometry and check coverage, and suggests a larger window, better placement/frame or an explicitly chosen absorber. No silent switch of boundary treatment or automatic grid expansion is introduced.
R7 qualifies the alarm against wider-window witnesses at declared accuracy budgets,
records false alarms and missed violations, and defines supported routes, noise
policies and plane modes. Passing finite witnesses establishes that tested scope,
not a theorem for every nonlinear propagation. If reliable checks are too costly or
the scope too narrow, R6 retains the existing default and may admit an opt-in mode.
Persist monitor geometry, coordinate origin/frame, thresholds, maxima, violation
status and next check position across resume. Only accepted states or qualified
dense states contribute; rejected trials do not create final alarms. Transform,
reduction, device synchronisation and extra-step costs belong in the comparison.
Reset this state for each fresh input to a reusable Simulation.runner(); resume
restores it instead. Specify which committed state a stop can checkpoint and retain
the violation that caused it. A low-storage march may have overwritten its previous
step; SEP 22/24’s held observation plane does not imply an arbitrary last-safe-step
snapshot is available. If rollback is promised, its storage and work must be measured.
5. Proposed interface#
The interface depends on the phase outcomes; the sketch shows the most it would add.
grid = FieldGrid.from_limits(..., collar_fraction=0.05) # existing; default per phase 0
absorber(grid, *, boundary_N=20, boundary_length=None,
temporal=True, # existing; False keeps the spectral collar
walkoff=None, # protected drift, s; overrides temporal strength only
profile="complement") # or "plateau", if phase 0 admits it
SimulationSettings(
absorber_scheme="nonlinear" | "split_step" | "implicit", # "implicit" after phase 4
escaped_field=False, # the record of §4.7, opt-in
)
prop_capillary(..., absorber=False) # no absorber
prop_capillary(..., absorber_scheme="split_step") # roadmap keywords
boundary_check = BoundaryCheck( # proposed; details and defaults fixed by R7
guard_width=..., # seconds at each edge, independent of collar width
warn_threshold=..., stop_threshold=...,
action="error", # explicit "warn" keeps a recorded violation
)
settings = SimulationSettings(..., absorber=absorber(grid, temporal=False),
boundary_check=boundary_check) # proposed setting
Simulation(..., settings=settings)
run.statistics["collar_occupancy"] # eta(z), every saved plane
run.statistics["guard_occupancy"] # each edge; maxima over the actual check cadence
run.statistics["absorbed_energy"] # U_t(z) and U_omega(z)
run.escaped_spectrum(z) # physically normalised spectral density
What is refused:
escaped_field=Truewithout nonzero temporal rates (a spectral-only collar has none);"implicit"on either Runge–Kutta stepper (outside this SEP);interpolated planes beside a nonzero split temporal collar, as today; an inert scheme setting with no temporal pass does not trigger this refusal;
monitored configurations without qualified metric, check coverage or dense-state support; explicit check planes may be used where qualified (§4.12).
Basic diagnostics are intended to be on by default, subject to phase 0 measuring
their endpoint transforms and reductions. Directional analysis and the escaped record
are separate opt-ins. Unsupported route/stepper/plane combinations fail by name.
Guard checks are available with or without temporal absorption and are separate from
the removal ledger. The sketch does not fix a scalar threshold for every route:
R7 specifies absolute/relative normalisation, bands, noise handling, guard margins
and cadence before implementation. A monitored default without temporal absorption
requires R6/R7 and a maintainer decision; it must remain accessible without disabling
the spectral collar. Phase 2 supplies the corresponding convenience-interface path.
absorber=False disables both soft collars, retains the hard representable-band mask,
and rejects conflicting strength or scheme settings. A spectral-only collar, its
temporal rates identically zero while the spectral rate stays, is built by
absorber(grid, …, temporal=False) and compiles no temporal pass under either scheme;
SEP 22’s phase 1 supplied both, and this SEP keeps them (Q16). The proposed walkoff
option changes temporal strength while preserving the spectral rate. Phase 0 must
specify which explicit parameter combinations conflict and how the parent interval
is supplied (Q18). SEP 22’s
Absorber.collar_length currently sets both temporal and real-space spatial strength.
Mapping walkoff into that shared field therefore needs R4’s decision about spatial
coupling, or a separately approved strength parameter; it cannot silently change
the spatial boundary. Phase 0 settles the precise signatures, route support
and resume agreement, to a rounding bound rather than bit identity
(SEP 25), before phase 2 begins.
6. Implementation strategies#
Layers:
solprop.boundaries(the physics layer): profiles, strength and guard-policy definitions;linear.Frameand input placement retain coordinate ownership;solprop.translate: rates, scheme and qualified guard data reach the kernel problem;the backends: guard reductions, the implicit solve and the record;
the driver and output: check scheduling, boundary failures, statistics, coordinate metadata and the escaped spectrum.
Retained-window mode (phase 2, after R6/R7). Reuse the spectral-only absorber; verify that the temporal pass is absent on all backends. Add the qualified guard monitor and convenience-interface path, with no automatic change to the requested physics. Fixed launch placement and supported prescribed frames use existing coordinate conventions; any added setting must have a concrete phase-0 specification for phase, output alignment, response preparation, history and resume. If a frame candidate requires a larger redesign, retain its measurements and defer that setting explicitly rather than blocking the basic retained-window mode.
Geometry and strength (phase 2). These are pure physics-layer and grid changes:
walkoffsets the temporal peak from the realised profile area. For a shape \(q(t)\in[0,1]\), set \(\alpha_{\max}=2\Gamma_{\min}v_p/\int_{\rm edge}q\,dt\), where \(v_p=\Delta\tau_p/L_{\rm ref}\). For the complement profile this is \(AN=4\Gamma_{\min}\Delta\tau_p/w\). A plateau has a different integral. \(L_{\rm ref}\) and the requested protected drift refer to the same parent interval; a resumed slice preserves the already constructed rates. Do not implement this by changing a sharedboundary_N, which would also alter the spectral collar. A default tied to the requested window, such as \(\Delta\tau_p = T_{\mathrm{req}}/2\), fixes consequence 2 of §4.3: on the tight grids of §4.3 it gives \(AN\) of 199–270 against today’s 252, and on the full CtC grid 50, five times weaker. It does not fix consequence 1, because \(\alpha_{\max} = AN/L\) still grows as a slice shortens. A slice keeps its parent run’s strength with the existingboundary_length, which the manual should say. It changes every run’s absorber, and is for the maintainers to decide (Q3).A new
profileis a function of \(W\), so its kernel data are the rates already carried. The grid must guarantee both \(t_{\rm flat}\ge T_{\rm req}/2\) and the requested edge fraction, including its asymmetric last stored sample. Ignoring that one-sample offset, \(T\ge T_{\rm req}/(1-2f)\). Round the fine grid and choose a compatible coarse divisor without breaking its pad/crop invariants. Test both FFT size policies just below, at and just above a rounding boundary.
Geometry/profile arrays alone need no SCHEMA_VERSION change. This does not exempt
the endpoint, diagnostic or record contract changes below; their actual seam changes
must be inventoried together before implementation.
Diagnostics (phase 2).
Implement the metric-aware rates and the occupancy proxy of §4.6 on each route.
Implement the independent guards and warning/error policy of §4.12. Guard checks do not depend on absorption being enabled or on an escaped-field record. Their sampling schedule and violation status survive output thinning and resume.
Commit endpoint accumulators only after an accepted step is complete. Qualify adaptive, replay, batch, restart/resume and output-cadence agreement within §7’s bounds.
Record quadrature error separately from the propagation error. Use the exact before/after energy difference for the discrete split map.
Bump the kernel schema if endpoint data or the protected driver hook changes; backend-private reductions alone do not require one. Bump the output schema for persisted accumulators, diagnostics and their definitions.
Escaped field (phase 3, after R5).
Implement the qualified surface or removal record of §4.7, with forward local linear flow, endpoint quadrature and complex amplitudes per edge where meaningful.
The measured commutator tail and record-error bound set the surface gap and route admission. If neither record meets the accuracy/memory gate, defer phase 3 and explicitly retain the missing feature on the roadmap; geometry work may proceed.
Persist the complex accumulators, last quadrature endpoint, surface/metric identity and errors for resume. Dense observations require a separately qualified partial-step accumulator; initially require step planes for these records.
Kernel and output schema bumps; device-resident work on Kokkos. List all accumulators and work buffers in
memory_ledger(), including per-batch-member storage.
Implicit collar (phase 4, only if phase 1 passes).
A new kernel operation: the projected pointwise solve or CG for the interaction formulation, and GMRES or a damping lab-frame weight for the exponential one, in the predictor as well as the corrector (§4.5). A schema bump.
The order choice: the exponential formulation’s capped order weighing (SEP 16 phase 6) moves to the implicit intervals.
The backends:
numpy_reffirst, as the oracle;numba_cpuwith the solve in compiled passes;Kokkos, where CG is a few batched FFT pairs and reductions per corrector, on device as on host.
Cost:
piece |
cost |
|---|---|
retained wider window |
roughly linear response/storage growth and \(n_t\log n_t\) transforms, offset against actual calls saved; measure realised coarse/fine sizes and total wall time |
guard monitor |
temporal synthesis when not reusable, reductions, dense-state evaluation or extra check-plane steps, and any device synchronisation |
diagnostics |
endpoint transforms plus metric reductions per accepted step; plane/periodic occupancy; optional directional transforms |
record |
state and quadrature buffers per edge; commutator transforms or the split complement, measured per route |
implicit solve |
transforms in predictor and corrector; Krylov iterations depend on condition number and residual target; no required extra physical-source call |
wider collar |
grows \(n_t\) when there is no slack: at most a factor of two on a power-of-two grid, less on 2-3-5-smooth sizes |
No new dependencies.
7. Verification and validation#
Analytic and unit:
Profiles: integrals against \(\int(1-W) = w/2\); the
walkoffparameterisation reproducing the continuum steady-drift model \(\Gamma=\Gamma_{\min}\) at \(\Delta\tau_p\); sampled profile quadrature converges under refinement, rather than being assumed exact to rounding;stable_stepagainst \(2r/\alpha_{\max}\).The floor law: fixed-step runs on a scalar collar witness diverge just past \(n_{\min}\) and complete just inside it, for each PEC order, bracketing the table of §4.3 (as
stable_step’s DOPRI5 bracket does today), with the bracket’s width stated and divergence judged against the attained spectral bound of the discrete collar operator, not \(\alpha_{\max}/2\) alone.Window, frame and guards:
Pure advection of a band-limited packet: analytic translation, one full-period crossing invisible at the endpoints, and a narrow packet crossing between output planes. The qualified check schedule must flag the approach before wrap exceeds its budget; include intentionally undersampled checks that must not claim coverage.
A spreading Gaussian with quadratic dispersion, including zero central drift, tests guard occupancy and the signed flux identity of §4.12 on three refinement levels. Bidirectional, recrossing and late-generated packets test the limits of interpreting flux as unique escape.
Frame/launch-shift equivalence on a common physical aperture, preserving energy, carrier phase, mode simultaneity, relative pulse delays and response preparation. Test the simple fastest-frame/asymmetric and midpoint-frame width estimates; measure source-call changes separately from field agreement.
Guards on field and envelope grids, zero input, intentional noise, weak bands, dispersive modal weights and each admitted spatial/general-modal metric. Include significant low-energy radiation beside a strong pump and nonlinear walkers.
Compare monitor warnings/stops with wide-reference errors over guard widths, thresholds and check intervals. Count false alarms and missed budget violations; demonstrate separately the accuracy of dense checks, where admitted. A matching formula in a unit test does not qualify a nonlinear alarm.
Adaptive/replay, batch, output-cadence and checkpoint/resume comparisons preserve coverage and accumulated violation status, with numerical diagnostic values judged by the applicable rounding or reference-accuracy budget.
Cover statistics-only observations, fresh inputs on a reusable runner and the low-storage fixed schedule. Verify that inadequate check coverage is refused, alarms do not depend on field downloads, and checkpoint claims match the state actually retained. Repeat affected buffer-ownership and cost checks after SEP 28.
The implicit collar:
SEP 14’s witnesses: the commuting scalar \(u' = b\,u - a\,u\); a linear time-local source with and without dispersion; the NLS with Kerr in the window and in the collar.
Convergence orders on three step levels, against the in-stage collar’s.
Stability measured past the PEC limit up to the AM interval, coupled with an imaginary-axis source eigenvalue, for each predictor variant.
The collar’s per-step damping factor and nepers per crossing as functions of \(h\alpha/2\), and whether its sign alternates.
Whether the step controller’s error estimate sees collar error.
The projected division’s residual and solution error against a dense solve on tiny grids and converged CG; CG agrees with the dense solve within its stopping tolerance plus rounding, and a matched (rounding-bound) comparison fixes the iteration count.
The records and diagnostics:
Test the surface identity and its residual equation in §4.7, including nonzero \(QE(0)\), tabulated dispersion, hard projection, material/spectral loss and varying linear flow. Compare against \(QF\), not a differently windowed exterior spectrum. Sweep surface gap and collar strength to separate reconstruction bias from quadrature and propagation errors; include deliberate failure cases.
Test the removal identity for the complete split complement and exact linear witnesses within a rounding bound fixed before measurement, the step count times the transform bound (testing.md §3); for in-stage quadrature use three refinement levels and its measured error budget, separately from the march’s tolerance.
On SEP 23’s supported routes, compare
absorbed_power’s spectral channel (J/m) with the spectral ledger’s rate using the same operator and metric. Test the integrated energy against exact linear exponential weights or an independently converged rate integral (§4.6), including stiff bins; a raw endpoint trapezoid is not the reference. Preserve all four existing channels, including custom spectral rates and signed material gain.Test occupancy at zero input, field/envelope Parseval factors, dispersive modal weights and each route’s metric. Check temporal passivity instead of assuming it.
Check the restricted conservative energy ledger, then fixtures with material loss, Raman/plasma energy exchange, variable metrics and projection loss using the full balance. A diagnostic residual must be consistent with its own quadrature bound.
Compare incoming and outgoing classification against controlled reflected, wrapped and genuinely returning packets; do not label every incoming packet a leak.
Verify coherent spectral reconstruction and resolution/averaging limits on separated pulses. Compare the escaped estimate with the identically windowed wide-reference field, with consistent Fourier scaling and route weights.
Verify rejected-step isolation and final-step accounting exactly (the accumulators count the steps actually accepted); the accumulators of a replayed schedule across backends, batch members and a checkpoint/resume within a rounding bound fixed before measurement; and adaptive against replayed runs, and runs of different save-plane cadence, within the case’s accuracy envelope against a tighter-tolerance reference (SEP 25); including nonzero initial exterior field and a stiff spectral collar that would overflow a global inverse flow.
Against the wide window (phase 0, then each implementation phase). Every applicable case includes the cost/accuracy comparison of §4.10 and the placement/frame candidates of §4.11, with the monitored no-absorption mode and its check costs included:
the N = 3 GNLSE soliton launched into its collar (ADR-025’s witness);
SEP 13’s canonical capillary, whose pulse stays clear;
the M2 RDW capillary and the reduced CtC capillary, whose broadened fields reach the collar;
a short Raman-soliton case modelled on the SSFS gallery example, with a nonlinear walker;
one free-space radial case, for transfer only.
Tolerances:
In-window errors are reported against the reference’s own \(M\)-to-\(2M\) difference, which sets the floor of what can be resolved.
For the collar-integration comparison, a scheme is “as accurate as the in-stage collar” when its in-window error is within a factor of two of the larger of the in-stage collar’s own error and the measured reference uncertainty, at the same
rtol, for every declared observable. A result below the reference uncertainty is unresolved, not a measured improvement.Production-strategy selection uses predeclared physical error budgets for every observable and sweeps each strategy’s tolerance independently. Equal
rtolis an attribution experiment, not a matched-accuracy timing comparison. Report reference uncertainty, spectral/time resolution, response-memory and monitoring errors separately. The alarm threshold alone does not establish the observable budget.
Parity. Every new kernel quantity agrees across numpy_ref, numba_cpu and the
Kokkos CPU build within the summation-bound tolerances of testing.md.
Benchmarks. Calls, steps, order histograms and the distribution of \(h\alpha_{\max}/(2r)\) over accepted steps, realised grid sizes, wall time, transforms, peak resident/working memory and monitor overhead, on ten-step windows and short fibres in tests. Count check-induced steps and distinguish startup, steady march, setup and requested output. Do not extrapolate a ten-step timing to a whole run. Full-length runs only in the campaign, as the maintainers authorise them (Q2), timed on an otherwise idle machine.
8. Documentation#
Absorbing boundaries gains:
the measured choice between retaining radiation and absorbing it, including the supported monitored mode and why an alarm is not an escaped-energy measurement;
the floor law and the protected walk-off;
geometry guidance (when to widen the collar);
the diagnostics and what to do when they fire;
the escaped-field record with its caveats;
the implicit scheme, if built.
Adams: the stability section rewritten around the measured choice.
Grids: the collar width and its slack, fixed asymmetric placement, prescribed frame choice, guard margins and the distinction between requested, analysis and realised windows.
The statistics catalogue and output pages: the new statistics and the record.
A focused tutorial, “Is my time window big enough?”: the diagnostics, the wide-window cost/accuracy comparison, frame/placement choices and a boundary-alarm failure, on a short Raman-soliton fibre; the escaped spectrum if phase 3 qualifies it.
The differences from Luna page, if a default changes.
9. Compatibility and impact#
Defaults change only through the maintainers’ decisions on phase 0’s recommendations:
No temporal absorber by default is a candidate, not an adopted change. It needs a measured accuracy/resource advantage and a qualified boundary-error policy (R6/R7), with the spectral collar retained. If no policy qualifies broadly enough, retain the current default and document admitted opt-in choices. No automatic scheme switching is part of this proposal.
A strength or width default changes every run whose field reaches the collar, and, through the floor, the step count of every multistep run.
Validated results that held field in the collar must be re-run and compared: the gallery examples and the qualification references, listed in phase 0’s report. Breaking changes are allowed before release, without aliases.
absorber_schemekeeps its two values;"implicit"is added only after phase 4.
Schemas:
the output schema for statistics, guard state and coordinate/check metadata (phase 2), and the record (phase 3);
the kernel
SCHEMA_VERSIONfor the record (phase 3) and the implicit solve (phase 4), and in phase 2 when guard data, check scheduling or the committed-endpoint hook changes the seam or protected driver surface (§6, §11). Each bump takes the next free version at landing.
The resume hash covers the new settings, actual rates, surface and metric definitions, record scheme, guard geometry/thresholds/cadence, coordinate origin/frame and diagnostic quadrature policy. Resume also restores accumulated state; a matching hash alone does not reconstruct it.
10. Alternatives considered#
alternative |
disposition |
|---|---|
Perfectly matched layer [3, 4] |
Reflectionless only when untruncated. It loses the exact linear propagator with full \(\beta(\omega)\), a fixed stretch can amplify outgoing content where the walk-off direction is not aligned with the sign of the frequency offset, and implicitness only moves its stiffness (§4.4). |
Transparent boundary conditions [2] |
The constructions considered here need an exterior dispersion model beyond a real-axis table and an explicit boundary treatment replacing the periodic discretisation (§4.4). Approximating their nonlocality in z introduces another error budget. |
Optimised absorbing-potential shapes [1] |
They minimise reflection, often with unbounded peaks (Manolopoulos’s double pole, [1, eqs 216–220]); that worsens the floor. At fixed width and prescribed steady-drift attenuation, changing a bounded complement profile can lower the peak by at most two (§4.3); this is not a universal bound on reflection or total error. The plateau profile tests that bound. |
A real part in the collar, after Jolicard–Humbert and Hussain–Roberts [1, eq. 175] |
A phase modulation ahead of the damping that speeds slow walkers, improving absorption at low \(\Omega\). It adds imaginary-axis eigenvalues, so does not escape the floor, and it alters physics adjacent to the window. Not pursued; phase 0’s reflection measurement says whether slow walkers need it. |
Phase-space filter [5] as the default |
Not a term in the equation, so not stiff, and its error bound depends on the buffer and free-flow assumptions, with a required interval cap (§4.9). But it assumes a linear buffer, leaves slow content ambiguous, and as a discrete operation would restart the multistep history. Measured on the RK path in phase 0, and used as a diagnostic (§4.6). |
A Strang split |
SEP 14’s unchanged-history implementation lost order with a nonlinear source; repairing multistep history and the projected subflow is outside this study. |
IMEX Runge–Kutta (ARK) [8] |
Removes RK’s floor, which is about 38 steps and rarely binds. ARK4(3)6L is order four with six stages (DOPRI5 has seven stages and six new evaluations with FSAL), can suffer stiff order reduction despite the implicit component’s stage order two, and needs a solve per stage [8, pp. 25, 28]. |
Multirate inner sub-stepping of the collar |
Studied in SEP 15’s campaign; it addressed the limit but did not make the fastest candidate, and the source is frozen across inner steps. |
Automatic switch to the split when the occupancy is low |
A conditional default; solprop prefers robust defaults. The end-of-run message may suggest the split when the occupancy stayed negligible (Q9). |
Strength from the group delay predicted across the frequency grid |
The grid is always wide and its edges carry only shot noise, so the prediction warns or over-absorbs on almost every run; and a nonlinear run’s populated frequencies cannot be known in advance. The protected walk-off is taken from the requested window instead (§6, Q3), and the diagnostics of §4.6 measure what was absorbed. |
A wider window without temporal absorption |
A production candidate in §4.10, with independent guard monitoring (§4.12), measured against the separately converged reference. R6/R7 decide whether it supports an opt-in mode or a default. |
Fixed asymmetric placement and a prescribed frame |
In the phase-0 comparison (§4.11), including fastest-light and midpoint frames. Qualified existing-setting support and guidance belong to phase 2; physical packet separation still sets a lower width limit. |
Adaptive recentering or expansion |
Deferred: history, response memory, noise and coordinates need consistent transport. A general offset-grid API and independently asymmetric absorber ramps also remain follow-up work (Q8). |
The removal record as the escaped-field record |
Simpler and needs no buffer, but it inherits the collar’s integration error, which under the in-stage term is large. Kept as the fallback; the surface record of §4.7 is preferred only if its commutator-tail, exterior-model and quadrature errors pass R5. The absorber independence of the local tSURFF setting [6] is not automatic for a projected UPPE. |
11. Phases#
Phase 0: the campaign (no package change).
Scripts in
benchmarks/sep21/, run onnumpy_refandnumba_cpu.Apply §3.1’s sequencing: analytic and plasma-free studies can start independently; plasma comparisons use qualified SEP 27 on both sides, and affected CPU free-space cost conclusions are remeasured after SEP 28. Record revisions, source equation, gates and backend capabilities; an older baseline is not the final recommendation.
The wide-window references of §4.8 for each case of §7.
A production comparison at matched observable errors (§4.10): the present window with no temporal absorption, wider windows, and the in-stage and per-step collars. Keep spectral absorption fixed and compare the same requested outputs. Sweep each strategy’s tolerance independently; include realised coarse/fine sizes, transforms, memory, rejected attempts and timing scatter, not only calls or equal-
rtolrows.Include SEP 24’s implemented low-storage RK4 march where supported, alongside adaptive RK and both multistep formulations. Refine and calibrate its fixed schedules against the same observables, including monitor-imposed check spacing; do not infer accuracy from
rtolor assume its deferred adaptive pair exists. Use measured backend memory ledgers, including checkpoint and monitor storage.Fixed asymmetric placement and prescribed midpoint/fastest-light frames (§4.11), with coordinate/phase alignment and source-history costs measured. Distinguish settings already expressible from prototypes needing an implementation decision.
Guard-monitor prototypes (§4.12) on accepted endpoints and sufficiently frequent interior checks, including deliberate crossings between endpoints, spreading with zero central drift, nonlinear walkers, weak bands and noise. Measure the relation between thresholds and wide-reference observable errors, missed violations, false alarms and the extra transforms/steps required. Sparse saved planes are insufficient.
The floor law: steps, order histograms and \(h\alpha_{\max}/(2r)\) distributions.
A geometry sweep with the existing in-stage scheme: collar fraction 5, 10 and 20 %; strength at constant protected walk-off and at today’s \(AN\); the complement and plateau profiles.
At the best geometry, the in-stage scheme against the split.
An attribution of the split’s in-window error: linear/nonlinear splitting, hard projection and the fine/coarse collar discretisation difference.
The flux and removal records emulated from both narrow absorbed runs and the wide references, with enough accepted-endpoint data to converge their quadrature. References alone cannot measure absorber feedback. Measure commutator tails for each dispersion, projection and spectral collar, and test the initial-field and variable-flow terms (Q12).
The reflection of slow walkers against the criterion of §4.2.
The phase-space filter prototyped on the Runge–Kutta path (Q13), beside the per-step collar, against the wide window.
The directional occupancy (§4.6) evaluated offline on the saved planes (Q14).
Exit: a report with recommendations on:
R1: geometry and strength defaults;
R2: whether the floor still binds a case that matters after R1 and the R6/R7 retained-window comparison. Phase 1 requires a case where temporal absorption remains necessary or competitive within stated memory/runtime limits, and where removing its cap could improve measured total cost. A cap on an avoidable collar alone does not qualify;
R3: diagnostic thresholds;
R4: whether the spatial collars transfer.
R5: a qualified definition, error budget, supported-route matrix and measured memory/transform cost for the escaped record and energy diagnostics; explicitly decide any physical-metric passivity problem (Q15). R5 is a gate before phase 3.
R6: the measured accuracy/runtime/memory tradeoff for each production boundary strategy, with and without placement/frame changes, and a recommendation on retaining the current default, admitting a monitored opt-in, or adopting a monitored default without temporal absorption. State counterexamples and resource limits; no single speed-up or unrun estimate settles the default.
R7: guard geometry, metric, absolute/relative thresholds, noise/band policy, sampling coverage, supported routes/plane modes, warning/error behaviour and checkpoint contract. Qualify tested accuracy budgets and report failures openly. R7 gates a production monitor independently of the escaped-field reconstruction; if it fails, R6 cannot recommend the monitored default. Any adopted default or new frame/placement setting requires a recorded maintainer decision before phase 2.
Phase 1: the implicit-collar study (prototypes only, after R2/R6/R7).
NumPy prototypes in the benchmarks, for both multistep formulations, with the collar implicit in predictor and corrector:
the storage rule, the collar part of the stored history at the corrected state, and the hard step cap at \(2r_{\rm AM}/\alpha_{\max}\) (§4.5);
the AM collar at the corrector’s order;
the trapezoidal collar;
a backward-Euler collar (L-stable, order one);
a modified-CNAB collar (decay one third, order two);
an SBDF3/4 march as a reference.
The projected pointwise solve and CG; GMRES or a damping lab-frame weight in the exponential formulation.
Each reported with the items of §7: coupled stability, damping per step, absorption per crossing against the wide window, and whether the error estimate sees the collar.
Measured on the witnesses and the phase 0 cases against the wide window.
Exit criterion: at the matched physical-error targets of §7, improve wall time beyond timing scatter over both existing collar schemes and every admissible retained-window candidate on each R2 case. Report calls, transforms, Krylov iterations, monitoring cost and memory on the same propagation windows. An alternative may be excluded only by a stated accuracy, supported-scope or measured resource limit, not simply because it uses more samples. On other admitted cases, regress neither calls nor wall time by more than 10 % against the best existing collar scheme at matched accuracy. Source-call savings alone do not pass. If the criterion fails, build no implicit scheme and report why; phase 2 may still proceed.
Phase 2: qualified boundary strategies, diagnostics and keywords.
As decided on R1/R3 and R6/R7. Implement the retained-window mode, guards and warning/error behaviour if qualified, plus the selected fixed-placement/frame support and manual guidance. Adoption of a new default is an explicit decision.
Absorbed-energy diagnostics require R5’s metric, endpoint and quadrature contract; the basic guard monitor requires R7 and its shared metric definitions, not a successful escaped-field reconstruction. These parts may land separately. Any proposed physical-operator change returns to the maintainer under Q15.
On all three backends in order:
numpy_ref,numba_cpu, then Kokkos CPU in solprop-kokkos.The manual pages and the tutorial.
The re-run of affected examples.
Output and, where guard data or scheduling changes the seam or the endpoint hook changes its protected surface, kernel schema bumps.
Phase 3: the escaped field. Requires R5 and phase 2’s endpoint/ledger contract; implementation may overlap only after that shared contract is fixed.
The qualified flux record (or the removal fallback, on Q11/R5) on all three backends, with §7’s conditional identities and independent error bounds as its gates.
Kernel and output schema bumps.
Phase 4: the implicit collar. Only if phase 1 passes.
On all three backends; the order choice moved to the implicit intervals; the replayed-step and
dz_minrefusal at \(2r_{\rm AM}/\alpha_{\max}\) in both formulations (§4.5); a kernel schema bump.The Adams manual section rewritten.
Closing. The full gate, the slow and coverage lanes, and the Kokkos-selected slow lane, once. Device qualification follows later, under the standing policy.
12. Open questions#
Q1: the reference. Resolved 2026-10-16 (John Travers): the wide-window reference of §4.8 replaces the converged in-stage run as the acceptance reference for absorber work, and phase 0 re-measures ADR-025’s ladder against it.
Q2: full-length runs. Resolved 2026-10-16 (John Travers):
the canonical and RDW capillaries at full length, as for SEP 16 Q9;
the reduced CtC capillary in full;
the Raman-soliton case shortened, with a narrower window, so the soliton reaches the collar early;
no full CtC run.
Q3: how strength is parameterised. Should strength follow the run length (
boundary_N, today), a protected walk-off (walkoff), or remain as now withwalkoffan option?The rejected alternative. A protected walk-off is not to be predicted from the group delay across the frequency grid. That was considered and rejected: the grid is always wide, its edges carry only shot noise, so such a prediction warns or over-absorbs on almost every run, and the frequencies a nonlinear run will populate cannot be known in advance. This is why
warn_walkofftakes its span from the caller.What is proposed instead. \(\Delta\tau_p = T_{\mathrm{req}}/2\) uses only the requested window, and on tight grids reproduces today’s default, counting one edge (Q17); counting both, as
warn_walkoffdoes, it gives half of today’s strength.Its assumption. It shares today’s assumption of steady drift over the run. Walk-off that starts late, after fission or once a soliton begins to decelerate, crosses the collar faster than the mean and is absorbed less; phase 0 tests this on those cases. The measured diagnostics of §4.6, not a prediction, catch the runs where it fails.
The trade. A walk-off default ends the slack effect of §4.3, but changes every run’s absorber. Slices keep their parent’s strength with
boundary_lengtheither way.Status. John Travers supports the walk-off default subject to phase 0’s R1 and this review of the steady-drift assumption.
Q4: the collar’s placement and width. Resolved in principle 2026-10-16 (John Travers):
The temporal collar is added outside the requested window: the flat region always covers \(\pm T_{\mathrm{req}}/2\), and the grid grows to fit. Today the collar may eat into the requested window.
The growth need not be a power of two. The grids already offer
fft_size="smooth", the next even 2-3-5-smooth size.Phase 0 chooses the fraction (5, 10 or 20 %) from the cost in \(n_t\) against the steps saved, under both
fft_sizesettings. It also says whether"smooth"should become the default.A collar that absorbs nothing (
temporal=False, SEP 22) adds no width: the grid stays at the requested window (Q16).
Q5: where the absorbed energy is accumulated. Resolved 2026-10-16 (John Travers): per accepted step, reported at the saved planes (§4.6, §6). Review found that the existing
quadrature_errorhook has different state timing on adaptive and replay paths, so a consistent committed-endpoint hook/data contract is required.Q6: the escaped record under the in-stage multistep collar. Resolved 2026-10-16 (John Travers): accepted-step accumulation, with trapezoidal quadrature as the initial candidate. Review qualification: forward local linear propagation, endpoint storage and an independent quadrature-error test are required (§4.7).
The complete removal complement has a linear identity to rounding under the split.
The surface identity is conditional and includes the initial exterior field.
In-stage quadrature is tested to its own convergence bound, not the march’s tolerance.
Q7: the projection in the implicit solve. Resolved 2026-10-16 (John Travers): phase 1 prototypes both the pointwise division followed by \(P\) and conjugate gradients, with CG as the reference. The pointwise solve is adopted if its error stays below the integration error on every case.
Q8: the time window. The 2026-10-16 decision placed offset or walk-off-centred windows outside this SEP. Revised 2026-10-20 at John Travers’s request: the wider production window without temporal absorption, fixed asymmetric launch placement and prescribed frame comparisons are now in phase 0 (§§4.10–4.12). R6/R7 select qualified setting support and guidance for phase 2. A general offset-grid API, independently asymmetric absorber ramps, solution-dependent recentering and grid expansion remain on the roadmap. No new frame or boundary default is preselected.
Q9: the end-of-run message. Resolved 2026-10-16 (John Travers):
A warning when the physics reached the absorber: occupancy or absorbed energy above the thresholds phase 0 sets.
An INFO-level note, not a warning, when the collar’s stability limit bound a substantial share of the accepted steps and the occupancy stayed negligible. It reports the measured cap occupancy and suggests benchmarking the per-step collar. An unrun alternative does not support a quantitative claim of calls or time saved.
Revision 2026-10-20: suggestions also include a qualified wider window without temporal absorption and better placement/frame. The monitored mode’s in-run warning/error policy (§4.12, R7) is independent of this end-of-run summary; it cannot wait until the final plane to detect a crossing.
Silence otherwise.
No automatic change of scheme.
Q10: spatial collars. Resolved 2026-10-16 (John Travers): phase 0 measures, on one radial case, whether the geometry results transfer (R4). Any change to the transverse collars goes into a follow-up SEP: SEP 22 for the k⊥ collar and the length decoupling (Q16); the real-space collars’ geometry after R4.
Q11: the form of the escaped-field record. Resolved 2026-10-16 (John Travers): the surface-flux record of §4.7. The removal record is the fallback if phase 0 finds the flux buffer unaffordable or the reconstruction insufficiently accurate. Neither is built without R5; failed qualification is reported to the maintainer.
Q12: the flux buffer. How wide must the gap between the surfaces and the collar be to reduce the commutator’s tails below the error budget, including the hard band projection and spectral collar as well as tabulated/modal dispersion? There may be no affordable gap. Measured in phase 0 and resolved by R5.
Q13: a phase-space filter prototype. Resolved 2026-10-16 (John Travers): phase 0 measures Soffer and Stucchio’s filter on the Runge–Kutta path, against the per-step collar and the wide window (§4.9), as exploratory benchmark work that adds nothing to the package unless a later proposal takes it up.
Q14: the directional occupancy. Resolved 2026-10-16 (John Travers): evaluated offline in phase 0, and included in phase 2 only if it separates wrapped content and nonlinear walkers from ordinary outgoing radiation on the phase 0 cases.
Q15: record and energy qualification (AI review). Deferred to phase 0/R5: specify each route’s metric, measure collar passivity in it, choose the committed endpoint contract, and qualify surface reconstruction and diagnostic quadrature. Any change to the physical collar operator or narrowing of production scope needs a maintainer decision before implementation. This review does not select a new physics default or claim that the proposed flux record has already passed.
Q16: the hand-off from SEP 22 (AI review, 2026-10-18; reconciled 2026-10-20). SEP 22 is Final. Its delivered contracts and the remaining work here are:
A spectral-only collar compiles no temporal pass (delivered). Before SEP 22, an all-zero temporal rate still incurred a second source transform pipeline under the in-stage scheme, or the temporal pass and loss of first-same-as-last recycling under the split. SEP 22 §3 measured that cost on 2026-10-18: a factor of 2.0–2.3 per step on
numba_cpuand 1.6 on Kokkos CPU under the in-stage scheme, and 1.2–1.5 under the split. Translation (translate/masks.py,temporal_rates) returns no temporal rates for an all-zero collar, so the kernels compile no pass under either scheme. Handed here on 2026-10-16 and taken back by SEP 22 on 2026-10-18, when this SEP was deferred.The keyword (delivered).
absorber(grid, …, temporal=False)retains the spectral collar and hard band mask with zero temporal rates. Its scheme setting is inert when no temporal pass exists; restrictions caused only by that pass must not apply.absorber=Falseon the keyword interfaces, both soft collars off, stays this SEP’s (§5). Neither switch cancels a response’s source gate.The grid must not grow for it. Q4 places the collar outside the requested window and grows the grid to fit. A collar built with
temporal=False, or whose rates are all zero, absorbs nothing and must add no width: the grid stays at the requested window, as it does today (collar_fractionmust be positive now, and the flat region is \(\min(T_{\mathrm{req}}/2,\,(1-2f)T/2)\)). Otherwise a spectral-only run on a grid matched to a measurement would gain 12–20 % in samples, memory and transform time for nothing.One effective length (delivered; R4 still measures its suitability). SEP 22’s
Absorber.collar_lengthis the length that sets the temporal collar’s peak, \(A/\ell_c\), whichever ofboundary_N,boundary_lengthorwalkoffsets it, and the spatial collars read itsin_stage_lengthfallback in place of the spectral ceiling’sreference_length.custom_absorberpreserves that strength when adding a spectral rate. Phase 2 maps any new temporal parameterisation into this existing contract. R4 asks whether spatial strength should follow a walk-off-derived temporal strength; changing or separating it needs an explicit design decision, not an assumed future change in the completed SEP 22.Attribution. The spectral ledger \(U_\omega\) counts the whole
spectral_rate. SEP 22’scustom_absorbersums a user rate into it, so the collar’s share is not separable unlessAbsorberkeeps the two apart. That separation was deferred (SEP 22 Q11/Q12); this SEP must not report it as already available.
Q17: which edges count (AI review, 2026-10-18). §4.2’s \(\Gamma\) is one edge’s attenuation, and the floor tables, §6’s strength formula and Q3’s figures count one edge;
warn_walkoffintegrates the rate over both edges and so requires \(2\Gamma \ge \Gamma_{\min}\). A wrapping packet crosses both, so the one-edge criterion is conservative by two in the exponent. The convention is chosen before R1: counting one edge, \(\Delta\tau_p = T_{\mathrm{req}}/2\) reproduces today’s default strength; counting both, it halves it (\(AN\) about 100–135 on the tight grids of §6 and 25 on the full CtC grid), and the floors of §4.3 halve with it. Phase 0’s wide-window reference measures which attenuation the physics needs.Q18: review recommendations (AI review, 2026-10-18), for acceptance.
An early keyword phase.
absorber=Falseandabsorber_scheme=on the keyword interfaces depend on no phase-0 result. Recommended: a phase 2a, independently mergeable before phase 0 closes. The spectral-only collar and its compiled-away pass no longer wait on it: SEP 22’s phase 1 delivered them (Q16).walkoffbesideboundary_N. §5 rejects “conflicting”walkoffandboundary_N, yetboundary_Nkeeps setting the spectral \(\ell\) whenwalkoffsets the temporal strength, so no conflict is defined; state which combinations are refused. A slice built afresh withwalkoffneeds its parent’s \(L_{\rm ref}\), which no keyword carries;boundary_lengthis today’s answer and the manual says so (§6).
Q19: production strategy and default (2026-10-20). Deferred to phase 0/R6: which retained windows, placements and prescribed frames are cheaper at matched physical accuracy, and in which cases does absorption remain necessary or more efficient? Report memory limits, monitoring costs, counterexamples and uncertain comparisons. Recommend a default only after R7 qualifies its failure policy and the maintainer has reviewed the evidence. Compare with the cheapest admissible production window, not the cost of the most refined reference.
Q20: guard reliability and cost (2026-10-20). Deferred to phase 0/R7: choose route metrics, guard widths, bands/noise treatment, absolute and relative warning and stop thresholds, and a check cadence that resolves crossing and spreading. Establish where dense checks avoid extra source calls and where check planes are required. Declare the tested scope and any missed accuracy-budget violations; neither endpoint occupancy nor an energy fraction alone certifies containment.
Q21: integration and benchmark baseline (2026-10-20). §3.1 records the established SEP 27 → SEP 28 order and recommends placing SEP 21’s shared native hook work after those source/buffer changes. Independent campaign work can begin earlier. R6/R7 must identify the qualified source, stepper, backend and monitoring costs; affected pre-SEP-28 free-space results need remeasurement. This reconciles the draft with SEPs 22–24 and the pending work without reopening their accepted physics or selecting a new boundary default.
13. References#
The drafting review checked references 1–8 against the published papers on 2026-10-16: authors, title, venue, volume, pages and DOI. The Adams–Moulton intervals of §4.5 were recomputed for this SEP by root locus; reference 9 is the textbook treatment of multistep stability. Results that reference 1 reviews (Manolopoulos’s transmission-free potential, reactant–product decoupling, the Jolicard–Humbert and Hussain–Roberts real parts) are cited through it.
J. G. Muga, J. P. Palao, B. Navarro and I. L. Egusquiza, “Complex absorbing potentials,” Physics Reports 395, 357–426 (2004). doi:10.1016/j.physrep.2004.03.002
X. Antoine, A. Arnold, C. Besse, M. Ehrhardt and A. Schädle, “A review of transparent and artificial boundary conditions techniques for linear and nonlinear Schrödinger equations,” Communications in Computational Physics 4, 729–796 (2008). doi:10.4208/cicp.2008.v4.p729
C. Zheng, “A perfectly matched layer approach to the nonlinear Schrödinger wave equations,” Journal of Computational Physics 227, 537–556 (2007). doi:10.1016/j.jcp.2007.08.004
A. Nissen and G. Kreiss, “An optimized perfectly matched layer for the Schrödinger equation,” Communications in Computational Physics 9, 147–179 (2011). doi:10.4208/cicp.010909.010410a
A. Soffer and C. Stucchio, “Open boundaries for the nonlinear Schrödinger equation,” Journal of Computational Physics 225, 1218–1232 (2007). doi:10.1016/j.jcp.2007.01.020
L. Tao and A. Scrinzi, “Photo-electron momentum spectra from minimal volumes: the time-dependent surface flux method,” New Journal of Physics 14, 013021 (2012). doi:10.1088/1367-2630/14/1/013021
U. M. Ascher, S. J. Ruuth and B. T. R. Wetton, “Implicit-explicit methods for time-dependent partial differential equations,” SIAM Journal on Numerical Analysis 32, 797–823 (1995). doi:10.1137/0732037
C. A. Kennedy and M. H. Carpenter, “Additive Runge–Kutta schemes for convection–diffusion–reaction equations,” Applied Numerical Mathematics 44, 139–181 (2003). doi:10.1016/S0168-9274(02)00138-1
E. Hairer and G. Wanner, Solving Ordinary Differential Equations II: Stiff and Differential-Algebraic Problems, 2nd ed. (Springer, 1996).
Part II — Implementation record#
Part III — History#
2026-10-16: Drafted. The same day, John Travers resolved Q1–Q10 with the drafting agent, and the walk-off parameterisation was corrected: it does not fix short slices, and must not be predicted from the frequency grid.
2026-10-16: Revised against references 1–8, which were read in full:
§4.2: reflection depends on the offset from the frame’s zero-walk-off frequency, not the carrier, so slow walkers reflect;
§4.4: the PML and transparent-boundary arguments were corrected, and the PML’s amplification of misaligned outgoing content added;
§4.5: the trapezoidal collar is not L-stable and absorbs less as it stiffens; the predictor must be implicit too; backward-Euler, modified-CNAB and SBDF references were added;
§4.6: directional occupancy and surface flux were added as diagnostics;
§4.7: the surface-flux record, after Tao and Scrinzi, is now recommended;
§4.9: the phase-space filter was added;
Q11–Q14 were opened and resolved the same day; Q12 is a phase 0 measurement.
2026-10-16: Reviewed by John Travers (human, recorded at his request) and GPT-6 (AI). Review status is Reviewed; lifecycle status remains Draft, pending acceptance. The AI review checked all of Part I against the architecture, conventions, absorber kernels, accepted-step hooks, SEP process and the relevant passages of references 1–8. It corrected:
the projected split’s separate defect and the nonlinear Lie bracket;
the trapezoidal factor at unit stiffness, the scope of fixed-step stability claims, predictor/estimator requirements and unsupported universal IMEX assertions;
the physical energy metric, material/source exchange, projection loss and the timing of accepted-endpoint diagnostics;
the surface record’s initial term, conditional identity, nonlocal tails and exterior-model limitation, and the exact split removal complement;
stable local record propagation, independent quadrature convergence, coherent spectral reconstruction, resume state and cost accounting;
reference convergence, launch/noise matching, profile-area strength and the requirement to preserve the spectral collar when changing temporal strength. R5/Q15 now gate production records and metric decisions; phase 0 retains the existing maintainer choices on geometry, exploratory filtering and campaign cases. Independent scalar checks reproduced AM orders 3–6 endpoints 6, 3, 90/49 and 45/38, and the trapezoidal factors at \(x=1,10,100\). A 24-point Fourier compression witness verified the split defect’s \(O(h^2)\) scaling and \(O(h^3)\) remainder; a linear surface witness showed a nonzero reconstruction residual while the complete removal identity held at approximately \(6\times10^{-16}\) in the split calculation. Reference 9 was not consulted directly; its cited stability intervals were derived independently as specified in §4.5. No full propagation campaign or new absorber implementation was run for this review.
2026-10-18: Reviewed by Fable 5.1 (AI), against SEP 25 Final (reproducibility to the error bound), SEPs 22–24 as drafted and the current tree (kernel schema 28, output schema 18). Resolved in the text: the SEP 22 hand-offs, recorded as Q16 (a spectral-only collar compiles no temporal pass; its keyword; one effective collar length, and R4), with §2, §5 and Q10 pointing to SEP 22; the floor of SEP 24’s RK4 march (§2, §4.3); SEP 25’s restatement of the equivalence tests (§5, §6, §7: exact accounting, rounding bounds on a replayed schedule, accuracy envelopes for adaptive and cadence comparisons); the cross-check with SEP 23’s
absorbed_power(§7); phase 2’s conditional kernel bump and the versions at landing (§9). The derivations were checked independently by Opus 5.5 (AI) against the code; verified at review and resolved in the text:warn_walkoffintegrates both edges, so §4.2’s one-edge \(\Gamma\) is half its count (§4.2, §4.3, Q3; the convention is Q17); the §4.3 floors fromPEC_REAL_INTERVALare 231, 420, 773 and 1437 against the table’s 2-digit figures, left as approximations; the AM intervals of §4.5 assume corrected-state collar history where PEC stores the predicted-state source, and phase 4 needs a hard step cap in both formulations (§4.5, §11); the solve’s transform count quantified (§4.5); the surface and removal identities hold for \(N\equiv0\), or for a linear \(N\) inside \(\mathcal U\) (§4.7); the JWKB parameter grows with strength, so the reflection sweep spans \(AN\) (§4.2, §4.8); the spectral ledger’s quadrature takes exponential weights (§4.6); class-R bounds named for the removal identity, CG parity and the floor law (§7); theescaped_fieldrefusal keys on nonzero temporal rates (§5); the early keyword phase, thewalkoff–boundary_Nconflict and the slice’s parent length recorded as Q18. No propagation campaign was run for this review.2026-10-18 (later): SEPs 22–24 are taken up first and this SEP waits (John Travers). The zero-rate pass and the spectral-only keyword return to SEP 22’s phase 1 with their measured cost (§2, §5, Q16, Q18); Q16 gains the requirement that a collar with
temporal=Falsekeeps the requested window under Q4.2026-10-20: At John Travers’s request, revised Part I to compare wider production windows without temporal absorption, fixed asymmetric placement and prescribed frames with the collar strategies. Added the cost model, frame-width derivation, independent guard monitor, crossing/flux witnesses and matched-accuracy campaign (§§4.10–4.12). R6/R7 gate the production policy; R2 and the implicit-study exit now include the best admissible retained-window candidate. Updated Q8, added Q19/Q20, and reconciled the title, scope, interface, phases, documentation and roadmap. The existing review header records reviews of the earlier draft; this substantial revision needs review before acceptance. No propagation campaign was run and no physics default was selected. Cost factors and the scalar continuity current are derived here; reference [5]’s buffer/velocity and exterior-evolution assumptions were checked against the authors’ paper for the discussion, not qualified for UPPE.
2026-10-20 (dependency review): At John Travers’s request, checked SEPs 22–24’s delivered code and implementation records, SEP 24’s Final integration record, SEP 27’s pending implementation and approved T2 correction, and SEP 28’s accepted design. Added §3.1 and Q21: the established SEP 27 → SEP 28 order, independent SEP 21 studies, and source/performance gates on its final campaign conclusions. Corrected stale Q16 hand-offs and the low-storage stepper’s status; preserved SEP 23’s rate channels and corrected the spectral-integral cross-check. Specified statistics-only monitoring, fixed-schedule coverage, scratch/checkpoint ownership and reusable-runner resets. Plasma comparisons preserve the held-current source gate and qualify its products independently of the absorber. No numerical campaign was run, no default was changed and no frozen Part I of another SEP was edited.