Engineering Papers⌕ Search

SEARCH · Engineering Papers

Results for “Building Component Library”

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.

35 records · Page 2

System-of-Systems Technology-Portfolio-Analysis Tool

Advanced Technology Life-cycle Analysis System (ATLAS) is a system-of-systems technology-portfolio-analysis software tool. ATLAS affords capabilities to (1) compare estimates of the mass and cost of an engineering system based on competing technological concepts; (2) estimate life-cycle costs of an outer-space-exploration architecture for a specified technology portfolio; (3) collect data on state-of-the-art and forecasted technology performance, and on operations and programs; and (4) calculate an index of the relative programmatic value of a technology portfolio. ATLAS facilitates analysis by providing a library of analytical spreadsheet models for a variety of systems. A single analyst can assemble a representation of a system of systems from the models and build a technology portfolio. Each system model estimates mass, and life-cycle costs are estimated by a common set of cost models. Other components of ATLAS include graphical-user-interface (GUI) software, algorithms for calculating the aforementioned index, a technology database, a report generator, and a form generator for creating the GUI for the system models. At the time of this reporting, ATLAS is a prototype, embodied in Microsoft Excel and several thousand lines of Visual Basic for Applications that run on both Windows and Macintosh computers.

O'Neil, Daniel↗

Autonomous In-space Construction, Maintenance, and Reconfiguration Using Programmable Meta-Material

NASA ARC's Coded Structures Laboratory (CSL) is developing autonomous construction, maintenance, and reconfiguration technologies to meet long-duration and deep space infrastructure needs, in accordance with long-term NASA goals of "in-space reliance" and "mass-less exploration." We seek to achieve these capabilities by utilizing a "programmable meta-material" approach that integrates emerging advances in materials (mechanical meta-materials), manufacturing (cooperative mobile robotics), and autonomy (multi-agent planning algorithms). Through the ARMADAS project, we have shown assembly of high-performance engineered cellular materials using multiple cooperating mobile robotic assemblers. In this paper, we describe how such a programmable meta-material architecture may shift the paradigm of how we design, build, manufacture, and operate future space infrastructure and assets. The core of a programmable meta-material architecture consists of 3 main technology sub-areas: the structure, the assembly agents, and the assembly algorithms. We co-design these systems to ensure an adaptable system that can create and reconfigure structures from a base set of building block components. From this core technology, we can branch out and expand the capability of the system through additional secondary component types and robotic agents to perform activities such as inspections, maintenance, repair, payload installation, or perform power and communications interconnect. As these technologies mature, future designers will be able to utilize the system to rapidly integrate and operate assets in space or on planetary surfaces from a set of well-tested part library, or create their own modules to integrate into the system. A core trait to the development of this system is the automation approach. Because of the modular and functional discrete (pixel-like) nature of the structural system, a diverse set of powerful algorithms for analysis, planning, and simulation can be adapted and leveraged to optimize construction, maintenance, and dynamic reorganization (as hardware with programmable form and function). With an ability to free the design space from launch vehicle constraints and fundamentally shift how a mission is designed and conducted, we discuss the influence of a programmable meta-material architecture on mission design, build, and operations. For the "design phase", we discuss project lifecycle effects, costs, time, and performance. For the "build phase", we discuss reusability, ISRU, manufacturing, material logistics, and scalability. And for "operations", we discuss autonomy, maintenance and upgrades, reliability, and reconfiguration. Autonomy and modularity are the primary enabling traits of this system. Engineering systems that utilize a modular and reconfiguration building block approach such as digital communication and computation systems, currently lead all other areas of technology in size and complexity scalability. NASA is extending the benefits and flexibility of digital systems to hardware systems, to optimize materials lifecycle management and expand our space exploration mission capabilities.

in space assembly↗

Use of Generalized Fluid System Simulation Program (GFSSP) for Teaching and Performing Senior Design Projects at the Educational Institutions

