Search NASASearch

Engineering topics

Moran, Patrick J.

Publications and source records attributed to Moran, Patrick J..

Nozzle Plume/Shock Interaction Experimental and Computational Sonic Boom Analyses from the NASA Ames 9- by 7-Foot Supersonic Wind Tunnel

A wind tunnel test and a computational study were conducted to investigate the complex interactions between a supersonic nozzle plume and shock waves of differing strengths generated from various aft surfaces typical of supersonic aircraft. These analytically-defined aft surfaces were representative of horizontal tails of various sizes, and an aft deck. CFD simulations of many proposed model configurations allowed for assessments of the detailed flow interactions of components in close proximity to the nozzle, as well as assessments of the nozzle jet flow itself. The evaluation of the computational results for many candidate configurations guided the design of model components. The interactions of the waveforms from these surfaces with the jet exhaust plume can have significant adverse effects on the loudness of the sonic boom if the surfaces are not carefully integrated into an aircraft design. The greatest discrepancy in estimating sonic boom loudness for low-boom flight vehicles is currently in predicting the signatures from the aft part of an aircraft, including the interactions with the plume flow. The objectives of this test were to gain a better understanding of these interactions, and to provide a detailed experimental database from multiple sources for use as validation cases for CFD tool development. The subject test was run in the NASA Ames 9- by 7-Ft Supersonic Wind Tunnel in February 2016 at Mach numbers of 1.6 and 2.0, and was funded by the NASA Commercial Supersonics Technology (CST) Project. The nozzle flow was provided by high-pressure air (HPA) pumped through the model, and pressure signature data were acquired with the NASA 14-inch sonic boom pressure rail. The rail measured the locations of the shocks and expansions at various distances and off-track angles from the model. This enabled the impact of the nozzle plume/shock interactions on the near- and mid-field sonic boom pressure waveforms to be quantified. Schlieren images of the flow field around and behind the model were obtained with an RBOS (Retroreflective Background-Oriented Schlieren) technique to determine the origins of the shock and expansion waves, to identify the shape and boundaries of the plume, and to determine the changes in incoming and exiting waveforms within the plume. A total pressure rake was positioned closely behind the model nozzle in order to measure the total pressure profiles of the flow above, within, and below the nozzle exhaust. Model angles and positions in the tunnel were measured by photogrammetry using two cameras since the lack of a model force balance prevented the measurement of model deflections under load.Navier-Stokes computations using two different CFD codes were compared to the experimental sonic boom pressure signature data, and the rake total pressure data in the plume. A computational schlieren technique was used to compare the computed flow field with the RBOS images. The computational results were also used to complement the test data with flow field quantities that could not be measured, such as Mach number and pressure distributions to distinguish shock waves and expansion waves.

sonic boom

Developing an Open Source Option for NASA Software

We present arguments in favor of developing an Open Source option for NASA software; in particular we discuss how Open Source is compatible with NASA's mission. We compare and contrast several of the leading Open Source licenses, and propose one - the Mozilla license - for use by NASA. We also address some of the related issues for NASA with respect to Open Source. In particular, we discuss some of the elements in the External Release of NASA Software document (NPG 2210.1A) that will likely have to be changed in order to make Open Source a reality withm the agency.

Moran, Patrick J.

Accelerating Large Data Analysis By Exploiting Regularities

We present techniques for discovering and exploiting regularity in large curvilinear data sets. The data can be based on a single mesh or a mesh composed of multiple submeshes (also known as zones). Multi-zone data are typical to Computational Fluid Dynamics (CFD) simulations. Regularities include axis-aligned rectilinear and cylindrical meshes as well as cases where one zone is equivalent to a rigid-body transformation of another. Our algorithms can also discover rigid-body motion of meshes in time-series data. Next, we describe a data model where we can utilize the results from the discovery process in order to accelerate large data visualizations. Where possible, we replace general curvilinear zones with rectilinear or cylindrical zones. In rigid-body motion cases we replace a time-series of meshes with a transformed mesh object where a reference mesh is dynamically transformed based on a given time value in order to satisfy geometry requests, on demand. The data model enables us to make these substitutions and dynamic transformations transparently with respect to the visualization algorithms. We present results with large data sets where we combine our mesh replacement and transformation techniques with out-of-core paging in order to achieve significant speed-ups in analysis.

Moran, Patrick J.

Field Model: An Object-Oriented Data Model for Fields

