Skip to content

SciML/DASKR.jl

Repository files navigation

DASKR

Join the chat at https://gitter.im/JuliaDiffEq/Lobby

Build Status Coverage Status codecov.io

A solver for differential algebraic equations (DAE). This wraps the original DASKR FORTRAN solver. DASKR is a derivative of the DASSL solver with root finding.

An interface to the JuliaDiffEq common interface is also provided.

Common Interface Example

using DASKR
u0 = [1.0, 0, 0]
du0 = [-0.04, 0.04, 0.0]
tspan = (0.0,100000.0)

function resrob(r,yp,y,p,tres)
    r[1]  = -0.04*y[1] + 1.0e4*y[2]*y[3]
    r[2]  = -r[1] - 3.0e7*y[2]*y[2] - yp[2]
    r[1] -=  yp[1]
    r[3]  =  y[1] + y[2] + y[3] - 1.0
end

prob = DAEProblem(resrob,u0,du0,tspan)    
sol = solve(prob, daskr())

The options for solve are documented at the common solver options page. For more details, see the ODE Tutorial and the DAE Tutorial pages from DifferentialEquations.jl.

Citing

Please cite DifferentialEquations.jl and the original algorithm:

@article{rackauckas2017differentialequations,
  title={Differentialequations. jl--a performant and feature-rich ecosystem for solving differential equations in julia},
  author={Rackauckas, Christopher and Nie, Qing},
  journal={Journal of Open Research Software},
  volume={5},
  number={1},
  year={2017},
  publisher={Ubiquity Press}
}

@article{brown1994using,
  title={Using Krylov methods in the solution of large-scale differential-algebraic systems},
  author={Brown, Peter N and Hindmarsh, Alan C and Petzold, Linda R},
  journal={SIAM Journal on Scientific Computing},
  volume={15},
  number={6},
  pages={1467--1488},
  year={1994},
  publisher={SIAM}
}

@article{brown1998consistent,
  title={Consistent initial condition calculation for differential-algebraic systems},
  author={Brown, Peter N and Hindmarsh, Alan C and Petzold, Linda R},
  journal={SIAM Journal on Scientific Computing},
  volume={19},
  number={5},
  pages={1495--1512},
  year={1998},
  publisher={SIAM}
}