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 469 records · Page 26

The spatial distribution of fixed mutations within genes coding for proteins

An examination has been conducted of the extensive amino acid sequence data now available for five protein families - the alpha crystallin A chain, myoglobin, alpha and beta hemoglobin, and the cytochromes c - with the goal of estimating the true spatial distribution of base substitutions within genes that code for proteins. In every case the commonly used Poisson density failed to even approximate the experimental pattern of base substitution. For the 87 species of beta hemoglobin examined, for example, the probability that the observed results were from a Poisson process was the minuscule 10 to the -44th. Analogous results were obtained for the other functional families. All the data were reasonably, but not perfectly, described by the negative binomial density. In particular, most of the data were described by one of the very simple limiting forms of this density, the geometric density. The implications of this for evolutionary inference are discussed. It is evident that most estimates of total base substitutions between genes are badly in need of revision.

Holmquist, R.↗

Precise and Efficient Static Array Bound Checking for Large Embedded C Programs

In this paper we describe the design and implementation of a static array-bound checker for a family of embedded programs: the flight control software of recent Mars missions. These codes are large (up to 250 KLOC), pointer intensive, heavily multithreaded and written in an object-oriented style, which makes their analysis very challenging. We designed a tool called C Global Surveyor (CGS) that can analyze the largest code in a couple of hours with a precision of 80%. The scalability and precision of the analyzer are achieved by using an incremental framework in which a pointer analysis and a numerical analysis of array indices mutually refine each other. CGS has been designed so that it can distribute the analysis over several processors in a cluster of machines. To the best of our knowledge this is the first distributed implementation of static analysis algorithms. Throughout the paper we will discuss the scalability setbacks that we encountered during the construction of the tool and their impact on the initial design decisions.

Venet, Arnaud↗

Using C to build a satellite scheduling expert system: Examples from the Explorer Platform planning system

A C-based artificial intelligence (AI) development effort which is based on a software tools approach is discussed with emphasis on reusability and maintainability of code. The discussion starts with simple examples of how list processing can easily be implemented in C and then proceeds to the implementations of frames and objects which use dynamic memory allocation. The implementation of procedures which use depth first search, constraint propagation, context switching, and blackboard-like simulation environment are described. Techniques for managing the complexity of C-based AI software are noted, especially the object-oriented techniques of data encapsulation and incremental development. Finally, all these concepts are put together by describing the components of planning software called the Planning And Resource Reasoning (PARR) Shell. This shell was successfully utilized for scheduling services of the Tracking and Data Relay Satellite System for the Earth Radiation Budget Satellite since May of 1987 and will be used for operations scheduling of the Explorer Platform in Nov. of 1991.

Mclean, David R.↗

Coded Aperture Imaging

Explore the source record for details and available documents.

Alvar Saenz-otero↗

SequenceL: Automated Parallel Algorithms Derived from CSP-NT Computational Laws

With the introduction of new parallel architectures like the cell and multicore chips from IBM, Intel, AMD, and ARM, as well as the petascale processing available for highend computing, a larger number of programmers will need to write parallel codes. Adding the parallel control structure to the sequence, selection, and iterative control constructs increases the complexity of code development, which often results in increased development costs and decreased reliability. SequenceL is a high-level programming language that is, a programming language that is closer to a human s way of thinking than to a machine s. Historically, high-level languages have resulted in decreased development costs and increased reliability, at the expense of performance. In recent applications at JSC and in industry, SequenceL has demonstrated the usual advantages of high-level programming in terms of low cost and high reliability. SequenceL programs, however, have run at speeds typically comparable with, and in many cases faster than, their counterparts written in C and C++ when run on single-core processors. Moreover, SequenceL is able to generate parallel executables automatically for multicore hardware, gaining parallel speedups without any extra effort from the programmer beyond what is required to write the sequen tial/singlecore code. A SequenceL-to-C++ translator has been developed that automatically renders readable multithreaded C++ from a combination of a SequenceL program and sample data input. The SequenceL language is based on two fundamental computational laws, Consume-Simplify- Produce (CSP) and Normalize-Trans - pose (NT), which enable it to automate the creation of parallel algorithms from high-level code that has no annotations of parallelism whatsoever. In our anecdotal experience, SequenceL development has been in every case less costly than development of the same algorithm in sequential (that is, single-core, single process) C or C++, and an order of magnitude less costly than development of comparable parallel code. Moreover, SequenceL not only automatically parallelizes the code, but since it is based on CSP-NT, it is provably race free, thus eliminating the largest quality challenge the parallelized software developer faces.

