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 613 records · Page 34

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↗

Flight Software Dictionary Development for the Mars2020 Rover

The Mars2020 project, developed and operated by the Jet Propulsion Laboratory (JPL), successfully landed the Perseverance rover and its flying companion Ingenuity on the surface of Mars on February 18th 2021. Perseverance combines heritage and cutting-edge flight software and hardware to accomplish crucial mission requirements related to Martian surface sampling. The design, development, and operation of NASA’s large strategic science missions require the ability to communicate spacecraft capabilities to hundreds of engineers across multiple disciplines. The interaction between flight and ground software development, Verification and Validation (V&V), Assembly, Test, and Launch Operations (ATLO), and management each demand quick understanding of unique slices of information for each discipline. This information includes the current capabilities of the flight system as well as future capabilities and their status as they are developed and tested. Despite the fundamental and critical nature of this information, the flight software dictionaries used to track it are a stumbling block for many projects. These dictionaries provide the cornerstone for the interpretation of data sent from the spacecraft, allowing for quick comprehension by engineers on the ground. During both spacecraft development and operations, flight software dictionary management includes significant challenges due to the large number of interfacing systems and the subtle yet distinct needs of each.The engineering of flight software dictionaries for Mars2020 had numerous challenges, most-notably: parallel dictionary development to support simultaneous separate flight software build campaigns for each mission phase (cruise and surface), managing requests for operations-enabling information without perturbing the heritage interface with the rover, and the introduction of new tools by the dictionary stakeholders that forced the dictionary team to innovate and redesign the heritage tool chain. These challenges generated guiding principles for the dictionary development effort: emphasize coding best practices and unit testing in the dictionary code development tool chain, use institutionally provided COTS (commercial-off-the-shelf) tools whenever possible, and maintain the heritage flight-ground interface all while advancing operations-enabling information via a loosely coupled interface.Throughout development and operations, the Mars2020 dictionary toolchain included IBM DOORS Next Generation, GitHub, Microsoft Excel, Docker, Jenkins, and a significant custom-built Python codebase. Significant interfaces included JPL’s command and control software, heritage flight software team tools and processes, and the many cloud-based ground tools developed for the mission.This paper will discuss the requirements for the Mars2020 dictionary development, the development team’s response to those requirements, lessons learned throughout the process, steps taken towards automated deliveries and continuous integration of stakeholder inputs, potential toolchain improvements for Mars2020, and key takeaways that could be applied to future missions.

Pyrzak, Guy↗

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↗

Turbo-Design: Open-Source Radial Equilibrium Turbomachinery Solver: Part I - Turbines

Advances in 3D Geometrical Designs and Cooling have played a significant role in improving the efficiency of turbomachinery. However, these advancements must be effectively translated back to the modeler. Machine learning can facilitate this transition. Specifically, machine learning–based loss models can bridge the gap between 3D and 1D designs, enabling modelers not only to predict velocity triangles but also to extract additional geometric features. Currently, the design tools used at NASA have not been updated to support such integration—until now. TurboDesign is an open-source, Python-based framework that replaces TD2 (LEW-11029-1) and AXOD2 (LEW-16323-1), both of which are radial equilibrium solvers for axial turbines. The goal of this update is to enable the integration of machine learning loss models into radial equilibrium equations. Additionally, TurboDesign is designed to support radial machines. This paper presents the governing equations, the assumptions underlying the code, the integration of legacy loss models, an example of machine learning model integration, and a validation comparison with CFD. All code, tutorials, and documentation are available at: https://www.github.com/nasa/turbo-design

Radial Equilibrium↗

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↗

The MolSSI QCArchive project: An open-source platform to compute, organize, and share quantum chemistry data

The Molecular Sciences Software Institute's (MolSSI) Quantum Chemistry Archive (QCArchive) project is an umbrella name that covers both a central server hosted by MolSSI for community data and the Python-based software infrastructure that powers automated computation and storage of quantum chemistry (QC) results. The MolSSI-hosted central server provides the computational molecular sciences community a location to freely access tens of millions of QC computations for machine learning, methodology assessment, force-field fitting, and more through a Python interface. Facile, user-friendly mining of the centrally archived quantum chemical data also can be achieved through web applications found at the website. The software infrastructure can be used as a standalone platform to compute, structure, and distribute hundreds of millions of QC computations for individuals or groups of researchers at any scale. The QCArchiveInfrastructure is open-source (BSD-3C), code repositories can be found at github, and releases can be downloaded via PyPI and Conda. This article is categorized under: Electronic Structure Theory > Ab Initio Electronic Structure Methods Software > Quantum Chemistry Data Science > Computer Algorithms and Programming

37 INORGANIC, ORGANIC, PHYSICAL, AND ANALYTICAL CH↗

LANL Contributions to pyiron: An integrated development environment for computational materials science

