Engineering Papers⌕ Search

SEARCH · Engineering Papers

Results for “python, computer programming”

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 127 records · Page 7

NeMO-Net The Neural Multi-Modal Observation Training Network for Global Coral Reef Assessment

In the past decade, coral reefs worldwide have experienced unprecedented stresses due to climate change, ocean acidification, and anthropomorphic pressures, instigating massive bleaching and die-off of these fragile and diverse ecosystems. Furthermore, remote sensing of these shallow marine habitats is hindered by ocean wave distortion, refraction and optical attenuation, leading invariably to data products that are often of low resolution and signal-to-noise (SNR) ratio. However, recent advances in UAV and Fluid Lensing technology have allowed us to capture multispectral 3D imagery of these systems at sub-cm scales from above the water surface, giving us an unprecedented view of their growth and decay. Exploiting the fine-scaled features of these datasets, machine learning methods such as MAP, PCA, and SVM can not only accurately classify the living cover and morphology of these reef systems (below 8 error), but are also able to map the spectral space between airborne and satellite imagery, augmenting and improving the classification accuracy of previously low-resolution datasets.We are currently implementing NeMO-Net, the first open-source deep convolutional neural network (CNN) and interactive active learning and training software to accurately assess the present and past dynamics of coral reef ecosystems through determination of percent living cover and morphology. NeMO-Net will be built upon the QGIS platform to ingest UAV, airborne and satellite datasets from various sources and sensor capabilities, and through data-fusion determine the coral reef ecosystem makeup globally at unprecedented spatial and temporal scales. To achieve this, we will exploit virtual data augmentation, the use of semi-supervised learning, and active learning through a tablet platform allowing for users to manually train uncertain or difficult to classify datasets. The project will make use of Pythons extensive libraries for machine learning, as well as extending integration to GPU and High-End Computing Capability (HECC) on the Pleiades supercomputing cluster, located at NASA Ames. The project is being supported by NASAs Earth Science Technology Office (ESTO) Advanced Information Systems Technology (AIST-16) Program.

Remote Sensin↗

Design of an Application Programming Interface for the Program to Optimize Simulated Trajectories II

A significant effort to upgrade the Program to Optimize Simulated Trajectories II (POST2), a heritage flight mechanics tool developed at NASA Langley Research Center, is ongoing to support current and future NASA missions. To meet mission requirements, it may be necessary for multiple specialized computational tools to interact to properly assess a system. An application programming interface for POST2 was developed to allow easier access for users and to enable communication between external applications. A demonstration of the POST2application programming interface is presented by utilizing common engineering platforms such as MATLAB and Python.

R Anthony Williams↗

The Kokkos EcoSystem: Comprehensive Performance Portability For High Performance Computing

State of the art Engineering and Science codes have grown in complexity dramatically over the last two decades. As a consequence application teams have adopted more sophisticated development strategies, leveraging third party libraries, deploying comprehensive testing and using advanced debugging and profiling tools. In todays environment of diverse hardware platforms, these applications also desire performance portability - avoiding the need to duplicate work for various platforms - which makes it necessary that these tools and libraries also work across the various systems. The Kokkos EcoSystem provides that portable software stack. Based on the Kokkos Core Programming Model, the EcoSystem provides math libraries, interoperability capabilities with Python and Fortran, and Tools for analysing, debugging, and optimizing applications. In this paper we will provide an overview of the components, discuss some specific use cases, and highlight how co-designing these components enables a more developer friendly experience.

42 ENGINEERING↗

Developing a Multi-Lingual Autocoding Interface for the MAVERIC-II Dynamics Simulator

