Engineering Papers⌕ Search

SEARCH · Engineering Papers

Results for “C 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 127 records · Page 7

The Peridigm Meshfree Peridynamics Code

Abstract Peridigm is a meshfree peridynamics code written in C++ for use on large-scale parallel computers. It was originally developed at Sandia National Laboratories and is currently managed as an open-source, community driven software project. Its primary features include bond-based, state-based, and non-ordinary state-based constitutive models, bond failure laws, contact, and support for explicit and implicit time integration. To date, Peridigm has been used primarily by methods developers focused on solid mechanics and material failure. Peridigm utilizes foundational software components from Sandia’s Trilinos project and was designed for extensibility. This paper provides an overview of the solution methods implemented in Peridigm , a discussion of its software infrastructure, and demonstrates the use of Peridigm for the solution of several example problems.

97 MATHEMATICS AND COMPUTING↗

Mode spectrum characteristics and onset of the low-shear MHD stability regime

Equilibria with extended regions of weak magnetic shear, including some tokamak scenarios and stellarators, can be susceptible to pressure-driven internal MHD instabilities even though there is no mode rational surface in the plasma. Nonresonant modes, in particular, can have properties that are unattractive for confinement, including displacing substantial volumes of the plasma and leading to more efficient pressure gradient flattening in the nonlinear regime. The onset and linear properties of the low shear stability regime are examined using the initial-value, extended-MHD code M3D-C. For monotonic q-profiles, we demonstrate a clear correlation between the convergents associated with the continued fraction representation of q 0 and the spectrum of unstable modes. Nonresonant modes are observed to be destabilized preferentially to any other resonant instability with the same toroidal mode number when n > 1. Using the observed connection between the spectrum associated with q 0 and the overall equilibrium stability properties, we suggest a technique for reducing the uncertainty on both q 0 and magnetic shear in the core region, obtained either via measurement or through the analysis and reconstruction of experimental results.

70 PLASMA PHYSICS AND FUSION TECHNOLOGY↗

Igor Pro procedures for ARPES analysis (ARPES Igor procedures) v21.0

A suite of non-proprietary C-like procedures (code) that compile and run within the commercial Igor Pro data analysis program (wavemetrics.com) have been developed for the data file loading, plotting and analysis of Angle-Resolved Photoemission Spectroscopy (ARPES) data. The data file loading procedures are more specific to ARPES data acquisition and file formats at Advanced Light Source (ALS) beamlines, while plotting and analysis procedures are more generic to processing of 1D, 2D and higher dimensional dataset arrays with some specific tools tailored to the ARPES technique.

Rotenberg, Eli↗

Reanalysis of Cost and Moist Air Oxidation Performance for CF8C-Plus and Other Alloys for AUSC Applications

This report provides an economic analysis of CF8C-Plus and other candidate materials for Advanced Ultra Supercritical (AUSC) applications, including 347HFG, HR6W, Sanicro 25, Super 304H, Grade 92, SAVE12AD, Inconel 617, and Inconel 740H. An assessment of their moist air oxidation performance is also included. When compared with the aforementioned alloys, CF8C-Plus shows a favorable balance between cost, creep strength and moist air oxidation resistance in the temperature range of 600-700°C. Furthermore, its castability makes it additionally attractive from a manufacturing perspective. Materials with higher Ni content, such as HR6W, Sanicro 25, Inconel 617, and Inconel 740H, have better creep strength but the improved performance comes with increased cost. Stainless steel 347HFG exhibits inferior creep strength and lower moist air oxidation resistance, but at a greater cost, compared with CF8C-Plus. Super 304H, another stainless steel, has similar creep strength and cost compared to CF8CPlus at 700°C, but may not have as good moist air oxidation resistance. Grade 92 has lower creep strength and unfavorable economy compared with CF8C-Plus. SAVE12AD also has lower creep strength than CF8C-Plus, but has lower cost to use at 600°C. Both Grade 92 and SAVE12AD are also limited to the maximum use temperature of 649°C per ASME code case requirements.

36 MATERIALS SCIENCE↗

IRES Microgrid Energy Integration Report Version 1.0

