Skip to content

Commit 1715061

Browse files
committed
Add OverrideInitData adapt_structure for GPU compatibility
- Analyzed isbits requirements and OverrideInitData field types - Found that metadata field is primary GPU compatibility issue - Added adapt_structure for OverrideInitData that: * Adapts initializeprob field to target backend * Sets metadata to nothing for GPU compatibility * Preserves all other functional fields - Testing shows successful DAE solving with constraint satisfaction - Neither approach makes OverrideInitData fully isbits due to field type limitations - Current implementation provides sufficient GPU compatibility 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent ecc958f commit 1715061

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

src/dae_adapt.jl

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,15 @@ function adapt_structure(to, f::SciMLBase.ODEFunction{iip}) where {iip}
1212
initialization_data = f.initialization_data
1313
)
1414
end
15+
16+
# Adapt OverrideInitData for GPU compatibility
17+
function adapt_structure(to, f::SciMLBase.OverrideInitData)
18+
SciMLBase.OverrideInitData(
19+
adapt(to, f.initializeprob), # Also adapt initializeprob
20+
f.update_initializeprob!,
21+
f.initializeprobmap,
22+
f.initializeprobpmap,
23+
nothing, # Set metadata to nothing for GPU compatibility
24+
f.is_update_oop
25+
)
26+
end

0 commit comments

Comments
 (0)