Engineering Papers⌕ Search

SEARCH · Engineering Papers

Results for “open source tools”

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 1,189 records · Page 66

White paper on light sterile neutrino searches and related phenomenology

This white paper provides a comprehensive review of our present understanding of experimental neutrino anomalies that remain unresolved, charting the progress achieved over the last decade at the experimental and phenomenological level, and sets the stage for future programmatic prospects in addressing those anomalies. It is purposed to serve as a guiding and motivational "encyclopedic" reference, with emphasis on needs and options for future exploration that may lead to the ultimate resolution of the anomalies. We see the main experimental, analysis, and theory-driven thrusts that will be essential to achieving this goal being: 1) Cover all anomaly sectors -- given the unresolved nature of all four canonical anomalies, it is imperative to support all pillars of a diverse experimental portfolio, source, reactor, decay-at-rest, decay-in-flight, and other methods/sources, to provide complementary probes of and increased precision for new physics explanations; 2) Pursue diverse signatures -- it is imperative that experiments make design and analysis choices that maximize sensitivity to as broad an array of these potential new physics signatures as possible; 3) Deepen theoretical engagement -- priority in the theory community should be placed on development of standard and beyond standard models relevant to all four short-baseline anomalies and the development of tools for efficient tests of these models with existing and future experimental datasets; 4) Openly share data -- Fluid communication between the experimental and theory communities will be required, which implies that both experimental data releases and theoretical calculations should be publicly available; and 5) Apply robust analysis techniques -- Appropriate statistical treatment is crucial to assess the compatibility of data sets within the context of any given model.

46 INSTRUMENTATION RELATED TO NUCLEAR SCIENCE AND ↗

CRCNS22 Learning Rules in the Hippocampus and their Mapping to Neuromorphic Systems (Final Technical Report)

Large scale biologically-realistic computational models are key to investigating the interplay between structure and function in nervous systems, thus paving the way to new clinical methods and neuro-inspired computing solutions. This project focuses on the hippocampus, in particular the CA3-CA1 regions, due to their role in associative learning and memory, pattern separation and completion, and spatial navigation. Investigations into the neuronal organization and learning rule(s) of this circuit can shed light into how declarative memories are formed, stored, recalled and forgotten and inform computational, experimental and clinical neuroscience work. Our project aims at developing a novel data-driven methodology supported by a broad heterogeneous base of neuroscience experimental knowledge and inspired from advances in computer science and engineering. Specifically, this work will benchmark existing and new learning rules within a full-scale spiking neural network simulation of the CA3-CA1 region. The model will be based on an open-source repository, called the Hippocampome, which contains neuronal morphologies, firing patterns, synapse probabilities, and most other required parameters for all known neuron types in the rodent hippocampal formation. The model will be first trained in a supervised fashion for associative memory tasks using backpropagation through time traditionally used in computer science, enhanced with a new technique called the surrogate gradient method. This optimization method will be used to obtain a global loss minimization, but it is not biologically inspired as it assumes the use of data not locally available to the synapses. However, we propose its use as a benchmarking tool, to compare the training performance of local biologically plausible and hardware-mappable learning rules at scale. New rules or combinations will be proposed and tested as needed, based on the obtained results. Progress in this area will also drive the development of novel hardware-mappable algorithms for continual lifelong learning and categorization of new events from few presented examples. This project goes beyond the existing state-of-the-art by looking at large scale realistic neuronal circuits as networks trainable via global optimization methods such as surrogate gradient descent. The objective function of the brain that supports learning is largely unknown, but it is likely that it operates through local learning rules. Studying network trajectories around local minima as proposed in this work represents a useful strategy for understanding whether a network is training by using a specific (set of) learning rule(s). Starting from a completely untrained network is a challenging test since it is difficult to determine how the learning rule affects the trajectory of the network. This interdisciplinary project will help understand what rule governs learning in these regions or if multiple learning rules are involved. The work will develop a robust methodology to measure if the network is converging to the target solution, oscillating around it, or diverging away.

59 BASIC BIOLOGICAL SCIENCES↗

