Skip to content

Commit

Permalink
adding nodepy
Browse files Browse the repository at this point in the history
Signed-off-by: vsoch <vsochat@stanford.edu>
  • Loading branch information
vsoch committed Nov 22, 2020
1 parent e755f30 commit 396b520
Show file tree
Hide file tree
Showing 3 changed files with 102 additions and 0 deletions.
102 changes: 102 additions & 0 deletions _posts/software/2020-11-22-nodepy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
---
layout: post
title: "nodepy"
date: 2020-11-22
author: "@vsoch"
annotate_criteria: https://rseng.github.io/software/repository/github/ketch/nodepy/annotate-criteria/index.html
annotate_taxonomy: https://rseng.github.io/software/repository/github/ketch/nodepy/annotate-taxonomy/
categories:
- Software
---

Nodepy is a package for the analysis of numerical ODE solvers. Why is an ODE solver? Read on to learn more!

<br>

![{{ site.baseurl }}/assets/img/posts/showcase/nodepy-ploi.png]({{ site.baseurl }}/assets/img/posts/showcase/nodepy-plot.png)

<br>

Are you already familiar with nodepy? We encourage you to contribute to the [research software encyclopedia](https://rseng.github.io/rse/tutorials/annotation/) and annotate the respository:

<ul>
<li><a href="{{ page.annotate_criteria }}" target="_blank">Annotate the software criteria</a></li>
<li><a href="{{ page.annotate_taxonomy }}" target="_blank">Annotate the software taxonomy</a></li>
</ul>

otherwise, keep reading!

<!--more-->

- [What is nodepy?](#what-is)
- [How do I cite it?](#cite)
- [How do I get started?](#getting-started)
- [How do I contribute to the software survey](#contribute)
- [Where can I learn more?](#learn-more)

<a id="what-is">
## What is Nodepy?

Ordinary differential equations (ODEs) are extremely useful tools for describing multiple coupled quantities changing over time in deterministic settings. For example, they are used for modelling the motion of planets, electrical circuits, and dynamics of biological systems. In many cases they cannot be solved exactly and require numerical solutions. Numerical ODEs have developed as their own branch of mathematics, concerned with both accuracy and stability of solutions. NodePy is a Python library for numerical ODEs.

NodePy has been cited multiple times by practitioners, fuelling further development for years. It is based on Python's SymPy and NumPy libraries, and optionally NetworkX, CVXPY, and Scipy for specific algorithms.


#### Why is it useful?

In addition to having multiple algorithms 'out of the box', it also allows users to experiment with their own. There is a collection of tools with a common interface that helps users study the properties of these various algorithms. For example, it can determine stability and numerical accuracy automatically. NodePy is not meant to just be a collection of algorithms, but a tool to help students and practitioners develop and understand their own algorithms.


<a id="cite">
## How do I cite it?

There is an accompanying paper, which you can cite using:

```
@article{Ketcheson2020,
doi = {10.21105/joss.02515},
url = {https://doi.org/10.21105/joss.02515},
year = {2020},
publisher = {The Open Journal},
volume = {5},
number = {55},
pages = {2515},
author = {David I. Ketcheson and Hendrik Ranocha and Matteo Parsani and Umair Bin Waheed and Yiannis Hadjimichael},
title = {`NodePy`: A package for the analysis of numerical ODE solvers},
journal = {Journal of Open Source Software}
}
```

<a id="getting-started">
## How do I get started?

- [Nodepy Documentation](https://nodepy.readthedocs.io/)
- [JOSS paper](https://joss.theoj.org/papers/10.21105/joss.02515#).


<a id="contribute">
## How do I contribute to the software survey?

<ul>
<li><a href="{{ page.annotate_criteria }}" target="_blank">Annotate the software criteria</a></li>
<li><a href="{{ page.annotate_taxonomy }}" target="_blank">Annotate the software taxonomy</a></li>
</ul>

or read more about annotation [here]({{ site.baseurl }}/tutorials/annotate-your-software). You can clone the software repository to do
bulk annotation, or annotation any repository in the <a href="https://rseng.github.io/software/" target="_blank">software database</a>,
We want annotation to be fun, straight-forward, and easy, so we will be showcasing one repository to annotate per week.
If you'd like to request annotation of a particular repository (or addition to the software database)
please don't hesitate to [open an issue](https://github.com/rseng/software/issues) or even a pull request.

<a id="learn-more">
## Where can I learn more?

You might find these other resources useful:

- [The Research Software Database](https://github.com/rseng/software) on GitHub
- [RSEpedia Documentation](https://rseng.github.io/rse)
- [Google Docs Manuscript](https://docs.google.com/document/d/1wDb0udH9OrFWrMBsAVb8RrUMCKKRHoyEep7yveJ1d0k/edit) you are invited to contribute to.
- [Annotation Documentation for RSEpedia](https://rseng.github.io/rse/tutorials/annotation/)
- [Annotation Tutorial in RSEng docs](https://rseng.github.io/rse/tutorials/annotation/)

For any resource, you are encouraged to give feedback and contribute!
Binary file added assets/img/posts/showcase/nodepy-plot.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/img/posts/showcase/nodepy.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 396b520

Please sign in to comment.