Engineering Papers⌕ Search

SEARCH · Engineering Papers

Results for “Python software”

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 109 records · Page 6

Tiered Energy Use in Buildings (TEB)

This tool creates a set of building energy simulations and organizes them according to a tier-based model representing circuits that will be on or off depending on a microgrid controller (not included in this software). This Python based code uses the open-source RCBuildingSimulator that is under an amended MIT license. Sandia National Laboratories is a multimission laboratory managed and operated by National Technology & Engineering Solutions of Sandia, LLC, a wholly owned subsidiary of Honeywell International Inc., for the U.S. Department of Energy’s National Nuclear Security Administration under contract DE-NA0003525. SAND2021-2528 O

Villa, Daniel↗

Peregrine Software Development: Report on the Code Conversion From Python to C++

This work package seeks to convert the Peregrine software tool from its original Python implementation to a production version based on the C++ language. Peregrine is a powerful research platform with a multitude of advanced data analytics and data visualization functionalities. Developed by scientists to explore multimodal and multidimensional data related to the production of components using powder bed additive manufacturing processes, the tool implements state-of-the-art algorithms to assist machine users in making build or part quality determinations. Given that Peregrine is data-intensive, the goal of this conversion is to enhance the tool’s flexibility and interactivity and reduce the number of code dependencies to facilitate its deployment as part of the ongoing technology transfer campaign. This brief document provides an overview of Peregrine’s functionalities and capabilities, along with a detailed description of the core functionalities that have been implemented to date in the new C++ version. This document serves as a development update at the end of the first year of the ongoing conversion and will be regularly updated as progress continues.

97 MATHEMATICS AND COMPUTING↗

pyTCR: A tropical cyclone rainfall model for python

pyTCR is a climatology software package developed in the Python programming language. It integrates the capabilities of several legacy physical models and increases computational efficiency to allow rapid estimation of tropical cyclone (TC) rainfall consistent with the large-scale environment. Specifically, pyTCR implements a horizontally distributed and vertically integrated model [Zhu et al., 2013] for simulating rainfall driven by TCs. Along storm tracks, rainfall is estimated by computing the cross-boundary-layer, upward water vapor transport caused by different mechanisms including frictional convergence, vortex stretching, large-scale baroclinic effect (i.e., wind shear), topographic forcing, and radiative cooling [Lu et al., 2018]. The package provides essential functionalities for modeling and interpreting spatio-temporal TC rainfall data. pyTCR requires a limited number of model input parameters, making it a convenient and useful tool for analyzing rainfall mechanisms driven by TCs. To sample rare (most intense) rainfall events that are often of great societal interest, pyTCR adapts and leverages outputs from a statistical-dynamical TC downscaling model [Lin et al., 2023] capable of rapidly generating a large number of synthetic TCs given a certain climate. As a result, pyTCR significantly reduces computational effort and improves the efficiency in capturing extreme TC rainfall events at the tail of the distributions from limited datasets. Furthermore, the TC downscaling model is forced entirely by large-scale environmental conditions from reanalysis data or coupled General Circulation Models (GCMs), simplifying the projection of TC-induced rainfall and wind speed under future climate using pyTCR. Finally, pyTCR can be coupled with hydrological and wind models to assess risks associated with independent and compound events (e.g., storm surges and freshwater flooding).

54 ENVIRONMENTAL SCIENCES↗

DFTTK: Density Functional Theory ToolKit for high-throughput lattice dynamics calculations

In this work, we present a software package in Python for high-throughput first-principles calculations of thermodynamic properties at finite temperatures, which we refer to as DFTTK (Density Functional Theory ToolKit). DFTTK is based on the atomate package and integrates our experiences in the last decades on the development of theoretical methods and computational softwares. It includes task submissions on all major operating systems and task executions on high-performance computing environments. Furthermore, the distribution of the DFTTK package comes with examples of calculations of phonon density of states, heat capacity, entropy, enthalpy, and free energy under the quasi-harmonic phonon scheme for the stoichiometric phases of Al, Ni, Al 3 Ni, AlNi, AlNi 3 , Al 3 Ni 4 , and Al 3 Ni 5 , and the fcc solution phases treated using the special quasirandom structures at the compositions of Al 3 Ni, AlNi, and AlNi 3 .

