Convergence Simulations

Convergence Simulations

The convergence simulation type is useful for deriving order of convergence estimates from a group of simulations. This object will automatically assemble error vectors into a more useful manner and provide plotting functionality. Convergence estimates are also given by pair-wise estimates.

One can automatically have DifferentialEquations.jl perform the error analysis by passing a ConvergenceSimulation a vector of solutions, or using one of the provided test_convergence functions. These will give order of convergence estimates and provide plotting functionality. This requires that the true solution was provided in the problem definition.

ConvergenceSimulations can either be created by passing the constructor the appropriate solution array or by using one of the provided test_convergence functions.

The ConvergenceSimulation Type

A type which holds the data from a convergence simulation.

Fields

Plot Functions

The plot functionality is provided by a Plots.jl recipe. What is plotted is a line series for each calculated error along the convergence axis. To plot a convergence simulation, simply use:

plot(sim::ConvergenceSimulation)

All of the functionality (keyword arguments) provided by Plots.jl are able to be used in this command. Please see the Plots.jl documentation for more information.

ODE

test_convergence(dts::AbstractArray,prob::AbstractODEProblem)

Tests the order of the time convergence of the given algorithm on the given problem solved over the given dts.

Keyword Arguments

SDE

test_convergence(dts::AbstractArray,prob::AbstractSDEProblem)

Tests the strong order time convergence of the given algorithm on the given problem solved over the given dts.

Keyword Arguments

Poisson

test_convergence(dxs::AbstractArray,prob::PoissonProblem)

Tests the convergence of the solver algorithm on the given Poisson problem with dxs as given. Uses the square mesh [0,1]x[0,1].

Keyword Arguments

Heat

test_convergence(dts::AbstractArray,dxs::AbstractArray,prob::AbstractHeatProblem,convergence_axis)

Tests the convergence of the solver algorithm on the given Heat problem with the dts and dxs as given. Uses the square mesh [0,1]x[0,1]. The convergence axis is the axis along which convergence is calculated. For example, when testing dt convergence, convergence_axis = dts.

Keyword Arguments

Utilities

Order Estimation

calc𝒪estimates(error::Vector{Number})`

Computes the pairwise convergence estimate for a convergence test done by halving/doubling stepsizes via

log2(error[i+1]/error[i])

Returns the mean of the convergence estimates.