This report presents technical information and guidance for the planned Integrated Renewable Energy System (IRES) microgrid project. This deployment of the microgrid and its associated assets was initiated in the beginning of 2022 at the Marine and Coastal Research Laboratory (MCRL) facility of Pacific Northwest National Laboratory (PNNL)-Sequim, Washington. The information in the report is organized under two main focus areas: electrical power interface, or interconnection, information of planned IRES assets; and communication and control interface, or interoperability, information of the planned IRES assets. The information will provide technical input for the development of the IRES microgrid controller technical specification, and also provide input for PNNL’s evaluation of adequacy of the electrical service infrastructure at MCRL to support the IRES project and help identify any gaps that will require facility-based upgrades. From an R&D aspect, this study and report will build on PNNL’s research and development work relating to energy storage (ES) codes and standards (C&Ss), including hybrid systems, performed on behalf of the Department of Energy (DOE) Office of Electricity (OE) ES. The current state of C&Ss for advanced technologies and their application, including microgrid-based technology is limited. For cases where formal standards issued by recognized Standards Developing Organizations do not yet exist, guidance is provided based on emerging best practices, including industry-group references that can be leveraged for microgrid technology which is in its early stages of development and use.

24 POWER TRANSMISSION AND DISTRIBUTION↗

INTEGRATE - Inverse Network Transformations for Efficient Generation of Robust Airfoil and Turbine Enhancements

The INTEGRATE (Inverse Network Transformations for Efficient Generation of Robust Airfoil and Turbine Enhancements) project is developing a new inverse-design capability for the aerodynamic design of wind turbine rotors using invertible neural networks. This AI-based design technology can capture complex non-linear aerodynamic effects while being 100 times faster than design approaches based on computational fluid dynamics. This project enables innovation in wind turbine design by accelerating time to market through higher-accuracy early design iterations to reduce the levelized cost of energy. INVERTIBLE NEURAL NETWORKS Researchers are leveraging a specialized invertible neural network (INN) architecture along with the novel dimension-reduction methods and airfoil/blade shape representations developed by collaborators at the National Institute of Standards and Technology (NIST) learns complex relationships between airfoil or blade shapes and their associated aerodynamic and structural properties. This INN architecture will accelerate designs by providing a cost-effective alternative to current industrial aerodynamic design processes, including: - Blade element momentum (BEM) theory models: limited effectiveness for design of offshore rotors with large, flexible blades where nonlinear aerodynamic effects dominate - Direct design using computational fluid dynamics (CFD): cost-prohibitive - Inverse-design models based on deep neural networks (DNNs): attractive alternative to CFD for 2D design problems, but quickly overwhelmed by the increased number of design variables in 3D problems AUTOMATED COMPUTATIONAL FLUID DYNAMICS FOR TRAINING DATA GENERATION - MERCURY FRAMEWORK The INN is trained on data obtained using the University of Marylands (UMD) Mercury Framework, which has with robust automated mesh generation capabilities and advanced turbulence and transition models validated for wind energy applications. Mercury is a multi-mesh paradigm, heterogeneous CPU-GPU framework. The framework incorporates three flow solvers at UMD, 1) OverTURNS, a structured solver on CPUs, 2) HAMSTR, a line based unstructured solver on CPUs, and 3) GARFIELD, a structured solver on GPUs. The framework is based on Python, that is often used to wrap C or Fortran codes for interoperability with other solvers. Communication between multiple solvers is accomplished with a Topology Independent Overset Grid Assembler (TIOGA). NOVEL AIRFOIL SHAPE REPRESENTATIONS USING GRASSMAN SPACES We developed a novel representation of shapes which decouples affine-style deformations from a rich set of data-driven deformations over a submanifold of the Grassmannian. The Grassmannian representation as an analytic generative model, informed by a database of physically relevant airfoils, offers (i) a rich set of novel 2D airfoil deformations not previously captured in the data , (ii) improved low-dimensional parameter domain for inferential statistics informing design/manufacturing, and (iii) consistent 3D blade representation and perturbation over a sequence of nominal shapes. TECHNOLOGY TRANSFER DEMONSTRATION - COUPLING WITH NREL WISDEM Researchers have integrated the inverse-design tool for 2D airfoils (INN-Airfoil) into WISDEM (Wind Plant Integrated Systems Design and Engineering Model), a multidisciplinary design and optimization framework for assessing the cost of energy, as part of tech-transfer demonstration. The integration of INN-Airfoil into WISDEM allows for the design of airfoils along with the blades that meet the dynamic design constraints on cost of energy, annual energy production, and the capital costs. Through preliminary studies, researchers have shown that the coupled INN-Airfoil + WISDEM approach reduces the cost of energy by around 1% compared to the conventional design approach. This page will serve as a place to easily access all the publications from this work and the repositories for the software developed and released through this pr...

