Runtime and workstation memory notes
Current hosted runtime
Measured on 2026-08-14:
- Physical RAM exposed to the runtime: 15 GiB
- Available at measurement: approximately 14-15 GiB
- Swap: none
- Logical CPUs: 9
- Process address-space/data/RSS limits: unlimited by
ulimit - Open-file limit: 16,384
The practical limit is therefore the 15 GiB physical allocation, with margin required because there is no swap fallback.
Supplied 64 GB profile
The original milestone-1 estimate reported:
- Grid: 40 x 14 x 10
- Vector unknowns: 16,800
- Transverse surface-plane unknowns: 420
- Dense full-period lead unknowns: 2,520
- Conservative sparse-LU estimate: 1.14 GiB
- Dense surface-recursion workspace estimate: 1.14 GiB
- Original conservative model estimate: 2.29 GiB
The external run completed in 3:56 and reached 34,706,740 kB, or 33.1 GiB RSS. All numerical checks passed. Inspection showed that the boundary self-energy, although physically supported on only 420 rows, had been expanded into dense matrices over the full defect and the larger translated validation domain. The estimator now identifies 32.30 GiB of such milestone-1 temporaries.
Milestone 2 stores only the supported boundary blocks. Its updated conservative estimate is 2.99 GiB for the same validation, including the larger sparse LU needed by the explicit two-period check. The corrected profile was then run in the 15 GiB hosted environment with four BLAS threads:
- Peak RSS: 1.883 GiB
- Runtime: 393.5 s
- Translation error: 1.03e-13
- Surface Dyson residual: 2.69e-13
- Gradient relative error: 3.50e-7
- Self-energy support: 420 rows on each boundary, 314,224 total nonzeros
That milestone-2 estimate was conservative in the hosted runtime; a future workstation repeat can still calibrate machine-specific BLAS and sparse-LU overhead before selecting a finer production grid.
Milestone-3 Yee and condensed-lead validation
The staggered-Yee replacement was validated on the same 40 x 14 x 10 profile. With the original full-period surface recursion it completed in 628.01 s at 1.864 GiB peak RSS. All operator, boundary, and gradient gates passed, but the smaller retarded-sheet selector made the dense lead recursion the dominant runtime.
The final backend exactly eliminates 2,100 internal lead unknowns before Lopez-Sancho recursion, reducing the iterated block from 2,520 to 420 unknowns. In the 15 GiB hosted environment with four BLAS threads it measured:
- Peak RSS: 0.594 GiB
- Runtime: 45.61 s
- Translation error: 1.656e-11
- Surface Dyson residual: 7.741e-14
- Condensation reciprocity error: 2.213e-14
- Gradient relative error: 1.250e-5
- Exact curl-gradient residual: zero
On the small regression grid, condensed and full-period left/right surface Green matrices agree to better than 8e-15 relative error. The current conservative memory estimate is 2.37 GiB because it includes the larger sparse LU for the explicit two-period translation test; the measured peak is lower.
Milestone-7 controlled and full refinements
The controlled transverse-refinement grid is 20 x 18 x 14 (15,120 vector unknowns and a 756-unknown surface plane). A 25-frequency response sweep measured 2.66 GiB peak RSS in the hosted 15 GiB runtime. This profile keeps the coarse dx=0.125 and 1+2-slice mirror unchanged so that the unexpectedly large resonance shift can be attributed to transverse discretization rather than a simultaneous change of Bragg period.
The new workstation64-fine profile is 40 x 26 x 22:
- 68,640 vector unknowns;
- 1,716 surface-plane unknowns;
- 10,296 unknowns in one uncondensed six-slice lead cell;
- four cells through the 0.32-lambda slab;
dx=0.0625with a 2+4-slice mirror, preserving the physical 0.375-lambda Bragg period; and- conservative peak estimate 16.16 GiB.
That estimate has not yet been externally calibrated. On the 64 GB machine, run vector3d_optimizer.py --profile workstation64-fine --steps 0 under /usr/bin/time -v before launching a frequency sweep. The detailed sequence is in WORKSTATION64_RUNBOOK.md.