Skip to content

Conversation

ChrisRackauckas-Claude
Copy link

Summary

This PR adds comprehensive documentation for DAE initialization algorithms, explaining the new interface introduced in DiffEqBase v6.190.0.

Changes

  1. Created features/dae_initialization.md:

    • Explains the DAE initialization problem
    • Documents all available initialization algorithms with full citations
    • Provides examples for each algorithm
    • Includes troubleshooting section
    • Adds performance tips
  2. Updated navigation:

    • Added DAE initialization to the Features section in pages.jl

Content Overview

Algorithms Documented

  • DefaultInit(): Automatic algorithm selection
  • CheckInit(): Verification-only mode
  • NoInit(): Skip initialization
  • BrownBasicInit(): Brown et al. (1998) algorithm
  • ShampineCollocationInit(): Shampine (2001) collocation method

Examples Included

  • Simple pendulum DAE with inconsistent initial conditions
  • Checking consistency of user-provided conditions
  • ModelingToolkit integration with automatic initialization

Additional Content

  • Troubleshooting guide for common initialization issues
  • Performance tips for efficient initialization
  • Full academic citations for implemented algorithms

Related PRs

🤖 Generated with Claude Code

Co-Authored-By: Claude noreply@anthropic.com

- Document all available initialization algorithms with citations
- Include detailed examples for each algorithm
- Add troubleshooting and performance tips
- Add to navigation in Features section
- Reference docstrings for algorithm documentation
- Keep examples and troubleshooting sections
- Add algorithm selection guide table
- More concise while maintaining all useful information
- Add prominent danger box warning about NoInit risks
- Clarify that issues using NoInit will be closed immediately
- Update examples to show CheckInit as recommended alternative
- Mark NoInit as AVOID in algorithm selection table
- Emphasize that NoInit with inconsistent conditions leads to undefined behavior
- Add section explaining higher-index DAE issues
- Document how to check if DAE is index-1 (Jacobian singularity test)
- Show ModelingToolkit solution for index reduction
- Link initialization convergence issues to potential index problems
- Remove dae_index_lowering() call as structural_simplify handles it in v10+
- Update both examples to use just structural_simplify
- Cleaner, more modern syntax
- Use !!!warn instead of !!!danger for consistency with documentation style
- Maintains the same strong warning message about NoInit risks
- Combine OrdinaryDiffEq and Sundials sections to show they support the same interface
- Show both DFBDF() and IDA() examples side by side
- Move extended versions to separate subsection (OrdinaryDiffEq only)
- Emphasize that both packages support the same initialization algorithms
@ChrisRackauckas ChrisRackauckas merged commit b042746 into SciML:master Sep 16, 2025
1 of 3 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