Search NASA⌕ Search

SEARCH · Search NASA

Results for “generic programming”

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 19 records

Generic Programming in Fortran 202Y

Back in 2018, the Fortran committee began planning new features for what is now expected to be Fortran 2023, "generic programming" was at the top of the list of requests from the user community. Here, generic programming refers to the ability to specify algorithms that are parameterized in terms of deferred _types_ (as opposed to values). Concrete algorithms are subsequently generated when the generic algorithms are "instantiated" with specific types. After significant consideration the language committee decided that the necessary changes to Fortran to support generic programming would be too large and complex to complete within a single release cycle of the standard. Instead, a new "generics" subgroup was formed with myself as the lead, and we were charged with developing generic programming features for the subsequent release _after_ the F2023, internally referred to as Fortran 202Y. I.e, the new subgroup was provided the luxury of developing the new capabilities across two full release cycles of the standard. This talk will describe the current approach to generics being pursued by the subgroup as well as the current status halfway through the development cycle. I will conclude with some motivating examples implemented with notional syntax.

Fortran↗

Type-Safe Generic Programming in Fortran

When the Fortran language committee first collected requests for new language features for what has now become the Fortran 2023 standard, support for generic programming emerged as a top priority. However, due to the anticipated complexity, a dedicated committee subgroup was formed, and implementation of generic programming was purposely spread across two language release cycles -- aiming for what is internally referred to as F202Y. In this talk, I will begin with a brief overview of existing Fortran features that support generic programming and then proceed to a detailed examination of the plans for F202Y. This discussion will include motivating use cases, type-safe design goals, (probable) syntax, and a few simple examples. I conclude with a discussion on the likely limitations of generic programming in F202Y and my expectations for extended capabilities in the subsequent release, F203X.

Tom Clune↗

NASA Aerospace Flight Battery Program: Generic Safety, Handling and Qualification Guidelines for Lithium-Ion (Li-Ion) Batteries; Availability of Source Materials for Lithium-Ion (Li-Ion) Batteries; Maintaining Technical Communications Related to Aerospace Batteries (NASA Aerospace Battery Workshop)

This NASA Aerospace Flight Battery Systems Working Group was chartered within the NASA Engineering and Safety Center (NESC). The Battery Working Group was tasked to complete tasks and to propose proactive work to address battery related, agency-wide issues on an annual basis. In its first year of operation, this proactive program addressed various aspects of the validation and verification of aerospace battery systems for NASA missions. Studies were performed, issues were discussed and in many cases, test programs were executed to generate recommendations and guidelines to reduce risk associated with various aspects of implementing battery technology in the aerospace industry. This document contains Part 1 - Volume I: Generic Safety, Handling and Qualification Guidelines for Lithium-Ion (Li-Ion) Batteries, Availability of Source Materials for Lithium-Ion (Li-Ion) Batteries, and Maintaining Technical Communications Related to Aerospace Batteries (NASA Aerospace Battery Workshop).

Manzo, Michelle A.↗

NASA Aerospace Flight Battery Program: Generic Safety, Handling and Qualification Guidelines for Lithium-Ion (Li-Ion) Batteries; Availability of Source Materials for Lithium-Ion (Li-Ion) Batteries; Maintaining Technical Communications Related to Aerospace Batteries (NASA Aerospace Battery Workshop)

This NASA Aerospace Flight Battery Systems Working Group was chartered within the NASA Engineering and Safety Center (NESC). The Battery Working Group was tasked to complete tasks and to propose proactive work to address battery related, agency-wide issues on an annual basis. In its first year of operation, this proactive program addressed various aspects of the validation and verification of aerospace battery systems for NASA missions. Studies were performed, issues were discussed and in many cases, test programs were executed to generate recommendations and guidelines to reduce risk associated with various aspects of implementing battery technology in the aerospace industry. This report contains the Appendices to the findings from the first year of the program's operations.

Manzo, Michelle A.↗

Aspect-Oriented Programming

