Search NASA⌕ Search

SEARCH · Search NASA

Results for “C Code”

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 37 records · Page 2

FIERRO V.X

FIERRO is a modern C++ code intended to simulate quasi-static solid mechanics problems and transient, compressible material dynamic problems with Lagrangian methods, which have meshes with constant mass elements that move with the material. FIERRO is designed to aid a) material model research that has historically been done using commercial implicit and explicit finite element codes, b) numerical methods research, and c) computer science research. FIERRO supports user developed material models that adhere to several industry standard formats by using a C++ to Fortran interface to couple the model to the numerical solvers. FIERRO is built on the ELEMENTS library that supports a diverse suite of element types, including high-order elements, and quadrature rules. The mesh class within the ELEMENTS library is designed for efficient calculations on unstructured meshes and to minimize memory usage. FIERRO is designed to readily accommodate a range of numerical methods including continuous finite element, finite volume, and discontinuous Galerkin methods. FIERRO is designed to support explicit and implicit time integration methods. FIERRO only supports a single material in an element. No physical data exists within the code.

Morgan, Nathaniel↗

KLOKKOS: Automated test generation for performance-portable programs

SAND2024-13830O The KLOKKOS project provides a suite of test generation and validation tools to increase maintainability and portability of Kokkos programs. KLOKKOS, a portmanteau of Klee and Kokkos, is developing an automated test generation for performance-portable programs using Clang/low-level virtual machine (LLVM) and formal methods. KLOKKOS is based on several topics in computer science: the development of symbolic and concolic analysis of LLVM and C++ codes, formal semantics and type theory, C++ templates and language features, LLVM compiler infrastructure, and data parallel primitives. 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

SciDAC↗

Validation of Modern Nuclear Data Processing in SCALE

The nuclear data (ND) community is continuously developing more accurate, diversified, and comprehensive data for radiation transport modeling to support the nuclear science community. As these community efforts progress, it is crucial that ND processing tools like AMPX (used for SCALE [1] ND) also be developed in parallel to incorporate these new data into transport codes and actually deliver those data to end users. AMPX is a mature, well-tested code that was developed by many people at Oak Ridge National Laboratory (ORNL) over the course of the past few decades. A large portion of the AMPX codebase, however, was outdated, difficult to maintain, and incompatible with modern code development tools. Some of the most important parts of the AMPX code have now been replaced with modern C++ code that can be maintained more cost-effectively and can be tested more rigorously.

AMPX↗

Simulating Muon Capture with MARLEY

Core-collapse supernovae are intense sources of tens-of-MeV neutrinos. Each explosion releases about 1058 neutrinos in a burst lasting tens of seconds. As neutrinos are weakly interacting, they escape more easily compared to photons, allowing them to be observed before the light signal. Understanding low-energy neutrino interactions with argon will be critical for future supernova measurements with the Deep Underground Neutrino Experiment (DUNE). Interpreting future DUNE supernova neutrino data will require a high-quality model of O(10 MeV) neutrino interactions, but the dominant charged-current cross section has never been measured at these low energies for an argon target. We exploit the theoretical similarities between muon capture, which has been measured, and antineutrino scattering to test MARLEY (Model of Argon Reaction Low Energy Yields), the simulation code used by DUNE to model supernova neutrino reactions. I implemented C++ code to add a muon capture mode to MARLEY and compared the predictions of the new simulation to measured isotope branching ratios of the residual nuclei. The preliminary branching ratios predicted by MARLEY running in muon capture mode demonstrate promising baseline performance when compared to experimental data and are expected to improve with further model adjustments.

Wong, Baker Louie↗

Strategic Petroleum Reserve Cavern Leaching Monitoring CY24

This report provides an analysis of the effects of raw water leaching at the U.S. SPR using the Sandia Solution Mining Code (SANSMIC). A new version of the code has been established in the past year (implemented in Python and C++ code) and was used for this annual report. Additionally, the setup, running, and post-processing of leaching modeling has now been streamlined into a single Python notebook environment for each cavern run.

58 GEOSCIENCES↗

QSpace - An open-source tensor library for Abelian and non-Abelian symmetries