97 MATHEMATICS AND COMPUTING↗

PyPop: a mature open-source software pipeline for population genomics

Python for Population Genomics (PyPop) is a software package that processes genotype and allele data and performs large-scale population genetic analyses on highly polymorphic multi-locus genotype data. In particular, PyPop tests data conformity to Hardy-Weinberg equilibrium expectations, performs Ewens-Watterson tests for selection, estimates haplotype frequencies, measures linkage disequilibrium, and tests significance. Standardized means of performing these tests is key for contemporary studies of evolutionary biology and population genetics, and these tests are central to genetic studies of disease association as well. Here, we present PyPop 1.0.0, a new major release of the package, which implements new features using the more robust infrastructure of GitHub, and is distributed via the industry-standard Python Package Index. New features include implementation of the asymmetric linkage disequilibrium measures and, of particular interest to the immunogenetics research communities, support for modern nomenclature, including colon-delimited allele names, and improvements to meta-analysis features for aggregating outputs for multiple populations.

59 BASIC BIOLOGICAL SCIENCES↗

H3D Data Acquisition Software (H3DDAQ) v1.0

A python library to enable readout of data from commercial H3D gamma-ray detectors. This software perform readout of data and system status, as well as starting and stopping measurements, with either WebREST (HTTP), XML (N42.42), or Binary (FlatBuffers) interfaces.

Joshi, Tenzing↗

Automation Scripts for Feeder Analysis using CymPy

SAND2025-00330O Automation Scripts for Feeder Analysis using CymPy is a software tool that uses Python scripts to automate the analysis of power system feeders using CYME software. Utilities and researchers can use it to perform various types of analyses by leveraging the capabilities of CYME. The scripts use the CymPy library to interface with CYME and automate the analysis process. The software uses standard Python libraries along with the Eaton CymPy library. Sandia National Laboratories is a multimission laboratory managed and operated by National Technology & Engineering Solutions of Sandia, LLC, a wholly owned subsidiary of Honeywell International Inc., for the U.S. Department of Energy’s National Nuclear Security Administration under contract DE-NA0003525

Reno, Matthew↗

PyGDH: Python Grid Discretization Helper

Mathematical models expressed in the form of discretized equations play an important role inmany scientific disciplines. In our experience, few domain scientists have sufficient backgroundin numerical computing (or the time required to acquire such a background) to use manyflexible and powerful but complex open source packages, such as FEniCS (Alnæs et al., 2015)and OpenFOAM (The OpenFOAM Foundation Ltd, n.d.). Many user-friendly open sourcepackages, such as FiPy (J. E. Guyer & Warren, 2009), and many commercial packages, suchas COMSOL Multiphysics (COMSOL AB, n.d.) and Simcenter STAR-CCM+ (Siemens DigitalIndustries Software, n.d.), provide limited flexibility in the equations that users can express.Additionally, the use of commercial packages, which by nature do not perform calculationstransparently, can hinder reproducibility, which is vital to the scientific process. PyGDH(“pigged”) is a Python 2 / Python 3 (Python Software Foundation, 1991–2020) package thatis meant to be accessible to scientists who might not be specialists in scientific computing,while approaching the level of flexibility associated with writing dedicated programs tailoredto solving specific problems. The PyGDH User’s Guide provides detailed instructions forcreating numerical models, including a brief introduction to necessary command line andPython (Python Software Foundation, 1991–2020) skills, and discussions of discretization andvalidation. Note that PyGDH emphasizes flexibility and simplicity over performance, and wasnot designed for high-performance applications or models describing complex spatial domains.

97 MATHEMATICS AND COMPUTING↗

pvlib python: 2023 project update