To support and accelerate the development of simulation protocols in atomistic modelling, we introduce an integrated development environment (IDE) for computational materials science called pyiron (http://pyiron.org). The pyiron IDE combines a web based source code editor, a job management system for build automation, and a hierarchical data management solution. The core components of the pyiron IDE are pyiron objects based on an abstract class, which links application structures such as atomistic structures, projects, jobs, simulation protocols and computing resources with persistent storage and an interactive user environment. The simulation protocols within the pyiron IDE are constructed using the Python programming language. To highlight key concepts of this tool as well as to demonstrate its ability to simplify the implementation and testing of simulation protocols we discuss two applications. In these examples we show how pyiron supports the whole life cycle of a typical simulation, seamlessly combines ab initio with empirical potential calculations, and how complex feedback loops can be implemented. While originally developed with focus on ab initio thermodynamics simulations, the concepts and implementation of pyiron are general thus allowing to employ it for a wide range of simulation topics.

Janssen, Jan↗

Multi-shock design tools in double shell models

The essence of the project was to implement a program in python that demonstrated certain models put forth by fusion physicists. Across the time spent at Los Alamos National Laboratory, much was spent programming. Though fundamentally programmatical in nature, the task contained considerable difficulty hid within mathematically deriving and manipulating the models while maintaining data discretization. The result of solving these complications gave invaluable experience in applied mathematics. The final product, a piece of lengthy code, ended up having the full range of desired capabilities, with plans for more. Given the laser power history from a pulse shot on NIF, Omega, or any other Inertial Confinement Fusion facility, the code maps the terrain of radiation temperature inside the hohlraum throughout the period of the shot. Additionally, shock wave convergence prediction was implemented as additional capability. As the name of the project suggests, this tool acts as a compass of direction for researchers designing laser power profiles. Further development of this tool will undoubtedly assist in the research conducted on single and double-shell indirect ICF, consequently expanding the capabilities of operating stewardship over the national nuclear stockpile.

70 PLASMA PHYSICS AND FUSION TECHNOLOGY↗

Software Tool for Tracking & Mapping the NASA Orion AA-2 Test Flight Ejectable Data Recorders in Real Time

On 2 July 2019, the NASA Ascent Abort 2 flight took place off the Florida coast to test the emergency systems to separate the Orion Crew Module (CM) from the future Space Launch System rocket in the event of a malfunction. During this high-altitude test, instrumentation data was recorded on twelve customized buoyant Ejectable Data Recorders (EDRs) and subsequently jettisoned from the CM in mid-air. Upon release, the EDRs activated their GPS-Iridium beacon systems and began transmitting Short Burst Data (SBD) messages via the Iridium satellite network to relay their individual location and system health information. To locate, track and retrieve each EDR from the ocean surface in real-time, multiple open-source programming tools (Python and Linux shells) were developed for parsing the incoming Iridium binary SBD messages. For this, a Linux laptop was used to receive the Iridium-generated emails containing the SBD messages and autonomously execute the parsing tools. The received SBD data contained location, timestamp and health status information that was translated, saved, and subsequently used for simultaneously generating a continuously updated color-coded tabular display summary and unique KML files used with Google Earth to track their locations. Once their locations were known, dedicated recovery vessels retrieved all EDRs from the ocean. An additional tool was also developed in order to generate 5- and 10-minute geolocation predictions for each EDR by deriving the displacement distance, elapsed time, displacement heading and velocity based on the latest known information available. The recovery vessels were also tracked with the use of a separate commercial GPS beacon system. After jettison, 67% of the EDRs transmitted valid data by the time they were retrieved from the ocean. However, the real-time information presented by the plotting tool allowed for the ready depiction of EDR dispersal patterns and reference drift trajectories, which contributed to the recovery of all twelve EDRs and the AA-2 flight data. Lastly, the available data showed that the distance between the software’s reported drift/predicted locations and the recovery locations did not exceed 38 meters, therefore demonstrating the advantages of this software tool for supporting real-time tracking and recovery efforts of beacon devices.

Moxey, Lucas↗

Pyomo.DOE: An open-source package for model-based design of experiments in Python

Predictive mathematical models are a cornerstone of science and engineering. Yet selecting, calibrating, and validating said science-based models often remains an art in practice. Model-based design of experiments (MBDoE) provides a systematic framework to maximize information gain from experiments while minimizing time and resource costs. But MBDoE remains limited to niche application areas, in part because practitioners must integrate expertise in statistics, computational optimization, and modeling. To help reduce this barrier, we introduce Pyomo.DOE, an open-source package for MBDoE. Pyomo.DOE uses a nonlinear sensitivity analysis code k_aug to quickly approximate the Fisher information matrix and leverages a new stochastic programming abstraction. We demonstrate Pyomo.DOE with the first application of MBDoE to fixed-bed breakthrough experiments, which highlights the power of Pyomo.DOE to quantify the value of experimental modifications a priori for large-scale partial differential-algebraic equation (PDAE) models. Here we also provide a mathematical primer on MBDoE targeted at general chemical engineers.

37 INORGANIC, ORGANIC, PHYSICAL, AND ANALYTICAL CH↗