This paper describes the experience of the authors in using the Generalized Fluid System Simulation Program (GFSSP) in teaching Design of Thermal Systems class at University of Alabama in Huntsville. GFSSP is a finite volume based thermo-fluid system network analysis code, developed at NASA/Marshall Space Flight Center, and is extensively used in NASA, Department of Defense, and aerospace industries for propulsion system design, analysis, and performance evaluation. The educational version of GFSSP is freely available to all US higher education institutions. The main purpose of the paper is to illustrate the utilization of this user-friendly code for the thermal systems design and fluid engineering courses and to encourage the instructors to utilize the code for the class assignments as well as senior design projects. The need for a generalized computer program for thermofluid analysis in a flow network has been felt for a long time in aerospace industries. Designers of thermofluid systems often need to know pressures, temperatures, flow rates, concentrations, and heat transfer rates at different parts of a flow circuit for steady state or transient conditions. Such applications occur in propulsion systems for tank pressurization, internal flow analysis of rocket engine turbopumps, chilldown of cryogenic tanks and transfer lines, and many other applications of gas-liquid systems involving fluid transients and conjugate heat and mass transfer. Computer resource requirements to perform time-dependent, three-dimensional Navier-Stokes computational fluid dynamic (CFD) analysis of such systems are prohibitive and therefore are not practical. Available commercial codes are generally suitable for steady state, single-phase incompressible flow. Because of the proprietary nature of such codes, it is not possible to extend their capability to satisfy the above-mentioned needs. Therefore, the Generalized Fluid System Simulation Program (GFSSP1) has been developed at NASA Marshall Space Flight Center (MSFC) as a general fluid flow system solver capable of handling phase changes, compressibility, mixture thermodynamics and transient operations. It also includes the capability to model external body forces such as gravity and centrifugal effects in a complex flow network. The objectives of GFSSP development are: a) to develop a robust and efficient numerical algorithm to solve a system of equations describing a flow network containing phase changes, mixing, and rotation; and b) to implement the algorithm in a structured, easy-to-use computer program. The analysis of thermofluid dynamics in a complex network requires resolution of the system into fluid nodes and branches, and solid nodes and conductors as shown in Figure 1. Figure 1 shows a schematic and GFSSP flow circuit of a counter-flow heat exchanger. Hot nitrogen gas is flowing through a pipe, colder nitrogen is flowing counter to the hot stream in the annulus pipe and heat transfer occurs through metal tubes. The problem considered is to calculate flowrates and temperature distributions in both streams. GFSSP has a unique data structure, as shown in Figure 2, that allows constructing all possible arrangements of a flow network with no limit on the number of elements. The elements of a flow network are boundary nodes where pressure and temperature are specified, internal nodes where pressure and temperature are calculated, and branches where flowrates are calculated. For conjugate heat transfer problems, there are three additional elements: solid node, ambient node, and conductor. The solid and fluid nodes are connected with solid-fluid conductors. GFSSP solves the conservation equations of mass and energy, and equation of state in internal nodes to calculate pressure, temperature and resident mass. The momentum conservation equation is solved in branches to calculate flowrate. It also solves for energy conservation equations to calculate temperatures of solid nodes. The equations are coupled and nonlinear; therefore, they are solved by an iterative numerical scheme. GFSSP employs a unique numerical scheme known as simultaneous adjustment with successive substitution (SASS), which is a combination of Newton-Raphson and successive substitution methods. The mass and momentum conservation equations and the equation of state are solved by the Newton-Raphson method while the conservation of energy and species are solved by the successive substitution method. GFSSP is linked with two thermodynamic property programs, GASP2 and WASP3 and GASPAK4, that provide thermodynamic and thermophysical properties of selected fluids. Both programs cover a range of pressure and temperature that allows fluid properties to be evaluated for liquid, liquid-vapor (saturation), and vapor region. GASP and WASP provide properties of 12 fluids. GASPAK includes a library of 36 fluids. GFSSP has three major parts. The first part is the graphical user interface (GUI), visual thermofluid analyzer of systems and components (VTASC). VTASC allows users to create a flow circuit by a 'point and click' paradigm. It creates the GFSSP input file after the completion of the model building process. GFSSP's GUI provides the users a platform to build and run their models. It also allows post-processing of results. The network flow circuit is first built using three basic elements: boundary node, internal node, and branch.

Majumdar, A. K.↗

