11Compressible hydrodynamics solvers
22==================================
33
4- The equations of compressible hydrodynamics take the form:
4+ The Euler equations of compressible hydrodynamics take the form:
55
66.. math ::
77
88 \frac {\partial \rho }{\partial t} + \nabla \cdot (\rho U) &= 0 \\
99 \frac {\partial (\rho U)}{\partial t} + \nabla \cdot (\rho U U) + \nabla p &= \rho g \\
1010 \frac {\partial (\rho E)}{\partial t} + \nabla \cdot [(\rho E + p ) U] &= \rho U \cdot g
1111
12- with :math: `\rho E = \rho e + \frac {1 }{2 } \rho |U|^2 ` and :math: `p = p(\rho , e)`.
12+ with :math: `\rho E = \rho e + \frac {1 }{2 } \rho |U|^2 ` and :math: `p =
13+ p(\rho , e)`. Note these do not include any dissipation terms, since
14+ they are usually negligible in astrophysics.
1315
14- pyro has several compressible solvers:
16+ pyro has several compressible solvers to solve this equation set.
17+ The implementations here have flattening at shocks, artificial
18+ viscosity, a simple gamma-law equation of state, and (in some cases) a
19+ choice of Riemann solvers. Optional constant gravity in the vertical
20+ direction is allowed.
21+
22+ .. note ::
23+
24+ All the compressible solvers share the same ``problems/ ``
25+ directory, which lives in ``compressible/problems/ ``. For the
26+ other compressible solvers, we simply use a symbolic-link to this
27+ directory in the solver's directory.
1528
16- * :py:mod: `compressible ` is based on a directionally unsplit (the
17- corner transport upwind algorithm) piecewise linear method for the
18- Euler equations
29+ ``compressible `` solver
30+ -----------------------
1931
20- * :py:mod: `compressible_rk ` uses a method of lines time-integration
21- approach with piecewise linear spatial reconstruction for the Euler
22- equations
32+ :py:mod: `compressible ` is based on a directionally unsplit (the corner
33+ transport upwind algorithm) piecewise linear method for the Euler
34+ equations, following :cite: `colella:1990 `. This is overall second-order
35+ accurate.
2336
24- * :py:mod: `compressible_fv4 ` uses a 4th order accurate method with RK4
25- time integration
37+ The parameters for this solver are:
2638
27- * :py:mod: `compressible_sdc ` uses a 4th order accurate method
28- with spectral-deferred correction (SDC) for the time integration
39+ .. include :: compressible_defaults.inc
2940
30- The implementations here have flattening at shocks, artificial
31- viscosity, a simple gamma-law equation of state, and (in some cases) a
32- choice of Riemann solvers. Optional constant gravity in the vertical
33- direction is allowed.
41+ ``compressible_rk `` solver
42+ --------------------------
43+
44+ :py:mod: `compressible_rk ` uses a method of lines time-integration
45+ approach with piecewise linear spatial reconstruction for the Euler
46+ equations. This is overall second-order accurate.
3447
35- The main parameters that affect this solver are:
36-
37- +-----------------------------------------------------------------------------+
38- | ``[driver]`` |
39- +==================+==========================================================+
40- | ``cfl`` | the advective CFL number (what fraction of a zone can |
41- | | we cross in a single timestep) |
42- +------------------+----------------------------------------------------------+
43-
44- +-------------------------------------------------------------------------------+
45- | ``[compressible]`` |
46- +====================+==========================================================+
47- | ``use_flattening`` | do we flatten the profiles at shocks? (0=no, 1=yes) |
48- +--------------------+----------------------------------------------------------+
49- | ``z0`` | |
50- +--------------------+ |
51- | ``z1`` | the parameters that affect the flattening algorithm |
52- +--------------------+ |
53- | ``delta `` | |
54- +--------------------+----------------------------------------------------------+
55- | ``cvisc`` | the coefficient for the artifical viscosity |
56- +--------------------+----------------------------------------------------------+
57- | ``limiter`` | what type of limiting to use in reconstructing the |
58- | | slopes. 0 means use an unlimited second-order centered |
59- | | difference. 1 is the MC limiter, and 2 is the 4th-order |
60- | | MC limiter |
61- +--------------------+----------------------------------------------------------+
62- | ``riemann`` | which Riemann solver do we use? "HLLE" for the HLLE |
63- | | solver, or "CGF" for the Colella, Glaz, and Ferguson |
64- | | solver |
65- +--------------------+----------------------------------------------------------+
66- | ``grav`` | the gravitational acceleration (vertical/y direction) |
67- +--------------------+----------------------------------------------------------+
68- | ``temporal_method`` | the MOL integration method to use (RK2, TVD2, TVD3, RK4) |
69- | | (``compressible_rk `` and ``compressible_fv4 `` only) |
70- +--------------------+----------------------------------------------------------+
71-
72- +-------------------------------------------------------------------------------+
73- | ``[eos]`` |
74- +====================+==========================================================+
75- | ``gamma`` | the constant adiabatic index for the gas |
76- +--------------------+----------------------------------------------------------+
48+ The parameters for this solver are:
49+
50+ .. include :: compressible_rk_defaults.inc
51+
52+ ``compressible_fv4 `` solver
53+ ---------------------------
54+
55+ :py:mod: `compressible_fv4 ` uses a 4th order accurate method with RK4
56+ time integration, following :cite: `mccorquodalecolella `.
57+
58+ The parameter for this solver are:
59+
60+ .. include :: compressible_fv4_defaults.inc
61+
62+
63+ ``compressible_sdc `` solver
64+ ---------------------------
65+
66+ :py:mod: `compressible_sdc ` uses a 4th order accurate method with
67+ spectral-deferred correction (SDC) for the time integration. This
68+ shares much in common with the ``compressible_fv4 `` solver, aside from
69+ how the time-integration is handled.
70+
71+ The parameters for this solver are:
72+
73+ .. include :: compressible_sdc_defaults.inc
7774
7875
7976Example problems
@@ -89,12 +86,6 @@ Example problems
8986 :func: `preevolve() <compressible_fv4.simulation.Simulation.preevolve> ` method will convert
9087 these to cell-averages automatically after initialization.
9188
92- .. note ::
93-
94- All the compressible solvers share the same ``problems/ ``
95- directory, which lives in ``compressible/problems/ ``. For the
96- other compressible solvers, we simply use a symbolic-link to this
97- directory in the solver's directory.
9889
9990Sod
10091^^^
0 commit comments