-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsummary.tex
174 lines (144 loc) · 8.39 KB
/
summary.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
\section{Discussion} \label{sec:summary}
\subsection{Applicability and Limitations}
It is important to remember that the range of physical conditions over
which \texttt{Grackle} can be considered valid is not unlimited. In Figure
\ref{fig:valid-range}, we show the rough density range over which
different components of the solver are valid. The high density limit
of the non-equilibrium solver is set roughly by the reactions present
in the network and the range over which their rate coefficients are
trusted. The limits on the cooling tables correspond to the density
range over which they were calculated. Users are especially
cautioned against exceeding the upper density limit of the tabulated
cooling solver. The critical density above which energy levels are
populated according to LTE exceeds the upper limit of the tables for
many metal coolants \citep{2008MNRAS.385.1443S}. Thus, these tables
do not capture the NLTE to LTE transition where the cooling rates
change from scaling as $\rho^{2}$ to $\rho$. Hence, extrapolation
beyond the upper limit may result in vast over-prediction of the
cooling rate. If the use-case requires exceeding this limit, then the
high density metal table should be used in conjunction with the
non-equilibrium solver. In all cases, the valid temperature range is
roughly 1 K to 10$^{9}$ K. The tables computed with \texttt{Cloudy}
are defined over this temperature range. For the primordial
chemistry, we note that the reaction rates are defined over this
temperature range, if not explicitly valid. However, at all
temperatures, the rates describing the dominant processes are valid.
It is also extremely important to remember
that all \texttt{Grackle} calculations are based on the assumption that the
medium is optically thin. In practice, the length scale of optical
thickness will become very short as density increases.
\begin{figure}
\centering
\includegraphics[width=0.48\textwidth]{valid_range.pdf}
\caption{
The appropriate density range for different versions of the
\texttt{Grackle} solver. The high density metal cooling table (bottom)
explicitly spans the density range, 10$^{-6}$ cm$^{-3}$ $< n <$
10$^{12}$ cm$^{-3}$, but extrapolation down to $n = 10^{-10}$ cm$^{-3}$
is still valid, as indicated by the dashed line. For each
of these, the valid temperature range is roughly 1 K to 10$^{9}$
K.
} \label{fig:valid-range}
\end{figure}
The addition of radiative cooling to a simulation creates another
relevant length scale which must be kept in mind. The cooling length,
defined as the product of the local sound speed and the cooling time,
sets the approximate size of objects as they cool and condense
\citep{2009A&A...508..725I}. The cooling length is inversely
proportional to density, effectively setting a density limit for
any given spatial resolution. When this scale becomes unresolved,
radiative losses will be overpredicted, leading to unphysically high
densities and further exacerbating the resolution problem in a runaway
cycle. This effect is likely related to the over-cooling problem that
has classically plagued cosmological simulations
\citep[e.g.][]{1996ApJS..105...19K, 2001MNRAS.326.1228B}.
In Figure \ref{fig:cooling-length}, we show an estimate of the
cooling length for the scenario of a gas at Solar metallicity in a
\citet{2012ApJ...746..125H} radiation background at z = 0, noting how
quickly the cooling length drops below 1 kpc, and even 1 pc, for
densities relevant to galaxy formation simulations. This
length scale should be taken into consideration when choosing the
density threshold above which sub-grid models are applied.
\begin{figure*}
\centering
\includegraphics[width=0.84\textwidth]{cooling_length.pdf}
\caption{
The cooling length, defined as the product of the sound speed and
the cooling time, as a function of number density and temperature
for a gas with Solar metallicity exposed to a radiation field
defined by the model of \citet{2012ApJ...746..125H} at z = 0. The
narrow line extending from the middle, left to the bottom, right
represents the temperature where heating and cooling are
balanced. Above this line, the gas is being cooled while below
the line it is being heated.
} \label{fig:cooling-length}
\end{figure*}
\subsection{Simulation codes with Grackle}
To date, the following codes are known to have \texttt{Grackle}
implemented:
\begin{itemize}
\item AREPO \citep{2010MNRAS.401..791S}
\item ART-I \citep{1999PhDT........25K, 2002ApJ...571..563K}
\item ART-II \citep{2008ApJ...672...19R}
\item CHANGA \citep{2004NewA....9..137W, 2006MNRAS.373.1074S}
\item Cosmos++ \citep{2003ApJS..147..177A, 2005ApJ...635..723A}
\item Enzo \citep{2014ApJS..211...19B}
\item Gadget-3 \citep{2005MNRAS.364.1105S}
\item GAMER \citep{2010ApJS..186..457S}
\item GASOLINE \citep{2004NewA....9..137W}
\item Gear \citep{2012A&A...538A..82R, 2012ASPC..453..141R}
\item Gizmo \citep{2015MNRAS.450...53H}
\item RAMSES \citep{2002A&A...385..337T}
\item SPHS \citep{2012MNRAS.422.3037R}
\item SWIFT \citep{2013arXiv1309.3783G, 2016arXiv160602738S}
\end{itemize}
\subsection{Future Directions} \label{Future_Directions}
\subsubsection{Including new rates and models in Grackle}
The current code structure is highly integrated. This makes introducing new rates for the
chemical network or cooling function a rather intricate task requiring multiple changes throughout the code.
Apart from the fact that this is more time consuming it is also much more error prone. In a future release of the
code the modularity of the code will be greatly increased. There will be a function to populate the species
rate coefficients and a function to populate the cooling rate coefficients. Separate template files can then be
updated by a developer wishing to use their own rates. This file can then be included in the build and a flag
set to indicate that the new rates should be used in place of the old rates. Furthermore, a similar method will be
implemented for solving the network. A template network solver will be available which the developer can use to
implement a new network with a developer-determined number of species. The developer will be responsible for
updating only three files to achieve a solution to their own chemical network.
\subsubsection{Multiple element cooling}
Currently, \texttt{Grackle} only considers a single metallicity field
for the calculation of the cooling due to heavy elements. However,
more sophisticated feedback models now consider feedback from multiple
sources, like Type Ia and Type II supernova and winds from AGB stars,
each of which produce distinct abundance patterns. In the future, we
will look to create additional cooling tables that consider varying
abundance patterns. As an intermediate step before creating cooling
tables for every metal species, as in \citet{2009MNRAS.393...99W}, we
will likely begin with a two-element model distinguishing between type
Ia and II supernovae, such as that of \citet{2013MNRAS.433.3005D}.
\subsection{Summary}
In this paper, we have described an open-source chemistry and
radiative cooling/heating library suitable for use in numerical
astrophysical simulations. \texttt{Grackle} includes a number of
non-equilibrium chemistry and cooling models involving H, D and He,
including H$_2$ formation and a simple dust model. In addition, the
library has the ability to compute equilibrium cooling/heating rates
for primordial and metal-enriched gas, with a number of radiative
backgrounds. The sophistication of the primordial chemistry network
makes \texttt{Grackle} ideally suited for detailed studies of the
chemistry of metal-free gas. Although \texttt{Grackle} does not
explicitly follow chemical reactions for elements heavier than He,
the tabulated metal cooling rates allow the code to be employed in all
situations where only the total cooling rate is needed.
The library has an API suitable for calling from C, C++,
FORTRAN and Python. This paper describes the physical processes
included, the implementation of the models, as well as our open
development and testing framework which allows users/developers to add
to the code in a scalable way that is also intended to minimize new
errors. We describe the optimization and parallelization strategy,
along with performance benchmarks. \texttt{Grackle} is well-tested and already
used in a substantial number of high-performance numerical simulation
codes.
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "ms"
%%% End: