Engineering Papers⌕ Search

SEARCH · Engineering Papers

Results for “PYTHON”

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

pvlib python 2022 Update

Summary of updates to pvlib-python in the time since the 2019 PVPMC workshop, covering pvlib versions 0.7.0 to 0.9.2.

MATHEMATICS AND COMPUTING,SOLAR ENERGY↗

PyCDFT: A Python package for constrained density functional theory

In this paper, we present PyCDFT, a Python package to compute diabatic states using constrained density functional theory (CDFT). PyCDFT provides an object-oriented, customizable implementation of CDFT, and allows for both single-point self-consistent-field calculations and geometry optimizations. PyCDFT is designed to interface with existing density functional theory (DFT) codes to perform CDFT calculations where constraint potentials are added to the Kohn–Sham Hamiltonian. Here, we demonstrate the use of PyCDFT by performing calculations with a massively parallel first-principles molecular dynamics code, Qbox, and we benchmark its accuracy by computing the electronic coupling between diabatic states for a set of organic molecules. We show that PyCDFT yields results in agreement with existing implementations and is a robust and flexible package for performing CDFT calculations. The program is available at https://dx.doi.org/10.5281/zenodo.3821097.

37 INORGANIC, ORGANIC, PHYSICAL, AND ANALYTICAL CH↗

LAVA 1.0: A general-purpose python toolkit for calculation of material properties with LAMMPS and VASP

Here, we introduce LAVA, a general-purpose python toolkit to provide user-friendly and high throughput calculations for material properties using both LAMMPS and VASP. It contains a set of classes as well as pre-processing and post-processing functions to prepare, execute and extract information from LAMMPS/VASP simulations. An overview of the program structure is provided. The current version contains modules to calculate elastic and mechanical properties such as lattice constant, cohesive energy, cold curve, elastic constants, bulk and shear modulus, volume conserving/non-conserving deformation path, vacancy/interstitial formation energy, surface energy, stacking fault energy, melting point, radial distribution function, and thermal expansion. These functionalities are demonstrated for different interatomic potentials and DFT calculations in Al.

36 MATERIALS SCIENCE↗

VTAnDeM: A python toolkit for simultaneously visualizing phase stability, defect energetics, and carrier concentrations of materials

Phase stability, defect formation energies, and carrier concentrations are closely interrelated features of semiconductors. Due to their joint dependence on the multidimensional chemical potential space, it is challenging to quantitatively establish patterns between these quantities in a given semiconductor, especially when the semiconductor is comprised of multiple elements. To enable synchronous visualization and analysis of these complementary material properties and their interdependence, we developed the Visualization Toolkit for Analyzing Defects in Materials (VTAnDeM). This python-based toolkit allows users to interactively explore how defect formation energies and carrier concentrations vary across the composition and chemical potential spaces of multicomponent semiconductors. Here, we illustrate the computational workflow that employs VTAnDeM as a post-processing tool for first-principles calculations and describe the data organization and theory underlying the visualization scheme. Furthermore, we believe that this software will serve as a useful tool for simultaneously visualizing the often complex and non-intuitive chemical potential – defect – carrier concentration phase space of semiconductors.

36 MATERIALS SCIENCE↗

pyEGAF: An open-source Python library for the Evaluated Gamma-ray Activation File

The Evaluated Gamma-ray Activation File (EGAF) is one of the most comprehensive resources for thermal neutron-capture data. This database contains data from prompt gamma activation analysis measurements carried out in a consistent manner using the same experimental configuration at the Budapest Research Reactor for 245 isotopes. Although these valuable datasets have been freely available for many years, one of the drawbacks is the outdated and cryptic Evaluated Nuclear Structure Data File (ENSDF) format that is currently adopted for dissemination, making it difficult for users unfamiliar with the format to access and utilize the data contained therein. Furthermore, the ENSDF format does not readily lend itself to modern computational technologies and a parser is required to interpret the complicated mixed-record format. To help overcome these challenges, we have developed a translator to convert the ENSDF-formatted datasets into an open standard JavaScript Object Notation (JSON) format enabling accessibility to applications using different programming languages running in different environments. To compliment this effort, we have also developed an open-source software package implemented in Python, pyEGAF, that is designed to interact with the JSON data structures for general purpose access, manipulation, and analysis of the neutron-capture $\gamma$-ray data in EGAF. The new format, together with the pyEGAF library, greatly enhances access to the wider applications community where EGAF data may be useful or is required.

73 NUCLEAR PHYSICS AND RADIATION PHYSICS↗

ExactPack: A python library of exact analytic solutions

Verification of multi-physics simulation software against problems with known analytic or semi-analytic solutions is an important aspect of research into a wide variety of fields involving the motion of fluids, shock physics and other dynamic material properties. Previous work comparing simulation results against analytic solutions has been ad-hoc, with developers frequently writing their own analytic solvers. This has resulted in a large amount of duplicated effort. The python library ExactPack has been developed as a collection of analytic and semi-analytic solvers to a variety of multi-physics problems, providing a consistent API to a set of well-tested solver implementations.

97 MATHEMATICS AND COMPUTING↗