Simulation model development in certain high-level languages such as Python, MATLAB, or Simulink are unparalleled by their convenience and rapid turnover time. However, legacy simulation engines often depend on more traditional languages such as FORTRAN or C/C++. The NASA Marshall Aerospace Vehicle Representation in C version II (MAVERIC-II) is a modular, legacy-derived computer program used for high-fidelity, 6 degree-of-freedom (6dof) simulation for aerospace vehicle flights and analyses of guidance and control performance with built-in mathematical modeling of environmental effects such as wind, atmosphere, and gravity as well as dispersion capability for Monte Carlo analysis. MAVERIC-II is modular in the sense that each component software element of the simulation engine may be supplanted for a higher or lower fidelity version. The design flow of the development of these models is often performed in high-level languages as mentioned previously, which must then be translated into C or C++ code to be integrated into MAVERIC-II. We propose a unified method of autocoding and interfacing between several languages and MAVERIC-II, which may be generalized further to any type of 6dof simulation engine.

Mason Nixon↗

Developing a Multilingual Auto-coding Interface Control for the MAVERIC-II Dynamics Simulator

Simulation model development in certain high-level languages such as Python, MATLAB, or Simulink are unparalleled by their convenience and rapid turnover time. However, legacy simulation engines often depend on more traditional languages such as FORTRAN or C/C++. The NASA Marshall Aerospace Vehicle Representation in C version II (MAVERIC-II) is a modular, legacy-derived computer program used for high-fidelity, 6 degree-of-freedom (6DOF) simulation for aerospace vehicle flights and analyses of guidance and control performance with built-in mathematical modeling of environmental effects such as wind, atmosphere, and gravity as well as dispersion capability for Monte Carlo analysis. MAVERIC-II is modular in the sense that each component software element of the simulation engine may be supplanted for a higher or lower fidelity version. The design flow of the development of these models is often performed in high-level languages as mentioned previously, which must then be translated into C or C++ code to be integrated into MAVERIC-II. Using principles of model-based design, we propose a unified method of auto-coding and interfacing between several languages and MAVERIC-II, which may be generalized further to any type of 6DOF simulation engine.

Mason Nixon↗

Solar Field Layout and Aimpoint Strategy Optimization

The existing methods that determine heliostat aiming strategies for concentrating solar power (CSP) central receiver plants typically use heuristics and/or are computationally expensive, and they lack flexibility for different desired flux profiles and receiver geometries. Because of the interaction between layout and aimpoint strategy, considering the former without accounting for the latter may yield solutions with superfluous heliostats that cannot be used efficiently without compromising receiver flux constraints. To that end, we develop a software decision tool that uses innovative optimization methods to both optimize aimpoint strategies and improve candidate layouts for the solar collection field of a CSP central receiver plant. A CSP plant’s effectiveness relies on the optical efficiency of the solar field, which may be limited by losses due to (i) the cosine effect, (ii) atmospheric attenuation, (iii) interference (i.e., shading and blocking) between heliostats, (iv) spillage as a result of heliostat positioning and geometry, and (iv) some heliostats’ inability to direct irradiance to the receiver without damage due to excessive thermal flux. The goal of this work is to obtain optimized aiming strategies and improved solar field layouts that reduce capital cost and increase field optical efficiency and utilization, while meeting the power requirements of a given CSP receiver design. We formulate the aimpoint optimization problem as a mixed-integer linear programming model, which we then decompose into submodels that we solve in parallel. The decomposition subdivides the solar field into sections, and aimpoint strategies for each section are obtained independently of the others. To improve existing layouts, we develop a utilization-weighted efficiency metric that we use to relocate heliostats to sections of the solar field with similar efficiency and higher utilization. Finally, to connect our software to high-fidelity flux models, we develop a Python application programming interface for SolarPILOT, a mature software package that characterizes solar field performance and generates the heliostat layouts and flux maps that serve as input to our models.

14 SOLAR ENERGY↗

Large language model evaluation for high–performance computing software development