This is the documentation for the tensor library QSpace (v4.0), a toolbox to exploit ‘quan tum symmetry spaces’ in tensor network states in the quantum many-body context. QSpace permits arbitrary combinations of symmetries including the abelian symmetries $\mathbb{Z}_n$ and U(1), as well as all non-abelian symmetries based on the semisimple classical Lie algebras: A n , B n , C n , and D n , or respectively, the special unitary group SU(n), the odd orthogonal group SO(2n+1), the symplectic group Sp(2n), and the even orthogonal group SO(2n). The code (C++ embedded via the MEX interface into Matlab) is available open source as of QSpace v4.0 on bitbucket under the Apache 2.0 license. QSpace is designed as a bottom-up approach for non-abelian symmetries. It starts from the defining representation and the respective Lie algebra. By explicitly comput ing and tabulating generalized Clebsch-Gordan coefficient tensors, QSpace is versatile in the type of operations that it can perform across all symmetries. At the level of an ap plication, much of the symmetry-related details are hidden within the QSpace C++ core libraries. Hence when developing tensor network algorithms with QSpace, these can be coded (nearly) as if there are no symmetries at all, despite being able to fully exploit general non-abelian symmetries.

75 CONDENSED MATTER PHYSICS, SUPERCONDUCTIVITY AND↗

ChatMPI: LLM-Driven MPI Code Generation for HPC Workloads

The Message Passing Interface (MPI) standard plays a crucial role in enabling scientific applications for parallel computing and is an essential component in high-performance computing (HPC). However, implementing MPI code manually—especially applying a proper domain decomposition and communication pattern—is a challenging and error-prone task. We present ChatMPI, an AI assistant for MPI parallelization of sequential C codes. In our analysis, we focus on testing six essential HPC workloads, which are based on Basic Linear Algebra Subprograms levels 1, 2, and 3 as well as sparse, stencil, and iterative operations. We analyze the process of creating ChatMPI by using the ChatHPC library. This lightweight large language model (LLM)–based infrastructure enables HPC experts to efficiently create and supervise trustworthy AI capabilities for critical HPC software tasks. We study the data required for training (fine-tuning) ChatMPI to generate parallel codes that not only use MPI syntax correctly but also apply HPC techniques to reduce memory communication and maximize performance by using proper work decomposition. With a relatively small training dataset composed of a few dozen prompts and fewer than 15 minutes of fine-tuning on one node equipped with two NVIDIA H100 GPUs, ChatMPI elevates trustworthiness for MPI code generation of current LLMs (e.g., Code Llama, ChatGPT-4o and ChatGPT 5). Additionally, we evaluate the performance of the MPI codes generated by ChatMPI in comparison with the ones generated by ChatGPT-4o and ChatGPT-5. The codes generated by ChatMPI provide up to a 4 × boost in performance by using better problem decomposition, communication patterns, and HPC techniques (e.g., communication avoiding).

Valero Lara, Pedro [ORNL] (ORCID:0000000214794310)↗

Orca2

SAND2024-03236O Orca2 is a trajectory design and optimization code for constructing and solving problems numerically defined on homogeneous manifolds. Orca2 solves numerical trajectory design and optimization problems defined on Lie-type domains and operates primarily as a library requiring a user to write additional C++ code to leverage it. 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.

Sparapany, Michael↗

VPIC-Kokkos

VPIC is a particle-in-cell (PIC) code that solves the Maxwell-Boltzmann system of equations and can be used to simulate a wide variety of plasmas, including those that are fully kinetic and relativistic. Utilizing the Kokkos performance-portable framework, VPIC achieves high performance on multiple CPU and GPU architectures and is adaptable to future platforms with minimal developer effort. VPIC features very powerful input decks, allowing insertion of arbitrary C++ code for custom diagnostics, boundary conditions, and additional physics models.

Luedtke, Scott↗

Modelling of nanometer scale dust grains in tokamak

