Skip to content

Native API migration closeout

Status: implementation validated; maintainer review and release approval pending. This record tracks the development-tree removal for v0.3.0. It does not announce a released wheel, change the package version, or qualify GPU performance. The maintainer owns final scientific and release approval.

Removed APIs and replacements

Removed boundary Supported replacement
ParticleRepresentation and obsolete representation builders/factory ParticleData, native initializers and ParticleDataBuilder
GasSpecies and obsolete species builders/factory Full-order GasData and GasDataBuilder
Atmosphere, AtmosphereBuilder and legacy aerosol aggregate Flat Aerosol holding particles, gas and EnvironmentData
Facade conversion bridges and legacy process dispatch Native construction, validated container replacement and process-owned physics/maps
Untagged GPU execution and population transfer Explicit supported population metadata and exact-carrier bindings
Untagged schema-v5 resident checkpoint admission Tagged v5 canonical payloads with explicit independent gas width; ambiguous records reject before setup/upload

Native initialization, scientific property functions, distribution algorithms, explicit CPU-Warp transfers and supported runnable composition remain available. Historical names may occur in migration comparisons and negative import tests; they are not supported executable APIs.

Preserved scientific and ownership boundaries

Resolved concentration is represented count; discrete concentration is number density; continuous PDF is dN/dr. Use represented volume when comparing density and extensive inventory. GPU PDF populations remain unsupported. Particle material width and full gas width are independent; preserve ordered names, nonpartitioning lanes and explicit process maps.

Native Aerosol holds its three containers by identity. Validated individual or coordinated replacement does not rebind prepared GPU state. Raw array edits remain caller-owned and require revalidation. CPU process execution remains single-box; batched storage does not imply general CPU multi-box support.

Transfers, synchronization and device selection are explicit. Resident restart retains schema v5, canonical device bytes and RNG continuation on an exactly compatible device. CPU inspection carriers remain lossy and cannot replace canonical continuation state. No inferred population tags, hidden fallback, automatic restart or cross-device replay is introduced.

V0.3.0's fixed-composition binned transport, cloud dry-phase oscillation and soot property limitations remain. No numerical oracle, conservation tolerance or coverage threshold is relaxed to make the migration pass.

Validation evidence

Evidence is revision-specific. Focused checks are assertion evidence; only the untargeted repository runner supplies full-package coverage evidence.

Gate Current evidence
GPU/execution boundary suite 4,182 passed, 679 skipped at 72f179eeb boundary content; no CUDA timing claim
Native benchmark consumers 95 helper tests passed; real Warp CPU uptake/evaporation and material conservation checks; committed in 48771293c
Untargeted normal-coverage runner Final production cleanup run: 8,333 passed, 684 skipped; 92% coverage against unchanged normal 80% threshold. Earlier two untagged thermodynamics fixtures corrected with original assertions retained
Corrected thermodynamics integration 2 passed, 1 optional CUDA skip; original test bodies and tolerances retained
Installed-wheel package suite Final production cleanup: 4,559 passed, 25 skipped, 820 deselected in 41.74s; isolated Warp cache and installed distribution provenance checked outside checkout, including removed-module and native aggregate tests
Separate installed-wheel examples 20 passed; native dilution, nucleation and latent-heat examples
Both wall-loss suites Public suite 16 passed; separately collected adjacent suite 43 passed
Infrastructure 132 passed, including publication-routing regression
Plugin distribution consistency Six skills and host packages validated
Ruff and mypy Final production lint runner passed, including Ruff and mypy over 535 files
Standard and full strict documentation Both passed with final notebook outputs: standard 1.46s and full publication 47.69s, zero warning/error lines. Supported API pages remain included; no warning suppression.
Source example suite 225 passed, 2 skipped after final dilution import guard and simulation prose cleanup
Full supported source and notebook workloads 58 source executions and all 46 notebooks passed; 98 PNG plots reviewed, code pairs matched and image counts preserved. One native-CUDA-only source skipped cleanly without fallback. Full workload and output hashes recorded in the execution/review ledgers
Final compatibility inventory Reconciled after regenerated outputs. Only intentional removal-safe test guards retain removed production symbol names; 1,606 native successor references resolve.

The native benchmark workload identifiers distinguish them from historical untagged cases. CPU interpolated-grid and GPU direct-pair coagulation samplers are distinct algorithms; timing ratios do not establish statistical or trajectory parity. No new benchmark timings are published by this migration.

The detailed commands, assertion-retention ledgers and intermediate failures are retained with the migration pull request and its implementation records. Required failures or missing evidence leave readiness incomplete. Optional CUDA skips never stand in for native-CUDA capture evidence.