|
| 1 | +--- |
| 2 | +title: 'pyro: a framework for hydrodynamics explorations and prototyping' |
| 3 | + |
| 4 | +tags: |
| 5 | +- python |
| 6 | +- hydrodynamics |
| 7 | +- astrophysics |
| 8 | +- physics |
| 9 | +- partial differential equations |
| 10 | + |
| 11 | +authors: |
| 12 | +- name: Michael Zingale |
| 13 | + orcid: 0000-0001-8401-030X |
| 14 | + affiliation: 1 |
| 15 | +- name: Alice Harpole |
| 16 | + orcid: |
| 17 | + affiliation: 1 |
| 18 | +- name: Ian Hawke |
| 19 | + orcid: |
| 20 | + affiliation: 2 |
| 21 | + |
| 22 | +affiliations: |
| 23 | +- name: Department of Physics and Astronomy, Stony Brook University |
| 24 | + index: 1 |
| 25 | +- name: University of Southampton |
| 26 | + index: 2 |
| 27 | + |
| 28 | +date: 10 August 2018 |
| 29 | + |
| 30 | +bibliography: paper.bib |
| 31 | +--- |
| 32 | + |
| 33 | +# Summary |
| 34 | + |
| 35 | +pyro |
| 36 | + |
| 37 | +In the time since the first pyro paper [@pyroI], the code has |
| 38 | +undergone considerable development, gained a large number of solvers, |
| 39 | +adopted unit testing through pytest and documentation through sphinx, |
| 40 | +and a number of new contributors. pyro's functionality can now |
| 41 | +be accessed directly through a `Pyro()` class, in addition to the |
| 42 | +original commandline script interface. This new interface in particular |
| 43 | +allows for easy use within Jupyter notebooks. |
| 44 | + |
| 45 | +The original goal of pyro was to learn hydrodynamics methods through |
| 46 | +example, and it still serves this goal. At Stony Brook, pyro is used |
| 47 | +with new undergraduate researchers in our group to introduce them to |
| 48 | +the ideas of computational hydrodynamics. But the current framework |
| 49 | +has evolved to the point where pyro is used for prototyping |
| 50 | +hydrodynamics solvers before implementing them into science codes. An |
| 51 | +example of this is the 4th-order compressible solver built on the ideas |
| 52 | +of spectral deferred corrections (the `compressible_sdc` solver). This |
| 53 | +implementation was used as the model for the development of higher-order |
| 54 | +schemes in the Castro hydrodynamics code [@castro]. The low Mach |
| 55 | +number atmospheric solver (`lm_atm`) is based on the Maestro code [@maestro] |
| 56 | +and the pyro implementation will be used to prototype new low Mach number |
| 57 | +algorithms before porting them to science codes. |
| 58 | + |
| 59 | +The current pyro solvers are: |
| 60 | + |
| 61 | + * linear advection (including a second-order unsplit CTU scheme, a |
| 62 | + method-of-lines piecewise linear solver☆, a 4th-order |
| 63 | + finite-volume scheme☆, and a WENO method☆) |
| 64 | + |
| 65 | + * compressible hydrodynamics (including a second-order unsplit CTU |
| 66 | + scheme, a method-of-lines piecewise linear solver☆, |
| 67 | + and two 4th-order finite-volume schemes, one with Runge-Kutta |
| 68 | + integration and the other using a spectral deferred corrections method☆) |
| 69 | + |
| 70 | + * diffusion using a second-order discretization |
| 71 | + |
| 72 | + * incompressible |
| 73 | + |
| 74 | + * low Mach number atmospheric solver |
| 75 | + |
| 76 | + * shallow water equations solver |
| 77 | + |
| 78 | +(solvers since the first pyro paper are marked with a &star). |
| 79 | + |
| 80 | + |
| 81 | +# References |
0 commit comments