.. _introduction: Introduction ============ .. _history: History ------- The AMPX system :cite:`greene_ampx_1976` has existed since the early 1970s and was developed at the Oak Ridge National Laboratory (ORNL) under sponsorship of the Defense Nuclear Agency (DNA). The primary objective of the early system was to produce coupled MG neutron-gamma-ray cross section libraries needed for deep penetration shielding applications. Prior to AMPX, the generation of coupled cross section libraries required the use of three independent computer codes: #. XLACS :cite:`greene_xlacs_1972`, which produces MG neutron cross section libraries, #. MUG :cite:`knight_mug_1970`, which produces MG gamma-ray cross section libraries, and #. POPOP4 :cite:`ford_iii_popop4_1969`, which produces coefficients needed to determine gamma-ray sources arising from neutron reactions. The libraries produced by these codes were written in a special format required either by the ANISN and DOT :cite:`engle_users_1967` discrete ordinates transport codes or the MORSE :cite:`emmett_morse-cga_1985` MG Monte Carlo code. In the case of XLACS, the library was written in a format that had to be used in a discrete ordinates code known as XSDRN :cite:`greene_xsdrn_1969` before an ANISN-formatted library could be written. In order to develop the desired MG library, the three classes of data were combined to produce a single coupled neutron-gamma-ray library. The production of a coupled library was laborious and time consuming. .. !check DOT cite Many similar procedures in the 1960--1970 time period required the use of computer programs that were just as inconvenient and difficult to use. As a result, several organizations developed a new approach for code development known as modular programming. These systems were organized to make it easier to execute sequences of computer programs. Notable among these systems is the DATATRAN :cite:`kopp_datatran_1967` system developed at Knolls Atomic Power Laboratory (KAPL), the ARC :cite:`kopp_datatran_1967` system developed at Argonne National Laboratory (ANL), and the JOSHUA :cite:`du_pont_1969` system developed at the Savannah River Site (SRS). .. !check ARC cite The AMPX system developed at ORNL borrowed heavily from the ideas and concepts of the early modular cross section processing systems. AMPX is an acronym for Automation of MUG, POPOP4, and XLACS. During the early 1970s, these three codes comprised the core capabilities needed to generate coupled libraries, but these codes were augmented with a variety of other programs that perform resonance self-shielding, convert library formats, combine collections of cross section data, etc. The AMPX code system was initially released in 1973 and distributed at ORNL by the Radiation Shielding Information Center (RSIC), the predecessor of the current Radiation Safety Information Computation Center (RSICC). The AMPX code system was distributed by RSIC to many facilities in the United States and throughout the world. Following the initial release, the AMPX code system did not have dedicated funding in the years subsequent to the release. Consequently, further improvements to the AMPX system were supported at a very low level by many projects that dictated the development of new processing procedures. The development of the Standardized Computer Analyses for Licensing Evaluations (SCALE) system :cite:`ampx-scale61` for nuclear analyses was initiated at ORNL under the sponsorship of the Nuclear Regulatory Commission (NRC) in 1973. Many SCALE analysis tools were taken from the AMPX system. Moreover, these tools or codes have been continuously refined and supported over the years. In fact, tasks needed for the SCALE system have indirectly provided a substantial fraction of the support for improvements to the AMPX system over the years. Due to further enhancements of the cross section processing capabilities, an upgraded AMPX code system was released by RSIC in 1978 as code package PSR-63/AMPX-II :cite:`greene_ampx-ii_1978`. For the next fourteen years, AMPX-II was used to produce MG cross section libraries for nuclear applications until the release of AMPX-77 :cite:`greene_ampx-77_1992` in 1992. The "77" indicates that all modules of the AMPX system were developed under the FORTRAN-77 programming standard. The AMPX-77 development was driven by cross section generation tasks associated with processing Version V of the Evaluated Nuclear Data File (ENDF/B) :cite:`greene_ampx-77_1992`. In particular, AMPX-77 was used to generate the 238-group LAW :cite:`greene_law_1994` library that has cross sections for more than 300 ENDF/B-V isotopes/nuclides. The ENDF/B release in 2006 :cite:`chadwick_endfb-vii_2006` used a new collection of formats known as Version VI :cite:`herman_endf-6_2009` that differ from previous versions. Due to a lack of dedicated funding over the years, AMPX had not kept pace with many of the newer ENDF/B formats. In an effort to update the AMPX code system, the NRC tasked ORNL in 1996 to develop a new AMPX system with the capability to process ENDF/B formats through version VI. Dedicated funding from the Nuclear Criticality Safety Program (NCSP) to modernize AMPX allowed for parts of the AMPX system to be converted to C++, taking advantage of modern memory management capabilities and increased computing power. Since AMPX has a much longer tradition for generating MG libraries than CE libraries, some processing of the scattering kinematic data was geared more towards MG processing. Previously, kinematic scattering data were processed for use in MG libraries and then converted back for use in CE libraries. Some fidelity was lost in these conversions. The modernization allowed for substantial upgrade of the processing for kinematic data. Since the generation of kinematic data uses many low-level routines, many of these routines have also been updated to C++. Since SCALE and AMPX have shared many modules and library codes, they have been moved into the same source repository. Since SCALE did not use a modern build system at the time that a modern build system was added to AMPX, the two codes did not use the same build system. Due to a large modernization effort for SCALE, the code system was switched to a newer build system, and AMPX in turn adopted the same build system. This also allows AMPX to use the same continuous integration testing that SCALE now uses :cite:`rearden_quality_2013`.