forked from cyclus/archetype-paper
-
Notifications
You must be signed in to change notification settings - Fork 0
/
paper.tex
122 lines (104 loc) · 3.93 KB
/
paper.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
\documentclass[review]{elsarticle}
\usepackage[acronym,toc]{glossaries}
\include{acros}
\makeglossaries
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{color}
\usepackage{xcolor}
\usepackage{graphicx}
\usepackage{booktabs} % nice rules for tables
\usepackage{microtype} % if using PDF
\usepackage{xspace}
\usepackage{listings}
\usepackage{textcomp}
\usepackage{ulem}
\definecolor{listinggray}{gray}{0.9}
\definecolor{lbcolor}{rgb}{0.9,0.9,0.9}
\lstset{
%backgroundcolor=\color{lbcolor},
language={C++},
tabsize=4,
rulecolor=\color{black},
upquote=true,
aboveskip={1.5\baselineskip},
belowskip={1.5\baselineskip},
columns=fixed,
extendedchars=true,
breaklines=true,
prebreak=\raisebox{0ex}[0ex][0ex]{\ensuremath{\hookleftarrow}},
frame=single,
showtabs=false,
showspaces=false,
showstringspaces=false,
basicstyle=\scriptsize\ttfamily\color{green!40!black},
keywordstyle=\color[rgb]{0,0,1.0},
commentstyle=\color[rgb]{0.133,0.545,0.133},
stringstyle=\color[rgb]{0.627,0.126,0.941},
numberstyle=\color[rgb]{0,1,0},
identifierstyle=\color{black},
captionpos=t,
}
\colorlet{BLACK}{black}
\colorlet{GREEN}{green}
\newcommand{\code}[1]{\lstinline[basicstyle=\ttfamily\color{green!40!black}]|#1|}
\newcommand{\units}[1] {\:\text{#1}}%
\newcommand{\SN}{S$_N$}
\newcommand{\cyclus}{\textsc{Cyclus}\xspace}
\newcommand{\Cyclus}{\cyclus}
\newcommand{\citeme}{\textcolor{red}{CITE}\xspace}
\newcommand{\cycpp}{\code{cycpp}\xspace}
\newcommand{\TODO}[1] {{\color{red}\textbf{TODO: #1}}}%
\newcommand{\comment}[1]{{\color{green}\textbf{#1}}}
\date{}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\begin{frontmatter}
\title{Cyclus Archetypes}
% Authors. Separated by commas
\input{authors}
% Institutes of the authors
\input{institutions}
% Information concerning the person submitting the manuscript
%\submitter{Anthony Scopatz}
%\submitteraddress{541 Main Street \#431, Columbia, SC 29201}
%\submitteremail{[email protected]}
\begin{abstract}
The current state of nuclear fuel cycle simulation exists in highly
customized form. Satisfying a wide range of users requires model modularity
within such a tool. \Cyclus is a fuel cycle simulator specifically designed to
combat the lack of adaptability of previous generations of simulators. This is
accomplished through an agent-based infrastructure and treating time
discretely. The \Cyclus kernel was developed to allow for models, called
archetypes, which differ in fidelity and function depending on the needs of the users.
To take advantage of this flexibility, a user must write an archetype for
their desired simulation if it does not yet exist within the \Cyclus ecosystem.
At this stage, a user graduates to the title of archetype developer.
Archetype development has historically been difficult for new developers.
This paper presents the framework developed for simplifying the writing of
archetypes: the \Cyclus preprocessor, or \cycpp. \cycpp addresses the computer
science and software development aspects of archetype development
that can be addressed algorithmically, allowing the developer to focus on
modeling the physics, social policies, and economics they want to simulate. \cycpp passes through
the code three times to perform the following tasks: normalizing the code via
the C preprocessor, accumulation of notations, and code generation. Not only
does this reduce the amount of code a developer must write by approximately
an order of magnitude, but the archetypes are automatically validated.
\end{abstract}
% No more than three keywords, though each can be a phrase
\begin{keyword}
fuel cycle \sep simulation \sep software
\end{keyword}
\end{frontmatter}
\input{intro}
\input{motivation}
\input{methods}
\input{conclusion}
\begin{appendix}
\input{implementation}
\input{metadata}
\end{appendix}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newpage
\bibliographystyle{elsarticle-num}
\bibliography{refs}
\end{document}