{"id":32578319,"url":"https://github.com/hugomvale/daskr","last_synced_at":"2026-02-26T19:05:19.777Z","repository":{"id":284429832,"uuid":"954903954","full_name":"HugoMVale/daskr","owner":"HugoMVale","description":"Modernized version of DASKR, a differential-algebraic system solver with rootfinding.","archived":false,"fork":false,"pushed_at":"2025-05-30T20:47:37.000Z","size":4162,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-30T21:42:01.262Z","etag":null,"topics":["daskr","daspk","dassl","fortran","fpm","mathematics","ode-solver"],"latest_commit_sha":null,"homepage":"https://hugomvale.github.io/daskr/","language":"Fortran","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HugoMVale.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-03-25T19:48:13.000Z","updated_at":"2025-05-30T20:47:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"150c6fbb-f2ee-4c1c-84de-7741be69f6af","html_url":"https://github.com/HugoMVale/daskr","commit_stats":null,"previous_names":["hugomvale/daskr"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/HugoMVale/daskr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HugoMVale%2Fdaskr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HugoMVale%2Fdaskr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HugoMVale%2Fdaskr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HugoMVale%2Fdaskr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HugoMVale","download_url":"https://codeload.github.com/HugoMVale/daskr/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HugoMVale%2Fdaskr/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281642036,"owners_count":26536358,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-29T02:00:06.901Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["daskr","daspk","dassl","fortran","fpm","mathematics","ode-solver"],"created_at":"2025-10-29T14:56:11.912Z","updated_at":"2025-10-29T14:56:14.259Z","avatar_url":"https://github.com/HugoMVale.png","language":"Fortran","funding_links":[],"categories":[],"sub_categories":[],"readme":"# daskr\n\nModernized version of DASKR, a differential-algebraic system solver with rootfinding.\n\n[![Test](https://github.com/HugoMVale/daskr/actions/workflows/test.yml/badge.svg)](https://github.com/HugoMVale/daskr/actions)\n[![codecov](https://codecov.io/gh/HugoMVale/daskr/graph/badge.svg?token=AgjzeQ1qFL)](https://codecov.io/gh/HugoMVale/daskr)\n[![Language](https://img.shields.io/badge/-Fortran-734f96?logo=fortran\u0026logoColor=white)](https://github.com/topics/fortran)\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./example/example_heat_c.gif\" width=\"500\" alt=\"Solution of food web problem\"\u003e\n\u003c/p\u003e\n\n\u003e [!NOTE]\n\u003e This is a work in progress. I've modernized the examples and the preconditioners, and I'm now working on the library code itself.\n\n## Description\n\n`daskr` is a library for solving systems of differential-algebraic equations of the form:\n\n$$ G(t, y, \\dot{y}) = 0 $$\n$$ y(t_0) = y_0 $$\n$$ \\dot{y}(t_0) = \\dot{y}_0 $$\n\nwhere $G$, $y$, and $\\dot{y}$ are $N$-dimensional vectors. The linear systems which arise at each time step can be solved with dense or banded _direct_ methods (Gaussian elimination with partial pivoting) or with _iterative_ Krylov methods (preconditioned [GMRES]). Additionally, it includes the ability to find the roots of a given set of functions while carrying out the integration.\n\n[GMRES]: https://en.wikipedia.org/wiki/Generalized_minimal_residual_method\n\n## History\n\nThe first version of the library, named DASSL [^1], solved the linear systems arising from the implicit time integration methods at each time step using direct methods. DASPK [^2][^3] extended the capabilities of DASSL to include iterative methods, which can be significantly more efficient, especially for large-scale problems. Furthermore, DASPK added the ability to initialize $\\dot{y}_0$ in case it is not known. Lastly, DASKR [^4] included the ability to find the roots of a given set of functions while integrating the DAE system.\n\n| Version | Date written  | Last update | Direct solver | Iterative solver | Root finding |    Standard   |\n|:-------:|:-------------:|:-----------:|:-------------:|:----------------:|:------------:|:-------------:|\n|  daskr  |      2025     |      --     |       ☑       |         ☑       |       ☑      | Fortran 2018  |\n|  DASKR  |      2002     |     2011    |       ☑       |         ☑       |       ☑      |   FORTRAN 77  |\n|  DASPK  |      1989     |     2000    |       ☑       |         ☑       |       ☐      |   FORTRAN 77  |\n|  DASSL  |      1983     |     2000    |       ☑       |         ☐       |       ☐      |   FORTRAN 77  |\n\n`daskr` is a modernization of the DASKR code [4], intended to make the library easier to use and maintain. The main changes include:\n\n* [ ] Conversion from fixed-form (`.f`) to free-form (`.f90`).\n* [ ] Conversion from upper case to lower case.\n* [ ] Modularization.\n* [ ] Removal of `DATA` statements, labeled do loops, and (most) `goto`s.\n* [ ] Addition of `intent(in/out)` to all procedures.\n* [ ] Addition of explicit interfaces to BLAS routines.\n* [ ] Implementation of a C API.\n* [ ] Automatic code documentation with FORD.\n\n## Build instructions\n\n### With fpm\n\nThe easiest way to build/test the code and run the examples is by means of [`fpm`](https://fpm.fortran-lang.org/).\n\nTo build the library, do:\n\n```sh\nfpm build --profile release\n```\n\nTo run the tests, do:\n\n```sh\nfpm test --profile release\n```\n\nTo run the provided examples, do:\n\n```sh\nfpm run --example \"example_name\" --profile release\n```\n\n### With meson\n\nFirst, setup the build:\n\n```sh\nmeson setup builddir -Dbuild_tests=true\n```\n\nTo build the libraries, do:\n\n```sh\nmeson compile -C builddir\n```\n\nTo run the tests, do:\n\n```sh\nmeson test -C builddir\n```\n\n## Licence\n\n* The original `daskr` code is covered by this [license](./original/LICENSE).\n* Modifications introduced in this project are covered under the MIT license.\n\n### References\n\n[^1]: L. Petzold, \"A Description of DASSL: A Differential/Algebraic System Solver, 1982.\n\n[^2]: Brown, Peter N., Alan C. Hindmarsh, and Linda R. Petzold. \"Using Krylov methods in the solution of large-scale differential-algebraic systems.\" SIAM Journal on Scientific Computing 15.6 (1994): 1467-1488. https://doi.org/10.1137/0915088\n\n[^3]: Brown, Peter N., Alan C. Hindmarsh, and Linda R. Petzold. \"Consistent initial condition calculation for differential-algebraic systems.\" SIAM Journal on Scientific Computing 19.5 (1998): 1495-1512.\nhttps://doi.org/10.1137/S1064827595289996\n\n[^4]: Original source code from [Netlib](https://www.netlib.org/ode/).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhugomvale%2Fdaskr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhugomvale%2Fdaskr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhugomvale%2Fdaskr/lists"}