Skip to content

Fix DAE/TransistorAmplifier: remove incompatible solvers - #1545

Merged
ChrisRackauckas merged 3 commits into
SciML:masterfrom
ChrisRackauckas-Claude:fix/dae-transistor-amplifier
Apr 9, 2026
Merged

Fix DAE/TransistorAmplifier: remove incompatible solvers#1545
ChrisRackauckas merged 3 commits into
SciML:masterfrom
ChrisRackauckas-Claude:fix/dae-transistor-amplifier

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member

Summary

  • Remove DFBDF() from DAE problem setups (prob_choice => 2) — it requires full/banded mass matrices but the MTK DAE problem uses sparse form, causing "This solver must use full or banded mass matrices"
  • Remove DASKR.daskr() from DAE problem setups — repeatedly fails with "ERROR TEST FAILED REPEATEDLY OR WITH ABS(H)=HMIN" at the initial time step
  • IDA() remains as the DAE solver (works correctly for reference solution)

Errors appeared in 4 separate WorkPrecisionSet calls across High Tolerances, Timeseries, and Low Tolerances sections.

Test plan

  • TransistorAmplifier benchmark runs without mass matrix errors
  • Work-precision plots generate successfully

🤖 Generated with Claude Code

ChrisRackauckas and others added 3 commits April 8, 2026 14:05
- Remove DFBDF() from prob_choice => 2 (DAE problem) setups — DFBDF
  requires full/banded mass matrices but the MTK DAE uses sparse form,
  causing "This solver must use full or banded mass matrices"
- Remove DASKR.daskr() from prob_choice => 2 setups — repeatedly fails
  with "ERROR TEST FAILED REPEATEDLY OR WITH ABS(H)=HMIN" at t=0

IDA() remains as the DAE solver since it works correctly.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The IDA() DAE solver crashes with SIGABRT (memory corruption in
Sundials KINFree/N_VDestroy_Serial) due to the overdetermined
initialization system (14 equations for 4 unknowns) in the MTK DAE
formulation. This is an uncatchable crash that aborts the process.

Remove the DAE problem form entirely and benchmark only:
- prob_choice 1: MTK ODE form (mtkprob)
- prob_choice 2: manual mass-matrix ODE form (mmprob)

Also add IIF to .typos.toml ignore list (StochasticDiffEqIIF is a
valid package name in regenerated Manifest files).

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
radau() from ODEInterfaceDiffEq requires full or banded mass matrices
but the MTK ODE problem (prob_choice 1) has a Diagonal mass matrix.
Move radau() to prob_choice 2 (manual full mass-matrix ODE).

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@ChrisRackauckas
ChrisRackauckas merged commit 9e29849 into SciML:master Apr 9, 2026
5 of 6 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