-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcode-tests.tex
99 lines (75 loc) · 3.85 KB
/
code-tests.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
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Code tests}
\label{sec.tests}
Ensuring that a complex piece of software is behaving correctly is a
non-trivial task. While there are a range of techniques that one can
apply to ensure correctness, the \enzo\ code uses two primary methods:
a suite of test problems that can be compared to previous versions of
the code, used to ensure that \enzo\ is running correctly on a new
computer, with a new compiler, or after substantial changes have been
made to the code base; and by direct comparisons to other
astrophysical fluid dynamics codes. We describe the \enzo\ test
methodology in Section~\ref{sec.tests.suite}, discuss code comparisons
involving \enzo\ in Section~\ref{sec.tests.compare}, and show a small
set of representative test problems in
Section~\ref{sec.tests.problems}. We further note that the \enzo\
test suite (Section~\ref{sec.tests.suite}) contains hundreds of test
problems, as well as the ability to compare to a ``gold standard''
solution, and thus all of the tests shown here are easily reproducible
by the reader. To facilitate this, all of the test problems included
in this paper, as well as scripts to run the test problems and
generate the figures found in Section~\ref{sec.tests.problems}, can be
found on the \enzo\ website.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Verifying and validating the \enzo\ code}
\label{sec.tests.vandv}
\input{tests-vandv}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Representative test problems}
\label{sec.tests.problems}
The \enzo\ test suite (described in Section~\ref{sec.tests.suite})
contains hundreds of test problems that probe the code's behavior in a
wide range of physical circumstances, and explicitly tests each physics
package in the \enzo\ code, both individually and in combination. It
is impractical to include a substantial fraction of these problems in
a method paper; as a result, we have chosen to publish the results of
only a small subset of particularly crucial test problems here. If
the interested reader desires, they can download \enzo\ and
\texttt{yt}, run the test suite, and see the results of any other test
problem and its comparison to an analytic solution (if available), or
to a ``gold standard'' solution from a stable version of \enzo.
We also note that there are many other \enzo\ test problems in the
associated papers which describe individual methods, including:
MHD-CT \citep{Collins10}, MHD-Dedner \citep{WangAbelZhang08,
WangAbel09}, Radiation-FLD \citep{NBHBROW2007,
ReynoldsHayesPaschosNorman2009, NRS2009}, Radiaton-ray-tracing
\citep{Wise11_Moray}.
The general structure of each test problem description is as follows.
We will describe the construction of the test problem (including its
initial and boundary conditions), the analytical or expected
solutions, and motivate why we have included it in the paper. After
that, we will show and describe \enzo's solution to the test problem.
We remind the user that, as discussed at the end of
Section~\ref{sec.tests.suite}, they can download a Mercurial
repository containing this paper, the \enzo\ test problem parameter
files that produced the simulation data used to generate the figures
in this section, and the \texttt{yt} scripts necessary to create the
figures themselves.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\input{tests-sodshocktube}
\input{tests-wavepool}
\input{tests-shockpool}
\input{tests-doublemach}
\input{tests-sedov}
\input{tests-pointsourcegravity}
\input{tests-orbit}
\input{tests-selfsiminfall.tex}
\input{tests-zeldovichpancake}
\input{tests-bw}
\input{tests-orszagtang}
\input{tests-onezonecollapse}
\input{tests-ionbalance}
\input{tests-photoevaporation}
\input{tests-fld-ifront}
\input{tests-aniso-conduct}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%