\[\sigma(E,\vec{r},\hat{\Omega},T,t,x,i)\]
Otherwise it's not science.
But scientists don't use them effectively.
“ Computational science is a special case of scientific research: the work is easily shared via the Internet since the paper, code, and data are digital and those three aspects are all that is required to reproduce the results, given sufficient computation tools. ” - Stodden, 2010.
“ Organized Skepticism. Scientists are critical: All ideas must be tested and are subject to rigorous structured community scrutiny.” - R.K. Merton, 1942
Formats: Evaluated Nuclear Data File (ENDF), Evaluated Nuclear Structure Data File (ENSDF), Hierarchical Data Format (HDF), etc.
Management: C/Python/Fortran APIs, SQL, MySQL, MongoDB, etc.
Version Control Systems: cvs, svn, hg, git
“ It takes just as much time to write a good paper as it takes to write a bad one. ” - Polterovich, 2014
Hint: Check out PyNE, a python toolkit for nuclear engineering analysis.
Hint: try a tutorial on BASH, CSH, Python, or Perl.
Build System Tools: make, autoconf, automake, cmake, etc.
Hint: In FORTAN, learn about arrays. In C++, learn about maps, vectors, deques, queues, etc. In python, the power lies in dictionaries and numpy arrays.
DRY: Dont Repeat Yourself. Code replication is bug proliferation.
Tools: python argparse, xml rng, etc.
“ The scientific method’s central motivation is the ubiquity of error—the awareness that mistakes and self-delusion can creep in absolutely anywhere and that the scientist’s effort is primarily expended in recognizing and rooting out error. ” - Donoho, 2009.
Tools: cpplint, pyflakes, gdb, lldb, pdb, idb, valgrind, kernprof, kcachegrind
“ just-in-time review of small code changes is more likely to succeed than large-scale end-of-work reviews. ” - Petre, Wilson 2014
Books: Clean Code, Working Effectively with Legacy Code
Tools: sphinx, doxygen, gooletest, unitttest, nosetests
“ If a piece of scientific software is released in the forest, does it change the field? ”
Tools: LaTeX, markdown, restructured text
Example: github.com/cyclus
Export control is serious.