We present an extensible, object-oriented data model designed for field data entitled Field Model (FM). FM objects can represent a wide variety of fields, including fields of arbitrary dimension and node type. FM can also handle time-series data. FM achieves generality through carefully selected topological primitives and through an implementation that leverages the potential of templated C++. FM supports fields where the nodes values are paired with any cell type. Thus FM can represent data where the field nodes are paired with the vertices ("vertex-centered" data), fields where the nodes are paired with the D-dimensional cells in R(sup D) (often called "cell-centered" data), as well as fields where nodes are paired with edges or other cell types. FM is designed to effectively handle very large data sets; in particular FM employs a demand-driven evaluation strategy that works especially well with large field data. Finally, the interfaces developed for FM have the potential to effectively abstract field data based on adaptive meshes. We present initial results with a triangular adaptive grid in R(sup 2) and discuss how the same design abstractions would work equally well with other adaptive-grid variations, including meshes in R(sup 3).

Moran, Patrick J.

The Design of a Templated C++ Small Vector Class for Numerical Computing

We describe the design and implementation of a templated C++ class for vectors. The vector class is templated both for vector length and vector component type; the vector length is fixed at template instantiation time. The vector implementation is such that for a vector of N components of type T, the total number of bytes required by the vector is equal to N * size of (T), where size of is the built-in C operator. The property of having a size no bigger than that required by the components themselves is key in many numerical computing applications, where one may allocate very large arrays of small, fixed-length vectors. In addition to the design trade-offs motivating our fixed-length vector design choice, we review some of the C++ template features essential to an efficient, succinct implementation. In particular, we highlight some of the standard C++ features, such as partial template specialization, that are not supported by all compilers currently. This report provides an inventory listing the relevant support currently provided by some key compilers, as well as test code one can use to verify compiler capabilities.

Moran, Patrick J.

Field Encapsulation Library The FEL 2.2 User Guide

This document describes version 2.2 of the Field Encapsulation Library (FEL), a library of mesh and field classes. FEL is a library for programmers - it is a "building block" enabling the rapid development of applications by a user. Since FEL is a library intended for code development, it is essential that enough technical detail be provided so that one can make full use of the code. Providing such detail requires some assumptions with respect to the reader's familiarity with the library implementation language, C++, particularly C++ with templates. We have done our best to make the explanations accessible to those who may not be completely C++ literate. Nevertheless, familiarity with the language will certainly help one's understanding of how and why things work the way they do. One consolation is that the level of understanding essential for using the library is significantly less than the level that one should have in order to modify or extend the library. One more remark on C++ templates: Templates have been a source of both joy and frustration for us. The frustration stems from the lack of mature or complete implementations that one has to work with. Template problems rear their ugly head particularly when porting. When porting C code, successfully compiling to a set of object files typically means that one is almost done. With templated C++ and the current state of the compilers and linkers, generating the object files is often only the beginning of the fun. On the other hand, templates are quite powerful. Used judiciously, templates enable more succinct designs and more efficient code. Templates also help with code maintenance. Designers can avoid creating objects that are the same in many respects, but not exactly the same. For example, FEL fields are templated by node type, thus the code for scalar fields and vector fields is shared. Furthermore, node type templating allows the library user to instantiate fields with data types not provided by the FEL authors. This type of flexibility would be difficult to offer without the support of the language. For users who may be having template-related problems, we offer the consolation that support for C++ templates is destined to improve with time. Efforts such as the Standard Template Library (STL) will inevitably drive vendors to provide more thorough, optimized tools for template code development. Furthermore, the benefits will become harder to resist for those who currently subscribe to the least-common-denominator "code it all in C" strategy. May FEL bring you both increased productivity and aesthetic satisfaction.

Moran, Patrick J.

Large Field Visualization with Demand-Driven Calculation

We present a system designed for the interactive definition and visualization of fields derived from large data sets: the Demand-Driven Visualizer (DDV). The system allows the user to write arbitrary expressions to define new fields, and then apply a variety of visualization techniques to the result. Expressions can include differential operators and numerous other built-in functions, ail of which are evaluated at specific field locations completely on demand. The payoff of following a demand-driven design philosophy throughout becomes particularly evident when working with large time-series data, where the costs of eager evaluation alternatives can be prohibitive.

Moran, Patrick J.

An Interpreted Language and System for the Visualization of Unstructured Meshes

We present an interpreted language and system supporting the visualization of unstructured meshes and the manipulation of shapes defined in terms of mesh subsets. The language features primitives inspired by geometric modeling, mathematical morphology and algebraic topology. The adaptation of the topology ideas to an interpreted environment, along with support for programming constructs such, as user function definition, provide a flexible system for analyzing a mesh and for calculating with shapes defined in terms of the mesh. We present results demonstrating some of the capabilities of the language, based on an implementation called the Shape Calculator, for tetrahedral meshes in R^3.

Moran, Patrick J.