Skip to content

Commit 4dccf9c

Browse files
committed
[skip ci] LanguageTool 3
1 parent ed0540d commit 4dccf9c

15 files changed

+167
-164
lines changed

docs/src/basics/compatibility_chart.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
This chart is for documenting the compatibility of the component solver packages
44
to the common interface. An `x` means that the option is implemented or the
55
add-on functionality will work with the given solver. A blank means that
6-
the option has not been implemented or that a given add-on has not been tested
6+
the option has not been implemented, or that a given add-on has not been tested
77
with a given package. If there are any errors in this chart, please file an
88
issue or submit a pull-request.
99

@@ -46,8 +46,8 @@ issue or submit a pull-request.
4646
| Plotting and solution handling | x | x | x | x | x | x | x | x | x
4747

4848
* x: Full compatibility
49-
* p: Partial compatibility, only in nonstiff methods unless the Jacobian is provided.
50-
* n: General compatibility, but not compatible with routines which.
49+
* p: Partial compatibility, only in nonstiff methods, unless the Jacobian is provided.
50+
* n: General compatibility, but not compatible with routines which
5151
require being able to autodifferentiate through the entire solver.
5252
* 0: Not possible. This is generally due to underlying inflexibility in a wrapped
5353
library.

docs/src/basics/faq.md

Lines changed: 59 additions & 56 deletions
Large diffs are not rendered by default.

docs/src/basics/integrator.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@ which will take one successful step. Additionally:
2727
step!(integrator,dt[,stop_at_tdt=false])
2828
```
2929

30-
passing a `dt` will make the integrator keep stepping until `integrator.t+dt`, and
30+
passing a `dt` will make the integrator continue to step until `integrator.t+dt`, and
3131
setting `stop_at_tdt=true` will add a `tstop` to force it to step to `integrator.t+dt`
3232

33-
To check whether or not the integration step was successful, you can
33+
To check whether the integration step was successful, you can
3434
call `check_error(integrator)` which returns one of the
3535
[return codes](@ref retcodes).
3636

@@ -74,10 +74,10 @@ for (u,t) in TimeChoiceIterator(integrator,ts)
7474
end
7575
```
7676

77-
Lastly, one can dynamically control the "endpoint". The initialization simply makes
77+
Lastly, one can dynamically control the endpoint. The initialization simply makes
7878
`prob.tspan[2]` the last value of `tstop`, and many of the iterators are made to stop
7979
at the final `tstop` value. However, `step!` will always take a step, and one
80-
can dynamically add new values of `tstops` by modifiying the variable in the
80+
can dynamically add new values of `tstops` by modifying the variable in the
8181
options field: `add_tstop!(integrator,new_t)`.
8282

8383
Finally, to solve to the last `tstop`, call `solve!(integrator)`. Doing `init`
@@ -91,7 +91,7 @@ SciMLBase.check_error!
9191

9292
## Handing Integrators
9393

94-
The `integrator<:DEIntegrator` type holds all of the information for the intermediate solution
94+
The `integrator<:DEIntegrator` type holds all the information for the intermediate solution
9595
of the differential equation. Useful fields are:
9696

9797
* `t` - time of the proposed step
@@ -111,7 +111,7 @@ specific problem. For example, when solving an `ODEProblem`, `f` will be an
111111
creating the `ODEProblem`, please use `SciMLBase.unwrapped_f(integrator.f.f)`.
112112

113113
The `p` is the (parameter) data which is provided by the user as a keyword arg in
114-
`init`. `opts` holds all of the common solver options, and can be mutated to
114+
`init`. `opts` holds all the common solver options, and can be mutated to
115115
change the solver characteristics. For example, to modify the absolute tolerance
116116
for the future timesteps, one can do:
117117

@@ -121,8 +121,8 @@ integrator.opts.abstol = 1e-9
121121