Landscaper v1

Understanding the inner workings of machine learning models through their loss landscapes offers crucial insights into model properties, optimization dynamics, and generalizability. However, accessing these insights has traditionally required specialized mathematical expertise, limiting broader adoption. Landscaper is an open-source Python package designed to bridge this gap. Landscaper seamlessly integrates a suite of multi-dimensional loss landscape analyses with cutting-edge topological data analysis (TDA) methods. This powerful combination makes both fundamental loss landscape analysis and advanced TDA techniques accessible to the broader scientific ML community, without requiring deep pre-existing mathematical knowledge. Landscaper offers three key functionalities: * Construction: Builds detailed loss landscape representations through versatile low and high-dimensional sampling techniques. * Quantification: Applies advanced metrics, including a novel topological data analysis (TDA) based smoothness metric, enabling new perspectives on model behavior. * Visualization: Offers intuitive tools to visualize and interpret loss landscapes, providing actionable insights beyond traditional performance metrics.

Weber, Gunther [Lawrence Berkeley National Laborat↗

Validation and application of a multiphase CFD model for hydrodynamics, temperature field and RTD simulation in a pilot-scale biomass pyrolysis vapor phase upgrading reactor

Accurate prediction of transport phenomena is critical for VPU reactor design, optimization, and scale-up. The current study focused on the validation and application of a multiphase CFD model within an open-source code MFiX for hydrodynamics, temperature field, and residence time distribution (RTD) simulation in a non-reacting circulating fluidized bed riser for biomass pyrolysis vapor phase upgrading (VPU). First, an Eulerian-Eulerian approach three-dimensional CFD model was employed to simulate the pilot-scale VPU riser on the supercomputer Joule. Excellent quantitative agreement between experimental and simulated results was achieved for pressure drops and temperature field in a range of operating conditions. Then the validated multiphase CFD model was applied to predict gas and solid residence time distributions (RTDs) since prediction and analysis of RTD is an important tool to study the complex multiphase flow behavior and mixing inside chemical reactors. The predictions show that solid mean residence time is 3.5 times the gas residence time; the solid RTD is more sensitive to the process gas flow rate than the solids circulation rate.

09 BIOMASS FUELS↗

Elucidating the Mechanical Energy for Cyclization of a DNA Origami Tile

DNA origami has emerged as a versatile method to synthesize nanostructures with high precision. This bottom-up self-assembly approach can produce not only complex static architectures, but also dynamic reconfigurable structures with tunable properties. While DNA origami has been explored increasingly for diverse applications, such as biomedical and biophysical tools, related mechanics are also under active investigation. Here we studied the structural properties of DNA origami and investigated the energy needed to deform the DNA structures. We used a single-layer rectangular DNA origami tile as a model system and studied its cyclization process. This origami tile was designed with an inherent twist by placing crossovers every 16 base-pairs (bp), corresponding to a helical pitch of 10.67 bp/turn, which is slightly different from that of native B-form DNA (~10.5 bp/turn). We used molecular dynamics (MD) simulations based on a coarse-grained model on an open-source computational platform, oxDNA. We calculated the energies needed to overcome the initial curvature and induce mechanical deformation by applying linear spring forces. We found that the initial curvature may be overcome gradually during cyclization and a total of ~33.1 kcal/mol is required to complete the deformation. These results provide insights into the DNA origami mechanics and should be useful for diverse applications such as adaptive reconfiguration and energy absorption.

59 BASIC BIOLOGICAL SCIENCES↗

ScholarGuard

The ScholarGuard framework aims to address the gap in archiving and preservation efforts for scholarly artifacts beyond traditional research papers, such as software source code, datasets, presentation slides, workflows, protocols, videos, and more. It introduces a prototype system designed to automatically track researchers' outputs across various scholarly productivity portals on the open web, including platforms like GitHub, Slideshare, Figshare, and Wikipedia. The system detects the availability of new scholarly artifacts and applies modern web archiving technology to create a durable archival record, including high-level metadata for each artifact. This metadata is displayed within the system, linking both to the live version and the archived version of the resource, ensuring long-term accessibility and preservation of diverse research outputs. The software serves as a critical tool for preserving the broader spectrum of scholarly contributions, facilitating visibility, searchability, and long-term access to research artifacts beyond the traditional scope of journal publications.

Balakireva, Lyudmila↗

Physics demonstration and verification of MOOSE framework reactor module meshing capabilities

The recently developed Reactor module in the open-source MOOSE framework includes finite element meshing capabilities for analysis of common reactor geometries. Capabilities in the Reactor module have been employed to generate meshes for physics applications including a sodium-cooled fast reactor core analysis using Griffin, a fast reactor assembly thermal deformation analysis using MOOSE Tensor Mechanics, and a heat-pipe cooled microreactor coupled analysis using Griffin, Bison, and Sockeye. The process to build these meshes using MOOSE's meshing capabilities is described. Physics simulation results using MOOSE-based meshes have been verified to match results which leverage external meshing software such as Cubit or Argonne's Mesh Tools. MOOSE's Reactor module provides significant advantages compared to the use of external meshing tools when analyzing Cartesian and hexagonal reactor lattices using MOOSE-based applications: accessibility to the end user, low barrier to entry for new users, speed of mesh generation, volume preservation of meshed fuel pins, and simplification of analysis workflow when using MOOSE applications.

22 GENERAL STUDIES OF NUCLEAR REACTORS↗

PandExo: A Community Tool for Transiting Exoplanet Science with JWST and HST

As we approach the James Webb Space Telescope (JWST) era, several studies have emerged that aim to (1) characterize how the instruments will perform and (2) determine what atmospheric spectral features could theoretically be detected using transmission and emission spectroscopy. To some degree, all these studies have relied on modeling of JWST's theoretical instrument noise. With under two years left until launch, it is imperative that the exoplanet community begins to digest and integrate these studies into their observing plans, as well as think about how to leverage the Hubble Space Telescope (HST) to optimize JWST observations. To encourage this and to allow all members of the community access to JWST & HST noise simulations, we present here an open-source Python package and online interface for creating observation simulations of all observatory-supported timeseries spectroscopy modes. This noise simulator, called PandExo, relies on some aspects of Space Telescope Science Institute's Exposure Time Calculator, Pandeia. We describe PandExo and the formalism for computing noise sources for JWST. Then we benchmark PandExoʼs performance against each instrument team's independently written noise simulator for JWST, and previous observations for HST. We find that PandExo is within 10% agreement for HST/WFC3 and for all JWST instruments.

Batalha, Natasha E.↗

Using XR for Improving Scientific Discovery With Numerical Weather Models

Earth science (ES) digital twins will help us understand the complex interactions and interrelationships that make up our Earth system and the impacts of earth science phenomena on it. Our work addresses two underdeveloped areas in current ES digital twin work: improving the understanding and interaction with ES model outputs by using Virtual and Mixed Reality (XR) tools and improving the non-intuitive mapping of continuous ES natural phenomena to gridded reference frames in current numerical models. Traditionally, scientists working on ES view and analyze the results of calculated or measured observables with static 1-dimensional (1D), 2D or 3D plots displayed on flat computer screens or paper. Using such limited mediums, it can be very difficult to identify, track and understand the evolution of key features due to poor viewing angles and the nature of flat computer screens. In addition, numerical models, such as the NASA Goddard Earth Observing System (GEOS) ES model, are almost exclusively formulated, visualized and analyzed in an Eulerian reference frame with fixed grid points in space and time. However, ES phenomena such as convective clouds, hurricanes and wildfire smoke plumes are visualized and analyzed in a Lagrangian reference frame: therefore it is often difficult and unnatural to understand these phenomena in relation to each other, visualized either in an Eulerian or Lagrangian context. In 3D visualizations, data generally takes one of three forms: gridded (e.g., voxelized) data, where space is divided into regions; point clouds, where data is represented as a set of points; and meshes, where objects are rendered as surfaces composed of small polygons (usually triangles). A gridded, Eulerian reference frame has been the default representation for the 2D visual analysis of atmospheric data in part because the numerical methods used to generate atmospheric model data in the first place use a gridded approach, with equations defining the relationships between the physical variables in each of a grid's cells across successive timesteps. In our work, we are particularly interested in data from GEOS. Another reason why gridded representations tend to be used for visualizing data from such models is because trajectories are difficult to interpret from representations on 2D surfaces, due to line-of-sight ambiguity. Instead of a fixed grid from GEOS, we embed a trajectory model to simulate particles' movement throughout a GEOS run. We then ingest these particle trajectories as animated point clouds with a NASA open source XR toolkit, the Mixed Reality Exploration Toolkit (MRET), and merge GEOS data with ES phenomena data onto one combined visualization that the user can intuitively interact with. Efficient rendering of arbitrarily large point clouds is an ongoing challenge being addressed by the computer science community, with the GPU-based optimizations and efficient GPU memory utilization a common theme of recent advances, especially for XR, where sustained high frame rate is mandatory to save the user from suffering due to simulation sickness. In this work, we describe and evaluate our progress in choosing and implementing appropriate methods for rendering arbitrarily large point clouds within MRET for XR. While tracking the XR headset enables the immersion of a user within a 3D scene of a data visualization, tracking of XR handheld controllers or user’s hands enables us to implement intuitive user interactions with the visualized datasets. Conventional tools require a user working with an ES visualization to conduct many interactions to commit their intended selections or manipulations with a visualized dataset; for example to specify a set of points in 3D space. Doing so in a 2D flat screen interface has traditionally required specifying a set of points in three distinct 2D coordinate systems (XY, XZ, and YZ), which is cumbersome. In other scientific domains, it has been shown that specifying or selecting a location or volume in XR using handheld controllers or tracked hands allows for greater speed and accuracy. We anticipate the same will hold true for atmospheric data, and we will share initial results of measuring the utility of such an interface. Notably, as the data being visualized is generated by GEOS as a prediction based on initial conditions, an intended application of our tool is to serve as part of an iterative feedback loop. Through XR, a scientist will review and manipulate a GEOS model run, modifying the conditions as needed to do subsequent runs of GEOS. Thereby, XR-based improvements to speed and accuracy of 3D tagging of points minimizes the effort required by both the scientist and the computer cluster conducting the necessary calculations.

Thomas Grubb↗

Enhanced PDV waveform search and analysis method using parallel circular-convolution / cross-correlation for improved dynamic surface velocity extraction [Poster]

Previous work on exhaustive search methodologies for extracting best-match parameters pertaining to dynamic surface quantities from PDV was done by cross-correlating synthetically generated PDV waveforms with observed counterparts using the circular-convolution theorem. This work was further developed into an open-source PDV analysis toolkit called CCPDVANALYSIS which expands upon and enhances the previously tested methods by parallelizing serial algorithmic components and incorporating a comprehensive script library for different flavors of instantaneous frequency functions utilized in generating synthetic PDV waveforms. Results of these enhancements have been shown to markedly decrease execution times of exhaustive search and extraction algorithms and produce improved velocity recoveries for low-velocity and dynamically varying velocity signals. The CCPDVANALYSIS script library demonstrates an advanced method for extracting velocities from low-velocity and non-constant velocity signals further extending and improving the methods beyond capabilities of traditional frequency domain tools.

97 MATHEMATICS AND COMPUTING↗

Wind Loading on CSP Collectors

The project significantly enhanced the community's understanding of the fundamental physics drivers underlying the wind-loading experienced by concentrating solar power (CSP) collector structures (i.e., parabolic troughs and heliostats) as well as their support structures. This project had two overarching objectives: (1) detailed measurements to characterize the prevailing wind conditions and resulting operational loads on collector structures, and (2) development and validation of a computationally efficient, high-fidelity modeling tool capable of predicting wind-loading in deep-array installations. Over three years, we conducted comprehensive at-scale field measurements of the atmospheric turbulent wind conditions, and the resulting wind loads on parabolic troughs and heliostats. Two at-scale measurement campaigns yielded first-of-its-kind, high-resolution, long-term datasets that are used to characterize the complex flow field and wind loading on parabolic-troughs and heliostats in operational power plants. The high-resolution measurements collected during these campaigns were used to validate the high-fidelity computational models developed at NREL. These open-source computationally efficient models were shown to be accurate in predicting wind-driven loads on collectors without the need for a large supercomputer.

14 SOLAR ENERGY↗

DigitalHuman (DH): An Integrative Mathematical Model ofHuman Physiology

Mathematical models and simulation are important tools in discovering the key causal relationships governing physiological processes and improving medical intervention when physiological complexity is a central issue. We have developed a model of integrative human physiology called DigitalHuman (DH) consisting of -5000 variables modeling human physiology describing cardiovascular, renal, respiratory, endocrine, neural and metabolic physiology. Users can view time-dependent solutions and interactively introduce perturbations by altering numerical parameters to investigate new hypotheses. The variables, parameters and quantitative relationships as well as all other model details are described in XML text files. All aspects of the model, including the mathematical equations describing the physiological processes are written in XML open source, text-readable files. Model structure is based upon empirical data of physiological responses documented within the peer-reviewed literature. The model can be used to understand proposed physiological mechanisms and physiological interactions that may not be otherwise intUitively evident. Some of the current uses of this model include the analyses of renal control of blood pressure, the central role of the liver in creating and maintaining insulin resistance, and the mechanisms causing orthostatic hypotension in astronauts. Additionally the open source aspect of the modeling environment allows any investigator to add detailed descriptions of human physiology to test new concepts. The model accurately predicts both qualitative and more importantly quantitative changes in clinically and experimentally observed responses. DigitalHuman provides scientists a modeling environment to understand the complex interactions of integrative physiology. This research was supported by.NIH HL 51971, NSF EPSCoR, and NASA

Hester, Robert L.↗

Space Telecommunications Radio System (STRS) Compliance Testing

The Space Telecommunications Radio System (STRS) defines an open architecture for software defined radios. This document describes the testing methodology to aid in determining the degree of compliance to the STRS architecture. Non-compliances are reported to the software and hardware developers as well as the NASA project manager so that any non-compliances may be fixed or waivers issued. Since the software developers may be divided into those that provide the operating environment including the operating system and STRS infrastructure (OE) and those that supply the waveform applications, the tests are divided accordingly. The static tests are also divided by the availability of an automated tool that determines whether the source code and configuration files contain the appropriate items. Thus, there are six separate step-by-step test procedures described as well as the corresponding requirements that they test. The six types of STRS compliance tests are: STRS application automated testing, STRS infrastructure automated testing, STRS infrastructure testing by compiling WFCCN with the infrastructure, STRS configuration file testing, STRS application manual code testing, and STRS infrastructure manual code testing. Examples of the input and output of the scripts are shown in the appendices as well as more specific information about what to configure and test in WFCCN for non-compliance. In addition, each STRS requirement is listed and the type of testing briefly described. Attached is also a set of guidelines on what to look for in addition to the requirements to aid in the document review process.

Handler, Louis M.↗

“Frameworks, Algorithms and Scalable Technologies for Mathematics (FASTMath) SciDAC Institute” (Final Technical Report)

SMU personnel formed a portion of the overall “Time Integration” team within the FASTMath SciDAC-5 Institute, and we interacted very closely with team members from collaborating institutions. The major goals of our team within the FASTMath institute may be categorized into two groups: the development of advanced and application-aware time integration methods and software, and close interactions with DOE application scientists to facilitate their use of these new methods and software. The two goals are intimately linked, since our research and development of novel tools is informed by the needs of our application partners, who in turn benefit from subsequent mathematical and software advances. While the SMU personnel collaborated with the rest of the Time Integration FASTMath team on most of our shared deliverables within the larger FASTMath institute, SMU personnel primarily contributed to the following subset of those goals: ● expanding capabilities for higher-order and solve-decoupled multirate methods, ● enhancing support for temporal adaptivity within multirate methods, and ● adding structure-aware time integration methods. Each of these goals focused both on intellectual contributions through journal articles or research presentations, and on enhancements to the open-source SUNDIALS library of time integrators and nonlinear solvers, of which the SMU PI Reynolds is a core developer.

97 MATHEMATICS AND COMPUTING↗

A review of computational methods for studying oscillating water columns – the Navier-Stokes based equation approach

This review evaluates the state-of-the-practice numerical tools used to predict the performance of Oscillating Water Column (OWC). The OWC is a widely studied Wave Energy Converter that provides a reliable form of renewable form of electricity that can potentially meet global energy needs. However, the fluid-flow phenomena affecting its hydrodynamic performance are not fully understood. While there has been the successful full-scale deployment of OWCs, various computational methods are being explored to optimize this technology. Potential flow theory is commonly used to evaluate the efficiency of OWCs; however, this assumption tends to over-predict the hydrodynamic performance. Recently, numerical studies using a diverse set of commercial, open-source, or in-house Computational Fluid Dynamics (CFD) using Reynolds Averaged Navier Stokes (RANS) and Large-Eddy Simulation codes show a better comparison to available experimental results but are computationally expensive. ANSYS Fluent was found to be the most widely used CFD code applied to the study of the OWCs, with a high degree of accuracy in terms of experimental validation of numerical results.

16 TIDAL AND WAVE POWER↗

Renewable Schiff-Base Ionic Liquids for Lignocellulosic Biomass Pretreatment

Growing interest in sustainable sources of chemicals and energy from renewable and reliable sources has stimulated the design and synthesis of renewable Schiff-base (iminium) ionic liquids (ILs) to replace fossil-derived ILs. In this study, we report on the synthesis of three unique iminium-acetate ILs from lignin-derived aldehyde for a sustainable “future” lignocellulosic biorefinery. The synthesized ILs contained only imines or imines along with amines in their structure; the ILs with only imines group exhibited better pretreatment efficacy, achieving >89% sugar release. Various analytical and computational tools were employed to understand the pretreatment efficacy of these ILs. This is the first study to demonstrate the ease of synthesis of these renewable ILs, and therefore, opens the door for a new class of “Schiff-base ILs” for further investigation that could also be designed to be task specific.

37 INORGANIC, ORGANIC, PHYSICAL, AND ANALYTICAL CH↗

Best practices in software development for robust and reproducible geoscientific models based on insights from the Global Carbon Budget's dynamic vegetation models

Computational models play an increasingly vital role in scientific research by enabling the numerical simulation of complex processes. Such models are also fundamental in geosciences. For instance, they offer critical insights into the impacts of global change on the Earth system today and in the future. Beyond their value as research tools, models are also software products and should therefore adhere to certain established software engineering standards. However, scientists are rarely trained as software developers, which can lead to potential deficiencies in software quality like unreadable, inefficient, or erroneous code. The complexity of models, coupled with their integration into broader workflows, also often makes it challenging to reproduce results, evaluate processes, and build upon them. In this paper, we review the state and current practices of the development processes of the state-of-the-art land surface models used by the Global Carbon Budget. We combine the experience of modelers from the respective research groups with the expertise of software engineers from tech companies to outline key principles and tools for improving software quality in research. We explore four main areas: (1) model testing and validation, (2) scientific, technical, and user documentation, (3) version control, continuous integration, and code review, and (4) the portability and reproducibility of workflows. Our review reveals that while modeling communities are incorporating many best practices, significant room for improvement remains in areas such as automated testing, automated documentation, and reproducibility. Therefore, we here identify and promote essential software engineering practices, including numerous examples of practices from within the community that can serve as guidelines for other models and could help streamline processes across the entire community. We conclude with an open-source example implementation of these principles, demonstrating portable and reproducible data flows, a continuous integration setup, and web-based visualizations. This example may serve as a practical resource for model developers, users, and all scientists engaged in scientific programming.

Gregor, Konstantin [Technical Univ. of Munich (Ger↗

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.↗