Engineering Papers⌕ Search

SEARCH · Engineering Papers

Results for “Python codes”

Search indexed NASA NTRS and DOE OSTI research on propulsion, heat transfer, battery materials and energy systems. Follow report and document links to the original sources.

Quote a phrase for an exact phrase match. Source license links do not imply unrestricted reuse.

At least 541 records · Page 30

Damage Pseudo Cross Section Generator

This software is a python script for generating group damage pseudo-cross-sections for specific elements, and tabulating them in forms useful to python or to office-open workbooks (xlsx). The damage pseudo-cross-section is needed for calculating how much neutron radiation damage a structural material receives in a reactor measured in displacements per atom (DPA). The process of generating these pseudo-cross-sections is laborious as it requires running the nuclear data processing code, NJOY, for hundreds of isotopes, and then post-processing the data. This also allows many opportunities for human error to be involved. This script eliminates these problems by fully automating the process.

Gale, MicahD.↗

Neutronics Enhanced Meshing Operations (NEMO) Users Manual V.1.0

The is a Python framework developed at Idaho National Laboratory that uses the Cubit Python to build Cubit models and export them in EXODUS II format. These EXODUS mesh files can be used by any -based application, but NEMO is specialized for coupled neutronics calculations. Therefore, the primary purpose of NEMO is to prepare mesh files for reactor geometries and generate a homogenization overlay file for the Serpent Monte Carlo code. This homogenization overlay file ensures the consistency of the mesh with the generation of homogenized cross sections and reference fluxes for the Superhomogenization method. NEMO also supports the preparation of mesh files for thermal and thermo-mechanical models, particularly the discontinuous finite element gap heat transfer model in Griffin. This manual introduces the user to the basic capabilities in NEMO for prismatic geometries.

22 GENERAL STUDIES OF NUCLEAR REACTORS↗

Common Electric Power Transmission System Model JSON Schema Specification

The Common Electric Power Transmission System Model (CTM) is an intuitive, extensible, language-agnostic, and error-resistant specification of electric power network components parameter names and units, and relation between components, intended for use by the research community developing new computational methods for power systems operations and simulation. Power system datasets following the CTM specification can be read as dictionaries and manipulated in that form in most programming languages (e.g., Python, Julia, C++). This standard data structure in CTM makes it easy to work in multiple power systems domains (e.g., economic operation, reliability assessment, electricity markets, stability assessment, etc.) without requiring conversions between use-case-specific file formats with information loss in the process. This repository specifies CTM as a JSON Schema, provides documentation, derivate (code-generated) implementations of CTM, and example data and usage of the schema for important use cases.

Aravena Solis, Ignacio↗

Methods for evaluation and treatment of data shift

This is a code repository for a set of tools for detecting and mitigating data shifts in machine learning. The goal of the tools is to provide capabilities for determining when new data sets differ from training data sets and for adapting existing models to new data or correcting data shifts (via domain adaptation). The components will be written in Python, a high-level programming language that takes advantage of the Python ecosystem of high-quality open-source packages for machine learning and signal processing.

Parikh, Nidhi↗

Exploring MDSplus data-acquisition software and custom devices

MDSplus is a software tool designed for data acquisition, storage, and analysis of complex scientific experiments. Over the years, MDSplus has primarily been used for data management for fusion experiments. This paper demonstrates that MDSplus can be used for a much wider variety of systems and experiments. We present a step-by-step tutorial describing how to create a simple experiment, manage the data, and analyze it using MDSplus and Python. To this end, a custom example device was developed to be used as the data source. This device was built on an opensource electronic hardware platform, and it consists of a microcontroller and two sensors. We read data from these sensors, store it in MDSplus, and use JupyterLab to visualize and process it. This project and code demo are available on the GitHub site at this URL: https://github.com/santorofer/MDSplusAndCustomeDevices

70 PLASMA PHYSICS AND FUSION TECHNOLOGY↗

optimas v0.1

optimas is a Python library that can coordinate a large number of numerical simulations on high-performance computing resources, with the aim of optimizing a given simulation result. More specifically, this library is currently used for design optimization of laser-plasma particle accelerators. In this context, the performance of particle accelerator designs are often evaluated with large-scale simulation codes, and many separate simulations need to be run - with different design parameters - in order to find the most performant design. optimas facilitates this process by providing a convenient interface to advanced optimizers (e.g. Bayesian optimization), and by coordinating the execution of the different simulations on HPC resources. (This is done by leveraging the library libensemble.) Compared to other open-source optimization libraries (e.g. Ax), optimas is more tailored towards execution on DOE HPC resources (e.g. Perlmutter, Summit, etc.) and is specialized for the type of simulation codes and workflows that are used in the community of laser-plasma acceleration.