122122
The `sol` field holds the current solution. This current solution includes the
123123
interpolation function if available, and thus `integrator.sol(t)` lets one
124-
interpolate efficiently over the whole current solution. Additionally, a
125-
a "current interval interpolation function" is provided on the `integrator` type
124+
interpolate efficiently over the whole current solution. Additionally,
125+
a current interval interpolation function is provided on the `integrator` type
126126
via `integrator(t,deriv::Type=Val{0};idxs=nothing,continuity=:left)`.
127127
This uses only the solver information from the interval
128128
`[tprev,t]` to compute the interpolation, and is allowed to extrapolate beyond
@@ -132,7 +132,7 @@ that interval.
132132

133133
Be cautious: one should not directly mutate the `t` and `u` fields of the integrator.
134134
Doing so will destroy the accuracy of the interpolator and can harm certain algorithms.
135-
Instead if one wants to introduce discontinuous changes, one should use the
135+
Instead, if one wants to introduce discontinuous changes, one should use the
136136
[callbacks](@ref callbacks). Modifications within a callback
137137
`affect!` surrounded by saves provides an error-free handling of the discontinuity.
138138

@@ -152,20 +152,20 @@ SciMLBase.set_ut!
152152
The integrator and the solution have very different actions because they have
153153
very different meanings. The `typeof(sol) <: DESolution` type is a type with
154154
history: it stores
155-
all of the (requested) timepoints and interpolates/acts using the values closest
155+
all the (requested) timepoints and interpolates/acts using the values closest
156156
in time. On the other hand, the `typeof(integrator)<:DEIntegrator` type is a
157157
local object. It only knows the times of the interval it currently spans,
158158
the current caches and values, and the current state of the solver
159159
(the current options, tolerances, etc.). These serve very different purposes:
160160

161-
* The `integrator`'s interpolation can extrapolate, both forward and backward in
161+
* The `integrator`'s interpolation can extrapolate, both forward and backward
162162
in time. This is used to estimate events and is internally used for predictions.
163163
* The `integrator` is fully mutable upon iteration. This means that every time
164164
an iterator affect is used, it will take timesteps from the current time. This
165165
means that `first(integrator)!=first(integrator)` since the `integrator` will
166166
step once to evaluate the left and then step once more (not backtracking).
167167
This allows the iterator to keep dynamically stepping, though one should note
168-
that it may violate some immutablity assumptions commonly made about iterators.
168+
that it may violate some immutability assumptions commonly made about iterators.
169169

170170
If one wants the solution object, then one can find it in `integrator.sol`.
171171

@@ -231,7 +231,7 @@ get_du!
231231

232232
!!! warning
233233

234-
Note that not all of these functions will be implemented for every algorithm.
234+
Note that not all these functions will be implemented for every algorithm.
235235
Some have hard limitations. For example, Sundials.jl cannot resize problems.
236236
When a function is not limited, an error will be thrown.
237237

@@ -254,7 +254,7 @@ end
254254
```
255255

256256
which will only enter the loop body at the values in `tstops` (here, `prob.tspan[2]==1.0`
257-
and thus there are two values of `tstops` which are hit). Addtionally, one can
257+
and thus there are two values of `tstops` which are hit). Additionally, one can
258258
`solve!` only to `0.5` via:
259259

260260
```julia

docs/src/basics/overview.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ will solve using `Rational{BigInt}` for the timesteps and `BigFloat` for the
3232
independent variables. A wide variety of number types are compatible with the
3333
solvers such as complex numbers, unitful numbers (via Unitful.jl),
3434
decimals (via DecFP), dual numbers, and many more which may not have been tested
35-
yet (thanks to the power of multiple dispatch!). For information on type-compatibilty,
35+
yet (thanks to the power of multiple dispatch!). For information on type-compatibility,
3636
please see the solver pages for the specific problems.
3737

3838
## Solving the Problems
@@ -48,12 +48,12 @@ Into the command, one passes the differential equation problem that they defined
4848
`prob`, optionally choose an algorithm `alg` (a default is given if not
4949
chosen), and change the properties of the solver using keyword arguments. The common
5050
arguments which are accepted by most methods is defined in [the common solver options manual page](@ref solver_options).
51-
The solver returns a solution object `sol` which hold all of the details for the solution.
51+
The solver returns a solution object `sol` which hold all the details for the solution.
5252

