Coder Social home page Coder Social logo

steam's Introduction

Overview

"THIS REPO IS CURRENTLY NOT BEING UPDATED"

Welcome to the main code repository for the Software Toolkit for Engineering and Aeroscience Models (STEAM). STEAM development began at NASA's Johnson Space Center (JSC) within the Applied Aerosciences and Computational Fluid Dynamics Branch (EG3) with the goal of providing a toolbox enabling interpolation and model application in aerodynamic and aerothermodynamic databases of Computational Fluid Dynamics (CFD) solutions across varying geometry and flight spaces.

Using STEAM, one can assemble databases comprising CFD solutions from multiple solvers on differing grids. Geometric manipulation and interpolation tools are included to assimilate solutions onto common meshes and perform simple mesh modification. Flight-space interpolation can be done using user-defined independent variables and subsequently applied models need not share the same independent parameters. This flexibility allows a user to define the most useful databases and models for the problem at hand, rather than being constrained by the software available to them.

Operation in JSC's Flight Sciences Laboratory

STEAM was initially, and still primarily is, developed in the computing environment of JSC's Flight Sciences Laboratory (FSL). Included in this repository, therefore, are some files, scripts, and bits of documentation that may not be valuable to others operating outside of the FSL. Despite STEAM's inextricable link to the FSL, it runs on systems outside of the FSL and is used in environments ranging from personal laptops to large High Performance Computing (HPC) clusters.

Git Branching Guidelines

Since its inception, STEAM has operated with a git branching strategy based on this blog post. Please read at least the sections on the main branches and feature branches and be sure to adhere to the guidance provided.

The main branches are master and develop. Feature branches are traditionally prefixed by your last name in a directory-like structure. An example of several feature branches might be:

  • schwing/feature_1
  • schwing/bugfix_1
  • schwing/feature_2

Remember to merge features back to develop. Merges back to master should be done for releases. Further, almost no one should be merging into master ever. If you're not certain whether or not you're one of the ordained few who can merge into master, you're not. Any code that is checked into develop should pass the regression/V&V suite.

STEAM's Python Environment

STEAM currently runs in an environment leveraging Python 3.10. The development team has traditionally maintained the necessary Python environment using Anaconda, though it isn't strictly necessary for one with experience managing Python environments. For those using Anaconda, an environment py310.yml file is provided in the repository to expedite the process of creating the proper environment.

Users in the FSL can further leverage the FSL's module system with the provided STEAM module for easily establishing the proper versions of Anaconda, MPI, and other executables.

Getting Started

The Python Environment

After cloning this repository, one must build an appropriate Python 3.10 environment. The implicit assumption in this and all documentation is that one will use some version of Anaconda to manage their environments. Once conda is installed and in your path, use the provided py310.yml file to build your environment.

$ cd /PATH/TO/STEAM/utils
$ conda env create -f py310.yml

This will create an environment called pysteam310. All STEAM code should be run with this environment (or a derivative of this environment) active. Further, in order to access STEAM code from any location on your file system, you should append the STEAM repository to your PYTHONPATH environment variable.

$ conda activate pysteam310
$ export PYTHONPATH="$PYTHONPATH:/PATH/TO/STEAM"

Running the Test Suite

Once in the correct environment and with the PYTHONPATH set, one should run the test suite.

$ cd /PATH/TO/STEAM/tests
$ ./run_all.sh

All tests should pass, though if you're reading this and that's not the case, I understand that you'll be frustrated and this sentence will provide little solace or assistance. Assuming that the tests do pass, you're now ready to begin using STEAM in your own code.

Building the Documentation

The documentation should help you to use STEAM's many capabilities. Build it in the docs directory.

$ cd /PATH/TO/STEAM/docs
$ make

This will assemble many HTML pages from the docstrings in the source code and place them in the build/html directory. To look at the documentation, open any page in your browser of choice.

$ firefox build/html/index.html

steam's People

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.