Dependencies:
#1115 [E5-F1] ──┐
#1116 [E5-F2] ──┤
#1117 [E5-F3] ──┼──► #THIS [E5-F7]
#1118 [E5-F4] ──┤
#1119 [E5-F5] ──┘
Plus: E3-F3 (Warp Integration) should be sufficiently advanced
Summary
Generate implementation issues for feature E5-F7: Warp/GPU Translation (Follow-on).
Translate the Python-native non-isothermal condensation implementation to NVIDIA Warp (wp.func / wp.kernel) for GPU acceleration. This is a follow-on feature that ships after the Python implementation (E5-F1 through E5-F5) is complete and validated. The GPU translation follows patterns established in E3-F3 (Warp Integration and GPU Kernels).
Feature Plan
Document: adw-docs/dev-plans/features/E5-F7-warp-gpu-translation.md
Parent Epic: E5: Non-Isothermal Condensation with Latent Heat (adw-docs/dev-plans/epics/E5-non-isothermal-condensation.md)
Phases to Generate
| Phase |
Description |
Size |
| E5-F7-P1 |
Translate latent heat pure functions to wp.func kernels with tests |
M (~80 LOC) |
| E5-F7-P2 |
Translate CondensationLatentHeat.step() to Warp kernel with tests |
L (~120 LOC) |
| E5-F7-P3 |
Update development documentation for GPU feature |
XS (~30 LOC) |
Dependencies
ADW Instructions
When processing this issue:
- Read the feature plan document:
adw-docs/dev-plans/features/E5-F7-warp-gpu-translation.md
- Read the parent epic for context:
adw-docs/dev-plans/epics/E5-non-isothermal-condensation.md
- For each phase in the Phase Checklist (E5-F7-P1 through E5-F7-P3), create an implementation issue with:
- Full technical details from the feature plan
- Specific file paths from the feature plan's scope section
- Test file paths (co-located in module
tests/ directories)
- Co-located testing: tests ship with implementation in every phase
- Coverage target: 80-85% per phase
- Set dependency chain: E5-F7-P1 → E5-F7-P2 → E5-F7-P3
- Label all phases with
agent, blocked, type:complete, model:default
Files to Create/Modify
- Create: Warp function files (following E3-F3 patterns — exact paths TBD based on E3-F3 structure)
wp.func equivalents of get_thermal_resistance_factor and get_mass_transfer_rate_latent_heat
wp.kernel for non-isothermal condensation step
- Modify:
docs/Examples/Dynamics/non_isothermal_condensation_example.py — add GPU usage examples
- Modify:
adw-docs/dev-plans/features/index.md — GPU completion status
- Create: GPU parity and performance test files (following E3-F3 test patterns)
Testing Strategy
Unit Tests
| Test File |
Phase |
Coverage Target |
| TBD (follows E3-F3 test patterns) |
P1 |
Warp functions |
| TBD (follows E3-F3 test patterns) |
P2 |
Warp kernels |
Key Test Cases
- Function parity:
thermal_resistance_factor_wp matches get_thermal_resistance_factor for same inputs
- Rate parity:
mass_transfer_rate_latent_heat_wp matches Python version
- Kernel parity: Full step kernel matches
CondensationLatentHeat.step()
- Energy tracking: GPU energy output matches CPU
sum(dm * L)
- Performance: GPU faster than CPU for >= 10000 particles (marked
@pytest.mark.slow)
Numerical Tolerance
- Float32: < 1e-6 relative error (GPU default precision)
- Float64: < 1e-12 relative error
- Tests gracefully skip when Warp not installed (
pytest.importorskip)
Risks and Mitigations
| Risk |
Mitigation |
| E3-F3 Warp patterns not yet finalized |
Feature is explicitly deferred; wait for E3-F3 to stabilize |
| Float32 precision loss on GPU |
Test both float32 and float64; document precision trade-offs |
| Warp not available in all environments |
Skip GPU tests when Warp not installed |
| Performance regression |
Benchmark tests with explicit particle count thresholds |
Dependencies:
#1115 [E5-F1] ──┐
#1116 [E5-F2] ──┤
#1117 [E5-F3] ──┼──► #THIS [E5-F7]
#1118 [E5-F4] ──┤
#1119 [E5-F5] ──┘
Plus: E3-F3 (Warp Integration) should be sufficiently advanced
Summary
Generate implementation issues for feature E5-F7: Warp/GPU Translation (Follow-on).
Translate the Python-native non-isothermal condensation implementation to NVIDIA Warp (
wp.func/wp.kernel) for GPU acceleration. This is a follow-on feature that ships after the Python implementation (E5-F1 through E5-F5) is complete and validated. The GPU translation follows patterns established in E3-F3 (Warp Integration and GPU Kernels).Feature Plan
Document:
adw-docs/dev-plans/features/E5-F7-warp-gpu-translation.mdParent Epic: E5: Non-Isothermal Condensation with Latent Heat (
adw-docs/dev-plans/epics/E5-non-isothermal-condensation.md)Phases to Generate
wp.funckernels with testsCondensationLatentHeat.step()to Warp kernel with testsDependencies
ADW Instructions
When processing this issue:
adw-docs/dev-plans/features/E5-F7-warp-gpu-translation.mdadw-docs/dev-plans/epics/E5-non-isothermal-condensation.mdtests/directories)agent,blocked,type:complete,model:defaultFiles to Create/Modify
wp.funcequivalents ofget_thermal_resistance_factorandget_mass_transfer_rate_latent_heatwp.kernelfor non-isothermal condensation stepdocs/Examples/Dynamics/non_isothermal_condensation_example.py— add GPU usage examplesadw-docs/dev-plans/features/index.md— GPU completion statusTesting Strategy
Unit Tests
Key Test Cases
thermal_resistance_factor_wpmatchesget_thermal_resistance_factorfor same inputsmass_transfer_rate_latent_heat_wpmatches Python versionCondensationLatentHeat.step()sum(dm * L)@pytest.mark.slow)Numerical Tolerance
pytest.importorskip)Risks and Mitigations