Identification of Novel Microcystins Using High-Resolution MS and MS n with Python Code

Cyanotoxins called microcystins (MCs) are highly toxic and can be present in drinking water sources. Determining the structure of MCs is paramount because of its effect on toxicity. Though over 300 MC congeners have been discovered, many remain unidentified. In this work, a method is described for the putative identification of MCs using liquid chromatography (LC) coupled with high-resolution (HR) Orbitrap mass spectrometry (MS) and a new bottom-up sequencing strategy. Maumee River water samples were collected during a harmful algal bloom and analyzed by LC–MS with simultaneous HRMS and MS/MS. Unidentified ions with characteristic MC fragments (135 and 213 m/z) were recognized as possible novel MC congeners. An innovative workflow was developed for the putative identification of these ions. Python code was written to generate the potential structures of unidentified MCs and to assign ions after the fragmentation for structural confirmation. The workflow enabled the putative identification of eight previously reported MCs for which standards are not available and two newly discovered congeners, MC-HarR and MC-E(OMe)R.

54 ENVIRONMENTAL SCIENCES↗

DancePartner: Python Package to Mine Multiomics Relationship Networks from Literature and Databases

A goal of multi-omics experiments is to understand how mechanistic molecular biology is altered between conditions, typically a control group and experimental groups. Oftentimes this involves studying changes in biomolecule relationships (e.g. interactions, metabolic relationships) of several types of biomolecules (e.g. proteins, lipids, metabolites). Though several databases contain relationships between biomolecules, understudied species may have little to no relationship information in databases and thus must be mined from literature. There are several challenges to literature mining, including automated full-text extraction, duplicate biomolecule term collapsing, and implementing complex machine learning tools. To make relationship extraction more accessible to the community, a python package called DancePartner was developed to allow for the extraction of relationships from literature and databases, with functions to map biomolecule synonyms to standardized identifiers and visualize and characterize the resulting multi-omics network. Here, in this study, an example dataset involving Caenorhabditis elegans is presented, where relationships are mined from 1443 publications using DancePartner. These relationships are combined with relationships from KEGG, WikiPathways, UniProt, and LipidMaps, and visualized.

BERT↗

Going under the hood of MontePy: A python API for MCNP input files [Slides]

MontePy is an open-source python software library for reading, editing, and writing MCNP input files. This presentation was given to a university research group interested in it. MontePy provides an object-oriented interface for working with these MCNP input files. It uses a lexer and parser system in order to create a concrete syntax tree representing the input from the input file.

97 MATHEMATICS AND COMPUTING↗

Efficient Space–Time Reduced Order Model for Linear Dynamical Systems in Python Using Less than 120 Lines of Code

A classical reduced order model (ROM) for dynamical problems typically involves only the spatial reduction of a given problem. Recently, a novel space–time ROM for linear dynamical problems has been developed [Choi et al., Space–tume reduced order model for large-scale linear dynamical systems with application to Boltzmann transport problems, Journal of Computational Physics, 2020], which further reduces the problem size by introducing a temporal reduction in addition to a spatial reduction without much loss in accuracy. The authors show an order of a thousand speed-up with a relative error of less than 10−5 for a large-scale Boltzmann transport problem. In this work, we present for the first time the derivation of the space–time least-squares Petrov–Galerkin (LSPG) projection for linear dynamical systems and its corresponding block structures. Utilizing these block structures, we demonstrate the ease of construction of the space–time ROM method with two model problems: 2D diffusion and 2D convection diffusion, with and without a linear source term. For each problem, we demonstrate the entire process of generating the full order model (FOM) data, constructing the space–time ROM, and predicting the reduced-order solutions, all in less than 120 lines of Python code. We compare our LSPG method with the traditional Galerkin method and show that the space–time ROMs can achieve O(10−3) to O(10−4) relative errors for these problems. Depending on parameter–separability, online speed-ups may or may not be achieved. For the FOMs with parameter–separability, the space–time ROMs can achieve O(10) online speed-ups. Finally, we present an error analysis for the space–time LSPG projection and derive an error bound, which shows an improvement compared to traditional spatial Galerkin ROM methods.

97 MATHEMATICS AND COMPUTING↗

PBjam: A Python Package for Automating Asteroseismology of Solar-like Oscillators

Asteroseismology is an exceptional tool for studying stars using the properties of observed modes of oscillation. So far the process of performing an asteroseismic analysis of a star has remained somewhat esoteric and inaccessible to nonexperts. In this software paper we describe PBjam, an open-source Python package for analyzing the frequency spectra of solar-like oscillators in a simple but principled and automated way. The aim of PBjam is to provide a set of easy-to-use tools to extract information about the radial and quadropole oscillations in stars that oscillate like the Sun, which may then be used to infer bulk properties such as stellar mass, radius, age, or even structure. Asteroseismology and its data analysis methods are becoming increasingly important as space-based photometric observatories are producing a wealth of new data, allowing asteroseismology to be applied in a wide range of contexts such as exoplanet, stellar structure and evolution, and Galactic population studies.

79 ASTRONOMY AND ASTROPHYSICS↗

Janus: A Python Package for Agent-Based Modeling of Land Use and Land Cover Change

