DormandPrince

A simplified Julia-native implementation of the Dormand-Prince 5th and 8th order solvers

https://github.com/queracomputing/dormandprince.jl

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.3%) to scientific vocabulary

Keywords from Contributors

mesh interactive
Last synced: 6 months ago · JSON representation ·

Repository

A simplified Julia-native implementation of the Dormand-Prince 5th and 8th order solvers

Basic Info
  • Host: GitHub
  • Owner: QuEraComputing
  • License: other
  • Language: Julia
  • Default Branch: main
  • Homepage:
  • Size: 186 KB
Statistics
  • Stars: 3
  • Watchers: 2
  • Forks: 0
  • Open Issues: 3
  • Releases: 5
Created over 2 years ago · Last pushed over 1 year ago
Metadata Files
Readme License Citation

README.md

DormandPrince.jl

codecov

Julia-native implementation of the Dormand-Prince 5th and 8th order solvers

Installation

DormandPrince is a   Julia Language   package. To install DormandPrince, please open Julia's interactive session (known as REPL) and press ] key in the REPL to use the package mode, then type the following command

julia pkg> add DormandPrince

Usage

Single End-Time

```julia julia> using DormandPrince

define your ODE, in this case, dy/dx = 0.85y

julia> function fcn(x, y, f) f[1] = 0.85y[1] end

Create a solver object. We will use the 5th order solver and

start integrating at t = 0.0 with initial value of 19.0

julia> solver = DP5Solver(fcn, 0.0, [19.0])

Begin integration up to t = 2.1

julia> integrate!(solver, 2.1)

getcurrentstate will return the answer

julia> getcurrentstate(solver) ```

Both the DP5Solver and DP8Solver's are stateful allowing for memory-efficient integration to future end times from the last integrated end point (e.g. if you chose t = 1.0 as your endpoint you can call integrate! again with t=2.0 and it will "carry forward" the work starting from t = 1.0 instead of requiring you to set things up all over again).

Multiple End-Times

```julia julia> using DormandPrince

Define ODE

julia> function fcn(x, y, f) f[1] = 0.85y[1] end

Define times of interest to analyze/perform actions on the solution

julia> times = [1.0, 1.1, 1.9, 2.4]

Create the solver object, with integration starting from t = 0.0 and initial value of 19.0

julia> solver = DP5Solver(fcn, 0.0, [19.0])

Empty array to store intermediate values

julia> intermediate_values = []

Use callback to store intermediate values. The solver object will also be mutated to store the solution

found at the last time point.

julia> integrate!(solver, times) do time, val push!(intermediate_values, val[]) end

```

You may also create a SolverIterator that can then be iterated over. Note that this will require a fresh solver

julia for (time, value) in SolverIterator(solver, times) println("Time: ", time, " ", "Value: ", value[]) end

License

Apache License 2.0

Owner

  • Name: QuEra Computing Inc.
  • Login: QuEraComputing
  • Kind: organization
  • Email: info@quera.com
  • Location: United States of America

Building scalable quantum machines to make impossible problems simple.

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: DormandPrince.jl
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Phillip
    family-names: Weinberg
    orcid: 'https://orcid.org/0000-0002-0654-9761'
    affiliation: QuEra Computing Inc.
    email: pweinberg@quera.com
  - given-names: John
    family-names: Long
    email: jlong@quera.com
    affiliation: QuEra Computing Inc.
    orcid: 'https://orcid.org/0009-0005-7557-197X'
repository-code: 'https://github.com/QuEraComputing/DormandPrince.jl'
abstract: >-
  Julia-native implementation of the Dormand-Prince 5th and
  8th order solvers
keywords:
  - julia
  - ordinary differential equation
license: Apache-2.0

GitHub Events

Total
  • Issue comment event: 1
  • Pull request event: 1
  • Create event: 1
Last Year
  • Issue comment event: 1
  • Pull request event: 1
  • Create event: 1

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 116
  • Total Committers: 3
  • Avg Commits per committer: 38.667
  • Development Distribution Score (DDS): 0.457
Past Year
  • Commits: 1
  • Committers: 1
  • Avg Commits per committer: 1.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Phillip Weinberg w****8@g****m 63
John Long j****l@p****h 48
dependabot[bot] 4****] 5
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 6
  • Total pull requests: 22
  • Average time to close issues: 10 days
  • Average time to close pull requests: 2 days
  • Total issue authors: 3
  • Total pull request authors: 3
  • Average comments per issue: 1.67
  • Average comments per pull request: 0.86
  • Merged pull requests: 21
  • Bot issues: 0
  • Bot pull requests: 6
Past Year
  • Issues: 0
  • Pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 1.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 1
Top Authors
Issue Authors
  • weinbe58 (4)
  • Roger-luo (1)
Pull Request Authors
  • dependabot[bot] (12)
  • weinbe58 (11)
  • johnzl-777 (10)
Top Labels
Issue Labels
documentation (1)
Pull Request Labels
dependencies (12)

Packages

  • Total packages: 1
  • Total downloads:
    • julia 1 total
  • Total dependent packages: 1
  • Total dependent repositories: 0
  • Total versions: 7
juliahub.com: DormandPrince

A simplified Julia-native implementation of the Dormand-Prince 5th and 8th order solvers

  • Versions: 7
  • Dependent Packages: 1
  • Dependent Repositories: 0
  • Downloads: 1 Total
Rankings
Dependent repos count: 10.0%
Average: 25.2%
Dependent packages count: 40.3%
Last synced: 6 months ago

Dependencies

.github/workflows/CI.yml actions
  • actions/checkout v2 composite
  • codecov/codecov-action v2 composite
  • julia-actions/cache v1 composite
  • julia-actions/julia-buildpkg v1 composite
  • julia-actions/julia-processcoverage v1 composite
  • julia-actions/julia-runtest v1 composite
  • julia-actions/setup-julia v1 composite
.github/workflows/CompatHelper.yml actions
.github/workflows/TagBot.yml actions