Cooke, Daniel↗

Tensoral for post-processing users and simulation authors

The CTR post-processing effort aims to make turbulence simulations and data more readily and usefully available to the research and industrial communities. The Tensoral language, which provides the foundation for this effort, is introduced here in the form of a user's guide. The Tensoral user's guide is presented in two main sections. Section one acts as a general introduction and guides database users who wish to post-process simulation databases. Section two gives a brief description of how database authors and other advanced users can make simulation codes and/or the databases they generate available to the user community via Tensoral database back ends. The two-part structure of this document conforms to the two-level design structure of the Tensoral language. Tensoral has been designed to be a general computer language for performing tensor calculus and statistics on numerical data. Tensoral's generality allows it to be used for stand-alone native coding of high-level post-processing tasks (as described in section one of this guide). At the same time, Tensoral's specialization to a minute task (namely, to numerical tensor calculus and statistics) allows it to be easily embedded into applications written partly in Tensoral and partly in other computer languages (here, C and Vectoral). Embedded Tensoral, aimed at advanced users for more general coding (e.g. of efficient simulations, for interfacing with pre-existing software, for visualization, etc.), is described in section two of this guide.

Dresselhaus, Eliot↗

Using PVM to host CLIPS in distributed environments

It is relatively easy to enhance CLIPS (C Language Integrated Production System) to support multiple expert systems running in a distributed environment with heterogeneous machines. The task is minimized by using the PVM (Parallel Virtual Machine) code from Oak Ridge Labs to provide the distributed utility. PVM is a library of C and FORTRAN subprograms that supports distributive computing on many different UNIX platforms. A PVM deamon is easily installed on each CPU that enters the virtual machine environment. Any user with rsh or rexec access to a machine can use the one PVM deamon to obtain a generous set of distributed facilities. The ready availability of both CLIPS and PVM makes the combination of software particularly attractive for budget conscious experimentation of heterogeneous distributive computing with multiple CLIPS executables. This paper presents a design that is sufficient to provide essential message passing functions in CLIPS and enable the full range of PVM facilities.

Myers, Leonard↗

The ALEXIS data processing package: An IDL based system

The Array of Low Energy X-ray Imaging Sensors (ALEXIS) experiment consists of a mini-satellite containing six wide angle EUV/ultrasoft x-ray telescopes. Its purpose is to map out the sky in three narrow (approximately 5 percent) bandpasses around 66, 71, and 93 eV. The 66 and 71 eV bandpasses are centered on intense Fe emission lines which are characteristic of million degree plasmas such as the one thought to produce the soft x-ray background. The 93 eV bandpass is not near any strong emission lines and is more sensitive to continuum sources. The mission will be launched on the Pegasus Air Launched Vehicle in the second half of 1992 into a 400-nautical-mile, high inclination orbit and will be controlled entirely from a small ground station located at Los Alamos. The project is a collaborative effort between Los Alamos National Laboratory, Sandia National Laboratory, and the University of California-Berkeley Space Sciences Laboratory. The six telescopes are arranged in three pairs. As the satellite spins twice a minute they scan the entire anti-solar hemisphere. Each f/1 telescope consists of a spherical, multilayer-coated mirror with a curved, microchannel plate detector located at the prime focus. The multilayer coatings determine the bandpasses of the telescopes. The field of view of each telescope is 30 degrees with a spatial resolution of 0.5 degree, limited by spherical aberration. The data processing requirements for ALEXIS are large. Each event is one of the six telescopes is telemetered to the ground with its time of arrival and position on the detector. This information must be folded with the aspect solution for the satellite to reconstruct the direction on the sky from which the photon came. Because of the way the six telescopes scan the sky, the effective exposure calculation is also very computationally intensive. ALEXIS may generate up to 100 megabytes of raw data per day, which are converted into a gigabyte per day of processed data. While the processing job for ALEXIS is sizable, the programming staff is small. To maximize programming efficiency, and to make the best use of tools available in the public domain, we chose IDL as our software development platform. IDL was used from the start of instrument development through flight. We use IDL as a top-level executive for the processing tasks (replacing Unix shell scripts), as a device independent graphics engine, as a database manager, and as a final data manipulator. IDL routines spawn special purpose C programs to perform detailed telemetry deconvolution and other specialized functions. We discuss the use of IDL and C within the processing and archiving strategy for the ALEXIS data anlaysis system as implemented on a SPARCstation platform. We also show results from our End-to-End software simulation capability as processed by our analysis codes.

