Repository navigation
Support MethodOfLines v1 array-form reductions - #174
dependabot[bot] wants to merge 4 commits into
Conversation
Updates the requirements on and [MethodOfLines](https://github.com/SciML/MethodOfLines.jl) to permit the latest version. Updates `MethodOfLines` to 1.1.0 - [Release notes](https://github.com/SciML/MethodOfLines.jl/releases) - [Changelog](https://github.com/SciML/MethodOfLines.jl/blob/master/NEWS.md) - [Commits](https://github.com/SciML/MethodOfLines.jl/commits) Updates `MethodOfLines` to 1.1.0 - [Release notes](https://github.com/SciML/MethodOfLines.jl/releases) - [Changelog](https://github.com/SciML/MethodOfLines.jl/blob/master/NEWS.md) - [Commits](https://github.com/SciML/MethodOfLines.jl/commits) --- updated-dependencies: - dependency-name: MethodOfLines dependency-version: 1.0.0 dependency-type: direct:production dependency-group: all-julia-packages - dependency-name: MethodOfLines dependency-version: 1.0.0 dependency-type: direct:production dependency-group: all-julia-packages ... Signed-off-by: dependabot[bot] <support@github.com>
a831769 to
846adfb
Compare
|
Implementation record for
|
|
Follow-up plan from review feedback:
|
|
Follow-up commit
Added regressions cover Local validation:
|
|
Follow-up commit |
|
Closing as superseded: superseded by #178, which replaces this dependabot branch. 🤖 Posted by an AI agent — harness: Claude Code, model: claude-opus-5[1m]. Chris asked for these closures directly. |
|
This pull request was built based on a group rule. Closing it will not ignore any of these versions in future pull requests. To ignore these dependencies, configure ignore rules in dependabot.yml |
Summary
symbolic_discretizeindeim.deim(::ODESystem, ...)call through the array-form reduction path, including inputs that@mtkcompilehas scalarized. The former scalarbuild_functioncode-generation path has been removed.mtkcompile, including reversed one-dimensional arrays and arbitrary multidimensional permutations.DAEProblems.Complexity boundary
For fixed POD and DEIM dimensions and a fixed number of state fields, the generated reduced equation and observable graph is independent of the spatial grid size. The regression compares 5 and 20 intervals and obtains the same equation count, observable count, parameter count, and symbolic tree sizes.
This does not make the entire offline reduction O(1). Structural preprocessing, POD/DEIM basis construction, the
O(nk)reconstruction matrix, and full-field observable evaluation still scale with the full-order grid. The optimization targets compilation of the returned reduced solve.Numerical design
Projecting the raw MethodOfLines descriptor DAE directly is not equivalent to eliminating its algebraic boundary states and produced an inaccurate reduced trajectory. This implementation therefore performs structural elimination before POD/DEIM projection, while keeping the returned online dynamics and reconstruction observables in array form.
MethodOfLines
symbolic_discretizeoutput should be passed before structural compilation so its complete field and boundary reconstruction metadata remains available. MOR may scalarize it internally for offline analysis, but its generated reduced dynamics remain a single symbolic array equation.Validation
julia --project=. -e 'using Pkg; Pkg.test()': 93 tests passed.Runic --check .: passed.v(x,t)andw(x,t)retrieval, and trajectory error below the regression threshold.@mtkcompileinputs reduce to one array dynamics equation, solve successfully, and reconstruct in canonical array order.