Computer science has experienced an evolution in programming languages and systems from the crude assembly and machine codes of the earliest computers through concepts such as formula translation, procedural programming, structured programming, functional programming, logic programming, and programming with abstract data types. Each of these steps in programming technology has advanced our ability to achieve clear separation of concerns at the source code level. Currently, the dominant programming paradigm is object-oriented programming - the idea that one builds a software system by decomposing a problem into objects and then writing the code of those objects. Such objects abstract together behavior and data into a single conceptual and physical entity. Object-orientation is reflected in the entire spectrum of current software development methodologies and tools - we have OO methodologies, analysis and design tools, and OO programming languages. Writing complex applications such as graphical user interfaces, operating systems, and distributed applications while maintaining comprehensible source code has been made possible with OOP. Success at developing simpler systems leads to aspirations for greater complexity. Object orientation is a clever idea, but has certain limitations. We are now seeing that many requirements do not decompose neatly into behavior centered on a single locus. Object technology has difficulty localizing concerns invoking global constraints and pandemic behaviors, appropriately segregating concerns, and applying domain-specific knowledge. Post-object programming (POP) mechanisms that look to increase the expressiveness of the OO paradigm are a fertile arena for current research. Examples of POP technologies include domain-specific languages, generative programming, generic programming, constraint languages, reflection and metaprogramming, feature-oriented development, views/viewpoints, and asynchronous message brokering. (Czarneclu and Eisenecker s book includes a good survey of many of these technologies).

Elrad, Tzilla↗

C++ Programming Language

C++ Programming Language: The C++ seminar covers the fundamentals of C++ programming language. The C++ fundamentals are grouped into three parts where each part includes both concept and programming examples aimed at for hands-on practice. The first part covers the functional aspect of C++ programming language with emphasis on function parameters and efficient memory utilization. The second part covers the essential framework of C++ programming language, the object-oriented aspects. Information necessary to evaluate various features of object-oriented programming; including encapsulation, polymorphism and inheritance will be discussed. The last part of the seminar covers template and generic programming. Examples include both user defined and standard templates.

Shaykhian, Gholam Ali↗

An Ada Linear-Algebra Software Package Modeled After HAL/S

New avionics software written more easily. Software package extends Ada programming language to include linear-algebra capabilities similar to those of HAL/S programming language. Designed for such avionics applications as Space Station flight software. In addition to built-in functions of HAL/S, package incorporates quaternion functions used in Space Shuttle and Galileo projects and routines from LINPAK solving systems of equations involving general square matrices. Contains two generic programs: one for floating-point computations and one for integer computations. Written on IBM/AT personal computer running under PC DOS, v.3.1.

Klumpp, Allan R.↗

Reference Models for Structural Technology Assessment and Weight Estimation

Previously the Exploration Concepts Branch of NASA Langley Research Center has developed techniques for automating the preliminary design level of launch vehicle airframe structural analysis for purposes of enhancing historical regression based mass estimating relationships. This past work was useful and greatly reduced design time, however its application area was very narrow in terms of being able to handle a large variety in structural and vehicle general arrangement alternatives. Implementation of the analysis approach presented herein also incorporates some newly developed computer programs. Loft is a program developed to create analysis meshes and simultaneously define structural element design regions. A simple component defining ASCII file is read by Loft to begin the design process. HSLoad is a Visual Basic implementation of the HyperSizer Application Programming Interface, which automates the structural element design process. Details of these two programs and their use are explained in this paper. A feature which falls naturally out of the above analysis paradigm is the concept of "reference models". The flexibility of the FEA based JAVA processing procedures and associated process control classes coupled with the general utility of Loft and HSLoad make it possible to create generic program template files for analysis of components ranging from something as simple as a stiffened flat panel, to curved panels, fuselage and cryogenic tank components, flight control surfaces, wings, through full air and space vehicle general arrangements.

Cerro, Jeff↗

Dynamic analysis of a system of hinge-connected rigid bodies with nonrigid appendages