Bloch, J. J.↗

CoNNeCT Baseband Processor Module Boot Code SoftWare (BCSW)

This software provides essential startup and initialization routines for the CoNNeCT baseband processor module (BPM) hardware upon power-up. A command and data handling (C&DH) interface is provided via 1553 and diagnostic serial interfaces to invoke operational, reconfiguration, and test commands within the code. The BCSW has features unique to the hardware it is responsible for managing. In this case, the CoNNeCT BPM is configured with an updated CPU (Atmel AT697 SPARC processor) and a unique set of memory and I/O peripherals that require customized software to operate. These features include configuration of new AT697 registers, interfacing to a new HouseKeeper with a flash controller interface, a new dual Xilinx configuration/scrub interface, and an updated 1553 remote terminal (RT) core. The BCSW is intended to provide a "safe" mode for the BPM when initially powered on or when an unexpected trap occurs, causing the processor to reset. The BCSW allows the 1553 bus controller in the spacecraft or payload controller to operate the BPM over 1553 to upload code; upload Xilinx bit files; perform rudimentary tests; read, write, and copy the non-volatile flash memory; and configure the Xilinx interface. Commands also exist over 1553 to cause the CPU to jump or call a specified address to begin execution of user-supplied code. This may be in the form of a real-time operating system, test routine, or specific application code to run on the BPM.

Yamamoto, Clifford K.↗

Satellite data

Three satellite SST data sets were analyzed, all derived from the Scanning Multichannel Microwave Radiometer (SMMR) on the Nimbus-7 satellite. The SMMR is a ten-channel instrument flown also on the SEASAT satellite (now defunct) and was designed to measure SST in addition to other oceanographic and meteorological parameters. The three SMMR data sets were referred to as SMMR-I, -II, and -III. SMMR-I and -II were produced by T. Wilheit and A. Milman, SMMR-II being an updated and refined version of SMMR-I. A description of the algorithms used is provided. SMMR-III was provided by C. Prabhakara and was obtained by a different retrieval approach from the others. For consistency with the file code conventions and to avoid confusion, SMMRs I, II, and III were renamed SMMR-A, SMMR-D, and SMMR-C, respectively.

Njoku, E. G.↗

Metal Hydroxide and Oxyhydroxide Gas Database