5353
## Analyzing the Solution
5454

5555
With the solution object, you do the analysis as you please! The solution type
56-
has a common interface which makes handling the solution similar between the
56+
has a common interface, which makes handling the solution similar between the
5757
different types of differential equations. Tools such as interpolations
5858
are seamlessly built into the solution interface to make analysis easy. This
5959
interface is described in the [solution handling manual page](@ref solution).
@@ -62,14 +62,14 @@ Plotting functionality is provided by a recipe to Plots.jl. To
6262
use plot solutions, simply call the `plot(sol)` and the plotter will generate
6363
appropriate plots. If `save_everystep` was used, the plotters can
6464
generate animations of the solutions to evolution equations using the `animate(sol)`
65-
command. Plots can be customized using all of the keyword arguments
65+
command. Plots can be customized using all the keyword arguments
6666
provided by Plots.jl. Please see Plots.jl's documentation for more information.
6767

6868
## Add-on Tools
6969

7070
One of the most compelling features of DifferentialEquations.jl is that the
71-
common solver interface allows one to build tools which are "algorithm and
72-
problem agnostic". For example, one of the provided tools allows for performing
71+
common solver interface allows one to build tools which are algorithm and
72+
problem agnostic. For example, one of the provided tools allows for performing
7373
parameter estimation on `ODEProblem`s. Since the `solve` interface is the
7474
same for the different algorithms, one can use any of the associated solving algorithms.
7575
This modular structure allows one to mix and match overarching analysis tools
@@ -90,6 +90,6 @@ which are unique and the results of recent publications! Please check out the
9090
for more information on using the development tools.
9191