Dust poses a serious threat to tokamak operation and safety. It is important to study the behaviour of dust grains under tokamak's discharge conditions, which depends heavily on their size and charge. Existing simulations mainly address issues on dust grains with radii larger than 1 μm, in which case, the drift effect due to electromagnetic fields can be safely ignored. For nanometer scale dust grains, however, the drift effect becomes significant and a new model based on guiding-centre system needs to be established. In this work, the NDS has been done under BOUT++ framework. The simulation contains two parts. Part one, NDS evaluates the charging and ablation processes of the dust grains. In the second part, the guiding-centre orbits of dust particles are tracked in tokamak plasmas, whose parameters are obtained from BOUT++, a highly desirable C++ code package for performing parallel plasma fluid simulations with an arbitrary number of equations in 3D curvilinear coordinates. The orbit of nanodust dynamics is described by guiding centre equations for simplicity, and these equations are numerically solved by conventional fourth-order Runge Kutta method. Simulations provide results such as trajectories and evolutions of dust particles with different sizes and velocities for different tokamak geometries. Results show tungsten dust grains with a radius of a few nanometers launched from outer midplane will oscillate before totally ablated in C-Mod. The oscillation in this case is driven by the ion drag force. Larger Nanodust with a radius of 100 nm, on the contrary, cannot be completely constrained by the electromagnetic field. In conclusion, the high plasma temperature and density in the seperatrix region causes severe dust ablation, resulting in total ablation within several ms.

70 PLASMA PHYSICS AND FUSION TECHNOLOGY↗

iharm3D: Vectorized General Relativistic Magnetohydrodynamics

iharm3D is an open-source C code for simulating black hole accretion systems in arbitrary stationary spacetimes using ideal general-relativistic magnetohydrodynamics (GRMHD). It is an implementation of the HARM (“High Accuracy Relativistic Magnetohydrodynamics”) algorithm outlined in Gammie et al. (2003) with updates as outlined in McKinney & Gammie (2004) and Noble et al. (2006). The code is most directly derived from Ryan et al. (2015) but with radiative transfer portions removed. HARM is a conservative finite-volume scheme for solving the equations of ideal GRMHD, a hyperbolic system of partial differential equations, on a logically Cartesian mesh in arbitrary coordinates.

79 ASTRONOMY AND ASTROPHYSICS↗

High-Level Synthesis of Parallel Specifications Coupling Static and Dynamic Controllers

The increased need for efficient ways to implement domain-specific accelerators is driving design methodologies towards the use of abstractions higher than the Register Transfer Level (RTL). In this scenario, High Level Synthesis (HLS) plays a significant role by enabling the automatic generation of custom hardware accelerators starting from high level descriptions (e.g., C code). Conventional HLS tools exploit parallelism mostly at the Instruction Level (ILP). They statically schedule the input specifications, and build centralized Finite State Machine (FSM) controllers. However, aggressive exploitation of ILP in many applications has diminishing returns and, usually, centralized approaches do not efficiently exploit coarser parallelism because FSMs are inherently serial. In this paper we present a HLS framework able to synthesize applications that, beside ILP, also expose Task Level Parallelism (TLP). An application can expose TLP through annotations that identify the parallel functions (i.e., tasks). To generate accelerators that efficiently execute concur- rent tasks, we need to solve several issues: devise a mechanism to support concurrent execution flows, exploit memory parallelism, and manage synchronization. To support concurrent execution flows, we introduce a novel adaptive controller. The adaptive controller is composed of a set of interacting control elements that independently manage the execution of a single operation or function call. These control elements check dependencies and resource constraints at runtime, enabling as soon as possible execution. To support parallel access to shared memories and synchronization, we introduce a novel Hierarchical Memory Interface (HMI). With respect to previous solutions, the proposed interface supports multi-ported memories and atomic memory operations, which commonly occur in parallel programming. Our framework can generate the hardware implementation of C functions by employing two different approaches, depending on its characteristics. If a function exposes TLP, then the framework generates hardware implementations based on the adaptive controller. Otherwise, the framework implements the function by exploiting a more conventional FSM approach, which is optimized for ILP exploitation. We evaluate our framework on a set of parallel applications, and show substantial performance improvements (average speedup of 4.7) with limited area over- heads (average area increase of 5.48 times).