pvlib python is a community-developed, open-source software toolbox for simulating the performance of solar photovoltaic (PV) energy components and systems. It provides reference implementations of over 100 empirical and physics-based models from the peer-reviewed scientific literature, including solar position algorithms, irradiance models, thermal models, and PV electrical models. In addition to individual low-level model implementations, pvlib python provides high-level workflows that chain these models together like building blocks to form complete “weather-to-power” photovoltaic system models. It also provides functions to fetch and import a wide variety of weather datasets useful for PV modeling. pvlib python has been developed since 2013 and follows modern best practices for open-source python software, with comprehensive automated testing, standards-based packaging, and semantic versioning. Its source code is developed openly on GitHub and releases are distributed via the Python Package Index (PyPI) and the conda-forge repository. pvlib python’s source code is made freely available under the permissive BSD-3 license. Here we (the project’s core developers) present an update on pvlib python, describing capability and community development since our 2018 publication (Holmgren, Hansen, & Mikofski, 2018).

14 SOLAR ENERGY↗

Implementation of real‐time TDDFT for periodic systems in the open‐source PySCF software package

Abstract We present a new implementation of real‐time time‐dependent density functional theory (RT‐TDDFT) for calculating excited‐state dynamics of periodic systems in the open‐source Python‐based PySCF software package. Our implementation uses Gaussian basis functions in a velocity gauge formalism and can be applied to periodic surfaces, condensed‐phase, and molecular systems. As representative benchmark applications, we present optical absorption calculations of various molecular and bulk systems and a real‐time simulation of field‐induced dynamics of a (ZnO) 4 molecular cluster on a periodic graphene sheet. We present representative calculations on optical response of solids to infinitesimal external fields as well as real‐time charge‐transfer dynamics induced by strong pulsed laser fields. Due to the widespread use of the Python language, our RT‐TDDFT implementation can be easily modified and provides a new capability in the PySCF code for real‐time excited‐state calculations of chemical and material systems.

37 INORGANIC, ORGANIC, PHYSICAL, AND ANALYTICAL CH↗

PySAGES: flexible, advanced sampling methods accelerated with GPUs

Abstract Molecular simulations are an important tool for research in physics, chemistry, and biology. The capabilities of simulations can be greatly expanded by providing access to advanced sampling methods and techniques that permit calculation of the relevant underlying free energy landscapes. In this sense, software that can be seamlessly adapted to a broad range of complex systems is essential. Building on past efforts to provide open-source community-supported software for advanced sampling, we introduce PySAGES, a Python implementation of the Software Suite for Advanced General Ensemble Simulations (SSAGES) that provides full GPU support for massively parallel applications of enhanced sampling methods such as adaptive biasing forces, harmonic bias, or forward flux sampling in the context of molecular dynamics simulations. By providing an intuitive interface that facilitates the management of a system’s configuration, the inclusion of new collective variables, and the implementation of sophisticated free energy-based sampling methods, the PySAGES library serves as a general platform for the development and implementation of emerging simulation techniques. The capabilities, core features, and computational performance of this tool are demonstrated with clear and concise examples pertaining to different classes of molecular systems. We anticipate that PySAGES will provide the scientific community with a robust and easily accessible platform to accelerate simulations, improve sampling, and enable facile estimation of free energies for a wide range of materials and processes.

Chemistry↗

Multi-Model and Multi-Scale Global Sensitivity Analysis for Identifying Controlling Processes of Complex Systems

