Changes

Jump to navigation Jump to search
Line 55: Line 55:  
== ode15{i,s} : Matlab Compatible DAE solvers ==
 
== ode15{i,s} : Matlab Compatible DAE solvers ==
   −
An initial implementation of a Matlab compatible ode15{i,s} solver,
+
An initial implementation of Matlab compatible Differential Algebraic Equations (DAE) solvers, {{manual|ode15i}} and {{manual|ode15s}}, based on [https://computing.llnl.gov/projects/sundials SUNDIALS],  
based on [http://computation.llnl.gov/projects/sundials SUNDIALS],  
+
was done by [https://gsoc2016ode15s.blogspot.com/ Francesco Faccio during GSoC 2016]. The code is maintained in the main Octave repository and consists mainly of the following three files: [https://hg.savannah.gnu.org/hgweb/octave/file/tip/libinterp/dldfcn/__ode15__.cc {{path|libinterp/dldfcn/__ode15__.cc}}], [https://hg.savannah.gnu.org/hgweb/octave/file/tip/scripts/ode/ode15i.m {{path|scripts/ode/ode15i.m}}] and [https://hg.savannah.gnu.org/hgweb/octave/file/tip/scripts/ode/ode15s.m {{path|scripts/ode/ode15s.m}}].
was done by Francesco Faccio during GSOC 2016.
  −
The blog describing the work is [http://gsoc2016ode15s.blogspot.it/ here].
  −
The resulting code has been pushed into the main Octave repository in the development branch and
  −
consists mainly of the following three files
  −
[https://hg.savannah.gnu.org/hgweb/octave/file/tip/libinterp/dldfcn/__ode15__.cc __ode15__.cc],
  −
[https://hg.savannah.gnu.org/hgweb/octave/file/tip/scripts/ode/ode15i.m ode15i.m] and
  −
[https://hg.savannah.gnu.org/hgweb/octave/file/tip/scripts/ode/ode15s.m ode15s.m].
  −
The list of outstanding tracker tickets concerning this implementation can be found
  −
[https://savannah.gnu.org/search/?Search=Search&words=ode15&type_of_search=bugs&only_group_id=1925&exact=1&max_rows=25#options here]
     −
Possible useful improvements that could be done in a new project include:
+
The {{manual|decic}} function for selecting consistent initial conditions for ode15i can be made more Matlab compatible by using [https://faculty.smu.edu/shampine/cic.pdf another algorithm].  Another useful extension is to make ode15{i,s} work with datatypes other than double and to improve interpolation at intermediate time steps.
   −
* Implement a better function for selecting consistent initial conditions compatible with Matlab's decic.m. The algorithm to use is described [http://faculty.smu.edu/shampine/cic.pdf here]
  −
* make ode15{i,s} work with datatypes other than double
  −
* improve interpolation at intermediate time steps.
  −
* general code profiling and optimization
  −
  −
Other tasks, not strictly connected to ode15{i,s} but closely related, that could be added
  −
to a possible project plan would be improving documentation and tests in odepkg and removing
  −
overlaps with the documentation in core Octave.
  −
   
* '''Required skills'''
 
* '''Required skills'''
 
: Knowledge of Octave, C/C++; familiarity with numerical methods for DAEs
 
: Knowledge of Octave, C/C++; familiarity with numerical methods for DAEs

Navigation menu