sourceryinstitute / original-refactoring-of-rocket-science

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Rocket Science

__________               __           __          ^
\______   \ ____   ____ |  | __ _____/  |_       / \
 |       _//  _ \_/ ___\|  |/ // __ \   __\      | |
 |    |   (  <_> )  \___|    <\  ___/|  |       /| |\
 |____|_  /\____/ \___  >__|_ \\___  >__|      /_| |_\
        \/            \/     \/    \/            vvv
  _________       __                             ***
 /   _____/ ____ |__| ____   ____   ____  ____    *
 \_____  \_/ ___\|  |/ __ \ /    \ / ___\/ __ \   .
 /        \  \_  |  |  ___/|   |  \  \__|   __/
/_______  /\___/ |__|\____ |___|  /\___/ \____

This repository contains

  • A modern mini-application for simulating solid rocket motors using an object-oriented, functional programming style in Fortran 2018.
  • A legacy motor simulator demonstrating the solution of the same governing equations using a procedural programming style in Fortran 77/90.
  • A refurbished motor simulator demonstrating one modernization path for making the legacy solver object-oriented but without the radical redesign that affords the above purely functional programming style.

The simulator includes a capability for launching gnuplot to compare results of the three solvers.

Prerequisites

Compiler

This code was developed with the following compiler and parallel runtime library:

Earlier versions might work also.

The current version of rocket-science does not yet explicitly rely upon OpenCoarrays, but building with OpenCoarrays would facilitate parallelization for parametric studies.

Supported operating systems

The following are the systems on which this rocket-science is expected to build:

Earlier versions of each might work as well.

Optional

Download, Build, and Graph

git clone https://github.com/sourceryinstitute/rocket-science
mkdir -p rocket-science/build
cd rocket-science/build
cmake ..
make
ctest

and then graph the results with the following commands

cd tests/integration/rocket
 ../../../src/rocket-science --graph

which should produce plots much like the thrust history below. Press any button to bring up the next plot. If the run completed successfully, the modern, legacy and refurbished curves will be indistinguishable.

Thrust history

About

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:Fortran 94.5%Language:CMake 5.3%Language:Shell 0.1%