From 53bdcdd71b64b2320987b0adcd3012bc6cf9e212 Mon Sep 17 00:00:00 2001 From: ChrisRackauckas Date: Wed, 23 Jul 2025 23:11:32 -0400 Subject: [PATCH] Fix typos and syntax errors in documentation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fix typo: "SpraseMatrixCSC" → "SparseMatrixCSC" in advanced_ode_example.md - Fix grammar: "numerical handle" → "numerically handle" in faq.md - Fix syntax: Add missing multiplication operator in callback_functions.md (10integrator.t → 10 * integrator.t) These are simple documentation fixes that improve readability and correctness. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- docs/src/basics/faq.md | 2 +- docs/src/features/callback_functions.md | 2 +- docs/src/tutorials/advanced_ode_example.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/src/basics/faq.md b/docs/src/basics/faq.md index 243c03282..4493d057c 100644 --- a/docs/src/basics/faq.md +++ b/docs/src/basics/faq.md @@ -179,7 +179,7 @@ for automatically transforming your equations. ### I'm trying to solve DAEs but my solver is unstable and/or slow, what's wrong with IDA and DFBDF? -Fully implicit DAEs ``f(du,u,p,t) = 0`` are extremely difficult to numerical handle for many reasons. +Fully implicit DAEs ``f(du,u,p,t) = 0`` are extremely difficult to numerically handle for many reasons. The linearly implicit form ``Mu'=f(u)`` where ``M`` is a singular mass matrix is much simpler numerically and thus results in much better performance. This is seen in many instances with the SciMLBenchmarks. Thus it is recommended that in almost all or most situations, one should use the diff --git a/docs/src/features/callback_functions.md b/docs/src/features/callback_functions.md index e9b5d104c..037ed54ac 100644 --- a/docs/src/features/callback_functions.md +++ b/docs/src/features/callback_functions.md @@ -137,7 +137,7 @@ of just `10`. This model is implemented as simply: ```@example callback1 dosetimes = [4.0, 6.0, 8.0] condition(u, t, integrator) = t ∈ dosetimes && (u[1] < 1.0) -affect!(integrator) = integrator.u[1] += 10integrator.t +affect!(integrator) = integrator.u[1] += 10 * integrator.t cb = DE.DiscreteCallback(condition, affect!) sol = DE.solve(prob, DE.Tsit5(), callback = cb, tstops = dosetimes) Plots.plot(sol) diff --git a/docs/src/tutorials/advanced_ode_example.md b/docs/src/tutorials/advanced_ode_example.md index 03fcf21cf..9c9fe8841 100644 --- a/docs/src/tutorials/advanced_ode_example.md +++ b/docs/src/tutorials/advanced_ode_example.md @@ -258,7 +258,7 @@ by default). Then `newW = true` whenever a new `W` matrix is computed, and `newW === nothing || newW` and when true, it's only at these points when we update the preconditioner, otherwise we just pass on the previous version. We use `convert(AbstractMatrix,W)` to get the concrete `W` matrix (matching -`jac_prototype`, thus `SpraseMatrixCSC`) which we can use in the preconditioner's +`jac_prototype`, thus `SparseMatrixCSC`) which we can use in the preconditioner's definition. Then we use `IncompleteLU.ilu` on that sparse matrix to generate the preconditioner. We return `Pl,nothing` to say that our preconditioner is a left preconditioner, and that there is no right preconditioning.