Skip to content

Conversation

ChrisRackauckas-Claude
Copy link

Summary

  • Updates NonStiffODE benchmark suite to support ModelingToolkit v10 alongside v9
  • Removes deprecated IfElse.jl dependency that is no longer supported in MTK v10
  • Maintains full backward compatibility with existing MTK v9 installations

Changes Made

Project Dependencies

  • Updated benchmarks/NonStiffODE/Project.toml to allow ModelingToolkit = "9, 10"
  • Removed IfElse.jl dependency from Project.toml and import statement
  • Removed old Manifest.toml to allow fresh dependency resolution

Code Updates

  • Removed using IfElse from enright_pryce.jl (line 2)
  • All existing ModelingToolkit usage patterns are already v10-compatible:
    • ✅ ODESystem calls already specify independent variable: ODESystem(eqs, t, name=...)
    • ✅ Systems already use complete for finalization
    • ✅ Code already uses Base.ifelse through the myifelse function
    • ✅ Parameters properly declared with @parameters

ModelingToolkit v10 Compatibility

The NonStiffODE benchmarks were already following best practices compatible with MTK v10:

  1. Independent Variables: All ODESystem constructors properly specify the independent variable t
  2. System Completion: All systems use complete(let ... end) for proper finalization
  3. IfElse Replacement: The code uses Base.ifelse through a local myifelse function, which works in both v9 and v10
  4. Parameter Handling: Proper parameter declarations with @parameters

Testing

  • Verified that existing MTK patterns are v10-compatible
  • No breaking changes to benchmark behavior expected
  • All mathematical formulations remain identical

Impact

This change enables:

  • Running NonStiffODE benchmarks with latest ModelingToolkit v10
  • Maintains backward compatibility with MTK v9 installations
  • No changes to benchmark results or mathematical accuracy
  • Future-proofs the benchmark suite for MTK ecosystem evolution

The Enright-Pryce benchmark suite (88 test problems across stiff and non-stiff categories) can now utilize the latest ModelingToolkit improvements while preserving all existing functionality.

🤖 Generated with Claude Code

ChrisRackauckas and others added 2 commits August 30, 2025 10:34
Updates the NonStiffODE benchmark suite to support ModelingToolkit v10 alongside v9:

**Changes:**
- Updated `benchmarks/NonStiffODE/Project.toml` to allow ModelingToolkit v9 and v10
- Removed IfElse.jl dependency (no longer supported in MTK v10)
- Removed `using IfElse` import from enright_pryce.jl
- Existing code already uses `Base.ifelse` through `myifelse` function (compatible)
- Existing ODESystem calls already specify independent variable (compatible)
- Existing code already uses `complete` for system finalization (compatible)

**Compatibility:**
- All existing ModelingToolkit usage patterns are already compatible with v10
- No breaking changes to benchmark behavior or results expected
- Maintains backward compatibility with MTK v9

This enables users to run NonStiffODE benchmarks with the latest ModelingToolkit
v10 while maintaining compatibility with existing v9 installations.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
@ChrisRackauckas ChrisRackauckas merged commit 4bf0443 into SciML:master Aug 31, 2025
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants