Search NASA⌕ Search

SEARCH · Search NASA

Results for “open source 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 451 records · Page 25

MOOSE Reactor Module Meshing Enhancements to Support Reactor Physics Analysis

The U.S. Department of Energy Office of Nuclear Energy Advanced Modeling and Simulation (NEAMS) program develops an integrated suite of advanced reactor physics tools built upon the Multiphysics Object-Oriented Simulation Environment (MOOSE) framework. Each code generally requires an input finite element mesh on which the physics solution is calculated, reported, and transferred to other physics codes. The meshing process is often burdensome for the complex geometries present in reactors due to lack of easy-to-use, open-source meshing tools. To address the bottleneck associated with meshing complex geometries found in nuclear reactors, NEAMS initiated the development of the MOOSE Reactor Module starting in FY21. The Reactor Module builds off the existing MOOSE Mesh System to include targeted meshing capabilities such as the ability to generate hexagonal pin cells, assemblies with ducts, rotating control drums, cores, peripheral zones around a core, as well as the automatic labeling (“reporting IDs”) of pin, assembly, and planar zones to simplify post-processing of results. As a Physics Module in MOOSE, the Reactor Module is open-source, available with any MOOSE installation, directly compatible with MOOSE-based tools, and can be invoked from MOOSEbased applications to generate meshes. Functionality from the Reactor Module has been applied to several advanced reactor concepts to demonstrate user workflow improvements and accuracy. The primary objective of the Reactor Module is to improve useability of MOOSEbased tools by streamlining mesh generation and output inspection processes. During FY22, the functionality of the Reactor Module (and accompanying Mesh System) has been expanded based on user needs. First, the Reactor Geometry Mesh Builder capability developed primarily in FY21 has been refactored and merged to the public MOOSE repository. This capability wraps underlying Reactor Module mesh generators into a “Pin – Assembly – Core” workflow appropriate for conventional Cartesian and hexagonal geometries, and notably assigns material IDs during mesh generation stage and generates only the minimal number of blocks needed in order to reduce computational burden. Biasing and boundary layer options have been added to the base mesh generators as required by thermal hydraulics solvers. The reporting ID functionality has been expanded to differentiate ring-wise and azimuthal sectors within a pin for use with depletion algorithms, and VectorPostProcessor and Reporter objects are now available to integrate solution variables across zones based on ID combinations. Functionality to trim hexagonal meshes along the center or periphery has been developed so users may leverage symmetry and reflective boundary conditions to reduce the mesh size. A flexible and powerful tool to fill the space between two sidesets has been introduced to the framework and can be used for transition layers such as stitching two assemblies together with different numbers of pins, or for complex geometries which do not follow conventional Cartesian/hexagonal patterns. Finally, additional verification problems were performed with NEAMS physics tools in complement with existing NEAMS work.

22 GENERAL STUDIES OF NUCLEAR REACTORS↗

2.1.1.1.401 - Wave Energy Converter Modeling

The Wave Energy Converter (WEC) Modeling Project began in 2013 with the aim of driving innovation and advancing the state of the wave energy industry by developing publicly available, easy to use software that's customizable to meet end user needs. This project is primarily focused on development of open source software for numerical design and analysis of wave energy converters (WEC), and it also supports international collaboration on standards (IEC TC 114), code verification and validation (IEA OES Task 10) and a competition (WECCCOMP).

MATHEMATICS AND COMPUTING,TIDAL AND WAVE POWER↗

RAVIS: Resource Forecast and Ramp Visualization for Situational Awareness of Variable Renewable Generation