An environmental model consists of multiple process level sub-models, and each sub-model represents a process that is key to the operation of the simulated system. Global sensitivity analysis methods have been widely used to identify important processes for system model development and improvement. The existing methods of global sensitivity analysis only consider parametric uncertainty, and are not capable of handling model uncertainty caused by multiple process models that arise from competing hypotheses about one or more processes. To address this problem, this project develops a new method to probe model output sensitivity to competing process models by integrating model averaging methods with variance-based global sensitivity analysis to address uncertainty in process models and parameters. The new method yields three process sensitivity indices. The first one is called first-order process sensitivity index, and it is derived as a single summary measure of relative process importance. Evaluating the index is computationally expensive, because it relies in a Monte Carlo scheme that requires thousands and even millions of model executions. To reduce computational cost, this project develops a computationally efficient, quasi Monte Carlo method, and this method is presented in Chapter 2 of this report with and a numerical example for demonstration. The numerical example shows that the results of the quasi Monte Carlo method are substantially close to those of the full Monte Carlo method, but the computational cost of the quasi Monte Carlo method is only 0.7% of that of the full Monte Carlo method. The second index is called total-effect process sensitivity index, and it measures interactions between different processes. Therefore, this sensitivity index includes the first-order process sensitivity index, and can be used to identify influential processes. On the other hand, the total-effect process sensitivity index can also be used to screen non-influential processes. This is demonstrated by two numerical examples using the Sobol-G* functions and groundwater flow models that consider recharge process, geological process, and snowmelt process. The numerical examples shows that the total-effect process sensitivity index is more informative than the first-order process sensitivity. The derivation of the process sensitivity index and the numerical examples are discussed in Chapter 3. Chapter 4 presents two computationally efficient methods for screening non-influential processes to exclude them from further investigation. The two methods are the multi-model difference-based sensitivity (MMDS) analysis method, which can be implemented using the Latin Hypercube Sampling. The second one is the implementation of MMDS method using a binning method. The numerical example for the Sobol-G* function indicates the two methods are capable of identifying non-influential models, and the numerical examples for the groundwater flow and reactive transport show that the two methods are effective for groundwater problems. However, it should be noted that the two methods are numerical approximations, and they can only be used for screening non-influential processes, not for ranking importance of system processes. All the sensitivity analysis methods are implemented by developing python codes, and the codes are in a software called SAMMPY: a python package for process sensitivity analysis under multiple models. The SAMMPY design and structure are discussed in Chapter 5, and the package is released to the public for free download.

54 ENVIRONMENTAL SCIENCES↗

Equilipy: a python package for calculating phase equilibria

The CALPHAD (CALculation of PHAse Diagram) approach (Nigel Saunders & Miodownik, 1998) provides predictions for thermodynamically stable phases in multicomponent-multiphase materials across a wide range of temperatures. Consequently, the CALPHAD calculations became an essential tool in materials and process design (Luo, 2015). Such design tasks frequently require navigating a high-dimensional space due to multiple components involved in the system. This increasing complexity demands high-throughput CALPHAD calculations, especially in the rapidly evolving field of alloy design. In response to the need, we developed Equilipy an open-source Python package designed for calculating phase equilibria of multicomponent-multiphase systems. Equilipy is specifically tailored for high-throughput CALPHAD calculations, offering parallel computations across multiple processors and nodes with the given NPT input conditions namely elemental compositions (N), pressure (P), and temperature (T). Equilipy utilizes the program structure and Gibbs energy functions from the Fortran-based program, Thermochimica (Piro et al., 2013), with incorporating a new Gibbs energy minimization algorithm. This algorithm, originally developed by Capitani and Brown in 1987 (Capitani & Brown, 1987), has been revised and implemented to enhance the stability and performance of calculations. The Fortran codes are precompiled and interfaced with Python via F2PY, ensuring high computation speed. Benchmark tests shown in Figure 1 demonstrate that Equilipy’s computation speed is comparable to those of established commercial software, TC-Python and PanPython. This result highlights its efficiency and potential applications in various scientific and industrial fields.

97 MATHEMATICS AND COMPUTING↗

Pycheron: A Python-Based Seismic Waveform Data Quality Control Software Package

