hyperstruct 0.0.10
Hyperstruct
License: MIT
Requires Python: <4.0,>=3.10

# Hyperstruct

[![PyPI](https://img.shields.io/pypi/v/hyperstruct.svg)][pypi_]
[![Status](https://img.shields.io/pypi/status/hyperstruct.svg)][status]
[![Python Version](https://img.shields.io/pypi/pyversions/hyperstruct)][python version]
[![License](https://img.shields.io/pypi/l/hyperstruct)][license]

[![Read the documentation at https://hyperstruct.readthedocs.io/](https://img.shields.io/readthedocs/hyperstruct/latest.svg?label=Read%20the%20Docs)][read the docs]
[![Tests](https://github.com/czarified/hyperstruct/workflows/Tests/badge.svg)][tests]
[![Codecov](https://codecov.io/gh/czarified/hyperstruct/branch/main/graph/badge.svg)][codecov]

[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)][pre-commit]
[![Black](https://img.shields.io/badge/code%20style-black-000000.svg)][black]

[pypi_]: https://pypi.org/project/hyperstruct/
[status]: https://pypi.org/project/hyperstruct/
[python version]: https://pypi.org/project/hyperstruct
[read the docs]: https://hyperstruct.readthedocs.io/
[tests]: https://github.com/czarified/hyperstruct/actions?workflow=Tests
[codecov]: https://app.codecov.io/gh/czarified/hyperstruct
[pre-commit]: https://github.com/pre-commit/pre-commit
[black]: https://github.com/psf/black

HyperStruct is a modern implementation of the SWEEP software originally
produced by Rockwell International in 1974. The Structural Weight Estimation
Program for Aircraft (SWEEP) was originally implemented in FORTRAN. The
source code for this program is no longer publicly available, but
the US Defence Technical Information Center has published all the original
documentation from Rockwell (which is extensive).

This project aims to meet the same objectives as SWEEP: devlop analytical
computer programs capable of predicting the weight of aircraft structural
components suitable for use during the conceptual phase of the aircraft
design cycle. It builds a very high level of fidelity in the weight
estimates, with flexiblity to a plethora of design variables. All of this
is predominantly derived from fundamental structural methods, or historically
predicated empirical formulas.

## Current Status

- 😬 Not much! This project requires a lot of boilerplate before any meaningful results or demos.
- A major goal for 2025 is a functional demo of at least the Fuselage methods! Stay tuned!
- Even without the aircraft or fuselage synthesis routines, the fuselage component classes can
  still be used to size Cover panels (without cutouts), and pressure bulkheads. This includes sizing
  Covers for local panel flutter and acoustic fatigue!

## Roadmap

- The majority of work at the moment revolves around the Fuselage synthesis. It is considered the
  second most complicated assembly for weight prediction, surpassed only by the Wing (there's more than 3
  volumes of documentation Rockwell dedicated to that guy!).
- After a functional Fuselage primary structure module, and perhaps started before in support of the synthesis methods,
  the Airloads module will be worked to derive external loading on the aircraft from basic mission requirements.
- From that point, it may be beneficial to focus on the "simpler" sizing methods such as secondary structure,
  or Landing Gear (things that are mostly empirical or straight forward for weight approximations).

### Current TODO List:

These should probably become their own Issues, but they will at least become their own PR's. It's easier to list them all here for now.

- [x] ForcedCrippling needs it's own class, so MinorFrames, Longerons, and Covers can utilize the same methods without repeating code.
- [x] MajorFrames need their own class for analysis methods.
- [ ] Fuselage class needs a cut method to generate geometry for analysis by averaging the geometry between defined sections.
- [ ] How does the Fuselage class define where all the different load points (and therefor MajorFrames) are?

## Installation

You can install _Hyperstruct_ via [pip] from [PyPI]:

```console
$ pip install hyperstruct
```

## Usage

Please see the [Command-line Reference] for details.

## Contributing

Contributions are very welcome.
To learn more, see the [Contributor Guide].

## License

Distributed under the terms of the [MIT license][license],
_Hyperstruct_ is free and open source software.

## Issues

If you encounter any problems,
please [file an issue] along with a detailed description.

## Credits

This project was originally generated from [@cjolowicz]'s [Hypermodern Python Cookiecutter] template.
Benjamin Crews is the creator and primary owner, with significant contributions from I. Maloney.
Creation of this project would not be possible without the thorough documentation from Rockwell
International (various authors).

[@cjolowicz]: https://github.com/cjolowicz
[pypi]: https://pypi.org/
[hypermodern python cookiecutter]: https://github.com/cjolowicz/cookiecutter-hypermodern-python
[file an issue]: https://github.com/czarified/hyperstruct/issues
[pip]: https://pip.pypa.io/

<!-- github-only -->

[license]: https://github.com/czarified/hyperstruct/blob/main/LICENSE
[contributor guide]: https://github.com/czarified/hyperstruct/blob/main/CONTRIBUTING.md
[command-line reference]: https://hyperstruct.readthedocs.io/en/latest/usage.html