solprop.backends.host.low_storage#
The reference’s low-storage interaction-picture RK4 march (SEP 24, SEP 47).
HostLowStorageMarch replays a prescribed schedule and accepts each step in
place, through the host engine (solprop.backends.low_storage.HostLowStorage),
which holds the registers and makes the step’s four passes. It is owned by the NumPy
reference since SEP 47 phase 2: a copy of the march the native bridge still inherits
(solprop.backends.low_storage.LowStorageMarch), sharing only the stateless
engine. The method, the register form and the in-flight contract are those of
solprop.backends.low_storage’s module documentation.
Classes
|
Replay a schedule with the low-storage RK4IP march, accepting in place. |
- class solprop.backends.host.low_storage.HostLowStorageMarch(backend, method)[source]#
Bases:
objectReplay a schedule with the low-storage RK4IP march, accepting in place.
Follows
solprop.backends.host.adams.HostAdamsMarch: it owns its registers through an engine and replays a prescribed schedule, which is the only thing it does (SEP 24 section 6.2). Each step calls the engine, applies the backend’s_finish(the hard band mask, and the split-step collar where chosen) and moves the position in one commit, then records the step through the backend.- Parameters:
- backendsolprop.backends.host.driver.HostDriver
The backend whose state is marched; it owns the step history and the statistics rows.
- methodsolprop.stepper.low_storage.LowStorageRungeKutta
The march.
- Attributes:
- source_evaluationsint
Source evaluations of the committed steps since the state was last loaded (
HostDriver.set_initial, which sets it to zero), four a step: a physical count, never a logical response call (SEP 24 section 5). A step that did not commit – abandoned in flight, or diverged – adds none.
Notes
The march has no error estimate to warn on. It logs a warning, once per call of
replay_to(), when the engine’s stiffness indicator passes RK4’s negative-real stability interval (LOW_STORAGE_REAL_INTERVAL): an explicitly integrated damping term the translation cannot bound in advance – plasma loss – is then near the step’s stability limit.- property engine: HostLowStorage[source]#
Return the engine that holds the registers.
- Returns:
- solprop.backends.low_storage.HostLowStorage
The host engine.
- replay_step(dz, end, slack)[source]#
Take one prescribed step from the backend’s position and accept it.
The unit a lockstep batch advances each member by (
solprop.backends.host.group.HostGroup), withsolprop.backends.host.adams.HostAdamsMarch.replay_step()’s signature.- Parameters:
- dzfloat
The step, m.
- endfloat
The schedule’s edge it ends on, m.
- slackfloat
How far an edge may sit from a target it lands on, m; unused, since the march restarts nothing at a kink.
- Returns:
- float
The norm the history records: 0.0, “not estimated”.
- Raises:
- BackendError
If an earlier step was abandoned in flight.
- ConvergenceError
If the accepted state is not finite: the field has diverged, and a replay cannot reject the step. Raised in flight, so the state is lost with it.