rebase#4772
Open
xtalax wants to merge 431 commits into
Open
Conversation
Explicitly specify the codecov token to be used (i.e., `CODECOV_TOKEN`), given that the latest v4 release of the codecov action requires it to be able to generate coverage reports. Additionally, fail CI if coverage reporting fails, since coverage is an important enough metric for us to ensure that it's tracked consistently.
ci: explicitly specify token for codecov
Trigger docs build
Kind of format?
The Schroedinger PDE tests construct ODE problems with a singular mass matrix (algebraic constraints from Dirichlet BCs after Re/Im split). Recent MTK / SciMLBase / OrdinaryDiffEq versions tightened the default DAE initialization to `CheckInit`, which only verifies u0 and refuses to perturb the algebraic states. With non-trivial complex BCs (the `Schroedinger with complex bcs` testset, ϵ=1.0e-2), discretization noise makes u0 fail the strict CheckInit residual tolerance and the solve errors with `DAE initialization failed: normresid > abstol`. Pass `initializealg = BrownFullBasicInit()` on both Schroedinger testsets so the algebraic states are projected onto the constraint manifold before stepping. This matches the IC consistency the tests expect and is the standard recommendation in the same error message. Add explicit `using SciMLBase` and `DiffEqBase: BrownFullBasicInit` imports since `@safetestset` runs each file in a fresh module. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
…roedinger-init Fix master CI: Schroedinger DAE init with BrownFullBasicInit
Convert all CI to the centralized reusable workflows pinned at @v1, with `secrets: "inherit"` on every caller: - Runic (FormatCheck.yml): convert inline fredrikekre/runic-action to runic.yml@v1. - SpellCheck.yml: convert inline crate-ci/typos to spellcheck.yml@v1. - Downgrade.yml: convert inline downgrade job to downgrade.yml@v1 (julia-version 1.10, skip Pkg,TOML, allow-reresolve false), keeping the existing `if: false` disabled state (#520). - Downstream.yml: convert inline IntegrationTest to a matrix of downstream.yml@v1 callers (SciML/PDESystemLibrary.jl group MOL, continue-on-error preserved). - Tests.yml / Documentation.yml: already central callers, unchanged. - Delete CompatHelper.yml (dependabot handles Julia compat updates). - dependabot.yml: drop crate-ci/typos ignore; add julia ecosystem block over / and /docs (daily, all-julia-packages group). Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Centralize CI on SciML reusable workflows
Updates the requirements on [DomainSets](https://github.com/JuliaApproximation/DomainSets.jl) and [DifferentialEquations](https://github.com/SciML/DifferentialEquations.jl) to permit the latest version. Updates `DomainSets` to 0.8.0 - [Release notes](https://github.com/JuliaApproximation/DomainSets.jl/releases) - [Commits](JuliaApproximation/DomainSets.jl@v0.7.0...v0.8.0) Updates `DomainSets` to 0.8.0 - [Release notes](https://github.com/JuliaApproximation/DomainSets.jl/releases) - [Commits](JuliaApproximation/DomainSets.jl@v0.7.0...v0.8.0) Updates `DifferentialEquations` to 8.0.0 - [Release notes](https://github.com/SciML/DifferentialEquations.jl/releases) - [Changelog](https://github.com/SciML/DifferentialEquations.jl/blob/master/NEWS.md) - [Commits](SciML/DifferentialEquations.jl@v7.0.0...v8.0.0) --- updated-dependencies: - dependency-name: DomainSets dependency-version: 0.8.0 dependency-type: direct:production dependency-group: all-julia-packages - dependency-name: DomainSets dependency-version: 0.8.0 dependency-type: direct:production dependency-group: all-julia-packages - dependency-name: DifferentialEquations dependency-version: 8.0.0 dependency-type: direct:production dependency-group: all-julia-packages ... Signed-off-by: dependabot[bot] <support@github.com>
The dependabot bump (#564) widened DomainSets to `0.7, 0.8`, but the package could not resolve because PDEBase (and ModelingToolkitBase) still pinned DomainSets to 0.7. Bump the PDEBase lower bound to 0.1.25, the release that admits DomainSets 0.8. MethodOfLines's own source needs no changes: all DomainSets usage is via qualified, still-exported names (`DomainSets.infimum`, `DomainSets.supremum`, `DomainSets.ClosedInterval`, and `Interval`), none of which are affected by the 0.8 breaking changes. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
…-0.8 Support DomainSets 0.8 (compat bumps; isolates DiffEq8 breakage)
Adapts MethodOfLines to the breaking changes that master already resolves to
(OrdinaryDiffEq 7.0.0, SciMLBase 3.x, RecursiveArrayTools 4.x), fixing a
pre-existing master CI failure across many test groups.
Solution interface (src/interface/solution/common.jl): define length/size/
ndims/axes/firstindex/lastindex for the MOL PDETimeSeriesSolution in terms of
its saved time points. PDETimeSeriesSolution is an AbstractVectorOfArray whose
`u` field is a Dict{Num,Array}; RAT 4's generic size iterates `u` expecting a
vector of arrays and errors with `size(::Pair, ::Int)`. For single-variable
solutions the generic path silently returned 1 (the dv count) instead, so
`for i in 1:length(sol)` loops were quietly only checking i = 1.
Solver re-exports: OrdinaryDiffEq 7 no longer re-exports most solver names from
`using OrdinaryDiffEq`. Import the ones the tests use from their sub-packages
(Rodas4/Rodas4P/Rosenbrock32 from OrdinaryDiffEqRosenbrock, TRBDF2 from
OrdinaryDiffEqSDIRK, SSPRK33 from OrdinaryDiffEqSSPRK, Euler/SplitEuler from
OrdinaryDiffEqLowOrderRK) and add the sub-packages to the test deps.
SciMLBase namespace: `using OrdinaryDiffEq` (v7) no longer brings SciMLBase into
scope, so tests calling `SciMLBase.successful_retcode`/`SciMLBase.NullParameters`
need an explicit `using SciMLBase`.
Test 03 of MOL_1D_Linear_Diffusion: the `sum(u) ~= 0 atol=1e-10` conservation
check was previously only evaluated at i=1 due to the broken length(sol). With
length fixed it runs at every time; the edge-aligned grid's rectangle-rule sum
drifts to ~1e-7 (center-aligned stays ~1e-11 at identical Tsit5 tolerances), so
the tolerance is relaxed to 1e-6 with an explanatory comment.
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
…ffeq-7-sciml-3 Fix for OrdinaryDiffEq 7 / SciMLBase 3 / RecursiveArrayTools 4 (complements #565)
Test 03 of MOL_1D_Linear_Diffusion checks that the diffusion equation with homogeneous Neumann BCs conserves the spatial integral of u (here ∫₀^π cos(x) dx = 0). It previously used `sum(u)`, a rectangle rule that on the edge-aligned grid (nodes offset half a step outside the domain) carries an O(Δx) boundary bias and drifts to ~1e-7, which forced #566 to loosen the assertion from atol=1e-10 to atol=1e-6. Integrate instead with composite trapezoidal weights built from the actual grid spacing (interior nodes get the half-spacing on each side, endpoints a single half-spacing), correct on both the center-aligned and the half-step edge-aligned grids and on non-uniform grids. The trapezoidal integral conserves down to the Tsit5 time-integration error, not the spatial quadrature error: measured max|∫u dx| over the trajectory is ~4e-13 (center) / ~6e-10 (edge) at the default Tsit5 tolerances, and both fall to ~1e-15 when the solver tolerance is tightened to 1e-12 — confirming the residual is bounded by the time integrator, not a real conservation defect. The assertion is therefore restored to a strict atol=1e-9 (1000x tighter than #566's 1e-6, with headroom above the measured 6e-10 edge residual) and now compares against the initial integral so it works regardless of the analytic value. Verified locally with `GROUP=Diffusion`: 289/289 pass, both grid alignments. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
…vation-quadrature Trapezoidal conservation metric for 1D diffusion (restores strict tol, supersedes #566 loosening)
Re-enables the previously-disabled (`if: false`) Downgrade workflow and raises the `[compat]` lower bounds to the lowest versions that actually resolve with the current co-evolving SciML stack on Julia 1.10: - DiffEqBase: 6, 7 -> 7.3 - Latexify: 0.15, 0.16 -> 0.16 - ModelingToolkit: 11 -> 11.26.8 - OrdinaryDiffEq: 6, 7 -> 7 - PrecompileTools: 1 -> 1.2.1 - SciMLBase: 2, 3 -> 3.1 - StaticArrays: 1 -> 1.9.18 - SymbolicIndexingInterface: 0.3.40 -> 0.3.44 - SymbolicUtils: 4 -> 4.34.3 - Symbolics: 7 -> 7.26 The old `2.x`/`6.x`/`11.0` floors were unsatisfiable against the latest transitive ecosystem (PDEBase 0.1.25, MTK 11.26, Symbolics 7.26). Each new floor is the minimum that resolves under exact `=floor` pinning (verified by bisection). julia = "1.10" is kept (LTS policy). Sets `allow-reresolve: true` in Downgrade.yml so Pkg picks a consistent transitive set while still honoring the floor `[compat]` pins. Downgrade suite run locally at these floors (deps-mode `=floor` pin, GROUP="" as the downgrade workflow sets, Julia 1.10, allow_reresolve=true): PASS (build + resolve + load smoke test). Components and Sol_Interface test groups also run and PASS at these floors. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sets `allow-reresolve: false` in Downgrade.yml (the strict SciML default), replacing the prior `true`. Under strict mode, julia-downgrade-compat pins the direct `[deps]` `[compat]` to their floors and lets transitive deps float to LATEST, and Pkg.test must instantiate that exact set with NO reconciliation. This is the rigorous downgrade: it forces the declared `[deps]` floors to be genuinely compatible with the latest transitive ecosystem. No `[compat]` floor changes were needed: the floors already on this branch (SciMLBase 3.1, DiffEqBase 7.3, ModelingToolkit 11.26.8, OrdinaryDiffEq 7, Symbolics 7.26, SymbolicUtils 4.34.3, SymbolicIndexingInterface 0.3.44, PrecompileTools 1.2.1, StaticArrays 1.9.18, Latexify 0.16) are strict-consistent. Verified locally on Julia 1.10 with an isolated depot, deps-mode `=floor` pin of only `[deps]` (transitive floated to latest: NonlinearSolveBase 2.30.3, RecursiveArrayTools 4.3.1, ADTypes 1.22, ForwardDiff 1.3.3), then `Pkg.test(; allow_reresolve=false)`: - Strict resolution of the full test environment succeeds with no reconciliation. - GROUP=Components: "Testing MethodOfLines tests passed" (Utils 38 pass/4 broken, Discretization 8, Variable PDE mapping 9, Fornberg 9, ODEFunction, Staggered 3, Discrete Callbacks 1). - GROUP=All additionally passed the heavy Complex/schroedinger group (102/102) before reaching the Brusselator group (which is disabled in regular CI for multi-hour stalls and is not exercised by the downgrade job, GROUP=""). Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Re-enable downgrade CI with resolvable lower bounds
…erge, docs-preview-cleanup) (#569) Co-authored-by: ChrisRackauckas-Claude <accounts@chrisrackauckas.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The reusable SciML/.github downgrade workflows now always use allow_reresolve: false and no longer accept an allow-reresolve input (see SciML/.github#71). Remove the now-invalid input so this caller keeps working once @v1 is retagged. Co-authored-by: Chris Rackauckas <accounts@chrisrackauckas.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…571) Replace inlined JuliaRegistries/TagBot with the canonical SciML thin caller (tagbot.yml@v1). Drop the redundant skip: "Pkg,TOML" downgrade input (stdlibs are auto-populated by the central workflow) and set the downgrade julia-version floor to lts. Co-authored-by: ChrisRackauckas-Claude <accounts@chrisrackauckas.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* Canonical CI: grouped-tests.yml + root test/test_groups.toml Convert the root Tests.yml from a hand-maintained group x version matrix into a thin caller of SciML/.github grouped-tests.yml@v1, with the matrix declared once in test/test_groups.toml. - Tests.yml: replace the matrix test job with the reusable grouped-tests.yml@v1 caller (secrets: inherit). on:/concurrency: preserved verbatim. All other workflows untouched. - test/test_groups.toml: declares the 18 existing groups on [lts, 1, pre], reproducing the previous matrix exactly, plus a new QA group on [lts, 1]. - QA wiring (new, Category C): runtests.jl gains a GROUP == "QA" branch that includes test/qa/qa.jl; isolated test/qa/Project.toml carries Aqua + JET + Test and resolves MethodOfLines via [sources]; qa.jl runs Aqua.test_all and JET.test_package(target_defined_modules=true). - Project.toml benign metadata fixes: julia compat already 1.10 (LTS floor); add missing [compat] entries for every [extras] dep (NonlinearSolve, the OrdinaryDiffEq sublibraries, Pkg, StableRNGs, Test). Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Add Pkg to test/qa env [deps] for QA group The QA sub-environment (test/qa) is activated by the grouped-tests QA dispatch, and the QA harness uses Pkg (Pkg.activate/Pkg.instantiate); declare Pkg in test/qa [deps] so it resolves under the isolated QA env. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * QA: mark genuine Aqua/JET findings @test_broken so QA group is green Aqua.test_all and JET.test_package surface real findings on this stack. Keep the passing Aqua sub-checks (unbound_args, project_extras, persistent_tasks) running and mark each failing check @test_broken so the QA CI group passes; tracked at #574. Aqua: ambiguities (48), undefined_exports (grid_align), stale_deps (OrdinaryDiffEq), deps_compat (LinearAlgebra missing compat), piracies (PDEBase boundary call ops). JET: 10 possible errors. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: ChrisRackauckas-Claude <accounts@chrisrackauckas.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…eme) (#562) * test: add comprehensive non-uniform grid tests for UpwindScheme * Add test verifying Periodic BC throws AssertionError on non-uniform Upwind * test: resolve OrdinaryDiffEq v7 imports, anchor nonuniform grids, and add to CI matrix
Formatting-only changes produced by running Runic (v1.7.0, matching CI's runic-action@v1 / SciML runic.yml@v1 with default settings) over all git-tracked .jl files. No semantic/code changes. Co-authored-by: Chris Rackauckas (Claude) <accounts@chrisrackauckas.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Restructure test/ into per-group folders (folder name == test_groups.toml group key) and replace the hand-written GROUP dispatch ladder in test/runtests.jl with a single SciMLTesting.run_tests call. Because this repo has no Core group and its "All" runs three groups (Brusselator, Nonlinlap_ADV, MOL_Interface2) that are dispatched but not declared in test_groups.toml, the bare folder-discovery form cannot express the layout (it mandates a non-empty Core and derives "All" purely from test_groups.toml). The conversion therefore uses the v1.2 explicit-args form over the new folder layout, with a no-op core (master had no Core branch, so GROUP=Core runs nothing) and a curated `all` listing exactly the 22 functional groups master's "All" runs (QA excluded, as on master). Every other GROUP value maps to the single @safetestset-included file(s) it ran before. Files never referenced by the dispatcher (finite_diff_schemes.jl, function_scheme.jl, brusselator_codegen.jl, MOL_1D_Interface_Nonlinear.jl) move to test/shared/ so they are not auto-discovered and never run (matching master, where they were dead). Add SciMLTesting to the root test deps + compat and to test/qa/Project.toml (plus SafeTestsets there); drop Pkg from the root test deps + compat (no root-level test file uses Pkg; the v1.2 harness owns all Pkg operations). test/qa/qa.jl and test/test_groups.toml are unchanged. Co-authored-by: ChrisRackauckas-Claude <accounts@chrisrackauckas.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…vation (#577) The QA group on master errors with `ArgumentError: Package Pkg not found in current path` at test/qa/qa.jl:1. SciMLTesting v1.2 runs the qa body inside a `@safetestset` (a fresh module evaluated in the root test environment). The qa.jl carried the legacy self-activation preamble `using Pkg; Pkg.activate(@__DIR__); Pkg.instantiate()`, but `Pkg` is not a dependency of the root test target, so `using Pkg` fails before activation can run. Under the SciMLTesting v1.2 folder model, env activation for a group is the harness's job: pass `qa = (; env = ".../qa", body = ".../qa.jl")` so `run_tests` calls `activate_group_env` (Pkg.activate + Pkg.develop the package + Pkg.instantiate) before evaluating the body, and drop the manual preamble from qa.jl — matching the convention in Integrals.jl/HighDimPDE.jl. Verified locally on Julia 1.12 with `GROUP=QA Pkg.test(...)`: QA | Pass 3 Broken 6 Total 9 — Testing MethodOfLines tests passed. Co-authored-by: ChrisRackauckas-Claude <accounts@chrisrackauckas.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* feat: implement zero-overhead dispatch architecture for non-uniform grids * feat(weno): implement zero-allocation dx-based dispatch architecture for non-uniform grids
* feat: implement direct derivative non-uniform WENO-5 core with exactness and allocation tests * Fix 16-byte allocation on Julia LTS for non-uniform WENO * test: fix allocation artifacts and apply strict Runic formatting to WENO core * test: introduce specialized function barrier to strictly measure zero-allocation on LTS * docs: streamline comments and enforce strict literature citations in WENO core * Move weno_nonuniform include to top-level MethodOfLines.jl * fix: update dispatch test * fix: remove include for now * fix: top-level include sequence for nonuniform weno passing local CI
* QA: run_qa v1.6 form + ExplicitImports Convert the hand-rolled test/qa/qa.jl (manual Aqua sub-checks + JET @test_broken markers) to the SciMLTesting 1.6 run_qa form with ExplicitImports enabled. - run_qa(MethodOfLines; explicit_imports = true, ...) replaces the manual Aqua.test_* / JET @test_broken body. - Aqua: the five genuine findings from #574 (ambiguities, undefined_exports, stale_deps, deps_compat, piracies) are preserved as aqua_broken; the passing sub-checks run via Aqua.test_all. - JET: the 10 errors previously tracked in #574 no longer reproduce on the current ModelingToolkit 11 / SciMLBase 3 stack (report_package returns no reports), so JET.test_package now runs as a hard check (un-broken). - ExplicitImports: - no_stale_explicit_imports: FIXED by removing 9 genuinely-unused explicit imports (variable, parameters, varmap_to_vars, setname, rename, cardinalize_eqs!, make_pdesys_compatible, parse_bcs, generate_system). - no_implicit_imports: ~80 names reach the module via heavy `using <BigDep>`; making them explicit is a large risky refactor, kept ei_broken pending #574. - the owners / public checks pass with per-check ignore-lists for other packages' non-public / re-exported names (PDEBase, Symbolics, ModelingToolkit(Base), SciMLBase, IfElse, RuntimeGeneratedFunctions, Base). test/qa/Project.toml: SciMLTesting compat -> "1.6"; drop Aqua/SafeTestsets/Pkg (Aqua/ExplicitImports come transitively via SciMLTesting, and the ambiguities sub-check that needs Aqua as a direct dep is disabled here). Verified locally on Julia 1.10 against released SciMLTesting 1.6.0: QA group 9 Pass, 6 Broken, 0 Fail, 0 Error. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * QA: keep JET broken on Julia 1.11/1.12 (jet_broken = true) The v1.6 conversion un-broke JET on the basis that report_package returned no reports, but that was observed on Julia 1.10. On the CI `julia 1` lane (1.11/1.12) JET still finds the same possible errors tracked in #574: DiscreteSpace getproperty `.time`/`.ps` FieldErrors reached via ivs/params, `MethodOfLines.otherderivmaps` not defined, and a possibly-undefined `f_analytic` in MOL_discretization.jl. Restore jet_broken = true so the check is report-only (it auto-flags an Unexpected Pass once JET is clean), matching the original test/qa/qa.jl `@test_broken` for JET. Verified locally on Julia 1.12 against released SciMLTesting 1.6.0 (JET 0.11.5, ModelingToolkit 11.28, SciMLBase 3.22): QA group 8 Pass, 7 Broken, 0 Fail, 0 Error (was 8 Pass, 1 Fail, 6 Broken). Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * QA: trim public-API EI ignores to minimal set (SciMLTesting 1.7 + released base libs) SciMLTesting 1.7.0 now runs check_all_qualified_accesses_are_public / check_all_explicit_imports_are_public only on Julia >= 1.11 (skipped on lts), and the base libs have made many former internals public (SciMLBase 3.24.0, Symbolics 7.29.0, SymbolicUtils 4.36.0, ModelingToolkit 11.29.0, ArrayInterface 7.26.0, CommonSolve 0.2.9). The two public-API ignore-lists in the QA call are therefore largely redundant. Removed 11 now-public entries (verified on Julia 1.12 against the registered releases; the names below are no longer flagged): all_explicit_imports_are_public: unwrap (Symbolics); get_bcs/get_dvs/get_eqs/get_ivs/get_unknowns (ModelingToolkit, now handled via_owners) all_qualified_accesses_are_public: @propagate_inbounds, OneTo (Base); init (RuntimeGeneratedFunctions); unwrap, variable (Symbolics) Kept only the names the public checks still flag as non-public on Julia 1.12: PDEBase internals (not yet made public), SciMLBase AbstractDiscretizationMetadata/AbstractODESolution/AbstractPDESolution/PDESolution/observed, Base AbstractCartesianIndex, ModelingToolkit ProblemTypeCtx, IfElse ifelse, Symbolics diff2term. via_owners ignores, aqua_broken, jet_broken, and ei_broken (no_implicit_imports) are unchanged. Verified: Julia 1.12 QA group = 8 pass / 7 broken / 0 error; Julia 1.10 (lts) unchanged by this edit (the two public-API checks are skipped there by SciMLTesting 1.7). Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * QA: verify public-API EI ignores against released libs; fix QA(lts) JET Verified the public-API ExplicitImports ignore-lists against the now-released SciMLBase 3.27.0 / DiffEqBase 7.6.0 / SciMLTesting 1.7.0 / Symbolics 7.29.0 / SymbolicUtils 4.36.0 / ModelingToolkit 11.29.0 / PDEBase 0.1.26 (Julia 1.12, no dev). Every name still flagged by the public checks is genuinely non-public in its owner package (confirmed via Base.ispublic and the EI checks run with the lists emptied): SciMLBase AbstractDiscretizationMetadata/AbstractODESolution/ AbstractPDESolution/PDESolution/observed are NOT among the 3.27.0 made-public names, so they stay; likewise the PDEBase internals, IfElse.ifelse, Symbolics.diff2term, ModelingToolkit.ProblemTypeCtx, Base.AbstractCartesianIndex. No DiffEqBase.X -> SciMLBase.X caller migration applies (the source uses whole-module `using` and `SciMLBase.X` qualified accesses already; no DiffEqBase-qualified SciMLBase-owned names exist). The two *_are_public lists are therefore already at their minimal/correct state. Bump test/qa SciMLTesting floor 1.6 -> 1.7 to guarantee the >=1.11 public-API gating (1.6 lacks it; resolving it on the LTS lane would run the public checks on 1.10 and fail). Gate jet_broken to VERSION >= v"1.11": JET (0.9.18) is clean on the LTS (1.10) lane, so `jet_broken = true` produced an Unexpected Pass hard error on QA(lts); JET still reports on 1.11/1.12 where it stays broken. JET now runs as a real passing test on 1.10. Not a silencing: it un-broken-marks JET where it is clean. Verified: QA group EXIT=0 on Julia 1.12 (8 pass, 7 broken, public checks RUN) and Julia 1.10 (7 pass, 6 broken, public checks gated off), 0 hard FAIL on both. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Chris Rackauckas <accounts@chrisrackauckas.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* test: trigger CI on clean master to verify upstream breakage * feat: implement direct derivative non-uniform WENO-5 core with exactness and allocation tests * Move weno_nonuniform include to top-level MethodOfLines.jl * fix: remove include for now * fix: top-level include sequence for nonuniform weno passing local CI * feat(WENO): implement asymmetric boundary conditions via Val dispatch * test(WENO): add extreme grid stretching * docs(WENO): update docstrings and condense comments * refactor(WENO): optimize asymmetric boundary weights to factored closed-forms for numerical stability and performance
…578) Signed-off-by: Sai Asish Y <say.apm35@gmail.com>
* test: trigger CI on clean master to verify upstream breakage * feat: implement direct derivative non-uniform WENO-5 core with exactness and allocation tests * Move weno_nonuniform include to top-level MethodOfLines.jl * fix: remove include for now * fix: top-level include sequence for nonuniform weno passing local CI * feat(WENO): integrate non-uniform grids * fix: address architectural edge cases and missing runtime test * test: implement genuine discretizer execution coverage and finalize PR polish * test: integration tests to extent dispatch and callable wiring
…ompatibility (#584) * fix(discretization): fold symbolic initial conditions to satisfy strict MTK v1.45 API * Refactor initial condition handling in generate_ic_defaults Refactor the handling of initial conditions to ensure proper folding of symbolic expressions.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.