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 343 records · Page 19

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↗

On multilevel block modulation codes

The multilevel (ML) technique for combining block coding and modulation is investigated. A general formulation is presented for ML modulation codes in terms of component codes with appropriate distance measures. A specific method for constructing ML block modulation codes (MLBMCs) with interdependency among component codes is proposed. Given an MLBMC C with no interdependency among the binary component codes, the proposed method gives an MLBC C-prime that has the same rate as C, a minimum squared Euclidean distance not less than that of C, a trellis diagram with the same number of states as that of C, and a smaller number of nearest-neighbor codewords than that of C. Finally, a technique is presented for analyzing the error performance of MLBMCs for an additive white Gaussian noise channel based on soft-decision maximum-likelihood decoding.

Kasami, Tadao↗

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↗

The CHIMAERA System for Retrievals of Cloud Top, Optical and Microphysical Properties from Imaging Sensors

Continuity and consistency of geophysical retrieval products obtained from different Earth-observing spaceborne or airborne atmospheric multispectral imagers can be challenging due to inherent differences in the instruments and/or the use of different retrieval algorithms. The Cross-platform HIgh resolution Multi-instrument AtmosphEric Retrieval Algorithms (CHIMAERA) system addresses the latter aspect of the inter-sensor continuity problem for cloud property retrievals by removing retrieval methodology and implementation as a source of inconsistency when applied to instruments that share common measurement capabilities. Transferring an existing retrieval algorithm to a new sensor oftentimes is a nontrivial task, as it is common for an algorithm code to be tightly coupled to the sensor for which it was developed. By creating a clear division between the science algorithm and the instrument I/O codes, CHIMAERA allows easy migration of science algorithms to different sensors. CHIMAERA is built from C and FORTRAN source code, and can operate in a variety of environments ranging from a personal laptop to a high-performance computing environment for near real-time satellite data production. It is highly adaptable, low-maintenance and allows for easy expansion such that adding new instruments into the system requires only instrument-specific I/O and provision of any external lookup tables specific to the instrument's spectral characteristics. CHIMAERA currently supports 14 spaceborne and airborne atmospheric imagers from a single code base, and has been in use since 2007. In this paper we describe the engineering aspects of CHIMAERA and briefly discuss a few examples from its many current applications.

Galina (Gala) Wind↗

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↗

Development of Graphical User Interface for ARRBOD (Acute Radiation Risk and BRYNTRN Organ Dose Projection)

The space radiation environment, particularly solar particle events (SPEs), poses the risk of acute radiation sickness (ARS) to humans; and organ doses from SPE exposure may reach critical levels during extra vehicular activities (EVAs) or within lightly shielded spacecraft. NASA has developed an organ dose projection model using the BRYNTRN with SUMDOSE computer codes, and a probabilistic model of Acute Radiation Risk (ARR). The codes BRYNTRN and SUMDOSE, written in FORTRAN, are a Baryon transport code and an output data processing code, respectively. The ARR code is written in C. The risk projection models of organ doses and ARR take the output from BRYNTRN as an input to their calculations. BRYNTRN code operation requires extensive input preparation. With a graphical user interface (GUI) to handle input and output for BRYNTRN, the response models can be connected easily and correctly to BRYNTRN in friendly way. A GUI for the Acute Radiation Risk and BRYNTRN Organ Dose (ARRBOD) projection code provides seamless integration of input and output manipulations, which are required for operations of the ARRBOD modules: BRYNTRN, SUMDOSE, and the ARR probabilistic response model. The ARRBOD GUI is intended for mission planners, radiation shield designers, space operations in the mission operations directorate (MOD), and space biophysics researchers. The ARRBOD GUI will serve as a proof-of-concept example for future integration of other human space applications risk projection models. The current version of the ARRBOD GUI is a new self-contained product and will have follow-on versions, as options are added: 1) human geometries of MAX/FAX in addition to CAM/CAF; 2) shielding distributions for spacecraft, Mars surface and atmosphere; 3) various space environmental and biophysical models; and 4) other response models to be connected to the BRYNTRN. The major components of the overall system, the subsystem interconnections, and external interfaces are described in this report; and the ARRBOD GUI product is explained step by step in order to serve as a tutorial.

Kim, Myung-Hee↗

Trellis Coding of Non-coherent Multiple Symbol Full Response M-ary CPFSK with Modulation Index 1/M

This paper introduces a trellis coded modulation (TCM) scheme for non-coherent multiple full response M-ary CPFSK with modulation index 1/M. A proper branch metric for the trellis decoder is obtained by employing a simple approximation of the modified Bessel function for large signal to noise ratio (SNR). Pairwise error probability of coded sequences is evaluated by applying a linear approximation to the Rician random variable.

trellis coded modulation TCM↗

Rapid Assessment of Agility for Conceptual Design Synthesis

This project consists of designing and implementing a real-time graphical interface for a workstation-based flight simulator. It is capable of creating a three-dimensional out-the-window scene of the aircraft's flying environment, with extensive information about the aircraft's state displayed in the form of a heads-up-display (HUD) overlay. The code, written in the C programming language, makes calls to Silicon Graphics' Graphics Library (GL) to draw the graphics primitives. Included in this report is a detailed description of the capabilities of the code, including graphical examples, as well as a printout of the code itself

Biezad, Daniel J.↗

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↗

A New Modular Approach for Tightly Coupled Fluid/Structure Analysis

Static aeroelastic computations are made using a C++ executive suitable for closely coupled fluid/structure interaction studies. The fluid flow is modeled using the Euler/Navier Stokes equations and the structure is modeled using finite elements. FORTRAN based fluids and structures codes are integrated under C++ environment. The flow and structural solvers are treated as separate object files. The data flow between fluids and structures is accomplished using I/O. Results are demonstrated for transonic flow over partially flexible surface that is important for aerospace vehicles. Use of this development to accurately predict flow induced structural failure will be demonstrated.

Guruswamy, Guru↗

Converging-Diverging Nozzle Thruster Code for Nuclear or Chemical Rocket Performance Computations

This report describes development of a variable area ratio C-D nozzle numerical computational code "THRST", applicable to the evaluation of nuclear or chemical rocket performance. The propellant for the nuclear rockets is para-hydrogen with gas properties supplied by a sub-routine, while properties for chemical thrusters need to be user input. Detailed documentation of input and output variables and sample output listings enable the report to function as a "User Manual".

Juhasz, Albert J.↗

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↗