aerodynamics↗

Binding of Campylobacter jejuni FliW Adjacent to the CsrA RNA-Binding Pockets Modulates CsrA Regulatory Activity

Campylobacter jejuni CsrA is an mRNA-binding, post-transcriptional regulator that controls many metabolic- and virulence-related characteristics of this important pathogen. In contrast to E. coli CsrA, whose activity is modulated by binding to small non-coding RNAs (sRNAs), C. jejuni CsrA activity is controlled by binding to the CsrA antagonist FliW. In this study, we identified the FliW binding site on CsrA. Deletion of the C-terminus of C. jejuni CsrA, which is extended relative to sRNA-binding CsrA proteins, abrogated FliW binding. Bacterial two-hybrid experiments were used to assess the interaction of FliW with wild-type CsrA and mutants thereof, in which every amino acid was individually mutated. Two CsrA mutations (V51A and N55A) resulted in a significant decrease in FliW binding. The V51A and N55A mutants also showed a decrease in CsrA-FliW complex formation, as assessed by size-exclusion chromatography and surface plasmon resonance. These residues were highly conserved in bacterial species containing CsrA orthologs whose activities are predicted to be regulated by FliW. The location of FliW binding was immediately adjacent to the two RNA-binding sites of the CsrA homodimer, suggesting the model that FliW binding to CsrA modulates its ability to bind to its mRNA targets either by steric hindrance, electrostatic repulsion, or by altering the overall structure of the RNA-binding sites.

59 BASIC BIOLOGICAL SCIENCES↗

Productive Programming of Distributed Systems with the SHAD C++ Library

High-performance computing (HPC) is often perceived as a matter of making large-scale systems (e.g., clusters) run as fast as possible, regardless the required programming effort. However, the idea of "bringing HPC to the masses" has recently emerged. Inspired by this vision, we have designed SHAD, the Scalable High-performance Algorithms and Data-structures library. SHAD is open source software, written in C++, for C++ developers. Unlike other HPC libraries for distributed systems, which rely on SPMD models, SHAD adopts a shared-memory programming abstraction, to make C++ programmers feel at home. Underneath, SHAD manages tasking and data-movements, moving the computation where data resides and taking advantage of asynchrony to tolerate network latency. At the bottom of his stack, SHAD can interface with multiple runtime systems: this not only improves developer’s productivity, by hiding the complexity of such software and of the underlying hardware, but also greatly enhance code portability. Thanks to its abstraction layers, SHAD can indeed target different systems, ranging from laptops to HPC clusters, without any need for modifying the user-level code. We have prototyped and open-sourced the implementation of (a subset of) the C++ standard library (STL) targeting multi-node HPC clusters. Our work allows plain STL-based C++ code to scale on HPC systems, with no need for rewriting the code to exploit the complex hardware. SHAD is available under Apache v2 License at https://github.com/pnnl/SHAD. In this paper we overview the design of the SHAD library, depicting its main components: runtime systems abstractions for tasking; parallel and distributed data-structures; STL-compliant interfaces and algorithms.

Castellana, Vito G.↗

The LLNL nuclear data infrastructure for the GNDS data format