Lehe, Remi↗

The iRage Cookbook [Slides]

iRage is a family of Zsh and Python 3 scripts designed to accelerate the process of submitting calculations for the novice xRage user. iRage reduces the time to write a new input deck and submit an xRage problem to the production queue to about 15 minutes, assuming the user has defined the initial geometry using a program like Osito or linked to problem geometries generated by codes such as Abaqus, Flag, or Pagosa. iRage runs on Linux and Mac systems.

97 MATHEMATICS AND COMPUTING↗

Enabling Catalog Simulations of Transient and Variable Sources Based on LSST Cadence Strategies

The American Astronomical Society. All rights reserved.. The Large Synoptic Survey Telescope (LSST) project will conduct a 10 year multi-band survey starting in 2022. Observing strategies for this survey are being actively investigated, and the science capabilities can be best forecasted on the basis of simulated strategies from the LSST Operations Simulator (OpSim). This paper describes the way in which OpSim simulates a stochastic realization of the sequence of LSST pointings over the survey duration, and is based on a model of the observatory (including telescope) and historical data of observational conditions. OpSim outputs contain a record of each simulated pointing of the survey along with a complete characterization of the pointing in terms of observing conditions, and some useful quantities derived from the characteristics of the pointing. Thus, each record can be efficiently used to derive the properties of observations of all astrophysical sources found in that pointing. However, in order to obtain the time series of observations (light curves) of a set of sources, it is often more convenient to compute all observations of an astrophysical source, and iterate over sources. In this document, we describe the open source python package OpSimSummary, which allows for a convenient reordering. The objectives of this package are to provide users with an Application Programming Interface for accessing all such observations and summarizing this information in the form of intermediate data products usable by third party software such as SNANA, thereby also bridging the gap between official LSST products and preexisting simulation codes.

79 ASTRONOMY AND ASTROPHYSICS↗

pynucastro: A Python Library for Nuclear Astrophysics

We describe pynucastro 2.0, an open-source library for interactively creating and exploring astrophysical nuclear reaction networks. We demonstrate new methods for approximating rates and use detailed balance to create reverse rates, show how to build networks and determine whether they are appropriate for a particular science application, and discuss the changes made to the library over the past few years. Finally, we demonstrate the validity of the networks produced and share how we use pynucastro networks in simulation codes.

73 NUCLEAR PHYSICS AND RADIATION PHYSICS↗

Multiverse: Bayesian model selection for neural networks

Multiverse is a code repository for a set of tools for Bayesian model selection for neural networks. The goal of the tools is to provide capabilities for selecting among prior and model specifications for Bayesian neural networks. Multiverse will include tools for creating Bayesian neural networks, evaluating the Bayesian model evidence, and performing inference in Bayesian neural networks. These components are written in Python, a high-level programming language that takes advantage of the Python ecosystem of high-quality open-source packages for machine learning and signal processing.

Klein, Natalie↗

lasy v0.1

Lasy is a Python library that facilitates numerical simulations of the interaction of complex laser pulses with plasmas. More specifically, lasy offers many ways to define complex laser pulses (e.g. from commonly-known analytical formulas, from experimental measurements, etc.) and then computes and saves the corresponding laser field in a standardized file. This file can then be read by external plasma simulation codes, that will then simulate the interaction between the complex laser pulse and a plasma. Lasy is useful for instance for numerical simulations of plasma-based particle accelerators, plasma-based laser amplification, etc. Lasy avoids having to duplicate the code that defines complex laser pulses in each plasma simulation codes, and instead provides a trusted, centralized implementation.

Lehe, Remi↗

OpenFerro v0.1.0

OpenFerro is a Python package for on-lattice atomistic dynamics simulation of ferroic materials. OpenFerro is based on JAX, a high-performance linear algebra package supporting auto-differentiation and GPU acceleration. OpenFerro is designed to minimize the effort required to build on-lattice Hamiltonian models, and to perform molecular dynamics (MD) and Landau-Lifshitz-Gilbert simulations. Unlike existing codes, OpenFerro provides a unified interface to model different types of local order parameters.

