Index by title

MTK CONOPS

Scenario Description

Mach 30 needs to do engineering analysis (aka math) on ballistic trajectories for a sub-orbital test vehicle (the rocket science equivalent to throwing a ball, very high).

Actors

Assumptions

Narrative

Isaac starts a new MTK project and writes a short intro covering why Mach 30 needs ballistic trajectory analysis. He then spends most of his time researching and writing down the following information in this document (aka he documents before they act):

This work is in Isaac's wheelhouse. He is able to knock it out quickly and easily.  Best of all this work is fun for him.  When he is done he easily shares this work with Ada since they are using a common platform for their contributions to the project.

Ada takes over to design and implement the Python class that will perform the calculations Isaac specified. As she develops her code in MTK, she references and expands the documentation, which is open in a panel next to her code for easy access.  She adds a section showing how different parts of her code compute the results of the equations and how they do so with the correct data and in the correct order (documenting as she acts).  Ada then writes up the test cases in a test suite and includes the results of those test cases in the documentation (a kind of documenting after she acts).  

Notice how the only documentation Ada is writing directly relates to her code and just explains how it works in relation to the material Isaac provided. Everything else Ada is doing involves writing a key Python library for Mach 30.  Even the test cases are easier to write because they are based on engineering research from Isaac. This is a productive and enjoyable contribution for Ada involving a minimum of fuss reviewing and writing documentation.

Isaac then takes a look at the updated documentation, instead of having to review each line of source code.  Isaac pays special attention to the implementation details ("hmm, yes that code excerpt does compute the value for equation 3") and the test results which could include tables and figures ("yup, that's the right plot"). If he has questions, he can get on a hangout to review things with Ada. When they are about done, Isaac writes up a short conclusion and abstract wrapping up the documentation (one last bit of documenting after they act). 

The jointly created documentation could be shared inside and outside Mach 30 for peer review and the Python class would be ready for use after addressing any comments from the peer review. Of course, those comments and updates would be handled in MTK as well. 


Manual

We have just changed implementation of MTK. Please stand by while we update our documentation to reflect these changes.

Creating MTK Documents

Formatting MTK Documents

Performing Math Operations in MTK


Media

Welcome to the media page for the MTK wiki. Place videos of demos, presentations, or important screenshots here for easy reference.

OHS 2015 Presentation


MTK Meeting Minutes

Sprint Planning Document (perpetually updated)

Sprint 1

Sprint 2

Sprint 3


Overview

The Need for MTK

As Mach 30 moves into more complex engineering projects, its development community will have a greater need to perform up front mathematical analysis to design, size, and predict the performance of those projects. Engineering analysis of this type should be well documented (both in principle and in order to follow Mach 30's commitment to its OSHW values). Documenting engineering analysis makes it clear why and how it works as well as providing verification of the analysis (in implementation and results).

This is where MTK comes in. MTK is a single environment for creating and documenting mathematical analyses using Python to code the analysis. As an added bonus, the use of Python allows Mach 30 to take the analyses created and documented in MTK and use them directly in CadQuery to drive our parametric CAD models when designing and making physical components.

MTK's Approach to Documentation

MTK's approach to integrating engineering analysis and documentation is based on three core principles of engineering documentation:

  1. Document before you act - In preparation for engineering analysis, engineers must find the correct mathematical models, identify the key equations from those models, and demonstrate why the selected models are the correct ones to use. This involves writing narratives and the equations covering these items and citing sources used to arrive at the selected equations. This phase should also identify test cases for later verification efforts. MTK's integrated documentation environment (with support for units, equations, calculations, and plots) makes it easy for users to capture this information in a format that supports adding additional information as the project progresses.
  2. Document as you act - During engineering analysis, modern engineers spend their time coding up the equations from selected mathematical models, preferably into reusable modules (functions, classes, etc). Rigorous verification of engineering analysis should provide commentary on the critical sections of this code, showing how specific lines of code implement the required equations or methodologies (such as solver algorithms). MTK's unified analysis and documentation environment is critical to documenting in this way as it provides for seamless transition between coding and documenting.
  3. Document after you act - Once the engineering analysis is complete, it needs to be verified. Verification should include the commentary mentioned above plus inspection of test case results. This commentary can include plots and tables showing those results and narrative commentary to prove to readers that the analysis is ready to be used. MTK's ability to run engineering analyses directly within its documentation environment is essential to this part of the documentation process.

Resources

Support Orgs

IPython

IPython is the calculation engine in MTK.

Included Packages

Jupyter Notebooks

Jupyter is the documentation creation user interface.

Python Tips and Tricks

Packages to Research


Setup Instructions

On Linux

These instructions were developed using a PC laptop running Ubuntu 14.04 64-bit.

  1. Download the install script from the MTK repository (rev 36 is the current working build)
  2. Open a terminal window and change to the directory where you downloaded the install script (e.g. ~/Downloads/)
  3. Add execute permissions to the install script
    chmod +x ./mtk_setup_script.sh
  4. Run the install script (you will be prompted for your password as the script uses sudo)
    ./mtk_setup_script.sh
  5. Be patient and answer yes to any prompts (the install script needs to download, install, and update a number of tools to fully configure MTK)

Navigation

Mathematics Tool Kit

Documentation

  1. Setup Instructions
  2. Manual (TBD)
  3. Pint Units Reference
    (raw source code)

Design Process

  1. Overview
  2. CONOPS
  3. Meeting Minutes/Notes
  4. Resources/Links

Mach 30's Mathematics Tool Kit

Mach 30 believes documentation is essential to creating high quality engineering analysis and that integrating documentation steps into the engineering process is the key to ensuring documentation is created and maintained. The Mathematics Tool Kit (MTK) is a unified engineering analysis and documentation tool created to address these needs.

MTK is built on existing open source tools including IPython, Jupyter (and several extensions), Pint, and Spyder (coming soon). The goal is to create a tool that makes it easy to switch between (and focus on) engineering analysis and documentation tasks, all in an environment optimized for engineers (e.g. built in support for units as first class mathematical constructs via Pint). A notional view of MTK is shown below (Spyder-windows-screenshot" by Joshdoe at en.wikipedia; "IPython-notebook" by Shishirdasika).

Visit the links on the right to get started with MTK or leave us a message on the Forums if you want to help us make MTK the premier choice for engineering analysis.