A Tutorial for Using the CGT Script Library to Generate and Assemble Overset Meshes

The purpose of this document is to introduce a new user to the procedures for overset CFD analysis by building scripts based on the CGT Script Library. Parameterized inputs are built into the steps of the process which include creation and manipulation of geometry, and surface and volume meshing. In preparation for performing computations in the flow solver, further steps are constructed for specification of inputs for domain connectivity, flow solver boundary conditions, and components for computation of aerodynamic forces/moments. The JCLV rocket will be used as an example geometry for this demonstration.

Script↗

Parallel adaptive mesh refinement techniques for plasticity problems

The accurate modeling of the nonlinear properties of materials can be computationally expensive. Parallel computing offers an attractive way for solving such problems; however, the efficient use of these systems requires the vertical integration of a number of very different software components, we explore the solution of two- and three-dimensional, small-strain plasticity problems. We consider a finite-element formulation of the problem with adaptive refinement of an unstructured mesh to accurately model plastic transition zones. We present a framework for the parallel implementation of such complex algorithms. This framework, using libraries from the SUMAA3d project, allows a user to build a parallel finite-element application without writing any parallel code. To demonstrate the effectiveness of this approach on widely varying parallel architectures, we present experimental results from an IBM SP parallel computer and an ATM-connected network of Sun UltraSparc workstations. The results detail the parallel performance of the computational phases of the application during the process while the material is incrementally loaded.

Barry, W. J.↗

Expressions Module for the Satellite Orbit Analysis Program

The Expressions Module is a software module that has been incorporated into the Satellite Orbit Analysis Program (SOAP). The module includes an expressions- parser submodule built on top of an analytical system, enabling the user to define logical and numerical variables and constants. The variables can capture output from SOAP orbital-prediction and geometric-engine computations. The module can combine variables and constants with built-in logical operators (such as Boolean AND, OR, and NOT), relational operators (such as >, <, or =), and mathematical operators (such as addition, subtraction, multiplication, division, modulus, exponentiation, differentiation, and integration). Parentheses can be used to specify precedence of operations. The module contains a library of mathematical functions and operations, including logarithms, trigonometric functions, Bessel functions, minimum/ maximum operations, and floating- point-to-integer conversions. The module supports combinations of time, distance, and angular units and has a dimensional- analysis component that checks for correct usage of units. A parser based on the Flex language and the Bison program looks for and indicates errors in syntax. SOAP expressions can be built using other expressions as arguments, thus enabling the user to build analytical trees. A graphical user interface facilitates use.

Edmonds, Karina↗

CCSDS Advanced Orbiting Systems Virtual Channel Access Service for QoS MACHETE Model

To support various communications requirements imposed by different missions, interplanetary communication protocols need to be designed, validated, and evaluated carefully. Multimission Advanced Communications Hybrid Environment for Test and Evaluation (MACHETE), described in "Simulator of Space Communication Networks" (NPO-41373), NASA Tech Briefs, Vol. 29, No. 8 (August 2005), p. 44, combines various tools for simulation and performance analysis of space networks. The MACHETE environment supports orbital analysis, link budget analysis, communications network simulations, and hardware-in-the-loop testing. By building abstract behavioral models of network protocols, one can validate performance after identifying the appropriate metrics of interest. The innovators have extended the MACHETE model library to include a generic link-layer Virtual Channel (VC) model supporting quality-of-service (QoS) controls based on IP streams. The main purpose of this generic Virtual Channel model addition was to interface fine-grain flow-based QoS (quality of service) between the network and MAC layers of the QualNet simulator, a commercial component of MACHETE. This software model adds the capability of mapping IP streams, based on header fields, to virtual channel numbers, allowing extended QoS handling at link layer. This feature further refines the QoS v existing at the network layer. QoS at the network layer (e.g. diffserv) supports few QoS classes, so data from one class will be aggregated together; differentiating between flows internal to a class/priority is not supported. By adding QoS classification capability between network and MAC layers through VC, one maps multiple VCs onto the same physical link. Users then specify different VC weights, and different queuing and scheduling policies at the link layer. This VC model supports system performance analysis of various virtual channel link-layer QoS queuing schemes independent of the network-layer QoS systems.