Castellana, Vito G.↗

High-Level Synthesis of Parallel Specifications Coupling Static and Dynamic Controllers

The increased need for efficient ways to implement domain-specific accelerators is driving design methodologies towards the use of abstractions higher than the Register Transfer Level (RTL). In this scenario, High Level Synthesis (HLS) plays a significant role by enabling the automatic generation of custom hardware accelerators starting from high level descriptions (e.g., C code). Conventional HLS tools exploit parallelism mostly at the Instruction Level (ILP). They statically schedule the input specifications, and build centralized Finite State Machine (FSM) controllers. However, aggressive exploitation of ILP in many applications has diminishing returns and, usually, centralized approaches do not efficiently exploit coarser parallelism because FSMs are inherently serial. In this paper we present a HLS framework able to synthesize applications that, beside ILP, also expose Task Level Parallelism (TLP). An application can expose TLP through annotations that identify the parallel functions (i.e., tasks). To generate accelerators that efficiently execute concur- rent tasks, we need to solve several issues: devise a mechanism to support concurrent execution flows, exploit memory parallelism, and manage synchronization. To support concurrent execution flows, we introduce a novel adaptive controller. The adaptive controller is composed of a set of interacting control elements that independently manage the execution of a single operation or function call. These control elements check dependencies and resource constraints at runtime, enabling as soon as possible execution. To support parallel access to shared memories and synchronization, we introduce a novel Hierarchical Memory Interface (HMI). With respect to previous solutions, the proposed interface supports multi-ported memories and atomic memory operations, which commonly occur in parallel programming. Our framework can generate the hardware implementation of C functions by employing two different approaches, depending on its characteristics. If a function exposes TLP, then the framework generates hardware implementations based on the adaptive controller. Otherwise, the framework implements the function by exploiting a more conventional FSM approach, which is optimized for ILP exploitation. We evaluate our framework on a set of parallel applications, and show substantial performance improvements (average speedup of 4.7) with limited area over- heads (average area increase of 5.48 times).

Castellana, Vito G.↗

Handheld Biosensor for COVID-19 Screening

We have made significant progress toward the development of an integrated nucleic acid amplification system for Autonomous Medical Devices Incorporated (AMDIs) Optikus handheld diagnostic device. In this effort, we developed a set of loop-mediated isothermal amplification (LAMP) primers for SARS-CoV-2 and then demonstrate amplification directly on a surface acoustic wave (SAW) sensor. We built associated hardware and developed a C-code to control the amplification process. The goal of this project was to develop a nucleic amplification assay that is compatible with SAW sensors to enable both nucleic and serological testing in a single handheld diagnostic device. Toward this goal, AMDI is collaborating Sandia National Laboratories to develop a rapid, portable diagnostic screening device that utilizes Sandias unique surface acoustic wave biosensor (SAW) for COVID-19 detection. Previously, the SANDIA- AMDI SAW sensor has successfully detected multiple high-profile bacteria viruses, including Ebola, HIV, Sin Nombre, and Anthrax. Over the last two years, AMDI and SANDIA have significantly improved the sensitivity and detection capability of the SAW biosensor and have also developed a modular hand-held, portable platform called the Optikus, which uses CD microfluidics and handheld instrumentation to automate all sample preparation, reagent introduction, sample delivery, and measurement for a number of different assay targets. We propose to use this platform for the development of a rapid (%3C30 minutes), point-of-care diagnostic test for detection of COVID-19 from nasal swab samples.

47 OTHER INSTRUMENTATION↗

End-To-End Decentralized Transmission Line Protection in IBR-Dominated Weak Grids Using Interpretable Data-Driven Methods

