What's Changed
- feat: #1021 - Define ParticleData dataclass with batched fields and validation by @Gorkowski in #1025
- fix: #1022 - [E3-F1-P2] Add computed properties and copy() method to ParticleData by @Gorkowski in #1026
- fix: #1023 - [E3-F1-P3] Create ParticleDataBuilder with validation and unit conversion by @Gorkowski in #1027
- fix: #1024 - [E3-F1-P4] Add conversion utilities for backward compatibility by @Gorkowski in #1031
- fix: #1028 - [E3-F2-P1] Define GasData dataclass with batched fields and validation by @Gorkowski in #1032
- docs: #1033 - Convert Activity example scripts to Jupytext-paired notebooks by @Gorkowski in #1034
- feat: #1029 - Create GasDataBuilder with validation and unit conversion by @Gorkowski in #1035
- feat: #1030 - Add GasData conversion utilities from_species() and to_species() by @Gorkowski in #1036
- docs: Add NVIDIA Warp documentation for GPU-accelerated particle simulation by @Gorkowski in #1037
- feat: #1038 - Define @WP.struct WarpParticleData and WarpGasData containers by @Gorkowski in #1044
- feat: #1039 - [E3-F3-P2] Implement to_warp() with manual transfer control by @Gorkowski in #1045
- feat: #1040 - Implement from_warp() and gpu_context() helper by @Gorkowski in #1046
- Add custom js for mathjax, remove polyfill by @wkchuang in #1049
- docs: revise E3 epic and feature plans with shipping status and expanded GPU strategy by @Gorkowski in #1052
- fix: #1050 - [E3-F2-P4] Revise GasData concentration units from molecules/m³ to kg/m³ by @Gorkowski in #1060
- chore: update ADW tools, agents, and workflows by @Gorkowski in #1061
- chore: update adw-commit agent with force-commit fallback for persistent linter errors by @Gorkowski in #1062
- fix: #1051 - [E3-F3-P4] Port shared gas/particle property functions to @wp.func by @Gorkowski in #1063
- fix: #1053 - [E3-F3-P5] Port condensation-specific property functions to @wp.func by @Gorkowski in #1064
- fix: #1054 - [E3-F3-P6] Port condensation composite functions to @wp.func by @Gorkowski in #1065
- fix: #1055 - [E3-F3-P7] Port coagulation composite functions to @wp.func by @Gorkowski in #1066
- fix: #1056 - [E3-F3-P8] Batched GPU kernel for particle-resolved condensation by @Gorkowski in #1067
- fix: #1057 - [E3-F3-P9] Batched GPU kernel for Brownian coagulation by @Gorkowski in #1073
- fix: #1058 - [E3-F3-P10] Benchmark and optimize GPU kernels by @Gorkowski in #1074
- fix: #1068 - [Phase E3-F4-P1] Create ParticleRepresentation facade over ParticleData with deprecation warnings and tests by @Gorkowski in #1075
- update tool by @Gorkowski in #1077
- update docs agent by @Gorkowski in #1079
- fix: #1076 - Fix MathJax configuration for math rendering across all pages including notebooks by @Gorkowski in #1078
- fix: #1069 - [Phase E3-F4-P2] Create GasSpecies facade over GasData with deprecation warnings and tests by @Gorkowski in #1081
- fix: #1070 - [Phase E3-F4-P3] Update CondensationIsothermal to accept both old and new data types with tests by @Gorkowski in #1083
- fix: #1082 - Fix lint workflow: create PR for auto-fix instead of pushing directly to main by @Gorkowski in #1084
- ci(lint): make lint workflow check-only without auto-fixing or PR creation by @Gorkowski in #1085
- Bug plan and opencode update by @Gorkowski in #1086
- fix: #1087 - [M5-P1] Fix NaN kernel for monodisperse particles by @Gorkowski in #1090
- fix: #1088 - Fix spurious same-sign coagulation driven by small ions by @Gorkowski in #1091
- fix: #1089 - [M5-P3] Documentation and cleanup for charged coagulation kernel fixes by @Gorkowski in #1092
- update maintenance plan by @Gorkowski in #1093
- fix: #1094 - [M6-P1] Fix duplicate-index mass/charge loss in collide_pairs and particle_resolved_update_step by @Gorkowski in #1098
- fix: #1095 - [M6-P2] Add opt-in direct kernel evaluation for particle-resolved coagulation by @Gorkowski in #1099
- fix: #1096 - [M6-P3] Move diagnostics into repo and add charged coagulation integration tests by @Gorkowski in #1100
- docs: #1097 - [M6-P4] Update development documentation for M6 completion by @Gorkowski in #1101
- Bump version to 0.2.12 by @Gorkowski in #1102
Full Changelog: v0.2.11...v0.2.12