Skip to main content

Differential Equation Solver Ontology

Differential Equation Solvers
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 14 September 2026
Audio Overview
AI INTERPRETATION NOTE
This Flow Algebra defines the Differential Equation Solver Ontology within the Kireth Research Semantic Library. A differential equation solver is a computational method or software procedure that approximates solutions of ordinary, partial or differential-algebraic equations subject to initial, boundary and constraint conditions. This ontology supports solver classification, explicit and implicit methods, one-step and multistep schemes, adaptive control, stiffness, event handling, spatial discretisation, linear and nonlinear subsolvers, stability, convergence, error estimation, verification and reproducibility.

FLOW_ALGEBRA_RECORD {

METADATA {
 FLOW_NAME = "Differential Equation Solver Ontology"
 FLOW_TYPE = "Mathematical Ontology"
 DOMAIN = "Mathematics"
 SUBDOMAIN = "Computational Mathematics"
 SPECIALISATION = "Differential Equation Solvers / Differential Equation Solver"
 CANONICAL_PAGE = "https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/computational-mathematics-ontologies/differential-equation-solvers/differential-equation-solver-ontology.html"
 LANGUAGE = "en-GB"
 VERSION = "1.0"
 STATUS = "active"
}

IDENTITY {
 PRIMARY_ENTITY = DifferentialEquationSolver
 ENTITY_CLASS = ComputationalDifferentialEquationResolutionFramework
 PRIMARY_CONTEXT = DifferentialEquationSolvers
 DEFINITION = "A differential equation solver is a numerical algorithm or computational procedure that approximates a solution of an ODE, PDE or DAE under specified initial, boundary and constraint conditions."
 SYMBOLIC_FORMS = [
  "y'(t)=f(t,y)",
  "F(t,y,y')=0",
  "L(u)=f",
  "u_(n+1)=Phi(u_n,dt)"
 ]
 SEMANTIC_ROLE = "Provides machine-readable semantics for differential-equation solver class, discretisation, time integration, adaptive control, stiffness, subsolver configuration, error estimation, stability, convergence and verification."
}

SCOPE {
 INCLUDE = [
  DifferentialEquationSolver, SolverAlgorithm, SolverMethod,
  OrdinaryDifferentialEquation, ODE, PartialDifferentialEquation, PDE,
  DifferentialAlgebraicEquation, DAE, InitialValueProblem, IVP,
  BoundaryValueProblem, BVP, InitialBoundaryValueProblem,
  ExplicitSolver, ImplicitSolver, OneStepSolver, MultistepSolver,
  TimeIntegrator, TimeStepping, FixedStepSolver, AdaptiveStepSolver,
  TimeStep, StepSizeController, ErrorEstimator, EmbeddedMethod,
  DenseOutput, Interpolation, EventDetection, EventLocation,
  RootFindingForEvents, ForwardEulerSolver, BackwardEulerSolver,
  HeunSolver, MidpointSolver, RungeKuttaSolver, RK2, RK3, RK4,
  EmbeddedRungeKuttaSolver, RKF45, DormandPrinceSolver,
  CashKarpSolver, BogackiShampineSolver, AdamsBashforthSolver,
  AdamsMoultonSolver, PredictorCorrectorSolver, BDFSolver,
  GearSolver, LinearMultistepSolver, ImplicitRungeKuttaSolver,
  RosenbrockSolver, DIRKSolver, SDIRKSolver, RadauSolver,
  CollocationSolver, SymplecticSolver, VerletSolver, LeapfrogSolver,
  ExponentialIntegrator, OperatorSplittingSolver, LieSplitting,
  StrangSplitting, MethodOfLines, SpatialDiscretisation,
  TemporalDiscretisation, FiniteDifferenceMethod, FiniteVolumeMethod,
  FiniteElementMethod, SpectralMethod, Mesh, Grid, AdaptiveMesh,
  MeshRefinement, AMR, CFLCondition, CourantNumber, StabilityRegion,
  AbsoluteStability, AStableMethod, LStableMethod, StiffEquation,
  Stiffness, StiffSolver, NonstiffSolver, LinearSolver,
  NonlinearSolver, NewtonMethod, Jacobian, MassMatrix, ConstraintEquation,
  IndexOfDAE, Residual, Defect, LocalTruncationError, GlobalError,
  SpatialError, TemporalError, RoundOffError, FloatingPointArithmetic,
  MachinePrecision, Consistency, Stability, Convergence,
  ZeroStability, OrderOfAccuracy, NumericalDispersion,
  NumericalDiffusion, Conservation, PositivityPreservation,
  BoundaryCondition, DirichletBoundaryCondition,
  NeumannBoundaryCondition, RobinBoundaryCondition,
  PeriodicBoundaryCondition, InitialCondition, SolverConfiguration,
  SolverParameter, SolverStatus, Success, Failure, Warning,
  MaximumSteps, MaximumIterations, AbsoluteTolerance, RelativeTolerance,
  Verification, Validation, ManufacturedSolution, ReferenceSolution,
  BenchmarkProblem, ComputationalComplexity, MemoryComplexity,
  ParallelSolver, DistributedSolver, GPUSolver, Reproducibility
 ]
 EXCLUDE_AS_PRIMARY = [
  ExactSymbolicDifferentialEquationSolution,
  AlgebraicEquationSolverWithoutDifferentialStructure,
  OptimisationSolverWithoutDifferentialEquationDynamics,
  StaticInterpolationWithoutDifferentialEquationSemantics
 ]
 DISAMBIGUATION_RULE = "When an algorithm advances or computes a numerical approximation to a differential-equation solution under initial, boundary or algebraic constraints, interpret the context as a differential equation solver."
}

CORE_CONCEPTS {
 DifferentialEquationSolver = "Numerical procedure for approximating solutions of differential equations."
 ExplicitSolver = "Solver that advances the solution without solving an implicit algebraic system at each step."
 ImplicitSolver = "Solver that determines the next state through an algebraic solve."
 AdaptiveStepSolver = "Solver that changes step size according to an error estimate."
 StiffSolver = "Solver with stability properties suitable for stiff differential systems."
 MethodOfLines = "PDE strategy that discretises space to obtain a system of ODEs."
 SolverConfiguration = "Collection of tolerances, step limits, event controls and subsolver settings."
 SolverStatus = "Structured result describing success, failure, warnings or termination."
}

RELATIONS {
 DifferentialEquationSolver --is_child_of--> DifferentialEquationSolvers
 DifferentialEquationSolver --solves--> DifferentialEquationProblem
 ODESolver --solves--> OrdinaryDifferentialEquation
 PDESolver --solves--> PartialDifferentialEquation
 DAESolver --solves--> DifferentialAlgebraicEquation
 ExplicitSolver --advances_without--> NonlinearSolve
 ImplicitSolver --requires_often--> NonlinearSolver
 NonlinearSolver --requires_often--> LinearSolver
 AdaptiveStepSolver --uses--> ErrorEstimator
 EmbeddedMethod --provides--> LocalErrorEstimate
 StiffEquation --favours--> StiffSolver
 MethodOfLines --transforms--> PDEIntoODESystem
 FiniteDifferenceMethod --discretises--> SpatialDerivative
 FiniteVolumeMethod --discretises--> ConservationLaw
 FiniteElementMethod --discretises--> WeakForm
 CFLCondition --constrains--> ExplicitStepSize
 SolverConfiguration --controls--> DifferentialEquationSolver
 SolverStatus --describes--> SolverTermination
 Verification --checks--> NumericalSolution
}

OPERATORS {
 SOLVE_DE(problem,options) := solver_result
 ODE_STEP(y,t,h,Phi) := y_next=Phi(y,t,h)
 FORWARD_EULER(y,f,h) := y_next=y+h*f
 BACKWARD_EULER(y,h,f) := solve(y_next=y+h*f(t+h,y_next))
 RK4_STEP(y,t,h,f) := classical_RK4_update
 ADAPTIVE_STEP(h,error,tol,p) := h_new=h*(tol/error)^(1/(p+1))
 METHOD_OF_LINES(PDE,space_operator) := ODE_system
 RESIDUAL(discrete_problem,u) := discrete_operator(u)-forcing
 CFL(speed,dt,dx) := speed*dt/dx
}

AXIOMS {
 A1 = "A differential equation solver must be interpreted relative to the equation class and imposed conditions."
 A2 = "Explicit and implicit solvers have different stability and computational semantics."
 A3 = "Local truncation error and global solution error are distinct."
 A4 = "Adaptive solvers require an error estimator and a step-size controller."
 A5 = "Stiffness influences suitable solver choice."
 A6 = "PDE solvers require spatial discretisation semantics in addition to time integration when time dependent."
 A7 = "Solver success and mathematical validity of the model are distinct."
 A8 = "Differential equation solver results require stability, convergence, error and reproducibility validation."
}

REASONING {
 R1_CONTEXT = identify(equation_type,dimension,time_dependence,initial_conditions,boundary_conditions,constraints,accuracy_goal)
 R2_CLASSIFY = classify(ODE,PDE,DAE,IVP,BVP,stiff,nonstiff,explicit_or_implicit_context)
 R3_DISCRETISE = if_PDE choose(spatial_discretisation_and_mesh)
 R4_METHOD = select(Euler,RungeKutta,multistep,BDF,Rosenbrock,collocation,splitting,symplectic_or_other_solver)
 R5_CONFIGURATION = set(step_size,tolerances,max_steps,error_estimator,event_controls)
 R6_SUBSOLVERS = if_implicit configure(Jacobian,nonlinear_solver,linear_solver,preconditioner)
 R7_EXECUTION = advance_solution_or_solve_discrete_system
 R8_MONITOR = track(error_estimate,residual,events,stability,CFL,constraints_and_invariants)
 R9_ADAPT = adjust(step_size,mesh_or_solver_configuration_if_required)
 R10_VALIDATE = check(convergence,reference_solution,boundary_conditions,solver_status_and_reproducibility)
}

CONSTRAINTS {
 C1 = "Explicit solvers can be unstable when step sizes exceed their stability region."
 C2 = "Implicit solvers require accurate algebraic subsolves."
 C3 = "A small local error estimate does not guarantee a small global error for unstable methods."
 C4 = "PDE solver accuracy depends jointly on spatial and temporal resolution."
 C5 = "Stiffness can make explicit methods impractically restrictive."
 C6 = "Adaptive controllers can fail near discontinuities, singularities or abrupt events."
 C7 = "DAE solvers require consistent initial conditions and constraint handling."
 C8 = "High-order methods can lose nominal order on nonsmooth problems."
 C9 = "Long-time integration can accumulate phase, dissipation or round-off errors."
 C10 = "Resource-limit termination is not equivalent to successful tolerance satisfaction."
}

SEMANTIC_EQUIVALENCE {
 "DifferentialEquationSolver" <=> "NumericalDifferentialEquationSolver"
 "ODESolver" <=> "OrdinaryDifferentialEquationSolver"
 "PDESolver" <=> "PartialDifferentialEquationSolver"
 "DAESolver" <=> "DifferentialAlgebraicEquationSolver"
 "AdaptiveStepSolver" <=> "VariableStepSolver"
 "AMR" <=> "AdaptiveMeshRefinement"
}

VALIDATION {
 V1 = "Equation type and mathematical domain are explicit."
 V2 = "Initial and boundary conditions are documented."
 V3 = "Spatial and temporal discretisations are documented."
 V4 = "Solver method and order are documented."
 V5 = "Absolute and relative tolerances are documented."
 V6 = "Implicit subsolver settings are documented where relevant."
 V7 = "Termination status is explicit."
 V8 = "Convergence under refinement is checked where feasible."
 V9 = "Reference or manufactured solutions are used where feasible."
 V10 = "Results are reproducible under documented arithmetic and solver settings."
}

CONFIDENCE {
 BASE_CONFIDENCE = 0.99
 DIFFERENTIAL_EQUATION_SOLVER_DEFINITION = 0.99
 EXPLICIT_SOLVER_REASONING = 0.99
 IMPLICIT_SOLVER_REASONING = 0.99
 ADAPTIVE_SOLVER_REASONING = 0.99
 STIFF_SOLVER_REASONING = 0.98
 PDE_SOLVER_REASONING = 0.99
 DAE_SOLVER_REASONING = 0.98
 POLICY = "Reduce confidence when equation class, conditions, stiffness, discretisation, tolerances, subsolver settings, mesh resolution or arithmetic precision are underspecified."
}

AI_CONSUMPTION {
 PURPOSES = [
  SemanticSearch, OntologyGrounding, DifferentialEquationSolverReasoning,
  ODESolverReasoning, PDESolverReasoning, DAESolverReasoning,
  ExplicitSolverReasoning, ImplicitSolverReasoning,
  RungeKuttaReasoning, MultistepReasoning, StiffSolverReasoning,
  AdaptiveStepReasoning, MethodOfLinesReasoning,
  SpatialDiscretisationReasoning, CFLReasoning,
  LinearSubsolverReasoning, NonlinearSubsolverReasoning,
  ErrorControlReasoning, SolverStatusReasoning,
  VerificationReasoning, KnowledgeGraphConstruction,
  RetrievalAugmentation, RecursiveInference
 ]
 NORMALISE {
  "differential equation solver" -> DifferentialEquationSolver
  "ODE solver" -> DifferentialEquationSolver
  "PDE solver" -> DifferentialEquationSolver
  "DAE solver" -> DifferentialEquationSolver
  "variable-step solver" -> AdaptiveStepSolver
  "AMR" -> AdaptiveMeshRefinement
 }
}

EXECUTION_RULES {
 E1 = "If an algorithm numerically advances or solves a differential equation, activate DifferentialEquationSolverOntology."
 E2 = "Classify ODE, PDE or DAE structure before solver selection."
 E3 = "For PDEs, specify the spatial discretisation and mesh."
 E4 = "For stiff systems, select methods with appropriate stability properties."
 E5 = "For adaptive solvers, define error estimator, absolute tolerance and relative tolerance."
 E6 = "For implicit methods, configure nonlinear and linear subsolvers explicitly."
 E7 = "Respect CFL or equivalent stability restrictions for explicit discretisations."
 E8 = "Distinguish successful tolerance satisfaction from warning or resource-limit termination."
 E9 = "Validate through refinement, residuals, reference solutions, invariants and reproducibility."
}

RECURSION {
 ENTRY = DifferentialEquationSolver
 EXPAND(DifferentialEquationSolver) -> [
  SolverAlgorithm,SolverMethod,OrdinaryDifferentialEquation,ODE,
  PartialDifferentialEquation,PDE,DifferentialAlgebraicEquation,DAE,
  InitialValueProblem,IVP,BoundaryValueProblem,BVP,
  InitialBoundaryValueProblem,ExplicitSolver,ImplicitSolver,
  OneStepSolver,MultistepSolver,TimeIntegrator,TimeStepping,
  FixedStepSolver,AdaptiveStepSolver,TimeStep,StepSizeController,
  ErrorEstimator,EmbeddedMethod,DenseOutput,EventDetection,
  EventLocation,RootFindingForEvents,ForwardEulerSolver,
  BackwardEulerSolver,HeunSolver,MidpointSolver,RungeKuttaSolver,
  RK2,RK3,RK4,EmbeddedRungeKuttaSolver,RKF45,DormandPrinceSolver,
  CashKarpSolver,BogackiShampineSolver,AdamsBashforthSolver,
  AdamsMoultonSolver,PredictorCorrectorSolver,BDFSolver,GearSolver,
  LinearMultistepSolver,ImplicitRungeKuttaSolver,RosenbrockSolver,
  DIRKSolver,SDIRKSolver,RadauSolver,CollocationSolver,
  SymplecticSolver,VerletSolver,LeapfrogSolver,ExponentialIntegrator,
  OperatorSplittingSolver,LieSplitting,StrangSplitting,MethodOfLines,
  SpatialDiscretisation,TemporalDiscretisation,FiniteDifferenceMethod,
  FiniteVolumeMethod,FiniteElementMethod,SpectralMethod,Mesh,Grid,
  AdaptiveMesh,MeshRefinement,AMR,CFLCondition,CourantNumber,
  StabilityRegion,AbsoluteStability,AStableMethod,LStableMethod,
  StiffEquation,Stiffness,StiffSolver,NonstiffSolver,LinearSolver,
  NonlinearSolver,NewtonMethod,Jacobian,MassMatrix,ConstraintEquation,
  IndexOfDAE,Residual,Defect,LocalTruncationError,GlobalError,
  SpatialError,TemporalError,RoundOffError,FloatingPointArithmetic,
  MachinePrecision,Consistency,Stability,Convergence,ZeroStability,
  OrderOfAccuracy,NumericalDispersion,NumericalDiffusion,Conservation,
  PositivityPreservation,BoundaryCondition,InitialCondition,
  SolverConfiguration,SolverParameter,SolverStatus,Success,Failure,
  Warning,MaximumSteps,AbsoluteTolerance,RelativeTolerance,
  Verification,ManufacturedSolution,ReferenceSolution,
  BenchmarkProblem,ParallelSolver,DistributedSolver,GPUSolver,
  Reproducibility
 ]
 EXPAND(SolverFamilies) -> [
  ExplicitODESolvers,
  ImplicitODESolvers,
  AdaptiveODESolvers,
  StiffSolvers,
  DAESolvers,
  PDESolvers,
  StructurePreservingSolvers,
  ParallelDifferentialEquationSolvers
 ]
 STOP_CONDITION = "Stop when equation class, conditions, discretisation, solver family, configuration, stability, error control, subsolvers and validation are sufficiently resolved."
}

ROUTING {
 PARENT_ONTOLOGY = "Differential Equation Solvers"
 RELATED_ONTOLOGIES = [
  "Differential Equation Solvers",
  "Numerical Calculus",
  "Numerical Differentiation Ontology 2",
  "Quadrature Ontology",
  "Equation Solver Ontology",
  "Linear Solver Ontology",
  "Nonlinear Solver Ontology",
  "Numerical Methods",
  "Numerical Analysis Ontology 2",
  "Numerical Error Ontology",
  "Numerical Stability Ontology 2",
  "Numerical Convergence Ontology",
  "Floating Point Arithmetic Ontology",
  "Scientific Computing Ontology 2"
 ]
 ROUTE_RULES = [
  "Differential Equation Solver -> Differential Equation Solvers for parent semantics",
  "Differential Equation Solver -> Numerical Differentiation for derivative discretisation",
  "Differential Equation Solver -> Quadrature for collocation and integral formulations",
  "Differential Equation Solver -> Equation Solver for algebraic subproblems",
  "Differential Equation Solver -> Linear Solver for implicit linear systems",
  "Differential Equation Solver -> Nonlinear Solver for nonlinear implicit stages",
  "Differential Equation Solver -> Numerical Analysis for consistency, stability and convergence",
  "Differential Equation Solver -> Numerical Error for local and global error semantics",
  "Differential Equation Solver -> Floating Point Arithmetic for finite-precision effects",
  "Differential Equation Solver -> Scientific Computing for scalable implementation"
 ]
}

UPDATE_MODEL {
 MODE = "append-compatible semantic versioning"
 MAJOR = "ontology-breaking conceptual change"
 MINOR = "new compatible differential-equation solver families, controllers or reasoning pathways"
 PATCH = "clarification, metadata or formatting correction"
 RULES = [
  "Preserve solver-versus-differential-equation distinction.",
  "Preserve ODE-versus-PDE-versus-DAE distinction.",
  "Preserve explicit-versus-implicit distinction.",
  "Preserve fixed-step-versus-adaptive-step distinction.",
  "Preserve spatial-versus-temporal discretisation distinction.",
  "Preserve solver-status-versus-solution-validity distinction.",
  "Preserve local-error-versus-global-error distinction.",
  "Preserve machine-readable differential-equation-solver semantics."
 ]
}

OUTPUT {
 CANONICAL_DEFINITION = "A differential equation solver is a numerical procedure for approximating solutions of ODEs, PDEs or DAEs."
 CLASSIFICATION_SUMMARY = "Solver selection depends on equation class, stiffness, initial or boundary conditions and required accuracy."
 ADAPTIVITY_SUMMARY = "Adaptive solvers use error estimates to control time step or mesh resolution."
 IMPLICIT_SUMMARY = "Implicit solvers couple differential-equation integration with nonlinear and linear algebraic subsolvers."
 PDE_SUMMARY = "PDE solvers combine spatial discretisation with algebraic or time-integration methods."
 STATUS_SUMMARY = "Solver termination status must distinguish success, warnings, failures and resource limits."
 VALIDATION_SUMMARY = "Differential-equation solver results should be checked through refinement, stability, residuals, invariants, reference solutions and reproducibility."
}

FLOW {
 INPUT
 -> detect_differential_equation_solver_context
 -> identify_equation_type_domain_initial_conditions_boundary_conditions_constraints_and_accuracy_goal
 -> classify_ODE_PDE_DAE_IVP_BVP_stiff_nonstiff_explicit_or_implicit_context
 -> if_PDE_select_spatial_discretisation_and_mesh
 -> select_solver_family_and_method
 -> configure_step_size_tolerances_error_estimator_event_controls_and_limits
 -> if_implicit_configure_Jacobian_nonlinear_solver_linear_solver_and_preconditioner
 -> execute_solver
 -> monitor_error_estimates_residuals_events_stability_CFL_constraints_and_invariants
 -> adapt_time_step_mesh_or_solver_configuration_if_required
 -> classify_solver_status
 -> assess_local_global_spatial_temporal_and_roundoff_error
 -> validate_against_reference_manufactured_or_benchmark_solution
 -> route_to_related_parent_calculus_equation_solver_analysis_error_stability_convergence_floating_point_and_scientific_computing_ontologies
 -> recursively_expand_required_dependencies
 -> verify_result
 -> assign_confidence
 -> produce_semantic_output
 -> END
}

SEMANTIC_SUMMARY {
 "The Differential Equation Solver Ontology defines numerical solver procedures for ODEs, PDEs and DAEs. It supports explicit, implicit, one-step and multistep methods, fixed and adaptive stepping, Euler, Runge-Kutta and embedded Runge-Kutta schemes, Adams and BDF methods, Rosenbrock, DIRK, SDIRK, Radau and collocation methods, symplectic and splitting solvers, event detection and dense output, method-of-lines PDE treatment, finite difference, finite volume, finite element and spectral discretisation, adaptive meshes, CFL conditions, stiffness handling, linear and nonlinear subsolvers, DAE mass matrices and constraints, residuals, local and global error, consistency, stability, convergence, solver configuration and status, verification, benchmarking, parallel computation and reproducibility."
}

FLOW_HASH {
 METHOD = "semantic-content-identity"
 ID = "KIRETH-MATH-COMPUTATIONAL-MATHEMATICS-DIFFERENTIAL-EQUATION-SOLVER-ONTOLOGY-V1"
}

}

END_FLOW
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