Jennings, Esther H.↗

Earth Science Data Fusion with Event Building Approach

Objectives of the NASA Information And Data System (NAIADS) project are to develop a prototype of a conceptually new middleware framework to modernize and significantly improve efficiency of the Earth Science data fusion, big data processing and analytics. The key components of the NAIADS include: Service Oriented Architecture (SOA) multi-lingual framework, multi-sensor coincident data Predictor, fast into-memory data Staging, multi-sensor data-Event Builder, complete data-Event streaming (a work flow with minimized IO), on-line data processing control and analytics services. The NAIADS project is leveraging CLARA framework, developed in Jefferson Lab, and integrated with the ZeroMQ messaging library. The science services are prototyped and incorporated into the system. Merging the SCIAMACHY Level-1 observations and MODIS/Terra Level-2 (Clouds and Aerosols) data products, and ECMWF re- analysis will be used for NAIADS demonstration and performance tests in compute Cloud and Cluster environments.

Lukashin, C.↗

System and Method for Providing a Climate Data Analytic Services Application Programming Interface Distribution Package

A system, method and computer-readable storage devices for providing a climate data analytic services application programming interface distribution package. The example system can provide various components. The system provides a climate data analytic services application programming interface library that enables software applications running on a client device to invoke the capabilities of a climate data analytic service. The system provides a command-line interface that provides a means of interacting with a climate data analytic service by issuing commands directly to the system's server interface. The system provides sample programs that call on the capabilities of the application programming interface library and can be used as templates for the construction of new client applications. The system can also provide test utilities, build utilities, service integration utilities, and documentation.

Schnase, John L.↗

Aviation Safety Modeling and Simulation (ASMM) Propulsion Fleet Modeling: A Tool for Semi-Automatic Construction of CORBA-based Applications from Legacy Fortran Programs

Within NASA's Aviation Safety Program, NASA GRC participates in the Modeling and Simulation Project called ASMM. NASA GRC s focus is to characterize the propulsion systems performance from a fleet management and maintenance perspective by modeling and through simulation predict the characteristics of two classes of commercial engines (CFM56 and GE90). In prior years, the High Performance Computing and Communication (HPCC) program funded, NASA Glenn in developing a large scale, detailed simulations for the analysis and design of aircraft engines called the Numerical Propulsion System Simulation (NPSS). Three major aspects of this modeling included the integration of different engine components, coupling of multiple disciplines, and engine component zooming at appropriate level fidelity, require relatively tight coupling of different analysis codes. Most of these codes in aerodynamics and solid mechanics are written in Fortran. Refitting these legacy Fortran codes with distributed objects can increase these codes reusability. Aviation Safety s modeling and simulation use in characterizing fleet management has similar needs. The modeling and simulation of these propulsion systems use existing Fortran and C codes that are instrumental in determining the performance of the fleet. The research centers on building a CORBA-based development environment for programmers to easily wrap and couple legacy Fortran codes. This environment consists of a C++ wrapper library to hide the details of CORBA and an efficient remote variable scheme to facilitate data exchange between the client and the server model. Additionally, a Web Service model should also be constructed for evaluation of this technology s use over the next two- three years.

Sang, Janche↗

Website of the Systems and Analysis Branch Supported Projects and Graph Analysis