In a high temperature combustion situation such as a gas turbine or rocket engine, combustion products include water vapor. This water vapor reacts with oxides in the hot-gas-path to form volatile hydroxides and oxyhydroxides. The oxides may be structural oxide components or protective oxides on alloys or non-oxide ceramics. In either case, this enhanced volatilization leads to degradation of components. Reliable thermochemical data for many metal hydroxides and oxyhydroxides has not been available. We review a database put together at NASA over many years based on experimental and ab initio computations for thermochemical data of Al, Si, Ti, Cr, Mn, Y, Zr, La, Ta, Gd, and Yb hydroxides and oxyhydroxides. Experimental methods for measuring thermodynamic quantities of metal hydroxides and oxyhydroxides are limited since the required high temperatures and high pressures preclude many conventional methods. Nonetheless, transpiration has proven a valuable tool in our laboratories for the Si-O-H, Cr-O-H, and Ti-O-H systems. Data are analyzed with second and third law methods. These data can be leveraged with quantum chemistry to provide reliable free energy functions for the third law calculation and comparison to the derived enthalpies of formation. Both wave function and DFT methods can be utilized for deriving the thermodynamic functions for the various metal hydroxides and oxyhydroxides. We have found that, in general, reasonable molecular geometries and spectroscopic data can be derived with a relatively low level of theory, i.e. DFT with the B3LYP functional. Accurate calculations of the enthalpy of formation require higher levels of theory, such as the Coupled Cluster, Singles, Doubles, and perturbative Triples CCSD(T) approach with complete basis sets (CBS). Also, corrections for hindered rotations and anharmonicity are necessary. For some symmetries, the anharmonic correction has proven to be a challenge and we have found that this is only treated properly by certain codes. The database lists the fHo(298), So(298), and Cp in the form Cp = A + BT + CT2 + D/T + E/T2, where A, B, C, D, and E are the fitting constants. Thus, it can be easily used in any of the common computational thermochemistry codes. To date, the database contains 51 gaseous species of the formula MOx(OH)y.

Metal Hydroxides↗

Multi-processing on supercomputers for computational aerodynamics

The MIMD concept is applied, through multitasking, with relatively minor modifications to an existing code for a single processor. This approach maps the available memory to multiple processors, exploiting the C-FORTRAN-Unix interface. An existing single processor algorithm is mapped without the need for developing a new algorithm. The procedure of designing a code utilizing this approach is automated with the Unix stream editor. A Multiple Processor Multiple Grid (MPMG) code is developed as a demonstration of this approach. This code solves the three-dimensional, Reynolds-averaged, thin-layer and slender-layer Navier-Stokes equations with an implicit, approximately factored and diagonalized method. This solver is applied to a generic, oblique-wing aircraft problem on a four-processor computer using one process for data management and nonparallel computations and three processes for pseudotime advance on three different grid systems.

Yarrow, Maurice↗

Computer code for determination of thermally perfect gas properties

A set of one-dimensional compressible flow relations for a thermally perfect, calorically imperfect gas is derived for the specific heat c(sub p), expressed as a polynomial function of temperature, and developed into the thermally perfect gas (TPG) computer code. The code produces tables of compressible flow properties similar to those of NACA Rep. 1135. Unlike the tables of NACA Rep. 1135 which are valid only in the calorically perfect temperature regime, the TPG code results are also valid in the thermally perfect calorically imperfect temperature regime which considerably extends the range of temperature application. Accuracy of the TPG code in the calorically perfect temperature regime is verified by comparisons with the tables of NACA Rep. 1135. In the thermally perfect, calorically imperfect temperature regime, the TPG code is validated by comparisons with results obtained from the method of NACA Rep. 1135 for calculating the thermally perfect calorically imperfect compressible flow properties. The temperature limits for application of the TPG code are also examined. The advantage of the TPG code is its applicability to any type of gas (monatomic, diatomic, triatomic, or polyatomic) or any specified mixture thereof, whereas the method of NACA Rep. 1135 is restricted to only diatomic gases.

Witte, David W.↗

The production of nitric oxide in the troposphere as a result of solid-rocket-motor afterburning

As part of an ongoing assessment of the environmental effects of solid-rocket-motor operations in the troposphere, estimates were made of the nitric oxide produced in the troposphere by the space shuttle and Titan 3-C boosters. Calculations were made with the low-altitude plume computer program and included the effects of coupled finite-rate chemistry and turbulent mixing. A recent measurement of nitric oxide taken in the effluent cloud of a Titan 3-C booster is compared with calculations made with this computer code. The various chemical reactions of the exhaust gases are listed in tabular form.

Stewart, R. B.↗