Equations of motion are derived for use in simulating a spacecraft or other complex electromechanical system amenable to idealization as a set of hinge-connected rigid bodies of tree topology, with rigid axisymmetric rotors and nonrigid appendages attached to each rigid body in the set. In conjunction with a previously published report on finite-element appendage vibration equations, this report provides a complete minimum-dimension formulation suitable for generic programming for digital computer numerical integration.

Likins, P. W.↗

Dynamic analysis of a system of hinge-connected rigid bodies with nonrigid appendages

Equations of motion are derived for use in simulating a spacecraft or other complex electromechanical system amenable to idealization as a set of hinge-connected rigid bodies of tree topology, with rigid axisymmetric rotors and nonrigid appendages attached to each rigid body in the set. In conjunction with a previously published companion paper on finite-element appendage vibration equations, this paper provides a complete minimum-dimension formulation suitable for generic programming for digital computer numerical integration.

Likins, P. W.↗

Explaining Synthesized Software

Motivated by NASA's need for high-assurance software, NASA Ames' Amphion project has developed a generic program generation system based on deductive synthesis. Amphion has a number of advantages, such as the ability to develop a new synthesis system simply by writing a declarative domain theory. However, as a practical matter, the validation of the domain theory for such a system is problematic because the link between generated programs and the domain theory is complex. As a result, when generated programs do not behave as expected, it is difficult to isolate the cause, whether it be an incorrect problem specification or an error in the domain theory. This paper describes a tool we are developing that provides formal traceability between specifications and generated code for deductive synthesis systems. It is based on extensive instrumentation of the refutation-based theorem prover used to synthesize programs. It takes augmented proof structures and abstracts them to provide explanations of the relation between a specification, a domain theory, and synthesized code. In generating these explanations, the tool exploits the structure of Amphion domain theories, so the end user is not confronted with the intricacies of raw proof traces. This tool is crucial for the validation of domain theories as well as being important in everyday use of the code synthesis system. It plays an important role in validation because when generated programs exhibit incorrect behavior, it provides the links that can be traced to identify errors in specifications or domain theory. It plays an important role in the everyday use of the synthesis system by explaining to users what parts of a specification or of the domain theory contribute to what pieces of a generated program. Comments are inserted into the synthesized code that document these explanations.

VanBaalen, Jeffrey↗

Manual for a workstation-based generic flight simulation program (LaRCsim), version 1.4

LaRCsim is a set of ANSI C routines that implement a full set of equations of motion for a rigid-body aircraft in atmospheric and low-earth orbital flight, suitable for pilot-in-the-loop simulations on a workstation-class computer. All six rigid-body degrees of freedom are modeled. The modules provided include calculations of the typical aircraft rigid-body simulation variables, earth geodesy, gravity and atmospheric models, and support several data recording options. Features/limitations of the current version include English units of measure, a 1962 atmosphere model in cubic spline function lookup form, ranging from sea level to 75,000 feet, rotating oblate spheroidal earth model, with aircraft C.G. coordinates in both geocentric and geodetic axes. Angular integrations are done using quaternion state variables Vehicle X-Z symmetry is assumed.

Jackson, E. Bruce↗

NLEdit: A generic graphical user interface for Fortran programs

NLEdit is a generic graphical user interface for the preprocessing of Fortran namelist input files. The interface consists of a menu system, a message window, a help system, and data entry forms. A form is generated for each namelist. The form has an input field for each namelist variable along with a one-line description of that variable. Detailed help information, default values, and minimum and maximum allowable values can all be displayed via menu picks. Inputs are processed through a scientific calculator program that allows complex equations to be used instead of simple numeric inputs. A custom user interface is generated simply by entering information about the namelist input variables into an ASCII file. There is no need to learn a new graphics system or programming language. NLEdit can be used as a stand-alone program or as part of a larger graphical user interface. Although NLEdit is intended for files using namelist format, it can be easily modified to handle other file formats.

Curlett, Brian P.↗

Raster Metafile And Raster Metafile Translator Programs