Throughout the past few weeks I have learned a great amount of information about many interesting aspects that go on here at NASA Glenn Research Center Branch 7820. Branch 7820 is the Systems and Analysis Branch. The people involved in this Branch deal with in a nutshell the analysis of propulsion systems for Earth to orbit and space transportation systems. The first project that I had worked on was helping my mentor learn more about lunar geography and the most recommended way to maintain communication for our future lunar missions. During this time I studied the craters of the moon, especially the South Pole, to provide her with information so that she can make decisions. I also researched to provide her with contact information on those people who are specialized in lunar geography so that she may talk to them to find out more in depth information. Most of my time spent here has been helping to develop a comprehensive explanation and background of the different projects our Branch has supported. When I first came to NASA Glenn and started working with the 7820 Branch there website had many holes that needed to be filled in. I have spent numerous weeks researching information about topics such as Project Prometheus itself and one of its components Jupiter s Icy Moons Orbiter (JIMO). I have also done a large amount of research on propulsion systems and how different kinds work. I have learned many facts about Nuclear Electric Propulsion (NEP) all the way to Nuclear Thermal Propulsion (NTP) systems. I will continue to do this until all the holes are filled and find out about Global Integrated Design Environment (GLIDE) and Next Generation Launch technology (NGLT). Since most of my job was providing information to go onto a website I has to learn how to put my information into a HTML format. I had no previous knowledge on how to do that kind of task and had to study how to do it and am now able to create a document in HTML format. There has been reorganizing done here at NASA Glenn and our Branch was moved to another building. Therefore, our library had to be moved with us. I spent time helping to put together the boxes, pack the library, and label them accordingly. This was not an easy task but was an experience in itself. I was able to see old posters that NASA had produced about different space missions and look at Russian map of the US and books on space missions. I was also about to see what was in the library in terms of reference material helped because now I can make use of the information for my research on the website. Throughout my internship my mentor will provide me with graphs to analyze and recreate so that she may use them to her advantage. I will learn from every piece of data that comes my way. Later, I will study and analysis gravity-loss for Earth departure trajectories. Since I haven't done that yet I cannot really describe what 1 will learn or what exactly the project entails. The whole experience has been great and I have no doubt that it will exceed every expectation previously thought.

Kellerman, Corinne↗

Adjustable Autonomy Testbed

The Adjustable Autonomy Testbed (AAT) is a simulation-based testbed located in the Intelligent Systems Laboratory in the Automation, Robotics and Simulation Division at NASA Johnson Space Center. The purpose of the testbed is to support evaluation and validation of prototypes of adjustable autonomous agent software for control and fault management for complex systems. The AA T project has developed prototype adjustable autonomous agent software and human interfaces for cooperative fault management. This software builds on current autonomous agent technology by altering the architecture, components and interfaces for effective teamwork between autonomous systems and human experts. Autonomous agents include a planner, flexible executive, low level control and deductive model-based fault isolation. Adjustable autonomy is intended to increase the flexibility and effectiveness of fault management with an autonomous system. The test domain for this work is control of advanced life support systems for habitats for planetary exploration. The CONFIG hybrid discrete event simulation environment provides flexible and dynamically reconfigurable models of the behavior of components and fluids in the life support systems. Both discrete event and continuous (discrete time) simulation are supported, and flows and pressures are computed globally. This provides fast dynamic simulations of interacting hardware systems in closed loops that can be reconfigured during operations scenarios, producing complex cascading effects of operations and failures. Current object-oriented model libraries support modeling of fluid systems, and models have been developed of physico-chemical and biological subsystems for processing advanced life support gases. In FY01, water recovery system models will be developed.

Malin, Jane T.↗

Math Description Engine Software Development Kit

The Math Description Engine Software Development Kit (MDE SDK) can be used by software developers to make computer-rendered graphs more accessible to blind and visually-impaired users. The MDE SDK generates alternative graph descriptions in two forms: textual descriptions and non-verbal sound renderings, or sonification. It also enables display of an animated trace of a graph sonification on a visual graph component, with color and line-thickness options for users having low vision or color-related impairments. A set of accessible graphical user interface widgets is provided for operation by end users and for control of accessible graph displays. Version 1.0 of the MDE SDK generates text descriptions for 2D graphs commonly seen in math and science curriculum (and practice). The mathematically rich text descriptions can also serve as a virtual math and science assistant for blind and sighted users, making graphs more accessible for everyone. The MDE SDK has a simple application programming interface (API) that makes it easy for programmers and Web-site developers to make graphs accessible with just a few lines of code. The source code is written in Java for cross-platform compatibility and to take advantage of Java s built-in support for building accessible software application interfaces. Compiled-library and NASA Open Source versions are available with API documentation and Programmer s Guide at http:/ / prim e.jsc.n asa. gov.

Shelton, Robert O.↗

The NASA CloudSat/GPM Light Precipitation Validation Experiment (LPVEx)