Xie, Pinchen [Lawrence Berkeley National Laborator↗

GOOML Big Kahuna Forecast Modeling and Genetic Optimization Files

This submission includes example files associated with the Geothermal Operational Optimization using Machine Learning (GOOML) Big Kahuna fictional power plant, which uses synthetic data to model a fictional power plant. A forecast was produced using the GOOML data model framework and fictional input data, and a genetic optimization is included which determines optimal flash plant parameters. The inputs and outputs associated with the forecast and genetic optimization are included. The input and output files consist of data, configuration files, and plots. A link to the Physics-Guided Neural Networks (phygnn) GitHub repository is also included, which augments a traditional neural network loss function with a generic loss term that can be used to guide the neural network to learn physical or theoretical constraints. phygnn is used by the GOOML framework to help integrate its machine learning models into the relevant physics and engineering applications. Note that the data included in this submission are intended to provide a demonstration of GOOML's capabilities. Additional files that have not been released to the public are needed for users to run these models and reproduce these results. Units can be found in the readme data resource.

15 GEOTHERMAL ENERGY↗

Coupling Subsurface and Above-Surface Models for Optimizing the Design of Borefields and District Heating and Cooling Systems

Accurate dynamic energy simulation is important for the design and sizing of district heating and cooling systems with geothermal heat exchange for seasonal energy storage. Current modeling approaches in building and district energy simulation tools typically consider heat conduction through the ground between boreholes without flowing groundwater. While detailed simulation tools for subsurface heat and mass transfer exist, these fall short in simulating above-surface energy systems. To support the design and operation of such systems, the study developed a coupled model including a software package for building and district energy simulation, and software for detailed heat and mass transfer in the subsurface. For the first, it uses the open-source Modelica Buildings Library, which includes dynamic simulation models for building and district energy and control systems. For the heat and mass transfer in the soil, it uses the TOUGH simulator. The TOUGH family of codes can model heat and multi-phase, multi-component mass transport for a variety of fluid systems, as well as chemical reactions, in fractured porous media. The study validated the coupled modeling approach by comparing the simulation results with one from the g-function based ground response model. It then looked into effects when the water table and the regional groundwater flow are considered in the ground, from the perspective of heat exchange between borehole and ground, and the electrical consumption of the district heating and cooling systems. To access the simulation models, please find the links in the submission: -- For coupled approach validation: see model Buildings.Fluid.Geothermal.Borefields.Examples.BorefieldsWithTough and Buildings.Examples.DistrictReservoirNetworks.Examples.Reservoir3Variable_TOUGH from the "Modelica Building Library" resource, branch issue1495_tough_interface, commit a2667c0. -- For the study of the effect of water table: see model Buildings.Examples.DistrictReservoirNetworks.Examples.Reservoir3Variable_TOUGH from he "Modelica Building Library" resource, branch issue1495_tough_interface_moreIO, commit 760de49. -- For the study of the effect of regional groundwater flow: see Buildings.Examples.DistrictReservoirNetworks.Examples.Reservoir3Variable_TOUGH from he "Modelica Building Library" resource, branch issue1495_tough_interface_moreIO_3D, commit c2a2d2a. The coupling interface script "GrounResponse.py" can be found from the above links in the folder Buildings/Resources/Python-Sources. Also, the needed files for TOUGH simulation are in the folder Buildings/Resources/Python-Sources/ToughFiles that can be accessed through the above links. A brief description of these files is given below; detailed specifications for the first three files may be found in the TOUGH3 Users Guide (Jung et al., 2018) https://tough.lbl.gov/documentation/tough-manuals/. (1) INCON - initial conditions for each grid block (2) INFILE - main input file with material properties and control parameters (3) MESH - description of the computational grid (4) readsave - Modelica/TOUGH interface program: read the final output of TOUGH simulation after TOUGH time step and prepare for transfer to Modelica for next Modelica time step (5) readsave.inp - input parameters for program readsave (6) writeincon - Modelica/TOUGH interface program: write the output of Modelica after Modelica time step and prepare for transfer to TOUGH as initial conditions for the next TOUGH step (7) writeincon.inp - input parameters for program writeincon

15 GEOTHERMAL ENERGY↗

Preliminary design analysis workflow for Division 5 HHA-3200 requirements for graphite core components

This report presents a design analysis workflow for graphite core components and assemblies, based on the design rules of ASME Boiler Pressure and Vessel Code, Section III, Division 5, Article HHA-3000. The workflow contains three stages: developing the design of the graphite core component, modeling the component with the finite element software MOOSE, and assessing if the component passes/fails the criteria of the HHA-3000 design rules. Since the design rules use probabilistic metrics specifically established to evaluate brittle materials, we developed a python library that performs all the statistical calculations necessary for the evaluations of the HHA-3000 criteria.

97 MATHEMATICS AND COMPUTING↗

Simplifying computational workflows with the Multiscale Atomic Zeolite Simulation Environment (MAZE)

Zeolites, an important class of 3-dimensional nanoporous materials, have been widely explored for a variety of applications including gas storage, separations, and catalysis. As the properties of these aluminosilicate materials depend on a number of factors (e.g., framework topology, Si/Al ratio, extra-framework cations etc.), detailed experiments (e.g., catalytic properties, adsorption capacities etc.) are often limited to only a handful of materials. Computational methods have played an important role in (1) providing molecular level insights to rationalize experimental observations, and (2) screening large libraries of zeolites to identify promising candidates for experimental synthesis and validation. Different levels of theory and computational chemistry codes are necessary to describe the range of relevant phenomena such as adsorption (e.g., grand canonical Monte Carlo), diffusion (e.g., molecular dynamics), and chemical reactions (e.g., density functional theory). Manipulation of atomic structures, handling of input files, and developing robust workflows becomes quite cumbersome. To mitigate these challenges, we describe the development of the Multiscale Atomic Zeolite Simulation Environment (MAZE) – a Python package that simplifies zeolite-specific calculation workflows by providing a user-friendly interface for systematically manipulating zeolite structures

97 MATHEMATICS AND COMPUTING↗

SAM Plug-in Development (Phase I Final Report)

The DOE Office of Nuclear Energy (NE) has created an extensive set of advanced modeling and simulation tools for nuclear engineering analysis. The advanced capabilities of these newer analysis codes require more in-depth training, skills, and knowledge in order to effectively utilize them for the design, analysis, and licensing of advanced nuclear systems and experiments. A high learning curve for inexperienced users may deter organizations from incorporating these tools into their internal processes. This project involved development of a plug-in to the Symbolic Nuclear Analysis Package (SNAP) for the System Analysis Module (SAM) tool. SAM is an advanced system analysis tool for reactor transient analyses being developed at Argonne National Laboratory under the U.S. DOE Office of Nuclear Energy’s Nuclear Energy Advanced Modeling and Simulation (NEAMS) program. SAM utilizes an object-oriented application framework (MOOSE), and its underlying meshing and finite-element library (libMesh) and linear and non-linear solvers (PETSc), to leverage modern advanced software environments and numerical methods. SNAP provides a highly flexible framework for creating, modifying and documenting input for engineering analysis codes such as SAM as well as extensive functionality for submitting, monitoring, and interacting with the codes through an intuitive graphical user interface (GUI). The common user interface provided by SNAP minimizes the learning curve for engineers starting with a new analysis code and provides an intuitive framework for transitioning between different analysis codes. SNAP provides a powerful but intuitive interface to facilitate access to advanced modeling and simulation tools for inexperienced users. Unlike many “form based” GUI’s, SNAP maps each engineering code’s component input to an internal database which manages all component input parameters along with component interconnections. This level of abstraction permits SNAP to support several advanced capabilities such as renodalization, model validation and consistency checks, embedded documentation, model notebook generation, data ownership and reviewer tracking, and variable assignment for inputs to name a few. SNAP includes a built-in Python interpreter and is interfaced to several commercial and open source packages including CPython, MATLAB/OCTAVE, Microsoft Office, Open Office, and SANDIA’s DAKOTA package which provides Uncertainty Quantification analysis through the SNAP plug-ins. Phase I of this project involved development a fully functional basic SAM plug-in to SNAP. This plug-in provides the ability to import existing models, graphically construct, edit and submit models using SNAP’s extensive functionality.

99 GENERAL AND MISCELLANEOUS↗

Benchmark Tracking System for Performance Monitoring

Benchmarking is essential for high-performance software development, particularly for monitoring performance across code iterations. This project focused on enhancing the benchmarking process for Lamellar, an asynchronous runtime for High-Performance Computing (HPC) systems developed at Pacific Northwest National Laboratory. Prior to this work, benchmark results were difficult to track and compare across code versions, presenting significant challenges in identifying performance regressions and long-term trends. The primary objective was to establish a systematic, reproducible approach for measuring performance and detecting regressions following code commits. Our methodology involved three key components: standardizing benchmark outputs, implementing data versioning, and developing analysis tools. We standardized the benchmark output format to JSON Line records containing specific fields (execution time, hardware specifications, and environmental variables). To address data management challenges, we evaluated several options and eventually chose a git repository dedicated to benchmark data. We developed a suite of Python tools that processed benchmark results, enriched them with metadata, and facilitated search in the repository. The resulting system enables more efficient filtering and comparison of performance metrics across commit histories, hardware configurations, and benchmark variants through a unified query interface. Our implementation reduces computational overhead by first checking for existing results through configuration matching before initiating new benchmark runs, thereby conserving resources. The system has been validated by Lamellar developers. It organizes results by benchmark type and build configurations for efficient retrieval. Future developments include a planned Large Language Model interface for predicting benchmark performance, incorporating the criterion package for statistical analysis, which will enable automated detection of statistically significant performance changes, and integration with continuous integration pipelines. Despite these enhancements being reserved for future work, this project has successfully provided the Lamellar development team with a framework for maintaining consistent performance standards and identifying optimization opportunities across workloads and hardware environments.

97 MATHEMATICS AND COMPUTING↗