Skip to content

Latest commit

 

History

History
82 lines (71 loc) · 4.19 KB

File metadata and controls

82 lines (71 loc) · 4.19 KB

Bringing cpropep source to the current decade

Disclaimer

All content is developed by the authors mentioned in the comments of the files.

Antoine Lefebvre <antoine.lefebvre@polymtl.ca>
Mark Pinese <pinese@cyberwizards.com.au>
Geoff O'Callaghan <geoff@starbiz.com.au>

Project Structure

rocketworkbench\
├───apps\                       # Applications and specific tool logic
│   ├───analyser\               # Post-test thrust-time data analysis
│   ├───cpropep\                # Main thermochemical equilibrium CLI (NASA RP-1311)
│   ├───gba\                    # Grain Burn Analysis (2D cross-section regression)
│   ├───grainanalysis\          # Star grain geometry generation tools
│   ├───lrd\                    # Liquid Rocket Design and dimensioning
│   ├───mcp\                    # Solid Motor Combustion Performance (internal ballistics)
│   ├───profiler\               # Mass, CG, and inertia profiling for rocket assemblies
│   ├───prop\                   # Interactive shell for thermodynamic properties
│   ├───rocket\                 # Propellant configuration parsing sample
│   ├───rockflight\             # Flight trajectory simulation (ballistics/6-DOF)
│   └───simulator\              # Advanced C++ extensible flight simulator
├───lib\                        # Core reusable libraries
│   ├───compat\                 # Portability layer (cross-platform support)
│   ├───convert\                # Unit conversion utilities
│   ├───cpropep\                # Equilibrium and performance engine (includes libthermo)
│   ├───gpcp\                   # General Purpose Configuration Parser (hierarchical)
│   └───num\                    # Numerical methods (linear algebra, ODE, root finding)
├───docs\                       # Documentation and examples
│   ├───apps\                   # Application-specific manuals and examples
│   ├───lib\                    # Library API documentation and logic
│   └───data\                   # Reference data and thermochemical property docs
├───data\                       # Default thermochemical and propellant databases
├───external\                   # Third-party dependencies (cgilib, syslog-win)
└───scripts\                    # Build and packaging automation (PowerShell)

Current compiled app list

  • cpropep / cpropep-web
  • prop
  • lrd / lrd-web
  • mcp / mcp-test
  • analyser
  • rockflight / viewer
  • profiler
  • gba
  • grainanalysis
  • rocket
  • simulator

Roadmap

  • Recover source code history from legacy CVS. See RECOVERY.md.
  • Restructure project folder to compile with modern CMake.
  • Set up Github workflow for automatic compilation and release for Windows, Mac OS, Linux.
  • Implement my own gpcp since original dependency can't be found. See lib/gpcp.
  • Document tools usage instruction (minimal).
  • Document libraries logic and development (minimal).
  • Move static docs and example files from source folders into docs/<app>/.
  • Move local app source files to local include subdir or promote to lib, except endpoint.
  • Check if libs should be downgraded to local includes.
  • Add cgilib and syslog dependencies.
  • Make cgilib compatible with Windows by renaming aux.c and aux.h to cgiaux.*.
  • Compile 'em all locally.
  • Compile 'em all with CI/CD.
  • Organize docs.
  • Test tools with their expected inputs or outputs, document results.
  • Create regression tests with input files and expected outputs for known examples.

Future

  • Fork only cpropep logic into dedicated repository.
  • Export cpropep libraries as bindings for Python, C++, Matlab or others needed, like pypropep for example into mpropep.
  • Compare results with other tools like nasa/cea.
  • Create regression tests based on examples from NASA RP-1311.