The Resource Forecast and Ramp Visualization for Situational Awareness (RAVIS) is an innovative, open-source tool for visualizing variable renewable resource forecasts and alerts for significant up- and down-ramps in renewable generation and the consequent system net load. The modular dashboard of RAVIS contains configurable panes for viewing probabilistic time-series forecasts, ramp event alerts on the look-ahead timeline, and spatially resolved resource sites, and forecasts. For comprehensive situational awareness, the tool can add additional data layers from simulation and independent system operator (ISO) market clearing data---including electric line utilization, nodal price, and available generation flexibility---in response to continuously updated renewable forecasts. This paper introduces the RAVIS technology suite employed to provide optimum visualization and flexible design characteristics. The paper also illustrates some use cases of the tool using site-specific solar power forecast data obtained from the IBM Watt-Sun forecasting platform for the California ISO and Midcontinent ISO footprints. The source code for RAVIS is public (https://github.com/ravis-nrel/ravis), and the intended users are forecasters, utility planners, ISO operators, and researchers.

41 EE - Solar Energy Technologies Office (EE-4S)↗

SIMULATeQCD: A simple multi-GPU lattice code for QCD calculations

The rise of exascale supercomputers has fueled competition among GPU vendors, driving lattice QCD developers to write code that supports multiple APIs. Moreover, new developments in algorithms and physics research require frequent updates to existing software. These challenges have to be balanced against constantly changing personnel. At the same time, there is a wide range of applications for HISQ fermions in QCD studies. This situation encourages the development of software featuring a HISQ action that is flexible, high-performing, open source, easy to use, and easy to adapt. In this technical paper, we explain the design strategy, provide implementation details, list available algorithms and modules, and show key performance indicators for SIMULATeQCD, a simple multi-GPU lattice code for large-scale QCD calculations, mainly developed and used by the HotQCD collaboration. The code is publicly available on GitHub.

73 NUCLEAR PHYSICS AND RADIATION PHYSICS↗

Python Library For Reading Endf Files

Evaluated Nuclear Data Files (ENDFs) are the most common way to store nuclear data. However, they are a hard-to-read format that few people or programs can read. OpenMC, an open source project, developed a way to read Evaluated Nuclear Data Files (ENDF) into a useful form for python. This library will remove all unnecessary code from OpenMC to focus solely on reading nuclear data. In addition, it will handle parsing Grouped cross-section data from an ENDF file, which OpenMC does not currently handle.

Gale, MicahD.↗

Accelerate M-TIP on GPUs and deploy to Summit and NERSC-9 (against simulated data) WBS 2.2.4.05 ExaFEL, Milestone ADSE13-199

We evaluated the orientation matching step in the M-TIP SPI workflow for potential offloading to accelerators. We ported the code to GPUs, benchmarked it, optimized and down-selected the best versions. The accelerated version of the orientation matching code that was developed at LANL (LANL GPU v3) is 34-55X faster than sequential, 2.4-4.9X faster than the fastest OpenMP open source version we found (FAISS OpenMP) and 1.5-4X faster than the fastest GPU open source version we found (FAISS GPU). Summit single-node GPU versions were somewhat faster than Cori GPU. Image size plays a role; mid-range image sizes take more time. The LANL CUDA multi-node, multi-GPU implementation shows mostly linear strong scaling. I/O also plays a large role; splitting data into parts improves read time and burst buffers dramatically improve read times. This work will be integrated into the M-TIP workflow as part of the next milestone ADSE13-193.

97 MATHEMATICS AND COMPUTING↗

Data for "Verification of the kinetic electron role in the microinstabilities in a negative triangularity model equilibrium"

This contains the dataset used in "Verification of the kinetic electron role in the microinstabilities in a negative triangularity model equilibrium" published in Physics of Plasmas in Oct 2024. It consists of plaintext files as well as .bp files (which may be read by ADIOS open-source software) used for creating the plots that appear in the paper. These are derived from simulation outputs from XGC (X-point Gyrokinetic Code). The data mainly consists of growth rate and frequency measurements as well as poloidal cross-section data.

gyrokinetic↗

RAVIS: Resource Forecast and Ramp Visualization for Situational Awareness of Variable Renewable Generation: Preprint

The Resource Forecast and Ramp Visualization for Situational Awareness (RAVIS) is an innovative, open-source tool for visualizing variable renewable resource forecasts and alerts for significant up- and down-ramps in renewable generation and the consequent system net load. The modular dashboard of RAVIS contains configurable panes for viewing probabilistic time-series forecasts, ramp event alerts on the look-ahead timeline, and spatially resolved resource sites, and forecasts. For comprehensive situational awareness, the tool can add additional data layers from simulation and independent system operator (ISO) market clearing data—including electric line utilization, nodal price, and available generation flexibility—in response to continuously updated renewable forecasts. This paper introduces the RAVIS technology suite employed to provide optimum visualization and flexible design characteristics. The paper also illustrates some use cases of the tool using site-specific solar power forecast data obtained from the IBM Watt-Sun forecasting platform for the California ISO and Midcontinent ISO footprints. The source code for RAVIS is public (https://github.com/ravis-nrel/ravis), and the intended users are forecasters, utility planners, ISO operators, and researchers.

41 EE - Solar Energy Technologies Office (EE-4S)↗

AdditiveFOAM: A Continuum Multiphysics Code for Additive Manufacturing

AdditiveFOAM is a computational framework that simulates transport phenomena in Additive Manufacturing (AM) processes. It is built on OpenFOAM (Weller et al., 1998), the leading free, open-source software package for computational fluid dynamics (CFD). OpenFOAM offers an extensible platform for solving complex multiphysics problems using state-of-the-art finite volume methods. AdditiveFOAM leverages these capabilities to develop specialized tools aimed at addressing challenges in AM processing. Metal additive manufacturing, also known as metal 3D printing, is an advanced manufacturing technique that creates physical parts from a three-dimensional (3D) digital model by melting metal powder or wire feedstock. A significant area of research in metal AM focuses on process planning to mitigate anomalous features during printing that are deleterious to part performance (e.g., porosity and cracking), as well as controlling localized microstructure and material properties. Given the high costs and substantial time requirements associated with experimental methods for qualifying new materials and processes, there is a compelling incentive for researchers to utilize advanced computational simulations. In this context, AdditiveFOAM offers a simulation framework to better understand undesirable features in printing, thereby enhancing process planning and reducing the reliance on labor-intensive experimental campaigns.

Coleman, John [Oak Ridge National Laboratory (ORNL↗

3D full wave fast wave modeling with realistic HHFW antenna geometry and SOL plasma in NSTX-U

This paper reports the significant advancement of our ability to model and to understand how RF waves interact with the SOL plasma, by developing for the full torus 3D scrape-off layer (SOL) plasma simulation together with the antenna and core plasma in the NSTX-U device in HHFW frequency regime for a cold plasma model. The present paper extends the previous modeling (Bertelli et al 2020 AIP Conf. Proc. 2254 030001) to a full 3D device geometry including realistic antenna geometry in order to capture a more realistic experimental situation including the fully 3D wave field effects and the antenna plasma interaction in the SOL plasma, and, at the same time, resulting core wave propagation. Here, the central tool of the present work is the Petra-M code, which is a newly developed state-of-the-art generic electromagnetic simulation tool for modeling RF wave propagation based on MFEM (http://mfem.org), an open source scalable C++ finite element method library.

3D RF modeling↗

Best practices for documenting a scientific Python project

Documentation is a crucial component of software development that helps users with installation and usage of the software. Documentation also helps onboard new developers to a software project with contributing guidelines and API information. The INTERSECT project is an open federated hardware/software library to facilitate the development of au- tonomous laboratories. A documentation strategy using Sphinx has been utilized to help developers contribute to source code and to help users understand the INTERSECT Python interface. Docstrings as well as reStructuredText files are used by Sphinx to automatically compile HTML and PDF files which can be hosted online as API documentation and user guides. The resulting documentation website is automatically built and deployed using GitLab runners to create Docker containers with NGINX servers. The approach discussed in this paper to automatically deploy documentation for a Python project can improve the user and developer experience for many scientific projects.

Wiggins, Gavin↗

TINES - Time Integration, Newton and Eigen Solver v. 1.0

SAND2021-1505 O. TINES is an open source software providing math infrastructure for solving many stiff time ordinary differential equations (ODEs) and/or differential algebraic equations (DAEs) using a batch hierarchical parallelism. The code is written using a parallel programming model (i.e., Kokkos) to future-proof the next generation parallel computing platforms such as GPU accelerators. This code is developed to support Exascale Catalytic Chemistry (ECC) Project. The code provides fundamental math helpers that can aid other research projects. 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.

Kim, Kyungjoo↗

SCEPTRE 2.3 Quick Start Guide

This report provides a summary of notes for building and running the Sandia Computational Engine for Particle Transport for Radiation Effects (SCEPTRE) code. SCEPTRE is a general- purpose C++ code for solving the linear Boltzmann transport equation in serial or parallel using unstructured spatial finite elements, multigroup energy treatment, and a variety of angular treatments including discrete ordinates (Sn) and spherical harmonics (Pn). Either the first-order form of the Boltzmann equation or one of the second-order forms may be solved. SCEPTRE requires a small number of open-source Third Party Libraries (TPL) to be available, and example scripts for building these TPL are provided. The TPL needed by SCEPTRE are Trilinos, Boost, and Netcdf. SCEPTRE uses an autotools build system, and a sample configure script is provided. Running the SCEPTRE code requires that the user provide a spatial finite-elements mesh in Exodus format and a cross section library in a format that will be described. SCEPTRE uses an xml-based input, and several examples will be provided.

73 NUCLEAR PHYSICS AND RADIATION PHYSICS↗

SCEPTRE 2.1 Quick Start Guide

This report provides a summary of notes for building and running the Sandia Computational Engine for Particle Transport for Radiation Effects (SCEPTRE) code. SCEPTRE is a general purpose C++ code for solving the Boltzmann transport equation in serial or parallel using unstructured spatial finite elements, multigroup energy treatment, and a variety of angular treatments including discrete ordinates and spherical harmonics. Either the first-order form of the Boltzmann equation or one of the second-order forms may be solved. SCEPTRE requires a small number of open-source Third Party Libraries (TPL) to be available, and example scripts for building these TPL's are provided. The TPL's needed by SCEPTRE are Trilinos, boost, and netcdf. SCEPTRE uses an autoconf build system, and a sample configure script is provided. Running the SCEPTRE code requires that the user provide a spatial finite-elements mesh in Exodus format and a cross section library in a format that will be described. SCEPTRE uses an xml-based input, and several examples will be provided.

97 MATHEMATICS AND COMPUTING↗

SCEPTRE 2.2 Quick Start Guide

This report provides a summary of notes for building and running the Sandia Computational Engine for Particle Transport for Radiation Effects (SCEPTRE) code. SCEPTRE is a general- purpose C++ code for solving the li near Boltzmann transport equation in serial or parallel using unstructured spatial finite elements, multigroup energy treatment, and a variety of angular treatments including discrete ordinates and spherical harmonics. Either the first-order form of the Boltzmann equation or one of the second-order forms may be solved. SCEPTRE requires a small number of open-source Third Part y Libraries (TPL) to be available, and example scripts for building these TPLs are provided. The TPLs needed by SCEPTRE are Trilinos, boost, and netcdf. SCEPTRE uses an autotools build system , and a sample configure script is provided. Running the SCEPTRE code requires that the user provide a spatial finite-elements mesh in Exodus format and a cross section library in a format that will be described. SCEPTRE uses an xml-based input, and several examples will be provided.

38 RADIATION CHEMISTRY, RADIOCHEMISTRY, AND NUCLEA↗

Making Uintah Performance Portable for Department of Energy Exascale Testbeds

To help ease ports to forthcoming Department of Energy (DOE) exascale systems, testbeds have been made available to select users. These testbeds are helpful for preparing codes to run on the same hardware and similar software as in their respective exascale systems. This paper describes how the Uintah Computational Framework, an open-source asynchronous many-task (AMT) runtime system, has been modified to be performance portable across the DOE Crusher, DOE Polaris, and DOE Sunspot testbeds in preparation for portable simulations across the exascale DOE Frontier and DOE Aurora systems. The Crusher, Polaris, and Sunspot testbeds feature the AMD MI250X, NVIDIA A100, and Intel PVC GPUs, respectively. This performance portability has been made possible by extending Uintah’s intermediate portability layer [18] to additionally support the Kokkos::HIP, Kokkos::OpenMPTarget, and Kokkos::SYCL back-ends. This paper also describes notable updates to Uintah’s support for Kokkos, which were required to make this extension possible. Results are shown for a challenging radiative heat transfer calculation, central to the University of Utah’s predictive boiler simulations. These results demonstrate single-source portability across AMD-, NVIDIA-, and Intel-based GPUs using various Kokkos back-ends.

Holmen, John↗

MITgcm-AD v2: Open source tangent linear and adjoint modeling framework for the oceans and atmosphere enabled by the Automatic Differentiation tool Tapenade

The Massachusetts Institute of Technology General Circulation Model (MITgcm) is widely used by the climate science community to simulate planetary atmosphere and ocean circulations. A defining feature of the MITgcm is that it has been developed to be compatible with an algorithmic differentiation (AD) tool, TAF, enabling the generation of tangent-linear and adjoint models. These provide gradient information which enables dynamics-based sensitivity and attribution studies, state and parameter estimation, and rigorous uncertainty quantification. Importantly, gradient information is essential for computing comprehensive sensitivities and performing efficient large-scale data assimilation, ensuring that observations collected from satellites and in-situ measuring instruments can be effectively used to optimize a large uncertain control space. As a result, the MITgcm forms the dynamical core of a key data assimilation product employed by the physical oceanography research community: Estimating the Circulation and Climate of the Ocean (ECCO) state estimate. Although MITgcm and ECCO are used extensively within the research community, the AD tool TAF is proprietary and hence inaccessible to a large proportion of these users. The new version 2 (MITgcm-AD v2) framework introduced here is based on the source-to-source AD tool Tapenade, which has recently been open-sourced. Another feature of Tapenade is that it stores required variables by default (instead of recomputing them) which simplifies the implementation of efficient, AD-compatible code. The framework has been integrated with the MITgcm model’s main branch and is now freely available.

Adjoints↗

Polyglot Framework

Polyglot utilizes a combination of custom and open source tools and libraries to provide developers with a consistent environment for building tools, etc. for a wide variety of targets with minimal changes to the code being built. It supports a variety of architectures and operating systems/firmware in as target-agnostic way as possible. This allows for developers to minimize the amount of time/effort required to port tools—in particular, forensic tools—to a wide variety of targets. The project is comprised of two main components: a frontend toolchain that understands how to utilize other tools in order to build code for a specific target, and a minimalistic C library specific to Polyglot. These collectively provide the method to build code for a specific target, and the capability for code to interact with the underlying operating system when run on the target. Both components are written in a way to minimize the amount of target-specific knowledge required to both develop and utilize the project.

Huddleston, TimothyA.↗