Supplementing an existing high-quality seismic monitoring network with openly available station data could improve coverage and decrease magnitudes of completeness; however, this can present challenges when varying levels of data quality exist. Without discerning the quality of openly available data, using it poses significant data management, analysis, and interpretation issues. Incorporating additional stations without properly identifying and mitigating data quality problems can degrade overall monitoring capability. If openly available stations are to be used routinely, a robust, automated data quality assessment for a wide range of quality control (QC) issues is essential. To meet this need, we developed Pycheron, a Python-based library for QC of seismic waveform data. Pycheron was initially based on the Incorporated Research Institutions for Seismology’s Modular Utility for STAtistical kNowledge Gathering but has been expanded to include more functionality. Pycheron can be implemented at the beginning of a data processing pipeline or can process stand-alone data sets. Its objectives are to (1) identify specific QC issues; (2) automatically assess data quality and instrumentation health; (3) serve as a basic service that all data processing builds on by alerting downstream processing algorithms to any quality degradation; and (4) improve our ability to process orders of magnitudes more data through performance optimizations. This article provides an overview of Pycheron, its features, basic workflow, and an example application using a synthetic QC data set.

58 GEOSCIENCES↗

HIPPO Software

HIPPO software is a Python implementation of the HIPPO technology. The HIPPO technology provides the computational and modeling capabilities for managing electricity market operations and for designing and prototyping future markets. The current software can solve the day-ahead unit commitment problem and perform simultaneous feasibility test. It can be used to handle industry scale electricity market.

Peng, Fan↗

BatteryPro: A Python Toolkit for Battery Data Analysis and Machine Learning Predictions

Analyzing battery test data for research & development can be time-consuming since battery tests often run on the order of months to years, generating large volumes of data. BatteryPro is a comprehensive Python package and software designed to facilitate advanced analysis and performance predictions for battery test data. Developed for battery researchers, it supports data types from widely used battery testing instruments, including MACCOR and Biologic cycling systems. The software provides a variety of tools for extracting and plotting key battery parameters such as time, voltage, capacity, current, and pressure. In addition to its extensive data analysis capabilities, BatteryPro features a dedicated machine learning module that employs a Bayesian Gaussian Mixture Model (GMM) to predict battery performance and degradation. Users can generate synthetic capacity fade data, calculate fade metrics, and leverage predictive models to forecast long-term battery behavior. The software's graphical user interface (GUI) enhances usability, allowing researchers to upload, merge, and analyze multiple data files with full customizability. The GUI also supports machine learning predictions, enabling users to fit models and make predictions based on selected data and parameters. BatteryPro is built using QtDesigner, scikit-learn, matplotlib, and pandas, ensuring a high level of customization, flexibility, and accuracy in battery data analysis. This tool aims to empower researchers with the ability to perform detailed battery analysis and make informed predictions, ultimately advancing the field of battery research.

25 - ENERGY STORAGE↗

Hybrid-RL-MPC4CLR (Hybird-Reinforcement-Learning-Model-Predictive-Control-for-Reserve-Policy-Assisted-Critical-Load-Restoration-in-Distribution-Grids)

Hybrid-RL-MPC4CLR was developed as a hybrid controller for active distribution grid critical load restoration, combining deep reinforcement learning (RL) and model predictive control (MPC) aiming at maximizing total restored load following an extreme event. The RL determines a policy for quantifying operating reserve requirements, thereby hedging against uncertainty, while the MPC models grid operations incorporating the RL policy actions (i.e., reserve requirements), renewable (wind and solar) power predictions, and load demand forecasts. The developers formulated the reserve requirement determination problem as a sequential decision-making problem based on the Markov Decision Process (MDP) and design an RL learning environment based on the OpenAI Gym framework and MPC simulation. The RL agent reward and MPC objective function aim to maximize and monotonically increase total restored load and minimize load shedding and renewable power curtailment. The software is developed using various software packages in Python. The MPC's optimal power flow (OPF) model is implemented using the Pyomo package, the RL simulation environment is implemented using the MPC simulation with various scenarios of renewable energy and load demand profiles and power outage beginning times, based on the OpenAI Gym framework. The RL agent training is performed using the RLlib Ray package. The RL algorithm is trained offline using historical forecasts of renewable generation and load demand profiles. Simulation analysis and performance tests are conducted using a modified IEEE 13-bus distribution test feeder containing wind turbine, photovoltaic, microturbine, and battery.

Eseye, Abinet Tesfaye↗