Janus is an open source Python package for agent-based modeling (ABM) of land use and land cover change (LULCC). Many ABMs of LULCC have been created across platforms, some of which are not ideal for large scale, high resolution scenarios. This model provides a simple object-oriented framework for creating ABMs specific to LULCC. The organizational philosophy of the modeling framework is to create software objects (agents) that are associated with specific and contextual attributes which are isolated from where those agents exist in the spatial setting of the model, yet provide clear linkages between the agent, their environment, and other agents in the simulation. In this way, the framework allows for assembly of LULCC ABMs with low (programmatic) overhead, making the models extensible and providing clear mechanisms for integrating them with process-oriented biophysical models. Provided with Janus is a suite of geospatial data preprocessing tools that can use arbitrary land cover products as an input. Crop choice decisions are based on potential crop prices, these can be created synthetically, or drawn from integrated human-Earth systems models such as the GCAM. Janus is publicly accessible through GitHub and provides an example dataset for testing.

54 ENVIRONMENTAL SCIENCES↗

Performance and Operational Characteristics of a Python Turbine-propeller Engine at Simulated Altitude Conditions / Carl L. Meyer and Lavern A. Johnson

The performance and operational characteristics of a Python turbine propeller engine have been investigated over a range of engine operating conditions at simulated altitudes from 5000 to 40,000 feet in the NACA Lewis altitude wind tunnel . For the performance phase of the investigation, a single cowl-inlet ram pressure ratio was maintained and independent control of engine speed and fuel flow was used to obtain a range of power at each engine speed. Engine performance data obtained at a given altitude could not be used to predict performance accurately at other altitudes by use of the standard air pressure and temperature generalizing factors. Specific fuel consumption based on shaft horsepower decreased as the shaft horsepower increased at a given engine speed. At a given altitude condition and turbine -inlet total temperature, there was an optimum engine speed at which maximum shaft horsepower was obtained. At a given engine speed and turbine-inlet total temperature, a greater portion of the total available energy was converted to propulsive power as the altitude increased. Windmilling starts were made at altitudes up to 40,000 feet; the minimum true airspeed required for successful windmilling starts increased as the altitude was raised. In general, the engine control prevented large overshoots or undershoots of engine speed during starts, accelerations, and decelerations.

Engines - Armstrong-Siddely Python Turbo-Propeller↗

PCLAM: a Python Module for Computing Surface Lineloads and Moments

Lineloads serve a unique and important role in aerodynamic database development as well as configuration design and analysis. A new software suite was constructed which can compute lineloads rapidly enough that the calculations can run in tandem with high-fidelity fluid flow solvers. This enables the calculation of iteration- or time-dependent lineloads, which have thus far been too computationally costly to create for complicated systems like launch vehicles. The suite is organized into a standalone Python module named PCLAM (PCLAM Computes Lineloads And Moments) which can be imported into other software with minimal restructuring by the user or developer. The computed lineloads are integrated with a $C^0$ numerical quality and exhibit the expected sensitivity to underlying grid resolution. Even at low grid and lineload resolutions, the computed lineloads were found to be in strong agreement with several analytical test cases.

sectional loads↗

MLtool Python Code

Machine Learning (ML) is a subfield of Artificial Intelligence that gives computers the ability to learn from past data without being explicitly programmed. The predictive capabilities of ML models have already been used to facilitate several scientific breakthroughs. However, the practical application of ML is often limited due to the gaps in technical knowledge of its users. The common issue faced by many scientific researchers is the inability to choose the appropriate ML pipelines that are needed to treat real-world data, which is often sparse and noisy. To solve this problem, we have developed an automated Machine Learning tool (MLtool) that includes a set of ML algorithms and approaches to aid scientific researchers. The current version of MLtool is implemented as an object-oriented Python code that is easily extensible. It includes 44 different regression algorithms used to model data. MLtool helps users select the best model for their data, based on the scoring metrics used. Besides regression algorithms, MLtool also includes a suite of pre- and post-processing techniques such as missing value imputation, categorical variable encoding, input feature normalization, uncertainty quantification, exploratory data analysis (EDA), etc. MLtool was tested on several publicly available multi-dimensional data sets and was found capable of making accurate predictions.

Machine Learning↗

PVAnalytics: A Python Package for Automated Processing of Solar Time Series Data

Multiple publicly available software packages exist that analyze solar time series data, including RdTools and Solar Data Tools, among others. Several of these packages contain their own unique quality assurance (QA) and feature recognition algorithms. The python PVAnalytics package was developed to offer an internally consistent source for these analysis tools, making it easier for the end user to deploy these routines on his or her solar data. The PVAnalytics package currently contains routines for outlier detection, inverter clipping detection, irradiance and temperature checks, orientation checks, and data shift detection, among other functions. These functions have been aggregated from various sources including Solar Forecast Arbiter, RdTools, and the QA process developed by NREL's PV Fleets Initiative. We are continuously adding new functionality to the package, including documentation, examples and algorithms. By bundling QA functionality into a single software package, we hope to make PVAnalytics a comprehensive software library to support analysis of solar metadata and time series data.

data cleaning↗