Interface EquationSolver<E extends Equation>

Type Parameters:
E - the type of partial differential equation this solver handles
All Known Implementing Classes:
AbstractEquationSolver, HyperbolicEquationSolver, ParabolicEquationSolver

public interface EquationSolver<E extends Equation>
Interface for numerical solvers of partial differential equations. Defines the contract that all PDE solvers must implement to provide numerical solutions for different types of partial differential equations.
See Also:
  • Method Summary

    Modifier and Type
    Method
    Description
    solve(E eqn, double h, double tau)
    Solves a partial differential equation using numerical methods.
  • Method Details

    • solve

      Solution<E> solve(E eqn, double h, double tau)
      Solves a partial differential equation using numerical methods. The solution is found on a space-time grid defined by the spatial and temporal step sizes.

      Choosing h and tau is the caller's responsibility: the library does not check CFL-type or other problem-specific stability bounds (see this package's summary documentation).

      Parameters:
      eqn - the partial differential equation to solve (must not be null)
      h - spatial step size (must be finite and positive)
      tau - temporal step size (must be finite and positive)
      Returns:
      Solution with equation, domain, and grid values in Solution.matrix()
      Throws:
      IllegalArgumentException - if eqn is null, or if h or tau are not finite or not positive, or if an intermediate tridiagonal system is singular or numerically degenerate