Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jacobwilliams/dvode
Modern Fortran Edition of the DVODE ODE Solver
https://github.com/jacobwilliams/dvode
adams-bashforth fortran fortran-package-manager ode vode
Last synced: about 5 hours ago
JSON representation
Modern Fortran Edition of the DVODE ODE Solver
- Host: GitHub
- URL: https://github.com/jacobwilliams/dvode
- Owner: jacobwilliams
- License: other
- Created: 2016-01-04T03:30:47.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2024-01-07T03:09:36.000Z (10 months ago)
- Last Synced: 2024-01-07T04:20:40.684Z (10 months ago)
- Topics: adams-bashforth, fortran, fortran-package-manager, ode, vode
- Language: Fortran
- Homepage:
- Size: 5.58 MB
- Stars: 4
- Watchers: 3
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
![dvode](media/logo.png)
============Modern Fortran Edition of the DVODE ODE Solver.
**THIS IS A WORK IN PROGRESS!**
[![GitHub release](https://img.shields.io/github/release/jacobwilliams/dvode.svg?style=plastic)](https://github.com/jacobwilliams/dvode/releases/latest)
[![Build Status](https://github.com/jacobwilliams/dvode/actions/workflows/CI.yml/badge.svg)](https://github.com/jacobwilliams/dvode/actions)
[![codecov](https://codecov.io/gh/jacobwilliams/dvode/branch/master/graph/badge.svg?token=BHtd51oUTE)](https://codecov.io/gh/jacobwilliams/dvode)### Documentation
The latest API documentation can be found [here](https://jacobwilliams.github.io/dvode/). This was generated from the source code using [FORD](https://github.com/Fortran-FOSS-Programmers/ford) (i.e. by running `ford ford.md`).### Compiling
The library can be compiled with recent versions the Intel Fortran Compiler and GFortran (and presumably any other Fortran compiler that supports modern standards).
A `fpm.toml` file is provided for compiling dvode with the [Fortran Package Manager](https://github.com/fortran-lang/fpm). For example, to build:
```
fpm build --profile release
```By default, the library is built with double precision (`real64`) real values. Explicitly specifying the real kind can be done using the following processor flags:
Preprocessor flag | Kind | Number of bytes
----------------- | ----- | ---------------
`REAL32` | `real(kind=real32)` | 4
`REAL64` | `real(kind=real64)` | 8
`REAL128` | `real(kind=real128)` | 16For example, to build a single precision version of the library, use:
```
fpm build --profile release --flag "-DREAL32"
```To run the unit tests:
```
fpm test --profile release
```To use `dvode` within your fpm project, add the following to your `fpm.toml` file:
```toml
[dependencies]
dvode = { git="https://github.com/jacobwilliams/dvode.git" }
```or, to use a specific version:
```toml
[dependencies]
dvode = { git="https://github.com/jacobwilliams/dvode.git", tag = "1.0.0" }
```The library requires some [BLAS](https://netlib.org/blas/) routines, which are included. However, the user may also choose to link to an external BLAS library. This can be done by using the `HAS_BLAS` compiler directive. For example:
```
fpm build --compiler gfortran --flag "-DHAS_BLAS -lblas"
```However, note that an external BLAS can only be used if the library is compiled with double precision (`real64`) reals.
### References
* Brown, Byrne, Hindmarsh, [VODE, A Variable-Coefficient ODE Solver](https://computing.llnl.gov/sites/default/files/ODEPACK_pub4_207532.pdf), June 1988.
* [ODEPACK](https://computing.llnl.gov/projects/odepack): Fortran ODE Solvers [LLNL]### See also
* [SUNDIALS](https://computing.llnl.gov/projects/sundials) The successor to VODE and other codes from LLNL. [(GitHub repo)](https://github.com/LLNL/sundials)
* A backup of another DVODE refactoring formerly located at https://www.radford.edu/~thompson/vodef90web/vodef90source/misc.html can be found at [CRquantum/dvode_backup](https://gitlab.com/CRquantum/dvode_backup).
* [DDEABM](https://github.com/jacobwilliams/ddeabm) Modern Fortran implementation of the DDEABM Adams-Bashforth algorithm.