The next generation of nuclear data infrastructure tools at the Livermore National Laboratory (LLNL) consists of pipeline of codes that read and process nuclear data from evaluated files saved in the new GNDS (Generalised Nuclear Data Structure) nuclear data format. The processing code FUDGE (For Updating Data and Generating Evaluations) is at the front-end of this pipeline as it reads and process the evaluated data for use in downstream transport codes. FUDGE is Python based with C and C++ extensions for computationally intensive tasks. As is the case for the evaluated data, the processed output is also saved in the GNDS format and the GIDI+ API is provided as the interface between the processed data and the transport codes. GIDI+ is a C++ based suite of codes and it includes GIDI (General Interaction Data Interface), a library for reading and writing GNDS data, and MCGIDI which is the cross section lookup, and reaction and product distribution sampling interface between Monte Carlo transport codes and the GNDS data. GIDI provides methods for easy access to the multi-group processed GNDS data and this is demonstrated through its implementation in ARDRA, the LLNL deterministic transport code. The evaluation and sampling methods in MCGIDI are available as both CPU and GPU methods which facilitates the use of MCGIDI in both traditional CPU-based as well as the next generation mixed model computational architectures. This is demonstrated through the GIDI+ implementation in MERCURY, the LLNL Monte Carlo transport code. (authors)

22 GENERAL STUDIES OF NUCLEAR REACTORS↗

To Interoperability And Beyond: Interoperable Types Through the Promises of C and C++ and ABI Abuse [Slides]

This presentation presents a technique that allows passing of Fortran nested-type hierarchies interoperably to C++. The technique is motivated by the Eulerian Application Project’s need to port code from Fortran to C++ to utilize the Kokkos performance portability library. The resulting method allows hierarchies of types to become interoperable while at the same time transforming Fortran array members of the original Fortran type into Kokkos::Views in the resulting C++ type.

97 MATHEMATICS AND COMPUTING↗

PETSc/TAO Users Manual (Rev. 3.19)

This manual describes the use of the Portable, Extensible Toolkit for Scientific Computation (PETSc) and the Toolkit for Advanced Optimization (TAO) for the numerical solution of partial differential equations and related problems on high-performance computers. PETSc/TAO is a suite of data structures and routines that provide the building blocks for the implementation of large-scale application codes on parallel (and serial) computers. PETSc uses the MPI standard for all distributed memory communication. PETSc/TAO includes a large suite of parallel linear solvers, nonlinear solvers, time integrators, and opti mization that may be used in application codes written in Fortran, C, C++, and Python (via petsc4py; see Getting Started). PETSc provides many of the mechanisms needed within parallel application codes, such as parallel matrix and vector assembly routines. The library is organized hierarchically, enabling users to employ the level of abstraction that is most appropriate for a particular problem. By using techniques of object-oriented programming, PETSc provides enormous flexibility for users. PETSc is a sophisticated set of software tools; as such, for some users it initially has a much steeper learning curve than packages such as MATLAB or a simple subroutine library. In particular, for individuals without some computer science background, experience programming in C, C++, python, or Fortran and experience using a debugger such as gdb or lldb, it may require a significant amount of time to take full advantage of the features that enable efficient software use. However, the power of the PETSc design and the algorithms it incorporates may make the efficient implementation of many application codes simpler than “rolling them” yourself. For many tasks a package such as MATLAB is often the best tool; PETSc is not intended for the classes of problems for which effective MATLAB code can be written. There are several packages, built on PETSc, that may satisfy your needs without requiring directly using PETSc. We recommend reviewing these packages functionality before starting to code directly with PETSc. PETSc can be used to provide a “MPI parallel linear solver” in an otherwise sequential, or OpenMP parallel code. This approach cannot provide extremely large improvements in the application time by utilizing large numbers of MPI processes but can still improve the performance. Certainly all parts of a previously sequential code need not be parallelized but the matrix generation portion must be parallelized to expect true scalability to large numbers of MPI processes. See PCMPI for details on how to utilize the PETSc MPI linear solver server. Since PETSc is under continued development, small changes in usage and calling sequences of routines will occur. PETSc has been supported for twenty-five years; see mailing list information on our website for information on contacting support.

97 MATHEMATICS AND COMPUTING↗

Long Reach Robotic Arm

