11Design ideas
22============
33
4- pyro is written entirely in python (by default, we expect python 3) ,
5- with a few low-level routines compiled *just-in-time * by `numba ` for performance. The
4+ pyro is written entirely in python,
5+ with a few low-level routines compiled *just-in-time * by `` numba ` ` for performance. The
66``numpy `` package is used for representing arrays throughout the
77python code and the ``matplotlib `` library is used for
88visualization. Finally, ``pytest `` is used for unit testing of some
@@ -11,9 +11,9 @@ components.
1111All solvers are written for a 2-d grid. This gives a good balance
1212between complexity and speed.
1313
14- A paper describing the design philosophy of pyro was accepted to
15- Astronomy & Computing `[paper link] <http://adsabs.harvard.edu/abs/2013arXiv1306.6883Z >`_.
16-
14+ A paper describing the design philosophy of pyro was published in
15+ Astronomy & Computing `[A&C paper link]<http://adsabs.harvard.edu/abs/2013arXiv1306.6883Z> `_.
16+ A follow-on paper was published in JOSS ` [JOSS paper link]<https://joss.theoj.org/papers/10.21105/joss.01265> `_.
1717
1818Directory structure
1919-------------------
@@ -42,81 +42,19 @@ The main code is all contained in the ``pyro/`` subdirectory. Here we discuss t
4242
4343The files for each solver are in their own sub-directory, with
4444additional sub-directories for the mesh and utilities. Each solver has
45- two sub-directories: ``problems/ `` and ``tests/ ``. These store the
46- different problem setups for the solver and reference output for
47- testing.
48-
49- The overall structure is:
50-
51- * ``advection/ ``: The linear advection equation solver using the CTU
52- method. All advection-specific routines live here.
53-
54- * ``problems/ ``: The problem setups for the advection solver.
55- * ``tests/ ``: Reference advection output files for comparison and regression testing.
56-
57- * ``advection_fv4/ ``: The fourth-order accurate finite-volume advection
58- solver that uses RK4 time integration.
59-
60- * ``problems/ ``: The problem setups for the fourth-order advection solver.
61- * ``tests/ ``: Reference advection output files for comparison and regression testing.
62-
63- * ``advection_nonuniform/ ``: The solver for advection with a non-uniform velocity field.
45+ two sub-directories for problems and tests, appearing as:
6446
65- * ``problems/ ``: The problem setups for the non-uniform advection solver.
66- * ``tests/ ``: Reference advection output files for comparison and regression testing.
47+ * *solver-name *
6748
68- * ``advection_rk / ``: The linear advection equation solver using the
69- method-of-lines approach .
49+ * ``problems / `` : the problem setups and inputs file that work for this solver.
50+ In some cases, this might be a symlink to a similar solver that we inherit from .
7051
71- * ``problems/ ``: This is a symbolic link to the advection/problems/ directory.
72- * ``tests/ ``: Reference advection output files for comparison and regression testing.
52+ * ``tests/ ``. reference output (HDF5 files) used for the regression testing.
7353
74- * ``advection_weno/ ``: The method-of-lines WENO solver for linear
75- advection.
76-
77- * ``problems/ ``: This is a symbolic link to the advection/problems/ directory.
54+ The other directories include:
7855
7956* ``analysis/ ``: Various analysis scripts for processing pyro output files.
8057
81- * ``compressible/ ``: The fourth-order accurate finite-volume compressible
82- hydro solver that uses RK4 time integration. This is built from the
83- method of McCourquodale and Colella (2011).
84-
85- * ``problems/ ``: The problem setups for the fourth-order compressible hydrodynamics solver.
86- * ``tests/ ``: Reference compressible hydro output for regression testing.
87-
88- * ``compressible_fv4/ ``: The compressible hydrodynamics solver using the
89- CTU method. All source files specific to this solver live here.
90-
91- * ``problems/ ``: This is a symbolic link to the compressible/problems/ directory.
92- * ``tests/ ``: Reference compressible hydro output for regression testing.
93-
94- * ``compressible_rk/ ``: The compressible hydrodynamics solver using method of lines integration.
95-
96- * ``problems/ ``: This is a symbolic link to the compressible/problems/ directory.
97- * ``tests/ ``: Reference compressible hydro output for regression testing.
98-
99- * ``compressible_sdc/ ``: The fourth-order compressible solver,
100- using spectral-deferred correction (SDC) for the time integration.
101-
102- * ``problems/ ``: This is a symbolic link to the compressible/problems/ directory.
103- * ``tests/ ``: Reference compressible hydro output for regression testing.
104-
105- * ``diffusion/ ``: The implicit (thermal) diffusion solver. All diffusion-specific routines live here.
106-
107- * ``problems/ ``: The problem setups for the diffusion solver.
108- * ``tests/ ``: Reference diffusion output for regression testing.
109-
110- * ``incompressible/ ``: The incompressible hydrodynamics solver. All incompressible-specific routines live here.
111-
112- * ``problems/ ``: The problem setups for the incompressible solver.
113- * ``tests/ ``: Reference incompressible hydro output for regression testing.
114-
115- * ``lm_atm/ ``: The low Mach number hydrodynamics solver for atmospherical flows. All low-Mach-specific files live here.
116-
117- * ``problems/ ``: The problem setups for the low Mach number solver.
118- * ``tests/ ``: Reference low Mach hydro output for regression testing.
119-
12058* ``mesh/ ``: The main classes that deal with 2-d cell-centered grids
12159 and the data that lives on them. All the solvers use these classes
12260 to represent their discretized data.
@@ -125,17 +63,11 @@ The overall structure is:
12563 solver is used on its own to illustrate how multigrid works, and
12664 directly by the diffusion and incompressible solvers.
12765
128- * ``problems/ ``: The problem setups for when the multigrid solver is used in a stand-alone fashion.
129- * ``tests/ ``: Reference multigrid solver solutions (from when the multigrid solver is used stand-alone) for regression testing.
130-
131- * ``particles/ ``: The solver for Lagrangian tracer particles.
132-
133- * ``tests/ ``: Particle solver testing.
134-
135- * ``swe/ ``: The shallow water solver.
66+ This includes its own ``problems `` and ``tests `` directories for when
67+ it is run in a standalone fashion.
13668
137- * ``problems / ``: The problem setups for the shallow water solver.
138- * `` tests/ ``: Reference shallow water output for regression testing .
69+ * ``particles / ``: The solver for Lagrangian tracer particles. This is meant
70+ to be used with another solver .
13971
14072* ``util/ ``: Various service modules used by the pyro routines,
14173 including runtime parameters, I/O, profiling, and pretty output
0 commit comments