Raster Metafile (RM) computer program is generic raster-image-format program, and Raster Metafile Translator (RMT) program is assortment of software tools for processing images prepared in this format. Processing includes reading, writing, and displaying RM images. Such other image-manipulation features as minimal compositing operator and resizing option available under RMT command structure. RMT written in FORTRAN 77 and C language.

Randall, Donald P.↗

Solution-adaptive program SADAP3D

A generic solution-adaptive grid program based on an error equi-distribution concept has been developed for use in complex multidimensional flows. The capability of a generic, user-friendly, multidimensional algorithm is demonstrated using several complex 3D flows in high-speed regimes. A simple scheme enforces the continuity of grid spacing along each currently adapted grid line as the computation proceeds. Calculation of normal vectors at each point of a grid plane is enhanced. The grid movement is automatically controlled by reinstating grid-spacing continuity locally in the mainstream of the unidirectional computation. It is concluded that the scheme can be readily coupled with many flow solvers to enhance accuracy and efficiency of solutions.

Djomehri, M. J.↗

Test Capabilities of the NASA Langley Direct Connect Supersonic Combustion Test Facility

In 1969 a combustion-heated direct-connect test facility was assembled at the NASA Langley Research Center and used to support NASA’s Hypersonic Research Engine program. Later, the facility was used to support NASA’s generic hypersonic program, assessing the mixing, ignition, flame holding, and combustion characteristics of ramjet and scramjet combustors. Over the years, the facility has been updated and modified to conduct increasingly complicated tests. Today, the facility is known as the Direct Connect Supersonic Combustion Test Facility (DCSCTF) and is part of the NASA Langley Scramjet Test Complex. Recently, the facility has been used by external customers to test fuel-cooled and uncooled, flight-like test articles. Tests have been conducted at nominal Mach 5 flight conditions for up to 15 minutes of continuous operation. The facility remains a viable and useful tool in the support of various Department of Defense projects.

Diego P Capriotti↗

Air Force Ni-Cd cell qualification program update

The generic qualification of aerospace nickel-cadmium cells is discussed. The test program includes the following: all available manufacturers, all available designs, cells from the previous program, and high and low orbit life cycling. It is the purpose of this program to characterize the beginning of life performance.

Hall, Steve↗

Rodent Research on the International Space Station - A Look Forward

Rodent Research on the International Space Station (ISS) is one of the highest priority science activities being supported by NASA and is planned for up to two flights per year. The first Rodent Research flight, Rodent Research-1 (RR-1) validates the hardware and basic science operations (dissections and tissue preservation). Subsequent flights will add new capabilities to support rodent research on the ISS. RR-1 will validate the following capabilities: animal husbandry for up to 30 days, video downlink to support animal health checks and scientific analysis, on-orbit dissections, sample preservation in RNA. Later and formalin, sample transfer from formalin to ethanol (hindlimbs), rapid cool-down and subsequent freezing at -80 of tissues and carcasses, sample return and recovery. RR-2, scheduled for SpX-6 (Winter 20142015) will add the following capabilities: animal husbandry for up to 60 days, RFID chip reader for individual animal identification, water refill and food replenishment, anesthesia and recovery, bone densitometry, blood collection (via cardiac puncture), blood separation via centrifugation, soft tissue fixation in formalin with transfer to ethanol, and delivery of injectable drugs that require frozen storage prior to use. Additional capabilities are also planned for future flights and these include but are not limited to male mice, live animal return, and the development of experiment unique equipment to support science requirements for principal investigators that are selected for flight. In addition to the hardware capabilities to support rodent research the Crew Office has implemented a training program in generic rodent skills for all USOS crew members during their pre-assignment training rotation. This class includes training in general animal handling, euthanasia, injections, and dissections. The dissection portion of this training focuses on the dissection of the spleen, liver, kidney with adrenals, brain, eyes, and hindlimbs. By achieving and maintaining proficiency in these basic skills as part of the nominal astronaut training curriculum this allows the rodent research program to focus the mission specific crew training on scientific requirements of research and operations flow.

Experimental capabilities↗