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 199 records · Page 11

G2Aero: A Python package for separable shape tensors

G2Aero is a Python package for the design and deformation of discrete planar curves and tubular surfaces using a geometric data-driven approach. G2Aero utilizes a topology of product manifolds: the Grassmannian, $\mathcal{G}$($\mathcal{n}$, 2) - the set of 2-dimensional subspaces in $\mathbb{R}$ $\mathcal{n}$ - and the symmetric positive-definite (SPD) manifold, $\mathcal{S}^{2}_{++}$ - the set of 2x2 SPD matrices. The package provides a novel framework for representing separable deformations to shapes, which consist of stretching, scaling, rotating, and translating - also known as affine deformations - and a set of complementary deformations - which we refer to as undulation-type deformations. We focus on airfoil and blade design applications to emphasize the utility of the methods in an environment where the separation of affine and undulation-type deformations is critical. Notable functionalities of the framework for blade design include: 1) generating novel 2D (airfoil) shapes informed by a database of physically relevant airfoils, 2) building 3D blades by interpolating sequences of 2D airfoil cross-sections, and 3) generating blades with consistent perturbations along the blade span. We discuss the framework and provide examples in the context of wind energy applications, specifically wind turbine blade design. Figure 1 shows the wire frame obtained by interpolating airfoils defining the IEA 15-MW wind turbine blade and applying affine transformations corresponding to twist, chordal scaling, and bending. This, and all other figures in the paper, can be reproduced following examples and referencing supporting documentation provided in the G2Aero package.

97 MATHEMATICS AND COMPUTING↗

STITCHES: a Python package to amalgamate existing Earth system model output into new scenario realizations