The Accelerator Division at Fermilab began a robotics program, known as the AD Robotics Initiative. A multi-axis robotic arm was proposed to be included in the program. This summer internship, our team began the planning and design for this project, called the Long Reach Robotic Arm. The problem is that critical systems around the magnets require analysis when water leaks cause them to fail. However, the tightly compacted parts and the quadrupole magnet, weighing approximately 1,000 pounds, cause access viewing problems. The process of having to dismantle and remove the magnet is time-consuming; it is not an efficient solution. The goal for the Long Reach Robotic Arm was to extend and reach behind the component of the Main Injector while "snaking" around and avoiding obstructions. At the start of the project, my teammate, Amanda Hoeksema, and I coded a program in the C language that will determine the number of links and their respective lengths for the robot arm. After, we began the 3D CAD model of the robot arm, base, and counterweight system. The design of the Long Reach Robotic Arm provided a learning experience in learning how to code in the C programming language, using SDL libraries and understanding mechanical engineering.

43 PARTICLE ACCELERATORS↗

JSPEC: A Program for IBS and Electron Cooling Simulation

JSPEC (JLab Simulation Package on Electron Cooling) is an open-source C++ program developed at Jefferson Lab to simulate the evolution of the ion beam under the intrabeam scattering effect and/or the electron cooling effect. JSPEC includes various models of the ion beam, the electron beam, and the friction force, aiming to reflect the latest advances in the field and to provide a useful tool to the community. JSPEC has been benchmarked against other cooling simulation codes and experimental data. It has been used to support the cooler design for JLEIC, an earlier JLab design for the Electron-Ion Collider. A Python wrapper of the C++ code, pyJSPEC, for Python 3.x environment has also been developed and released. It allows users to run JSPEC simulations in a Python environment and makes it possible for JSPEC to collaborate with other accelerator and beam modeling programs, as well as plentiful Python tools in data visualization, optimization, machine learning, etc. In this report, we introduce the features of JSPEC, with a focus on the latest development, and demonstrate how to use JSPEC and pyJSPEC with sample codes and numerical examples.

Accelerator Physics↗

Simulating low-energy neutrino interactions with MARLEY

Monte Carlo event generators are a critical tool for the interpretation of data obtained by neutrino experiments. Several modern event generators are available which are well-suited to the GeV energy scale used in studies of accelerator neutrinos. However, theoretical modeling differences make their immediate application to lower energies difficult. In this paper, I present a new event generator, MARLEY, which is designed to better address the simulation needs of the low-energy (tens of MeV and below) neutrino community. The code is written in C++14 with an optional interface to the popular ROOT data analysis framework. The current release of MARLEY (version 1.2.0) emphasizes simulations of the reaction 40 Ar ( ν e , e − ) 40 K ⁎ but is extensible to other channels with suitable user input. This paper provides detailed documentation of MARLEY's implementation and usage, including guidance on how generated events may be analyzed and how MARLEY may be interfaced with external codes such as Geant4. Further information about MARLEY is available on the official website at http://www.marleygen.org. Program title:MARLEY 1.2.0 CPC Library link to program files:https://doi.org/10.17632/4v7zxnc8j3.1 Developer's respository link:http://github.com/MARLEY-MC/marley Code Ocean capsule:https://codeocean.com/capsule/9868179 Licensing provisions: GNU General Public License 3.0 Programming language: C++14 External routines/libraries used: GNU Scientific Library [1,2] (required), ROOT [3,4] (optional) Nature of problem: Simulation of neutrino-nucleus scattering events at energies of tens-of-MeV and below Solution method: Initial two-to-two scattering kinematics are sampled using the allowed approximation differential cross section and tables of precomputed nuclear matrix elements. Subsequent de-excitations of the remnant nucleus are simulated using a Monte Carlo implementation of the Hauser-Feshbach statistical model and tabulated γ-ray decay schemes for discrete nuclear levels. Additional comments including restrictions and unusual features: Input data are provided with the code that are suitable for producing simulations of the charged-current reaction 40 Ar ( ν e , e − ) 40 K ⁎ , coherent elastic neutrino-nucleus scattering on spin-zero target nuclei, and neutrino-electron elastic scattering on any atomic target. Preparation of new reaction input files (whose format is documented in Appendix B) would enable other reaction channels and nuclear targets to be handled by the existing code framework. Although there is no maximum neutrino energy enforced by the code itself, realistic neutrino-nucleus scattering events may be generated up to roughly 50 MeV. Above this energy, the effects of forbidden nuclear transitions, which are neglected in the current treatment of the cross sections (see section 2.1), become increasingly important.

