LSODE: Difference between revisions
Created page with '{{solvers}} {{missing}}' |
No edit summary |
||
| Line 1: | Line 1: | ||
{{solvers}} | {{solvers}} | ||
{{ | {{stub}} | ||
This is the ASCEND binding to the well-known [http://www.llnl.gov/casc/odepack/download/lsode_agree.html '''LSODE''' solver from LLNL]. Provides multi-step ODE integration techniques both implicit and explicit (BDF and AM). | |||
Note that although '''LSODE''' is an [[ODE]] solver, it is used in ASCEND as a [[DAE]] solver through the use of an 'inner loop' solver inside '''LSODE'''. The architecture at this stage is a bit messy: '''LSODE''' just wraps around the Solver instance of [[QRSlv]] currently assigned to the model (Simulation::setSolver). This needs to be generalised so that any [[NLA]] solver can be used for the inner loop. | |||
'''LSODE''' extracts solutions for the differential variables using the [[QRSlv]] solution of from the inner loop (by FIXing the states and FREEing the derivatives). Then these derivatives and the corresponding differential variable are given to '''LSODE''' for time-stepping. | |||
The use of an inner loop will make '''LSODE''' slower that [[IDA]] but it does have the benefit of giving a jacobian matrix from which system eigenvalues can be computed: | |||
<math> | |||
\frac{\partial x'}{\partial x} | |||
</math> | |||
This matrix is accessible using the integrator_write_matrix or Integrator::writeMatrix function and is written in a form that can be read into the Python <tt>scipy</tt> tool, Matlab, and elsewhere (the [[MatrixMarket]] format). | |||
== Solver parameters == | |||
<pre>meth | |||
miter | |||
maxord | |||
timing | |||
rtolvect | |||
rtol | |||
atolvect | |||
atol | |||
</pre> | |||
[[Category:Solvers]] | |||
[[Category:Stubs]] | |||
Revision as of 10:14, 19 May 2010
| NLA |
|---|
| QRSlv |
| CMSlv |
| IPSlv |
| NLP |
| CONOPT |
| IPOPT |
| TRON |
| MINOS |
| Opt |
| NGSlv |
| DAE/ODE |
| IDA |
| LSODE |
| DOPRI5 |
| RADAU5 |
| LA |
| Linsolqr |
| Linsol |
| LP |
| MakeMPS |
| Logic |
| LRSlv |
This is the ASCEND binding to the well-known LSODE solver from LLNL. Provides multi-step ODE integration techniques both implicit and explicit (BDF and AM).
Note that although LSODE is an ODE solver, it is used in ASCEND as a DAE solver through the use of an 'inner loop' solver inside LSODE. The architecture at this stage is a bit messy: LSODE just wraps around the Solver instance of QRSlv currently assigned to the model (Simulation::setSolver). This needs to be generalised so that any NLA solver can be used for the inner loop.
LSODE extracts solutions for the differential variables using the QRSlv solution of from the inner loop (by FIXing the states and FREEing the derivatives). Then these derivatives and the corresponding differential variable are given to LSODE for time-stepping.
The use of an inner loop will make LSODE slower that IDA but it does have the benefit of giving a jacobian matrix from which system eigenvalues can be computed:
<math> \frac{\partial x'}{\partial x} </math>
This matrix is accessible using the integrator_write_matrix or Integrator::writeMatrix function and is written in a form that can be read into the Python scipy tool, Matlab, and elsewhere (the MatrixMarket format).
Solver parameters
meth miter maxord timing rtolvect rtol atolvect atol