Understanding the interaction between humans and the Earth system is a computationally daunting task, with many possible approaches depending on resources available and questions of interest. For example, state-of-the-art impact models require decade-long time series of relatively high frequency, spatially resolved and often multiple variables representing climatic impact-drivers (Ruane et al., 2022). Most commonly these are derived from the outputs of detailed, computationally expensive Earth System Models (ESMs) run according to a standard, limited set of future scenarios, the latest being the SSP-RCPs run under CMIP6/ScenarioMIP (Eyring et al., 2016; O’Neill et al., 2016). At the time of writing, O’Neill et al. (2016) has been cited more than 1750 times and Eyring et al. (2016) more than 5000 times, highlighting the broad, general applications of this data. Often, however, impact modeling seeks to explore new scenarios that were not part of the ScenarioMIP protocol, and/or needs a larger set of initial condition ensemble members than are typically available to quantify the effects of ESM internal variability. In addition, the recognition that the human and Earth systems are fundamentally intertwined, and may feature potentially significant feedback loops, is making integrated, simultaneous modeling of the coupled human-Earth system increasingly necessary, if computationally challenging with most existing tools (Thornton et al., 2017). For impact modelers, climate model emulators can be the answer to meet both the needs of: 1) creating realizations for novel scenarios and 2) achieving a simplified, computationally tractable representation of ESM behavior in a coupled human-Earth system modeling framework. We proposed a new, comprehensive approach to such emulation of gridded, multivariate ESM outputs for novel scenarios without the computational cost of a full ESM, STITCHES (Tebaldi et al., 2022). The approach outlined in Tebaldi et al. (2022) should be extensible to future CMIP eras, although the STITCHES software at present is strictly focused on CMIP6/ScenarioMIP data hosted on Pangeo (https://gallery.pangeo.io/repos/pangeo-gallery/cmip6/). The corresponding STITCHES Python package uses existing archives of ESMs’ scenario experiments from CMIP6/ScenarioMIP to construct gridded, multivariate realizations of new scenarios provided by reduced complexity climate models (Hartin et al., 2015; Meinshausen et al., 2011; Smith et al., 2018), or to enrich existing initial condition ensembles. Its output provides the same characteristics as the emulated ESM output: multivariate (spanning potentially all variables that the ESM has saved), spatially resolved (down to the native grid of the ESM), and preserving the same high frequency as the original data. A new realization of multiple variables can be generated on the order of minutes with STITCHES, rather than the hours or sometimes days that ESMs require.

97 MATHEMATICS AND COMPUTING↗

JetNet: A Python package for accessing open datasets and benchmarking machine learning methods in high energy physics

JetNet is a Python package that aims to increase accessibility and reproducibility for machinelearning (ML) research in high energy physics (HEP), primarily related to particle jets. Basedon the popular PyTorch ML framework, it provides easy-to-access and standardized interfacesfor multiple heterogeneous HEP datasets and implementations of evaluation metrics, lossfunctions, and more general utilities relevant to HEP.

97 MATHEMATICS AND COMPUTING↗

libEnsemble: A complete Python toolkit for dynamic ensembles of calculations

Almost all science and engineering applications eventually stop scaling: their runtime no longer decreases as available computational resources increase. Therefore, many applications will struggle to efficiently use emerging extreme-scale high-performance, parallel, and distributed systems. libEnsemble is a complete Python toolkit and workflow system for intelligently driving ensembles of experiments or simulations at massive scales. It enables and encourages multidisciplinary design, decision, and inference studies portably running on laptops, clusters, and supercomputers.

97 MATHEMATICS AND COMPUTING↗

xCDAT: A Python Package for Simple and Robust Analysis of Climate Data

xCDAT (Xarray Climate Data Analysis Tools) is an open-source Python package that extends Xarray (Hoyer & Hamman, 2017) for climate data analysis on structured grids. xCDAT streamlines analysis of climate data by exposing common climate analysis operations through a set of straightforward APIs. Some of xCDAT’s key features include spatial averaging, temporal averaging, and regridding. These features are inspired by the Community Data Analysis Tools (CDAT) library (Dean N. Williams et al., 2009) (D. N. Williams, 2014) (Doutriaux et al., 2019) and leverage powerful packages in the Xarray ecosystem including xESMF (Zhuang et al., 2023), xgcm (Abernathey et al., 2022), and CF xarray (Cherian et al., 2023). To ensure general compatibility across various climate models, xCDAT operates on datasets that are compliant with the Climate and Forecast (CF) metadata conventions (Hassell et al., 2017).

54 ENVIRONMENTAL SCIENCES↗

DRDMannTurb: A Python package for scalable, data-driven synthetic turbulence

Synthetic turbulence models (STMs) are used in wind engineering to generate realistic flow fields and are employed as inputs to industrial wind simulations. Examples include prescribing inlet conditions in large eddy simulations that model loads on wind turbines and tall buildings. We are interested in STMs capable of generating fluctuations based on prescribed second-moment statistics since such models can simulate environmental conditions that closely resemble on-site observations. To this end, the widely used Mann model (see Mann, 1994, 1998) is the inspiration for DRDMannTurb. The Mann model is described by three physical parameters: a magnitude parameter influencing the global variance of the wind field and corresponding to the Kolmogorov constant multiplied by the rate of viscous dissipation of the turbulent kinetic energy to the two-thirds, αϵ 2/3 , a turbulence length scale parameter L, and a nondimensional parameter Γ related to the lifetime of the eddies. A number of studies, as well as international standards (e.g., those by the International Electrotechnical Commission (IEC)), include recommended values for these three parameters with the goal of standardizing wind simulations according to observed energy spectra. Yet, having only three parameters, the Mann model faces limitations in accurately representing the diversity of observable spectra. This Python package enables users to extend the Mann model and more accurately fit field measurements through flexible neural network models of the eddy lifetime function. Following Keith et al. (2021), we refer to this class of models as Deep Rapid Distortion (DRD) models. DRDMannTurb also includes a general module implementing an efficient method for synthetic turbulence generation based on a domain decomposition technique. This technique is also described in Keith et al. (2021).

17 WIND ENERGY↗

popclass: A Python Package for Classifying Microlensing Events

popclass is a Python package that provides a flexible, probabilistic framework for classifying the lens of a gravitational microlensing event. Gravitational microlensing occurs when a massive foreground object (e.g., a star, white dwarf or black hole) passes in front of and lenses the light from a distant background source. This causes an apparent brightening, and shift in position, of the background source. In most cases, characteristics of the microlensing signal do not contain enough information to definitively identify the lens type. Different lens types lie in different but overlapping regions of the characteristics of the microlensing signal. For example, black holes tend to be more massive than stars and therefore cause microlensing signals that are longer. Current Galactic simulations enable us to predict where different lens types lie in the observational space and can therefore be used to classify events (e.g., Lam et al., 2020). popclass allows the user to match the characteristics of a microlensing signal with a simulation of the Galaxy to calculate lens type probabilities for the event (see Figure 1). Constraints on any microlensing signal properties and any Galactic model can be used. popclass comes with an interface to ArviZ (Kumar et al., 2019) and PyMultiNest (Buchner et al., 2014) for microlensing signal constraints, as well as pre-loaded Galactic models, plotting functionality, and methods to quantify the classification uncertainty. The probabilistic framework for popclass was developed in Perkins et al. (2024), used in Fardeen et al. (2024) and has been applied to classifying events in Kaczmarek et al. (2025).

97 MATHEMATICS AND COMPUTING↗

AutoUncertainties: A Python Package for Uncertainty Propagation

Propagation of uncertainties is of great utility in the experimental sciences. While the rules of (linear) uncertainty propagation are straightforward, managing many variables with uncertainty information can quickly become complicated in large scientific software stacks. Often, this requires programmers to keep track of many variables and implement custom error propagation rules for each mathematical operator and function. The Python package AutoUncertainties, described here, provides a solution to this problem.

97 MATHEMATICS AND COMPUTING↗

Virtual Engineering: Python framework for engineering process design

Virtual Engineering (VE) is a Python software framework designed to accelerate the research and development of engineering processes that are fundamentally defined by multiple unit operations executed in series. VE supports a wide variety of different multi-physics models and integrates them to simulate a complete end-to-end process. To automate the execution of this model sequence, VE provides (i) a robust method to communicate between models, (ii) a high-level, user-friendly interface to set model parameters and enable optimization, and (iii) an overall model-agnostic approach that allows new computational units to be swapped in and out of workflows. Although the VE framework was developed to support the biochemical conversion of biomass to fuel, we have designed each component to easily accommodate new domains and unit models.

09 BIOMASS FUELS↗

Pore2Chip: All-in-one python tool for soil microstructure analysis and micromodel design

The Pore2Chip Python package is designed to create 2D micromodels using extracted data from 3D X-ray computed tomography (XCT) images. This package helps analyze soil structure and function, allowing for the investigation of hydro-biogeochemical processes that impact mineral extraction and reactivity, oxygen concentrations, and nutrient availability in disturbed or managed soils. Key metrics encompass pore size distributions, pore throat size distributions, and connectivity (pore coordination numbers). The final output is a 2D scalable SVG design representing a core or aggregate. Designs can be fabricated with methods such as laser etching, 3D printing, and photolithography.

lab-on-chip↗

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↗

solposx: A Python package for determining solar position and atmospheric refraction

solposx is a Python package of reference algorithms for calculating the sun’s position and atmospheric refraction. The package includes 11 solar position algorithms and 6 refraction models from the past 50 years. All functions follow a standardized design pattern, making it easy to compare different algorithms. The provided algorithm implementations have been thoroughly vetted, making the package a valuable research tool and a reliable reference for implementing solar position algorithms in other programming languages or applications.

Jensen, Adam R. [Technical University of Denmark, ↗

PyDislocDyn: A Python code for calculating dislocation drag and other crystal properties

PyDislocDyn is a suite of python programs designed to perform various calculations for dislocation dynamics in the continuum limit. In particular, one of its main purposes is to calculate dislocation drag from phonon wind. Additional features include the averaging of elastic constants for polycrystals, the calculation of the dislocation field including its limiting velocities, and the calculation of dislocation self-energy and line tension.

36 MATERIALS SCIENCE↗

Raptor: A Python Library for Porosity Predictions in Additive Manufacturing

Raptor is an efficient Python library for simulating stochastic lack-of-fusion (sLoF) defects in additive manufacturing (AM) processes. These defects arise from stochastic variations in the melt pool boundary leading to undermelting from insufficient overlap between adjacent melt pools or successive layers (Grasso & Colosimo, 2017; Khairallah et al., 2016). Performance variability of AM parts is a pressing challenge in qualification and certification of AM parts; this is in part due to the poorly understood formation rate and statistics of sLoF defects. Raptor is designed to capture the explicit morphologies of sLoF defects and their statistics to accelerate qualification and certification efforts of AM parts in critical applications.

Subraveti, Vamsi [Vanderbilt University]↗

PAO 1.0: A Python Library for Adversarial Optimization

PAO is a Python-based package for Adversarial Optimization. The goal of this package is to provide a general modeling and analysis capability for bilevel, trilevel and other multilevel optimization forms that express adversarial dynamics. PAO integrates two different modeling abstractions: 1. Algebraic models extend the modeling concepts in the Pyomo algebraic modeling language to express problems with an intuitive algebraic syntax. Thus, we expect that this modeling abstraction will commonly be used by PAO end-users. 2. Compact models express objective and constraints in a manner that is typically used to express the mathematical form of these problems (e.g. using vector and matrix data types). PAO denes custom Multilevel Problem Representations (MPRs) that simplify the implementation of solvers for bilevel, trilevel and other multilevel optimization problems.

97 MATHEMATICS AND COMPUTING↗

Development of the uncertainty quantification toolkit's python interface and surrogate construction tutorial

The uncertainty quantification toolkit (UQTk) is a collection of c++ libraries that assess the confidence of numerical models. Surrogate approximations, often polynomial chaos expansions (PCEs), lessen the computational cost of these assessments. I developed a Python interface in UQTk for regression and Bayesian compressive sensing to add to the existing Galerkin projection method. These methods receive an object containing the polynomial basis information and NumPy arrays of sample points, call c++ methods, and return the PCE coefficients in a NumPy array. To demonstrate these methods, I wrote a tutorial in which I use them to construct surrogates for Genz functions and calculate the resulting error.

97 MATHEMATICS AND COMPUTING↗