73 NUCLEAR PHYSICS AND RADIATION PHYSICS↗

RASPA3

RASPA3, a molecular simulation code for computing adsorption and diffusion in nanoporous materials and thermodynamic and transport properties of fluids. It implements force field based classical Monte Carlo/molecular dynamics in various ensembles. RASPA3 is rewritten from the ground up in C++23 with speed and code readability in mind. Transition-matrix Monte Carlo is added to compute the density of states and free energies. The Monte Carlo code for rigid molecules is based on quaternions, and the atomic positions needed in the energy evaluation are recreated from the center of mass position and quaternion orientation. The expanded ensemble methodology for fractional molecules, with a scaling parameter λ between 0 and 1, now also keeps track of analytic expressions of dU/dλ, allowing independent verification of the chemical potential using thermodynamic integration. The source code is freely available under the MIT license on GitHub.

Dubbeldam, David↗

FY20 Status Report on Creep Rupture Testing to Support the Development of Alloy 709 Code Case

This report provides an update on the status of the creep rupture testing on the first commercial heat of Alloy 709 in support of the Alloy 709 Code Case development. A creep test laboratory has been set up at ANL that comprises of 15 indirectly loaded test frames capable of testing ASTM-size specimens of the commercial heat of Alloy 709. The systems are equipped with high temperature furnaces capable of operation up to 1000°C in an air environment. During FY18, uniaxial ASTM-sized creep specimens were fabricated from 9 Alloy 709 plates that were processed by AOD, ESR, and ESR-homogenized routes and subsequently solution annealed at 1050, 1100, and 1150°C, and creep-rupture tests were performed at 330MPa and 600°C. The test results led to the down selection of the ESR-1100°C condition to support the code case. In FY19, 15 creep-rupture tests of the ESR-1100°C material, requiring the use of Type K thermocouples, were initiated to support the 100,000-hour Code Case. 8 tests were completed in FY19. In FY20, 6 tests were completed at the time of writing this report. In addition, 1 more test were loaded in FY20, using Type S thermocouples, and was completed. This report presents the data from the completed tests in FY20 and also the microstructural characterization of the fractured specimens. The creep data enabled the preliminary analysis of the creep behavior of this material. The characterization showed that in brittle fractures, the pores were narrow and thin, and elongated in the direction perpendicular to the loading direction, while in ductile fractures, the pores were much rounder. Dense precipitates were observed in all the samples, the size of which grew with test temperature. Some of the precipitates could be identified to be M23C6 based on their cuboid shape.

22 GENERAL STUDIES OF NUCLEAR REACTORS↗

A fast, matrix-based method to perform omnidirectional pressure integration

Abstract Experimentally-measured pressure fields play an important role in understanding many fluid dynamics problems. Unfortunately, pressure fields are difficult to measure directly with non-invasive, spatially resolved diagnostics, and calculations of pressure from velocity have proven sensitive to error in the data. Omnidirectional line integration methods are usually more accurate and robust to these effects as compared to implicit Poisson equations, but have seen slower uptake due to the higher computational and memory costs, particularly in 3D domains. This paper demonstrates how omnidirectional line integration approaches can be converted to a matrix inversion problem. This novel formulation uses an iterative approach so that the boundary conditions are updated each step, preserving the convergence behavior of omnidirectional schemes while also keeping the computational efficiency of Poisson solvers. This method is implemented in Matlab and also as a GPU-accelerated code in CUDA-C++. The behavior of the new method is demonstrated on 2D and 3D synthetic and experimental data. Three-dimensional grid sizes of up to 125 million grid points are tractable with this method, opening exciting opportunities to perform volumetric pressure field estimation from 3D PIV measurements.

42 ENGINEERING↗