We apply AI-assisted large language model (LLM) capabilities of GPT-3 targeting high-performance computing (HPC) kernels for (i) code generation, and (ii) auto-parallelization of serial code in C ++, Fortran, Python and Julia. Our scope includes the following fundamental numerical kernels: AXPY, GEMV, GEMM, SpMV, Jacobi Stencil, and CG, and language/programming models: (1) C++ (e.g., OpenMP [including offload], OpenACC, Kokkos, SyCL, CUDA, and HIP), (2) Fortran (e.g., OpenMP [including offload] and OpenACC), (3) Python (e.g., numpy, Numba, cuPy, and pyCUDA), and (4) Julia (e.g., Threads, CUDA.jl, AMDGPU.jl, and KernelAbstractions.jl). Kernel implementations are generated using GitHub Copilot capabilities powered by the GPT-based OpenAI Codex available in Visual Studio Code given simple + + prompt variants. To quantify and compare the generated results, we propose a proficiency metric around the initial 10 suggestions given for each prompt. For auto-parallelization, we use ChatGPT interactively giving simple prompts as in a dialogue with another human including simple “prompt engineering” follow ups. Results suggest that correct outputs for C++ correlate with the adoption and maturity of programming models. For example, OpenMP and CUDA score really high, whereas HIP is still lacking. We found that prompts from either a targeted language such as Fortran or the more general-purpose Python can benefit from adding language keywords, while Julia prompts perform acceptably well for its Threads and CUDA.jl programming models. Finally, we expect to provide an initial quantifiable point of reference for code generation in each programming model using a state-of-the-art LLM. Overall, understanding the convergence of LLMs, AI, and HPC is crucial due to its rapidly evolving nature and how it is redefining human-computer interactions.

97 MATHEMATICS AND COMPUTING↗

gpCAM v8

gpCAM is a Python software for large-scale Gaussian-Process driven uncertainty quantification, Bayesian Optimization, and Autonomous Experimentation. It is designed with maximum flexibility and customizability while offering record-breaking computing capabilities. In 2023 gpCAM broke the world record for Gaussian processes on large datasets set in 2019. Through clever programming and math, Gaussian Process building blocks, such as prior mean, kernel, and noise functions maintain their mathematical flexibility while supporting acceleration and scaling. This flexibility means that the approximation and uncertainty quantification can be domain-aware and extended over exotic input and output spaces.

Noack, Marcus↗

Decoherence Noise on the Superconducting Qubits Training Program

Quantum computing is a growing field with promising applications in a variety of fields such as healthcare, energy consumption, and cryptography. Quantum computing leverages the principles of quantum mechanics - superposition and entanglement. Yet, in the Noisy Intermediate Scale Quantum (NISQ) Era - quantum systems face the major challenge of decoherence due to noise. This era is characterized by low amounts of qubits and high gate error. Decoherence leads to the loss of the quantum information stored in the qubit. Noise occurs with any quantum system that is exposed to the environment. It should also be noted that quantum information can be stored in the cavity - Fermilab specializes in coupling transmons to ultrahigh-Q SRF cavities. The Superconducting Qubits Training Program (SQTP) provides a visualization for beginners in quantum computing. The open quantum system simulated is a superconducting qubit (two-level atom) coupled to a microwave cavity whose excitations are photons. The Rotating Wave Approximation of the Jaynes-Cumming Hamiltonian is used. SQTP utilizes open-source Python-based libraries scQubits, NumPy, and QuTiP alongside the Master Lindblad equation. In this project, we study the different decay behaviors of qubits and cavities with collapse operators.

Lopez, Sara↗

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↗

Integrating Machine-learning-assisted Computer Vision with RICH System