Traditional transmission line protection relies on predictable synchronous-based fault signatures, which frequently fail under the non-standard, current-limited fault characteristics of Inverter-Based Resources (IBRs). This study investigates how to achieve secure, communication-free fault isolation in IBR-dominated weak grids without relying on opaque, computationally heavy "black-box" machine learning algorithms. To address this, we propose a novel, standalone, and inherently interpretable data-driven protection framework. Unlike centralized methods requiring multi-terminal communication, this decentralized approach relies solely on local measurements using a hierarchical linear-kernel Support Vector Machine (SVM). The methodology decomposes the protection task into four sequential stages that mimic traditional protection elements: fault detection and fault direction identification, fault type classification, zone classification, and location estimation. This multi-stage architecture allows for specialized feature engineering at each stage, combining high computational efficiency with logic traceability. The framework's end-to-end performance was validated via C-code and PSCAD/EMTDC co-simulation, utilizing a real-world utility network and an OEM black-box IBR model. The proposed relay achieves 97.2% overall accuracy and provides a reliable trip decision within a 2.5-cycle window. The results confirm 100% accuracy in fundamental fault detection, reliable zone selectivity across low to moderate fault resistances, and robust security against non-fault transients, proving its immediate viability for integration into commercial numerical relays.

24 POWER TRANSMISSION AND DISTRIBUTION↗

Performant implementation of the atomic cluster expansion (PACE) and application to copper and silicon

The atomic cluster expansion is a general polynomial expansion of the atomic energy in multi-atom basis functions. Here we implement the atomic cluster expansion in the performant C++ code that is suitable for use in large-scale atomistic simulations. We briefly review the atomic cluster expansion and give detailed expressions for energies and forces as well as efficient algorithms for their evaluation. We demonstrate that the atomic cluster expansion as implemented in shifts a previously established Pareto front for machine learning interatomic potentials toward faster and more accurate calculations. Moreover, general purpose parameterizations are presented for copper and silicon and evaluated in detail. We show that the Cu and Si potentials significantly improve on the best available potentials for highly accurate large-scale atomistic simulations.

36 MATERIALS SCIENCE↗

Modeling of small tungsten dust grains in EAST tokamak with NDS-BOUT ++

In order to investigate the transport of small dusts as well as their evolution property along their trajectories, the NDS module is developed under the BOUT++ framework, a highly desirable C++ code package to perform parallel plasma fluid simulations with an arbitrary number of equations in three-dimensional curvilinear coordinates. Due to the severe dust ablation in fusion plasmas, the dust size would decrease from micrometer to nanometer, resulting in impurities. Small dusts in the simulations here are specified as tungsten spheres with the radii on or below the order of submicrometer. The Rayleigh limit is included in the charging process when the dust is ablated to the droplet phase. The simulation results from the NDS module show that a 200 nm radius spherical tungsten dust originated from upper divertor region of EAST Tokamak is ablated completely due to the intense heating from the incoming plasma inside the core region, well consistent with the CCD footage of EAST shot # 81459. Furthermore it is found that the magnetic field dominates the dust transport when the dust radius is below 100 nm during the ablation along the trajectory. Our simulations predict that a 10 nm radius spherical tungsten dust injected from the inner midplane is well constrained by the magnetic field, and it reaches the inner divertor target with a velocity on the order of km/s.

70 PLASMA PHYSICS AND FUSION TECHNOLOGY↗

3-center and 4-center 2-particle Gaussian AO integrals on modern accelerated processors

We report an implementation of the McMurchie–Davidson (MD) algorithm for 3-center and 4-center 2-particle integrals over Gaussian atomic orbitals (AOs) with low and high angular momenta l and varying degrees of contraction for graphical processing units (GPUs). This work builds upon our recent implementation of a matrix form of the MD algorithm that is efficient for GPU evaluation of 4-center 2-particle integrals over Gaussian AOs of high angular momenta (l ≥ 4) [A. Asadchev and E. F. Valeev, J. Phys. Chem. A 127, 10889–10895 (2023)]. The use of unconventional data layouts and three variants of the MD algorithm allow for the evaluation of integrals with double precision and sustained performance between 25% and 70% of the theoretical hardware peak. Performance assessment includes integrals over AOs with l ≤ 6 (a higher l is supported). Preliminary implementation of the Hartree–Fock exchange operator is presented and assessed for computations with up to a quadruple-zeta basis and more than 20 000 AOs. The corresponding C++ code is part of the experimental open-source LibintX library available at https://github.com/ValeevGroup/libintx.

Chemistry↗