PyNE Progress Report

PyNE Progress Report Cameron R. Bates 1,2 , Elliott Biondo 3 , Kathryn Huff 2 , Kalin Kiesling 3 , Anthony Scopatz 3 Robert Carlsen 3 , Andrew Davis 3 , Matthew Gidden 3 , Tim Haines 3 , Joshua Howland 2 , Blake Huff 2 , Kevin Manalo 4 , Arielle Opotowsky 3 , Rachel Slaybaugh 2 , Eric Relson 3 , Paul Romano 5 , Patrick Shriwise 3 , John D. Xia 6 , Paul Wilson 3 , and Julie Zachman 3 Lawrence Livermore National Laboratory, 7000 East Ave L-188, Livermore, CA 94550 The University of California, Berkeley, 2521 Hearst Ave, Berkeley, CA 94709 The University of Wisconsin-Madison, 1500 Engineering Drive, Madison, WI 53706 Georgia Institute of Technology, 770 State Street, Atlanta, GA 30332 Massachusetts Institute of Technology, 77 Massachusetts Avenue, Cambridge, MA 02139 University of Chicago, 5747 S. Ellis Ave., Jones 311, Chicago, IL 60637 bates26@llnl.gov INTRODUCTION PyNE is a suite of free and open source (BSD licensed) tools to aid in computational nuclear science and engineer- ing. PyNE seeks to provide native implementations of com- mon nuclear algorithms, as well as an interface for the script- ing language Python and I/O support for industry standard nuclear codes and data formats. In the past year PyNE has added many features including a Rigorous 2-step Ac- tivation workflow (R2S) [1], Direct Accelerated Geometry Monte Carlo (DAGMC) ray tracing [2], Consistent Adjoint- Weighted Importance Sampling (CADIS) variance reduction [3], and expanded ENSDF parsing support. As a part of our ongoing efforts to implement a verification and validation framework we also added continuous integration using the Build and Test Lab [4] at the University of Wisconsin. The PyNE development team has also improved PyNE’s ease of use by making binaries available for Windows, Mac, and Linux through the conda package manager as well as adding Python 3 support. FEATURE ENHANCEMENTS Mesh As of v0.4, PyNE includes a mesh representation in- terface that is used to build up geometries, store materials, and solve spatial differential equations. This is implemented as a layer on top of MOAB meshes [5]. In addition to the PyTAPS interface [6], a Python interface to interact with MOAB mesh objects, it also adds PyNE Material objects, which allow the user to define a mix of multiple isotopes, to volume elements as well as a generic tagging interface. These features together form a generic, easy-to-use mesh library that is capable of handling a plethora of nuclear engineering problems. The Mesh class lives in the pyne.mesh module. This class houses an iMesh instance called mesh which comes from PyTAPS and contains methods for native mesh op- erations. The mats attribute is an instance of a PyNE MaterialLibrary. This is a mapping of volume element handles to Material objects. Tags—sometimes known as fields—are accessible as attributes on the mesh object itself. Fig. 1. A 2-D slice of a 3-D PyNE flux mesh of ITER plotted in yt. This model is for demonstration purposes only. There are several different types of tags (IMesh, Material, Metadata, Computed) depending on where the data should be stored. All tag types expose the same interface. To do volumetric analysis and visualization, the Mesh class is natively supported by the yt project [7]. An example of the use of this mesh to analyze neutron flux in ITER is shown in Fig. 1. DAGMC Module Direct Accelerated Geometry Monte Carlo is a compo- nent of MOAB that facilitates Monte Carlo ray tracing on