Developments in artificial intelligence have vastly expanded the capabilities of robots. Currently, the Spallation Neutron Source (SNS) beamlines at Oak Ridge National Lab (ORNL) have robotic sample loaders to increase the efficiency of running experiments. However, they require retraining if anything about the situation changes, e.g., where the samples are, and cannot notice if errors occur. So, the viability of using computer vision and machine learning to enhance these sample loaders’ functionality was investigated. In this project, the RICH system with a Dobot CR3 6-axis robot present at the VULCAN beamline assisted by an Intel Realsense D435i camera, a unique camera that enables convenient translation of 2D pixel coordinates to 3D world points, was programmed to load ceramic crucibles into a thermogravimetric analyzer (TGA) furnace. An algorithm was constructed in Python with three major phases planned: (1) obtaining a sample, (2) moving it to the target location, and then (3) bringing the sample back to its original location once the experiment finished. In the first phase, the algorithm would dynamically detect sample locations using ArUco markers to recognize the samples’ general location and a custom-trained yolov5 object detection model to locate the crucibles’ centers. Afterward, the robot would be directed to pick up samples based on the crucibles’ calculated positions. In the second phase, the robot would move the sample to a secondary point, reorient its grip, and place the sample at the target location. In the final phase, the robot would determine whether the sample was intact and would bring it back to its original place if it was or raise an alarm. Using this algorithm, the robot was able to pick up different types of crucibles at varying positions. These results indicate that integrating machine-learning-assisted computer vision with robotic sample loaders can result in effective autonomous detection of samples.

97 MATHEMATICS AND COMPUTING↗

SEAS Communication Engine: An Extensible, Flexible Wrapper for Co-Simulation Agents

When modeling and analyzing the power grid and other large scale systems, researchers often express scenarios as optimization problems and feed them into advanced software solvers. In order to allow multiple solvers to communicate with each other and share data from different domains, the National Renewable Energy Laboratory (NREL) and associated Department of Energy (DOE) labs have developed a software framework called the Hierarchical Engine for Large-scale Infrastructure Co-Simulation (HELICS). HELICS allows cosimulation via a collection of client libraries for different languages that can be called from the appropriate optimization software. However, these client libraries do not provide a higher level of abstraction beyond reading and writing data off of the shared HELICS bus. In this paper, we describe a new software library called the SEAS Communication Engine that exposes a higher-level API for running cosimulation problems. The SEAS Engine provides a class-based abstraction on top of the Python HELICS client, in order to allow users to implement their domain-specific cosimulations without needing to interact with core HELICS primitives. This will make adoption of HELICS and cosimulation in general easier, by exposing a simpler API. In the second part of the paper, we validate our library on a collection of different simulation examples, including the canonical IEEE 13 Bus Feeder. Lastly, we demonstrate using the SEAS Engine to directly call domain-specific code written in the Julia programming language. Our hope is that this will serve as a template for easily calling software in different programming languages via the SEAS Engine, thereby avoiding code duplication and complexity.

co-simulation↗

Automated Calibration System for Beam Current Monitor

The Beam Current Monitor (BCM) measures the instantaneous current in a beam. This work aims to develop an automated calibration system for the BCM to address the need for calibration without interrupting beam operation. We strive to create a synchronous calibration method integrated into the master timeline by utilizing the pulsed nature of synchrotrons to run calibration pulses during inter-pulse gaps. This improvement should enhance operational efficiency, ensure safe operation, and help mitigate beam loss, all by enabling intermittent calibration during the operation of the accelerator. This is accomplished by developing a Python program that interfaces with a Keithley 6221 DC and AC source and a Keithley 2182A Nanovoltmeter. The program configures both of these devices to perform a selected mode of the current sweep, allows for the initiation of the current sweep, collects the measured voltage data from the 2182A, stores the collected data to the computer in a CSV file, and graphs the collected data.

Haller, James↗

Aircraft Flaps Modeling in OpenMDAO