Ground-based measurements of cool-season precipitation at mid and high latitudes (e.g., above 45 deg N/S) suggest that a significant fraction of the total precipitation volume falls in the form of light rain, i.e., at rates less than or equal to a few mm/h. These cool-season light rainfall events often originate in situations of a low-altitude (e.g., lower than 2 km) melting level and pose a significant challenge to the fidelity of all satellite-based precipitation measurements, especially those relying on the use of multifrequency passive microwave (PMW) radiometers. As a result, significant disagreements exist between satellite estimates of rainfall accumulation poleward of 45 deg. Ongoing efforts to develop, improve, and ultimately evaluate physically-based algorithms designed to detect and accurately quantify high latitude rainfall, however, suffer from a general lack of detailed, observationally-based ground validation datasets. These datasets serve as a physically consistent framework from which to test and refine algorithm assumptions, and as a means to build the library of algorithm retrieval databases in higher latitude cold-season light precipitation regimes. These databases are especially relevant to NASA's CloudSat and Global Precipitation Measurement (GPM) ground validation programs that are collecting high-latitude precipitation measurements in meteorological systems associated with frequent coolseason light precipitation events. In an effort to improve the inventory of cool-season high-latitude light precipitation databases and advance the physical process assumptions made in satellite-based precipitation retrieval algorithm development, the CloudSat and GPM mission ground validation programs collaborated with the Finnish Meteorological Institute (FMI), the University of Helsinki (UH), and Environment Canada (EC) to conduct the Light Precipitation Validation Experiment (LPVEx). The LPVEx field campaign was designed to make detailed measurements of cool-season light precipitation by leveraging existing infrastructure in the Helsinki Precipitation Testbed. LPVEx was conducted during the months of September--October, 2010 and featured coordinated ground and airborne remote sensing components designed to observe and quantify the precipitation physics associated with light rain in low-altitude melting layer environments over the Gulf of Finland and neighboring land mass surrounding Helsinki, Finland.

Petersen, Walter A.↗

In-Depth Modeling and Simulation Analysis of Artemis Missions Using the Impact Probabilistic Risk Assessment Tool

BACKGROUND The Artemis campaign is a Moon exploration program with a series of six planned missions, five of which will be crewed. These five crewed missions will contain a single mission segment (space flight), or multiple mission segments involving space flight (Orion), lunar landing (LTV) and/or space habitat (Gateway). Each crewed segment faces the risk of unique medical conditions, necessitating medical sets/kits tailored to those specificities. To support and enable a data-driven and evidence-based decision-making process through out a mission’s life cycle, a software tool called IMPACT was developed. Using probabilistic risk assessment (PRA) methodologies, IMPACT (Informing Mission Planning via Analysis of Complex Tradespaces) is a novel tool built for analyzing the possibility of encountering complex medical risks during space flight, and for identifying the medical resources and capabilities needed to treat those potential at-risk medical conditions. IMPACT achieves this by performing hundreds of thousands of Monte Carlo simulations of missions to build aggregate pictures of medical risk. During an extended simulation modeling phase, IMPACT generated analytical results for medical risks, and the medical resources and capabilities to address those risks, for every segment of every crewed Artemis mission. This presentation will highlight the reliability, consistency and validity of IMPACT’s computational modeling techniques and will showcase the library of analytical outcomes generated for the Artemis missions. OVERVIEW During the early stages of IMPACT’s design, architecture and technical requirements collection, “scenarios” (use cases) - achievement goals required for acceptance testing, were identified by stakeholders. IMPACT successfully completed the scenario testing requirements and undertook an extensive operational run phase utilizing a wide range of input combinations with a goal of delivering a cohesive, trustworthy, reliable, vast, and diverse body of evidence. The intent of these modeling runs was to validate consistency in output, ensure solidity of executable operations and to streamline processes by identifying areas requiring efficiency improvements. Using the many missions of Artemis, IMPACT ran variations of operational runs to assess the output for acceptable, as well as unusual characteristics. This rigorous long-term “shakedown” analysis was implemented to help build a collective body of evidence to aid in securing a high level of confidence, reliability, and validity in the output, whether from the applicational components of IMPACT, or the entirety of the operational process. ANTICIPATED ANALYSIS AND CONCLUSION This presentation will discuss the various categories of input criteria; the comparisons in the application of these input criteria to various Artemis missions; the preparation and collection of the body of evidence, and reliability of the computational modeling techniques. This paper serves as an initial analytical overview of IMPACT’s probabilistic risk assessment (PRA) medical risk outputs covering Artemis missions and is not intended to be deemed the official medical response for the Artemis campaign.

