Reexported API
Not every name that using SciMLBase puts in scope is defined by SciMLBase. This page lists the ones that are not, so it is always clear which package actually owns a name and where its reference documentation lives.
SciMLOperators
using SciMLBase also brings in the SciMLOperators.jl operator interface, so the operator-valued arguments of the SciML interface can be built without importing SciMLOperators separately. Those arguments are documented throughout these pages: a jac_prototype may be an AbstractSciMLOperator, in which case the Jacobian update goes through update_coefficients!/update_coefficients (see SciMLFunctions); the linear half of a SplitFunction or SplitODEProblem, and the function of an IncrementingODEProblem, are operators; and a lazy matrix supplied as a SciML matrix type is expected to conform to the SciMLOperators interface rather than imitate a dense array.
These names are owned and documented by SciMLOperators, not by SciMLBase. SciMLBase only re-exports them; the reference documentation for each is upstream, under Premade Operators and The SciMLOperators Interface.
Module binding
SciMLOperators— the module itself, so anything it owns can be reached qualified asSciMLOperators.namewithout importing SciMLOperators separately.
Operator types
- Trivial operators:
IdentityOperator,NullOperator - Matrix-backed operators:
MatrixOperator,DiagonalOperator,AffineOperator,AddVector - Scalar operators:
ScalarOperator - Matrix-free operators:
FunctionOperator - Structured and lazy compositions:
BlockDiagonalOperator,TensorProductOperator,TensorSumOperator,InvertibleOperator
Operator interface and traits
- Updating state- and parameter-dependent coefficients:
update_coefficients,update_coefficients! - Caching and materialization:
cache_operator,iscached,concretize,isconvertible,has_concretization - Structural traits:
isconstant,islinear,issquare - Supported-operation traits:
has_adjoint,has_mul,has_mul!,has_ldiv,has_ldiv!,has_exp,has_expmv,has_expmv! - Lazy algebra helpers:
kronsum
Boundary
Anything else from SciMLOperators must be imported from SciMLOperators directly. Two cases are worth calling out, because they are deliberate and would otherwise read as omissions:
AbstractSciMLOperator— the abstract type these pages refer to — and the other abstract types and lazy-algebra result types (AbstractSciMLScalarOperator,ScaledOperator,AddedOperator,ComposedOperator, ...) are declared public but deliberately not exported by SciMLOperators. They are therefore not exported here either, and are used qualified:SciMLOperators.AbstractSciMLOperator, which the re-exportedSciMLOperatorsbinding above makes reachable fromusing SciMLBase.WOperator,StaticWOperator,jacobian_stale,mark_jacobian_updated!andmark_jacobian_current!are the stiff-solverW = M - γJmachinery. They are constructed by solver packages such as OrdinaryDiffEq and consumed by LinearSolve, both of which depend on SciMLOperators directly, and are not part of the interface ausing SciMLBaseuser writes against.
CommonSolve
The solve verbs solve, solve!, init and step! are owned by CommonSolve.jl. SciMLBase defines the SciML methods on them and re-exports them, since they are the SciML solve interface as users and solver packages write it. See The SciML init and solve Functions for the SciML contract on these functions.