Repository navigation
1.0.0rc10
Pre-release
Pre-release
·
179 commits
to main
since this release
Changed
- A line of frequencies on one card is faster. For a serial cuDSS
factorization, a refactorize now takes the CSR arrays of the new operator
once, checks the nonzero pattern against the first operator, writes the
values into the same PETSc matrix, and gives them to cuDSS. The adjoint
factor gets K^H from a permutation of those values that is computed once
per factorization, not from a sparse transpose at every frequency. On the
450,000-unknown Savarino operator, one A6000, the median line point went
from 32.1 s to 25.8 s over the eight frequencies after the first of the
beta = 40 line, with gains identical to ten digits. The path is the default; set
LINSTABPY_FAST_REFACTOR=0to use the general path. A different nonzero
pattern raisesValueError. - The run summary reports the peak memory of the largest rank next to the
sum over ranks. run_all_examples.shprintsSOFT_FAILwith the case names when the
Martini parity comparison has soft failures. Before, it printedPASS.
Fixed
examples/savarino/savarino_mapwalk.pycompared each line gain with
output/savarino_map2_200pt.csv, a farm computed before the filter-order
fix. Thefarm_gainandrel_errcolumns of a line record then showed
differences up to 4.4e-3 that are not in the line result. The default
reference is nowsavarino_map3_200pt.csv, the committed map of record,
in the script, insavarino_mapwalk.sbatch.template, which passed the old
file explicitly, and in the test and docstrings that named it.
Added
wiki/architecture pages and.github/workflows/pages.yml. MkDocs
builds the site. Pages are hand-written and hand-maintained.
Fixed
- The
solvers/router/resolvent_mapmodule docstring said every gain map
needs SBP sawtooth dissipation. That claim is wrong on rectilinear
meshes. The odd-even mode exists only on a mesh that is curvilinear in
both directions, where the metric cross-terms mix grid-scale content.
The docstring now states the mesh condition, points to
driver.preflight.metric_cross_coupling()as the test, and scopes the
tunedepsilon ~ 0.10to the curved-wall mesh it came from. This aligns
the last remaining text with the measured story already in
config/defaults.pyanddriver/preflight.py. - The Martini parity manifest still pointed Example 3 at a combined
example_3_streaky_bl.npzthat nothing writes since the example was split
into the four paper campaigns, so every full parity run reported a hard
failure on a missing artifact. The compare now walks the per-campaign
NPZs, each against its own MATLAB bundle, with the same residual-first
gates as before, and aligns the component-sliced mode subsets the
repository bundles store (idx rows, saved-mode columns) before pairing.
With the wiring repaired, the full parity run reports four passes, two
documented structural soft failures, and no hard failures.