The goal of this project was to develop a model for a single subsystem in the aerodynamics discipline, in this case the flaps of an aircraft. Flaps are high-lift devices used by planes to allow for quicker takeoffs, and slower landings. A computer-based aircraft model of the flaps of an aircraft was developed using the Python based open-source framework OpenMDAO. OpenMDAO is used to develop multi-disciplinary aircraft models using gradient-based optimization; design optimization (MDO) is concerned with solving design problems involving numerical models of complex engineering systems. There were 4 components in the model; each has input values, output variables, and equations to calculate said outputs. The variables and equations are sourced from NASA Fortran code from the 1970s, in a project called the General Aviation Synthesis Program (GASP). These variables and equations which create the model are being converted to Python for ease of use. The flaps model developed will be integrated into a larger model of a conventional aircraft’s flight phases. All subsystems of the model will first be built using the parameters of a Boeing 737 MAX-8, to validate its functionality and accuracy. Then, the aircraft model will be used for hybrid-electric research; running optimizations to improve efficiency, minimize fuel burn, and advance hybrid-electric technology in the aerospace field.

Computer-based aircraft modeling↗

PySpawn: Software for Nonadiabatic Quantum Molecular Dynamics

The ab initio multiple spawning (AIMS) method enables nonadiabatic quantum molecular dynamics simulations in an arbitrary number of dimensions, with potential energy surfaces provided by electronic structure calculations performed on-the-fly. However, the intricacy of the AIMS algorithm complicates software development, deployment on modern shared computer resources, and post-simulation data analysis. PySpawn is a nonadiabatic molecular dynamics software package that addresses these issues. Here, the program is designed to be easily interfaced with electronic structure software, and an interface to the TeraChem software package is described here. PySpawn introduces a task-based reorganization of the AIMS algorithm, allowing fine-grained restart capability and setting the stage for efficient parallelization in a future release. PySpawn includes a user-friendly and interactive Python analysis module that will enable novice users to painlessly adopt AIMS. As a demonstration of PySpawn’s simulation capability and analysis module, we report complete active space self-consistent field–based AIMS simulations of the 1,2- dithienyl-1,2-dicyanoethene molecule, a promising molecular photoswitch.

37 INORGANIC, ORGANIC, PHYSICAL, AND ANALYTICAL CH↗

GASP Advancements With Symbolic Computations, Optimization, and Decoupled Numerical Methods

NASA is exploring advancements in hybrid-electric propulsion concepts for aircraft design. A new analysis capability has been deployed at NASA’s Ames Research Center using a new mathematical modeling framework in Python that leverages symbolic representation of mathematical expressions, optimization-based problem formulations, and standalone numerical methods. This capability, called Gascon, has been verified against NASA’s General Aviation Synthesis Program (GASP) results for several vehicles that exercise the analysis capability for a variety of aircraft classes and engine models, including both turbofans and turboprops. We believe this capability will set the stage for more rapid development of novel aircraft models with more flexible design assessments using optimization, and more traceable analysis for reproducibility. Additionally, a novel Pareto optimization-based design space exploration that shows the trade between range flown and fuel burn by manipulating the thrust split during cruise for a true parallel hybrid aircraft was developed by leveraging the unique features of Gascon.

aircraft design↗

Variance reduction via simultaneous importance sampling and control variates techniques using vegas

Monte Carlo (MC) integration is an important calculational technique in the physical sciences. Practical considerations require that the calculations are performed as accurately as possible for a given set of computational resources. To improve the accuracy of MC integration, a number of useful variance reduction algorithms have been developed, including importance sampling and control variates. In this work, we demonstrate how these two methods can be applied simultaneously, thus combining their benefits. We provide a python wrapper, named CoVVVR, which implements our approach in the VEGAS program. The improvements are quantified with several benchmark examples from the literature.

72 PHYSICS OF ELEMENTARY PARTICLES AND FIELDS↗

Codebase release r1.4 for CoVVVR

Monte Carlo (MC) integration is an important calculational technique in the physical sciences. Practical considerations require that the calculations are performed as accurately as possible for a given set of computational resources. To improve the accuracy of MC integration, a number of useful variance reduction algorithms have been developed, including importance sampling and control variates. In this work, we demonstrate how these two methods can be applied simultaneously, thus combining their benefits. We provide a python wrapper, named COVVVR, which implements our approach in the VEGAS program. The improvements are quantified with several benchmark examples from the literature.

Shyamsundar, Prasanth↗