API Reference

Solve interface

StructuralDynamicsODESolvers.SolutionType
Solution{T<:AbstractSolver, UT, VT, AT} <: AbstractSolution

Fields

  • alg – algorithm used in the integration
  • U – displacements
  • U′ – velocities
  • U′′ – accelerations
  • t – vector of time values
source
StructuralDynamicsODESolvers.step_sizeFunction
step_size(alg::AbstractSolver)

Return the step size of the given algorithm.

Input

  • alg – algorithm

Output

The step size of the algorithm, or nothing if the step-size is not fixed.

source
CommonSolve.solveFunction
CommonSolve.solve(args...; kwargs...)

Solves an equation or other mathematical problem using the algorithm specified in the arguments. Generally, the interface is:

CommonSolve.solve(prob::ProblemType,alg::SolverType; kwargs...)::SolutionType

where the keyword arguments are uniform across all choices of algorithms.

By default, solve defaults to using solve! on the iterator form, i.e.:

solve(args...; kwargs...) = solve!(init(args...; kwargs...))
source
solve(ivp::InitialValueProblem, alg::AbstractSolver, args..; kwargs...)

Solve an initial-value problem.

Input

  • ivp – initial-value problem
  • alg – algorithm

Output

A solution structure (Solution) that holds the result and the algorithm used to obtain it.

source

Type hierarchy & dispatch

Each integration algorithm, called solver, is implemented by a Julia struct which holds the algorithm's options (such as the step-size), and such struct is a subtype of AbstractSolver. New solvers should implement a method with signature

_solve(::SolverType, ::InitialValueProblem{...}, args...; kwargs...)`

The return type of a solver must be any concrete subtype that implements the AbstractSolution interface, e.g. the Solution type.