9292
Note that DifferentialEquations.jl allows for distributed development, meaning that
93-
algorithms which "plug-into ecosystem" don't have to be a part of the major packages.
93+
algorithms which plug-into the ecosystem don't have to be a part of the major packages.
9494
If you are interested in adding your work to the ecosystem, checkout the [developer documentation](https://devdocs.sciml.ai/dev/)
9595
for more information.

docs/src/basics/plot.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ plot(sol) # Plots the solution
1515
Many of the types defined in the DiffEq universe, such as
1616
`ODESolution`, `ConvergenceSimulation` `WorkPrecision`, etc. have plot recipes
1717
to handle the default plotting behavior. Plots can be customized using
18-
[all of the keyword arguments provided by Plots.jl](http://docs.juliaplots.org/dev/supported/).
18+
[all the keyword arguments provided by Plots.jl](http://docs.juliaplots.org/dev/supported/).
1919
For example, we can change the plotting backend to the GR package and put a title
2020
on the plot by doing:
2121

@@ -40,7 +40,7 @@ of evenly-spaced points (in time) to plot. For example:
4040
plot(sol,denseplot=false)
4141
```
4242

43-
means "only plot the points which the solver stepped to", while:
43+
means only plot the points which the solver stepped to, while:
4444

4545
```julia
4646
plot(sol,plotdensity=1000)
@@ -67,9 +67,9 @@ and return a tuple. If no function is given, for example,
6767
idxs = [(0,1), (1,3), (4,5)]
6868
```
6969

70-
this would mean "plot `var₁(t)` vs `t` (*time*), `var₃(var₁)` vs `var₁`, and
70+
this would mean plot `var₁(t)` vs `t` (*time*), `var₃(var₁)` vs `var₁`, and
7171
`var₅(var₄)` vs `var₄` all on the same graph, putting the independent variables
72-
(`t`, `var₁` and `var₄`) on the x-axis." While this can be used for everything,
72+
(`t`, `var₁` and `var₄`) on the x-axis. While this can be used for everything,
7373
the following conveniences are provided:
7474

7575
* Everywhere in a tuple position where we only find an integer, this
@@ -140,7 +140,7 @@ plot(sol,tspan=(0.0,40.0))
140140
```
141141

142142
only plots between `t=0.0` and `t=40.0`. If `denseplot=true` these bounds will be respected
143-
exactly. Otherwise the first point inside and last point inside the interval will be plotted,
143+
exactly. Otherwise, the first point inside and last point inside the interval will be plotted,
144144
i.e. no points outside the interval will be plotted.
145145

146146
### Example
@@ -218,7 +218,7 @@ Phase plots can be done similarly, for example:
218218
plot(sol[i,:],sol[j,:],sol[k,:])
219219
```
220220

221-
is a 3d phase plot between variables `i`, `j`, and `k`.
221+
is a 3D phase plot between variables `i`, `j`, and `k`.
222222

223223
Notice that this does not use the interpolation. When not using the plot recipe,
224224
the interpolation must be done manually. For example:

docs/src/basics/problem.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ For example, this can be done at the problem level like:
2222
ODEProblem{true}(f,u0,tspan,p)
2323
```
2424

25-
which declares that `isinplace=true`. Similarly this can be done at the
25+
which declares that `isinplace=true`. Similarly, this can be done at the
2626
DEFunction level. For example:
2727

2828
```julia
@@ -35,7 +35,7 @@ Throughout DifferentialEquations.jl, the types that are given in a problem are
3535
the types used for the solution. If an initial value `u0` is needed for a problem,
3636
then the state variable `u` will match the type of that `u0`. Similarly, if
3737
time exists in a problem the type for `t` will be derived from the types of the
38-
`tspan`. Parameters `p` can be any type and the type will be matching how it's
38+
`tspan`. Parameters `p` can be any type, and the type will be matching how it's
3939
defined in the problem.
4040

4141
For internal matrices, such as Jacobians and Brownian caches, these also match

docs/src/basics/solution.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## Accessing the Values
44

5-
The solution type has a lot of built in functionality to help analysis. For example,
5+
The solution type has a lot of built-in functionality to help analysis. For example,
66
it has an array interface for accessing the values. Internally, the solution type
77
has two important fields:
88

@@ -27,7 +27,7 @@ to access the value at timestep `j` (if the timeseries was saved), and
2727
sol.t[j]
2828
```
2929

30-
to access the value of `t` at timestep `j`. For multi-dimensional systems, this
30+
to access the value of `t` at timestep `j`. For multidimensional systems, this
3131
will address first by component and lastly by time, and thus
3232

3333
```julia
@@ -93,7 +93,7 @@ Note that the interpolating function allows for `t` to be a vector and uses this
9393
sol(t,deriv=Val{0};idxs=nothing,continuity=:left)
9494
```
9595

96-
The optional argument `deriv` lets you choose the number `n` derivative to solve the interpolation for, defaulting with `n=0`. Note that most of the derivatives have not yet been implemented (though it's not hard, it just has to be done by hand for each algorithm. Open an issue if there's a specific one you need). `continuity` describes whether to satisfy left or right continuity when a discontinuity is saved. The default is `:left`, i.e. grab the value before the callback's change, but can be changed to `:right`. `idxs` allows you to choose the indices the interpolation should solve for. For example,
96+
The optional argument `deriv` lets you choose the number `n` derivative to solve the interpolation for, defaulting with `n=0`. Note that most of the derivatives have not yet been implemented (though it's not hard, it just has to be done manually for each algorithm. Open an issue if there's a specific one you need). `continuity` describes whether to satisfy left or right continuity when a discontinuity is saved. The default is `:left`, i.e. grab the value before the callback's change, but can be changed to `:right`. `idxs` allows you to choose the indices the interpolation should solve for. For example,
9797

9898
```julia
9999
sol(t,idxs=1:2:5)
@@ -142,7 +142,7 @@ The solution interface also includes some special fields. The problem object
142142
`prob` and the algorithm used to solve the problem `alg` are included in the
143143
solution. Additionally, the field `dense` is a boolean which states whether
144144
the interpolation functionality is available. Further, the field `destats`
145-
contains the internal statistics for the solution process such as the number
145+
contains the internal statistics for the solution process, such as the number
146146
of linear solves and convergence failures. Lastly, there is a mutable state
147147
`tslocation` which controls the plot recipe behavior. By default, `tslocation=0`.
148148
Its values have different meanings between partial and ordinary differential equations:

0 commit comments

Comments
 (0)