Skip to main content

Finite Difference Method 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 Finite Difference Method Ontology within the Kireth Research Semantic Library. The finite difference method approximates differential operators using discrete differences on a computational grid. This ontology supports spatial and temporal discretisation, forward, backward and central differences, explicit and implicit schemes, boundary treatment, consistency, stability, convergence, truncation error, CFL conditions, numerical diffusion and dispersion, structured grids, nonuniform meshes, higher-order stencils, verification and reproducibility.

FLOW_ALGEBRA_RECORD {

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

IDENTITY {
 PRIMARY_ENTITY = FiniteDifferenceMethod
 ENTITY_CLASS = DiscreteDifferentialOperatorApproximationFramework
 PRIMARY_CONTEXT = PartialDifferentialEquationSolver
 DEFINITION = "The finite difference method approximates derivatives and differential equations by replacing continuous differential operators with algebraic difference equations defined on a discrete grid."
 SYMBOLIC_FORMS = [
  "u_x approximately (u_(i+1)-u_(i-1))/(2*h)",
  "u_xx approximately (u_(i+1)-2*u_i+u_(i-1))/h^2",
  "u_t approximately (u_i^(n+1)-u_i^n)/dt",
  "L(u)=f -> L_h(u_h)=f_h"
 ]
 SEMANTIC_ROLE = "Provides machine-readable semantics for finite-difference stencils, grid-based PDE discretisation, explicit and implicit update schemes, boundary conditions, truncation error, stability, convergence and verification."
}

SCOPE {
 INCLUDE = [
  FiniteDifferenceMethod,FDM,FiniteDifferenceScheme,DifferenceEquation,
  DifferenceOperator,DifferentialOperator,Grid,Mesh,StructuredGrid,
  CartesianGrid,UniformGrid,NonuniformGrid,GridPoint,GridSpacing,
  TimeStep,SpatialStep,TemporalStep,Node,Stencil,FiniteDifferenceStencil,
  ForwardDifference,BackwardDifference,CentralDifference,
  OneSidedDifference,SecondDifference,HigherOrderDifference,
  FirstDerivativeApproximation,SecondDerivativeApproximation,
  MixedDerivativeApproximation,GradientApproximation,LaplacianApproximation,
  DivergenceApproximation,CurlApproximation,ForwardTimeCentralSpace,
  FTCS,BackwardTimeCentralSpace,BTCS,CrankNicolson,
  ExplicitScheme,ImplicitScheme,SemiImplicitScheme,ThetaMethod,
  LeapfrogScheme,LaxFriedrichsScheme,LaxWendroffScheme,
  UpwindDifference,DownwindDifference,CenteredScheme,
  CompactFiniteDifference,HighOrderFiniteDifference,
  FiniteDifferenceCoefficient,FornbergWeights,
  BoundaryStencil,GhostPoint,GhostCell,BoundaryNode,
  InteriorNode,DirichletBoundaryCondition,NeumannBoundaryCondition,
  RobinBoundaryCondition,PeriodicBoundaryCondition,
  InitialCondition,InitialBoundaryValueProblem,
  EllipticPDE,ParabolicPDE,HyperbolicPDE,
  PoissonEquation,LaplaceEquation,HeatEquation,WaveEquation,
  AdvectionEquation,AdvectionDiffusionEquation,DiffusionEquation,
  ReactionDiffusionEquation,BurgersEquation,
  MethodOfLines,SemiDiscreteSystem,FullyDiscreteSystem,
  SparseMatrix,BandedMatrix,LinearSystem,NonlinearSystem,
  LinearSolver,NonlinearSolver,TridiagonalSolver,ThomasAlgorithm,
  Jacobian,Preconditioner,KrylovMethod,
  Consistency,Stability,Convergence,LaxEquivalenceContext,
  TruncationError,LocalTruncationError,GlobalError,DiscretisationError,
  OrderOfAccuracy,GridConvergence,RichardsonExtrapolation,
  CFLCondition,CourantNumber,VonNeumannStability,
  AmplificationFactor,FourierMode,StabilityRegion,
  NumericalDiffusion,NumericalDispersion,PhaseError,DissipationError,
  Monotonicity,PositivityPreservation,MaximumPrinciple,
  ArtificialViscosity,Stabilisation,ShockCapturing,
  GridRefinement,AdaptiveMeshRefinement,AMR,
  NonuniformStencil,CoordinateTransformation,
  CurvilinearGrid,MultidimensionalFiniteDifference,
  ParallelFiniteDifference,DomainDecomposition,HaloExchange,
  GPUSolver,DistributedSolver,FloatingPointArithmetic,
  MachinePrecision,RoundOffError,Verification,
  ManufacturedSolution,ReferenceSolution,BenchmarkProblem,
  Reproducibility
 ]
 EXCLUDE_AS_PRIMARY = [
  FiniteVolumeMethodWithoutDifferenceStencilSemantics,
  FiniteElementMethodWithoutGridDifferenceOperators,
  SpectralMethodWithoutLocalDifferenceApproximation,
  NumericalDifferentiationWithoutDifferentialEquationDiscretisationContext
 ]
 DISAMBIGUATION_RULE = "When a differential equation is discretised by replacing derivatives with algebraic difference formulas on a grid, interpret the context as the finite difference method."
}

CORE_CONCEPTS {
 FiniteDifferenceMethod = "Grid-based numerical method replacing differential operators with difference operators."
 FiniteDifferenceStencil = "Pattern of neighbouring grid values used to approximate a derivative."
 GridSpacing = "Distance between neighbouring grid points controlling spatial discretisation scale."
 ExplicitScheme = "Scheme computing the next state directly from known values."
 ImplicitScheme = "Scheme requiring solution of algebraic equations involving the new state."
 CrankNicolson = "Second-order time-centred implicit theta-method with theta equal to one half."
 CFLCondition = "Relation between time step, grid spacing and characteristic propagation speed affecting stability."
 VonNeumannStability = "Fourier-mode analysis of linear constant-coefficient difference schemes."
}

RELATIONS {
 FiniteDifferenceMethod --is_child_of--> PartialDifferentialEquationSolver
 FiniteDifferenceMethod --uses--> FiniteDifferenceStencil
 FiniteDifferenceStencil --approximates--> DifferentialOperator
 ForwardDifference --is_type_of--> OneSidedDifference
 BackwardDifference --is_type_of--> OneSidedDifference
 CentralDifference --is_type_of--> SymmetricDifference
 ExplicitScheme --advances_without--> AlgebraicSolve
 ImplicitScheme --requires--> LinearOrNonlinearSolve
 CrankNicolson --is_type_of--> ThetaMethod
 MethodOfLines --uses--> SpatialFiniteDifferenceOperator
 CFLCondition --constrains--> ExplicitTimeStep
 VonNeumannStability --analyses--> AmplificationFactor
 GridRefinement --reduces_under_consistency--> TruncationError
 NonuniformGrid --requires--> NonuniformStencil
 GhostPoint --supports--> BoundaryConditionImplementation
 Verification --checks--> FiniteDifferenceSolution
}

OPERATORS {
 FORWARD_DIFFERENCE(u,i,h) := (u_(i+1)-u_i)/h
 BACKWARD_DIFFERENCE(u,i,h) := (u_i-u_(i-1))/h
 CENTRAL_DIFFERENCE(u,i,h) := (u_(i+1)-u_(i-1))/(2*h)
 SECOND_CENTRAL_DIFFERENCE(u,i,h) := (u_(i+1)-2*u_i+u_(i-1))/h^2
 FTCS_DIFFUSION(u,r) := u_i^(n+1)=u_i^n+r*(u_(i+1)^n-2*u_i^n+u_(i-1)^n)
 CRANK_NICOLSON(theta) := theta=1/2
 CFL(speed,dt,dx) := speed*dt/dx
 AMPLIFICATION_FACTOR(mode) := numerical_mode_growth_ratio
 DISCRETE_RESIDUAL(L_h,u_h,f_h) := f_h-L_h(u_h)
}

AXIOMS {
 A1 = "Finite difference methods approximate derivatives through discrete combinations of grid values."
 A2 = "Consistency requires the discrete operator to approach the continuous operator as the grid is refined."
 A3 = "Stability controls growth of numerical perturbations."
 A4 = "For suitable linear well-posed problems, consistency plus stability supports convergence."
 A5 = "Explicit schemes often obey step-size restrictions linked to grid spacing."
 A6 = "Implicit schemes trade algebraic solve cost for altered stability properties."
 A7 = "Boundary stencils can differ from interior stencils."
 A8 = "Finite-difference results require truncation-error, stability, convergence and verification semantics."
}

REASONING {
 R1_CONTEXT = identify(PDE_type,dimension,domain,boundary_conditions,initial_conditions,accuracy_goal)
 R2_GRID = choose(uniform,nonuniform,Cartesian,curvilinear_or_transformed_grid)
 R3_STENCIL = select(forward,backward,central,upwind,compact_or_high_order_stencil)
 R4_TIME = if_time_dependent select(explicit,implicit,Crank_Nicolson,RungeKutta_or_multistep_scheme)
 R5_BOUNDARY = construct(boundary_stencils,ghost_points_or_direct_boundary_equations)
 R6_ASSEMBLY = form_difference_equations_and_sparse_algebraic_system
 R7_STABILITY = analyse(CFL,Von_Neumann,monotonicity,numerical_diffusion_and_dispersion)
 R8_SOLVE = if_implicit configure(linear_or_nonlinear_solver)
 R9_ERROR = estimate(truncation,spatial,temporal,roundoff_and_boundary_error)
 R10_VALIDATE = perform(grid_refinement,Richardson_extrapolation,manufactured_solution_and_reference_checks)
}

CONSTRAINTS {
 C1 = "Nominal finite-difference order requires sufficient solution smoothness."
 C2 = "Centered advection schemes can oscillate without adequate stabilisation."
 C3 = "Explicit parabolic schemes can require time steps proportional to the square of grid spacing."
 C4 = "Hyperbolic explicit schemes commonly require CFL-type restrictions."
 C5 = "Boundary closures can reduce global order if lower-order stencils are used."
 C6 = "Nonuniform grids require coefficients adapted to local spacing."
 C7 = "High-order wide stencils increase boundary complexity and communication cost."
 C8 = "A small algebraic residual does not imply small discretisation error."
 C9 = "Very fine grids can make round-off and solver tolerance relevant."
 C10 = "Discontinuities and shocks can invalidate smooth-solution convergence assumptions."
}

SEMANTIC_EQUIVALENCE {
 "FiniteDifferenceMethod" <=> "FDM"
 "FiniteDifferenceScheme" <=> "DifferenceScheme"
 "ForwardTimeCentralSpace" <=> "FTCS"
 "BackwardTimeCentralSpace" <=> "BTCS"
 "CrankNicolson" <=> "CrankNicolsonScheme"
 "AdaptiveMeshRefinement" <=> "AMR"
}

VALIDATION {
 V1 = "Continuous PDE and differential operators are explicit."
 V2 = "Grid geometry and spacing are documented."
 V3 = "Finite-difference stencils are documented."
 V4 = "Boundary and initial-condition discretisations are documented."
 V5 = "Spatial and temporal orders are documented."
 V6 = "Stability restrictions are assessed where relevant."
 V7 = "Grid refinement and observed convergence are checked where feasible."
 V8 = "Numerical diffusion and dispersion are assessed for transport and wave problems."
 V9 = "Manufactured, analytic or benchmark solutions are used where feasible."
 V10 = "Results are reproducible under documented arithmetic, grid and solver settings."
}

CONFIDENCE {
 BASE_CONFIDENCE = 0.99
 FINITE_DIFFERENCE_DEFINITION = 0.99
 STENCIL_REASONING = 0.99
 EXPLICIT_SCHEME_REASONING = 0.99
 IMPLICIT_SCHEME_REASONING = 0.99
 VON_NEUMANN_REASONING = 0.99
 CFL_REASONING = 0.99
 NONUNIFORM_GRID_REASONING = 0.98
 POLICY = "Reduce confidence when stencil, grid geometry, boundary closure, stability condition, solution smoothness or refinement evidence are underspecified."
}

AI_CONSUMPTION {
 PURPOSES = [
  SemanticSearch, OntologyGrounding, FiniteDifferenceReasoning,
  StencilReasoning, SpatialDiscretisationReasoning,
  ExplicitSchemeReasoning, ImplicitSchemeReasoning,
  CrankNicolsonReasoning, BoundaryStencilReasoning,
  CFLReasoning, VonNeumannReasoning,
  NumericalDiffusionReasoning, NumericalDispersionReasoning,
  GridRefinementReasoning, NonuniformGridReasoning,
  SparseSystemReasoning, VerificationReasoning,
  KnowledgeGraphConstruction, RetrievalAugmentation, RecursiveInference
 ]
 NORMALISE {
  "finite difference method" -> FiniteDifferenceMethod
  "FDM" -> FiniteDifferenceMethod
  "finite difference scheme" -> FiniteDifferenceScheme
  "FTCS" -> ForwardTimeCentralSpace
  "BTCS" -> BackwardTimeCentralSpace
  "Crank-Nicolson" -> CrankNicolson
  "AMR" -> AdaptiveMeshRefinement
 }
}

EXECUTION_RULES {
 E1 = "If derivatives in a differential equation are replaced by grid-based difference formulas, activate FiniteDifferenceMethodOntology."
 E2 = "Specify grid geometry and spacing before defining stencils."
 E3 = "Use boundary stencils consistent with the boundary conditions."
 E4 = "For explicit schemes, check CFL or equivalent stability restrictions."
 E5 = "For implicit schemes, configure the resulting linear or nonlinear algebraic solver."
 E6 = "For advection-dominated problems, assess upwinding, monotonicity and numerical diffusion."
 E7 = "For wave problems, assess numerical dispersion and phase error."
 E8 = "Use grid refinement and Richardson extrapolation to assess convergence where feasible."
 E9 = "Validate using manufactured, analytic or benchmark solutions and reproducibility."
}

RECURSION {
 ENTRY = FiniteDifferenceMethod
 EXPAND(FiniteDifferenceMethod) -> [
  FDM,FiniteDifferenceScheme,DifferenceOperator,DifferentialOperator,
  Grid,StructuredGrid,UniformGrid,NonuniformGrid,GridPoint,GridSpacing,
  TimeStep,Stencil,FiniteDifferenceStencil,ForwardDifference,
  BackwardDifference,CentralDifference,OneSidedDifference,
  SecondDifference,HigherOrderDifference,GradientApproximation,
  LaplacianApproximation,ForwardTimeCentralSpace,FTCS,
  BackwardTimeCentralSpace,BTCS,CrankNicolson,ExplicitScheme,
  ImplicitScheme,ThetaMethod,LeapfrogScheme,LaxFriedrichsScheme,
  LaxWendroffScheme,UpwindDifference,CompactFiniteDifference,
  FiniteDifferenceCoefficient,FornbergWeights,BoundaryStencil,
  GhostPoint,DirichletBoundaryCondition,NeumannBoundaryCondition,
  RobinBoundaryCondition,PeriodicBoundaryCondition,EllipticPDE,
  ParabolicPDE,HyperbolicPDE,PoissonEquation,HeatEquation,
  WaveEquation,AdvectionEquation,DiffusionEquation,
  MethodOfLines,SemiDiscreteSystem,SparseMatrix,LinearSolver,
  NonlinearSolver,TridiagonalSolver,ThomasAlgorithm,Consistency,
  Stability,Convergence,TruncationError,OrderOfAccuracy,
  GridConvergence,RichardsonExtrapolation,CFLCondition,
  CourantNumber,VonNeumannStability,AmplificationFactor,
  NumericalDiffusion,NumericalDispersion,PhaseError,Monotonicity,
  Stabilisation,GridRefinement,AdaptiveMeshRefinement,
  CurvilinearGrid,ParallelFiniteDifference,DomainDecomposition,
  FloatingPointArithmetic,MachinePrecision,Verification,
  ManufacturedSolution,ReferenceSolution,Reproducibility
 ]
 EXPAND(FiniteDifferenceFamilies) -> [
  SpatialFiniteDifferences,
  ExplicitFiniteDifferenceSchemes,
  ImplicitFiniteDifferenceSchemes,
  CrankNicolsonSchemes,
  AdvectionFiniteDifferences,
  DiffusionFiniteDifferences,
  WaveEquationFiniteDifferences,
  HighOrderAndNonuniformFiniteDifferences
 ]
 STOP_CONDITION = "Stop when PDE, grid, stencil, boundary treatment, time scheme, stability, algebraic solve, error and validation are sufficiently resolved."
}

ROUTING {
 PARENT_ONTOLOGY = "Partial Differential Equation Solver Ontology"
 RELATED_ONTOLOGIES = [
  "Partial Differential Equation Solver Ontology",
  "Differential Equation Solver Ontology",
  "Ordinary Differential Equation Solver Ontology",
  "Euler Method Ontology",
  "Runge-Kutta Ontology",
  "Numerical Differentiation Ontology 2",
  "Linear Solver Ontology",
  "Nonlinear Solver Ontology",
  "Sparse Matrix Ontology 2",
  "Numerical Analysis Ontology 2",
  "Numerical Error Ontology",
  "Numerical Stability Ontology 2",
  "Numerical Convergence Ontology",
  "Floating Point Arithmetic Ontology"
 ]
 ROUTE_RULES = [
  "Finite Difference Method -> PDE Solver for parent semantics",
  "Finite Difference Method -> Numerical Differentiation for stencil construction",
  "Finite Difference Method -> Euler Method for first-order time discretisation",
  "Finite Difference Method -> Runge-Kutta for method-of-lines time integration",
  "Finite Difference Method -> Linear Solver for implicit discrete systems",
  "Finite Difference Method -> Nonlinear Solver for nonlinear discrete systems",
  "Finite Difference Method -> Sparse Matrix for assembled difference operators",
  "Finite Difference Method -> Numerical Analysis for consistency, stability and convergence",
  "Finite Difference Method -> Numerical Error for truncation and discretisation error",
  "Finite Difference Method -> Floating Point Arithmetic for fine-grid round-off effects"
 ]
}

UPDATE_MODEL {
 MODE = "append-compatible semantic versioning"
 MAJOR = "ontology-breaking conceptual change"
 MINOR = "new compatible finite-difference schemes, stencil families or reasoning pathways"
 PATCH = "clarification, metadata or formatting correction"
 RULES = [
  "Preserve continuous-operator-versus-discrete-operator distinction.",
  "Preserve spatial-versus-temporal discretisation distinction.",
  "Preserve explicit-versus-implicit scheme distinction.",
  "Preserve interior-versus-boundary stencil distinction.",
  "Preserve truncation-error-versus-algebraic-residual distinction.",
  "Preserve uniform-versus-nonuniform grid distinction.",
  "Preserve stability-versus-accuracy distinction.",
  "Preserve machine-readable finite-difference semantics."
 ]
}

OUTPUT {
 CANONICAL_DEFINITION = "The finite difference method approximates differential equations by replacing derivatives with algebraic difference formulas on a computational grid."
 STENCIL_SUMMARY = "Forward, backward, central and higher-order stencils approximate differential operators from neighbouring grid values."
 TIME_SUMMARY = "Explicit, implicit and Crank-Nicolson-type schemes combine spatial differences with time discretisation."
 STABILITY_SUMMARY = "CFL and Von Neumann analyses determine important stability restrictions for many finite-difference schemes."
 ERROR_SUMMARY = "Truncation, spatial, temporal, boundary and round-off errors jointly determine solution accuracy."
 TRANSPORT_SUMMARY = "Advection and wave problems require attention to numerical diffusion, dispersion, monotonicity and shock behaviour."
 VALIDATION_SUMMARY = "Finite-difference solutions should be checked through grid refinement, observed convergence, stability analysis, manufactured solutions and reproducibility."
}

FLOW {
 INPUT
 -> detect_finite_difference_context
 -> identify_PDE_type_dimension_domain_boundary_conditions_initial_conditions_and_accuracy_goal
 -> choose_grid_geometry_spacing_and_refinement_strategy
 -> select_spatial_difference_stencils
 -> select_explicit_implicit_CrankNicolson_RungeKutta_or_other_time_scheme
 -> construct_boundary_stencils_and_initial_discretisation
 -> assemble_difference_equations_and_sparse_system
 -> analyse_CFL_VonNeumann_monotonicity_diffusion_and_dispersion
 -> if_implicit_configure_linear_or_nonlinear_solver
 -> solve_or_advance_discrete_system
 -> estimate_spatial_temporal_truncation_boundary_and_roundoff_error
 -> refine_grid_or_time_step_if_required
 -> validate_with_grid_convergence_manufactured_reference_or_benchmark_solution
 -> route_to_related_PDE_numerical_differentiation_time_integration_linear_algebra_analysis_error_stability_convergence_and_floating_point_ontologies
 -> recursively_expand_required_dependencies
 -> verify_result
 -> assign_confidence
 -> produce_semantic_output
 -> END
}

SEMANTIC_SUMMARY {
 "The Finite Difference Method Ontology defines grid-based discretisation of differential equations using algebraic difference operators. It supports forward, backward, central, one-sided, compact and higher-order stencils, explicit and implicit schemes, FTCS, BTCS, Crank-Nicolson, leapfrog, Lax-Friedrichs, Lax-Wendroff and upwind methods, boundary stencils and ghost points, structured and nonuniform grids, method of lines, sparse algebraic systems, CFL and Von Neumann stability analysis, numerical diffusion and dispersion, monotonicity and stabilisation, grid refinement and Richardson extrapolation, adaptive mesh refinement, parallel computation, finite precision, verification and reproducibility."
}

FLOW_HASH {
 METHOD = "semantic-content-identity"
 ID = "KIRETH-MATH-COMPUTATIONAL-MATHEMATICS-FINITE-DIFFERENCE-METHOD-ONTOLOGY-V1"
}

}

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