Crew Composition↗

Scheduling Operations for Massive Heterogeneous Clusters

High-performance computing (HPC) programming has become increasingly difficult with the advent of hybrid supercomputers consisting of multicore CPUs and accelerator boards such as the GPU. Manual tuning of software to achieve high performance on this type of machine has been performed by programmers. This is needlessly difficult and prone to being invalidated by new hardware, new software, or changes in the underlying code. A system was developed for task-based representation of programs, which when coupled with a scheduler and runtime system, allows for many benefits, including higher performance and utilization of computational resources, easier programming and porting, and adaptations of code during runtime. The system consists of a method of representing computer algorithms as a series of data-dependent tasks. The series forms a graph, which can be scheduled for execution on many nodes of a supercomputer efficiently by a computer algorithm. The schedule is executed by a dispatch component, which is tailored to understand all of the hardware types that may be available within the system. The scheduler is informed by a cluster mapping tool, which generates a topology of available resources and their strengths and communication costs. Software is decoupled from its hardware, which aids in porting to future architectures. A computer algorithm schedules all operations, which for systems of high complexity (i.e., most NASA codes), cannot be performed optimally by a human. The system aids in reducing repetitive code, such as communication code, and aids in the reduction of redundant code across projects. It adds new features to code automatically, such as recovering from a lost node or the ability to modify the code while running. In this project, the innovators at the time of this reporting intend to develop two distinct technologies that build upon each other and both of which serve as building blocks for more efficient HPC usage. First is the scheduling and dynamic execution framework, and the second is scalable linear algebra libraries that are built directly on the former.

Humphrey, John↗

Adoption of Test Driven Development and Continuous Integration for the Development of the Trick Simulation Toolkit

This paper describes the adoption of a Test Driven Development approach and a Continuous Integration System in the development of the Trick Simulation Toolkit, a generic simulation development environment for creating high fidelity training and engineering simulations at the NASA/Johnson Space Center and many other NASA facilities. It describes what was learned and the significant benefits seen, such as fast, thorough, and clear test feedback every time code is checked-in to the code repository. It also describes a system that encourages development of code that is much more flexible, maintainable, and reliable. The Trick Simulation Toolkit development environment provides a common architecture for user-defined simulations. Trick builds executable simulations using user-supplied simulation-definition files (S_define) and user supplied "model code". For each Trick-based simulation, Trick automatically provides job scheduling, checkpoint / restore, data-recording, interactive variable manipulation (variable server), and an input-processor. Also included are tools for plotting recorded data and various other supporting tools and libraries. Trick is written in C/C++ and Java and supports both Linux and MacOSX. Prior to adopting this new development approach, Trick testing consisted primarily of running a few large simulations, with the hope that their complexity and scale would exercise most of Trick's code and expose any recently introduced bugs. Unsurprising, this approach yielded inconsistent results. It was obvious that a more systematic, thorough approach was required. After seeing examples of some Java-based projects that used the JUnit test framework, similar test frameworks for C and C++ were sought. Several were found, all clearly inspired by JUnit. Googletest, a freely available Open source testing framework, was selected as the most appropriate and capable. The new approach was implemented while rewriting the Trick memory management component, to eliminate a fundamental design flaw. The benefits became obvious almost immediately, not just in the correctness of the individual functions and classes but also in the correctness and flexibility being added to the overall design. Creating code to be testable, and testing as it was created resulted not only in better working code, but also in better-organized, flexible, and readable (i.e., articulate) code. This was, in essence the Test-driven development (TDD) methodology created by Kent Beck. Seeing the benefits of Test Driven Development, other Trick components were refactored to make them more testable and tests were designed and implemented for them.

Penn, John M.↗