summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-04-11 08:02:47 +0000
committerCoprDistGit <infra@openeuler.org>2023-04-11 08:02:47 +0000
commit381f76ba2f6aa8a3dd5d00ba98f3c6b41621b161 (patch)
tree4d7e8d790ba883520c2fe7696c1a27c95e3a5242
parente46f6b7e11e36ca2f6927a3d6f6ed81731dcd39a (diff)
automatic import of python-aerosandbox
-rw-r--r--.gitignore1
-rw-r--r--python-aerosandbox.spec670
-rw-r--r--sources1
3 files changed, 672 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..f1d4d76 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/AeroSandbox-4.0.6.tar.gz
diff --git a/python-aerosandbox.spec b/python-aerosandbox.spec
new file mode 100644
index 0000000..32b2aff
--- /dev/null
+++ b/python-aerosandbox.spec
@@ -0,0 +1,670 @@
+%global _empty_manifest_terminate_build 0
+Name: python-AeroSandbox
+Version: 4.0.6
+Release: 1
+Summary: AeroSandbox is a Python package for design optimization of engineered systems such as aircraft.
+License: MIT License
+URL: https://peterdsharpe.github.io/AeroSandbox/
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/fa/df/7e23adac57cb649d8b019d4e82e14f2b24a204c4281bdc4b5406bc9c5719/AeroSandbox-4.0.6.tar.gz
+BuildArch: noarch
+
+Requires: python3-numpy
+Requires: python3-scipy
+Requires: python3-casadi
+Requires: python3-pandas
+Requires: python3-matplotlib
+Requires: python3-seaborn
+Requires: python3-tqdm
+Requires: python3-sortedcontainers
+Requires: python3-sphinx
+Requires: python3-furo
+Requires: python3-sphinx-autoapi
+Requires: python3-plotly
+Requires: python3-pyvista
+Requires: python3-ipyvtklink
+Requires: python3-trimesh
+Requires: python3-sympy
+Requires: python3-cadquery
+Requires: python3-pytest
+Requires: python3-nbval
+
+%description
+### Gallery
+Use AeroSandbox to design and optimize entire aircraft:
+<table>
+ <tr>
+ <td width="50%" valign="top">
+ <p align="center">
+ <a href="https://github.com/peterdsharpe/Feather-RC-Glider"><i>Feather</i> (an ultra-lightweight 1-meter-class RC motor glider)</a>
+ </p>
+ <img src="https://raw.githubusercontent.com/peterdsharpe/Feather-RC-Glider/master/CAD/feather.png" alt="Feather first page">
+ </td>
+ <td width="50%" valign="top">
+ <p align="center">
+ <a href="https://github.com/peterdsharpe/solar-seaplane-preliminary-sizing"><i>SEAWAY-Mini</i> (a solar-electric, 13' wingspan seaplane)</a>
+ </p>
+ <img src="https://raw.githubusercontent.com/peterdsharpe/solar-seaplane-preliminary-sizing/main/CAD/renders/seaway_mini_packet_Page_1.png" alt="Seaway-Mini first page">
+ </td>
+ </tr>
+</table>
+Use AeroSandbox to support real-world aircraft development programs, all the way from your very first sketch to your first-flight and even beyond:
+<table>
+ <tr>
+ <td width="50%" valign="top">
+ <p align="center">
+ <a href="https://github.com/peterdsharpe/DawnDesignTool">Initial concept sketches + sizing of <i>Dawn</i> (a solar-electric airplane for climate science research) in AeroSandbox, Spring 2020</a>
+ </p>
+ <img src="./media/images/dawn1-first-sketch.png" alt="Dawn initial design">
+ </td>
+ <td width="50%" valign="top">
+ <p align="center">
+ <a href="https://youtu.be/CyTzx9UCvyo"><i>Dawn</i> (later renamed <i>SACOS</i>) in first flight, Fall 2022</a>
+ </p>
+ <p align="center"><a href="https://www.electra.aero/news/sacos-first-flight">(Thanks to so, so many wonderful people!)</a></p>
+ <img src="./media/images/SACOS%20First%20Flight%20Zoomed.jpg" alt="SACOS first flight">
+ </td>
+ </tr>
+</table>
+Use AeroSandbox to explore counterintuitive, complicated design tradeoffs, all at the earliest stages of conceptual design *where these insights make the most difference*:
+<table>
+ <tr>
+ <td width="50%" valign="top">
+ <p align="center">
+ <a href="https://github.com/peterdsharpe/DawnDesignTool">Exploring how big a solar airplane needs to be to fly, as a function of seasonality and latitude</a>
+ </p>
+ <img src="https://github.com/peterdsharpe/DawnDesignTool/raw/master/docs/30kg_payload.svg" alt="Dawn seasonality latitude tradespace">
+ </td>
+ <td width="50%" valign="top">
+ <p align="center">
+ <a href="https://www.popularmechanics.com/military/aviation/a13938789/mit-developing-mach-08-rocket-drone-for-the-air-force/">Exploring how the mission range of <i>Firefly</i>, a Mach 0.8 rocket drone, changes if we add an altitude limit, simultaneously optimizing aircraft design and trajectories</a>
+ </p>
+ <img src="./media/images/firefly-range-ceiling-trade.png" alt="Firefly range ceiling trade">
+ </td>
+ </tr>
+</table>
+Use AeroSandbox as a pure aerodynamics toolkit:
+<table>
+ <tr>
+ <td width="50%" valign="top">
+ <p align="center">
+ VLM simulation of a glider, aileron deflections of +-30°
+ </p>
+ <img src="./media/images/vlm3_with_control_surfaces.png" alt="VLM simulation">
+ </td>
+ <td width="50%" valign="top">
+ <p align="center">
+ Aerodynamic shape optimization of a wing planform, using an arbitrary objective and constraints
+ </p>
+ <img src="./media/images/wing_optimization.png" alt="Wing optimization">
+ </td>
+ </tr>
+</table>
+Among many other discplines:
+<table>
+ <tr>
+ <td width="50%" valign="top">
+ <p align="center">
+ Structural optimization of a composite tube spar
+ </p>
+ <img src="./media/images/beam-optimization.png" alt="Beam optimization">
+ </td>
+ <td width="50%" valign="top">
+ <p align="center">
+ Electric motor analysis for propeller matching
+ </p>
+ <img src="./media/images/motor_perf.png" alt="Motor performance">
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p align="center" valign="top">
+ <a href="https://github.com/peterdsharpe/transport-aircraft">Tools to analyze unconventional propulsion (e.g., LH2)</a>
+ </p>
+ <img src="https://github.com/peterdsharpe/transport-aircraft/raw/master/figures/three_view.png" alt="LH2 airplane three-view">
+ </td>
+ <td>
+ <p align="center" valign="top">
+ Detailed weights estimation for aircraft ranging from micro-UAVs to airliners
+ </p>
+ <img src="https://github.com/peterdsharpe/transport-aircraft/raw/master/figures/mass_budget.png" alt="Mass Budget">
+ </td>
+</tr>
+</table>
+Easily interface AeroSandbox with all your favorite tools:
+<table>
+ <tr>
+ <td width="33%" valign="top">
+ <p align="center">
+ Other conceptual design tools (AVL, XFLR5, XFoil, ASWING, MSES, etc.)
+ </p>
+ <img src="./media/images/airfoil_contours.png" alt="XFoil">
+ </td>
+ <td width="33%" valign="top">
+ <p align="center">
+ CAD tools via STEP export (SolidWorks, Fusion 360, etc.)
+ </p>
+ <p align="center">
+ (STL, OBJ, etc. supported too)
+ </p>
+ <img src="https://github.com/peterdsharpe/solar-seaplane-preliminary-sizing/raw/main/CAD/renders/raytrace-lowres.jpg" alt="CAD">
+ </td>
+ <td width="33%" valign="top">
+ <p align="center">
+ User-provided models + code (for custom aerodynamics, structures, propulsion, or anything else - e.g., for optimizing flight through a probabilistic wind field, shown below)
+ </p>
+ <img src="./media/images/wind_speeds_model.png" alt="Wind speed">
+ </td>
+ </tr>
+</table>
+Or, throw all the airplane-design-specific code out entirely, and use AeroSandbox purely as an optimization solver or as a solver for nonlinear systems of equations (or ODEs, or PDEs):
+<table>
+ <tr>
+ <td width="50%" valign="top">
+ <p align="center">
+ <a href="https://github.com/peterdsharpe/AeroSandbox/blob/develop/tutorial/01%20-%20Optimization%20and%20Math/01%20-%202D%20Rosenbrock.ipynb">Optimize the 2D Rosenbrock function</a>
+ </p>
+ <img src="./media/images/optimization.png" alt="Optimization">
+ </td>
+ <td width="50%" valign="top">
+ <p align="center">
+ <a href="https://github.com/peterdsharpe/AeroSandbox/tree/develop/tutorial/03%20-%20Trajectory%20Optimization%20and%20Optimal%20Control/01%20-%20Solving%20ODEs%20with%20AeroSandbox">Specify the Falkner Skan ODE (nonlinear, 3rd-order BVP) and let AeroSandbox automatically take care of the discretization, solution, and even inverse solving.</a>
+ </p>
+ <img src="./media/images/falkner-skan.png" alt="FS ODE">
+ </td>
+</tr>
+</table>
+And much, much more. Best of all, combine these tools arbitrarily without any loss in optimization speed and without any tedious derivative math, all thanks to AeroSandbox's end-to-end automatic-differentiability.
+## Getting Started
+### Installation
+In short:
+* `pip install aerosandbox[full]` for a complete install.
+* `pip install aerosandbox` for a lightweight (headless) installation with minimal dependencies. All optimization, numerics, and physics models are included, but optional visualization dependencies are skipped.
+For more installation details (e.g., if you're new to Python), [see here](./INSTALLATION.md).
+### Tutorials, Examples, and Documentation
+To get started, [check out the tutorials folder here](./tutorial/)! All tutorials are viewable in-browser, or you can open them as Jupyter notebooks by cloning this repository.
+For a more detailed and theory-heavy introduction to AeroSandbox, [please see this thesis](./tutorial/sharpe-pds-sm-AeroAstro-2021-thesis.pdf).
+For a yet-more-detailed developer-level description of AeroSandbox modules, [please see the developer README](aerosandbox/README.md).
+For fully-detailed API documentation, see [the documentation website](https://aerosandbox.readthedocs.io/en/master/).
+You can print documentation and examples for any AeroSandbox object by using the built-in `help()` function (e.g., `help(asb.Airplane)`). AeroSandbox code is also documented *extensively* in the source and contains hundreds of unit test examples, so examining the source code can also be useful.
+### Usage Details
+One final point to note: as we're all sensible and civilized here, **all inputs and outputs to AeroSandbox are expressed in base SI units, or derived units thereof** (e.g, m, N, kg, m/s, J, Pa).
+The only exception to this rule is when units are explicitly noted via variable name suffix. For example:
+* `battery_capacity` -> Joules
+* `battery_capacity_watt_hours` -> Watt-hours.
+All angles are in radians, except for α and β which are in degrees due to long-standing aerospace convention. (In any case, units are marked on all function docstrings.)
+If you wish to use other units, consider using [`aerosandbox.tools.units`](./aerosandbox/tools/units.py) to convert easily.
+## Project Details
+### Contributing
+Please feel free to join the development of AeroSandbox - contributions are always so welcome! If you have a change you'd like to make, the easiest way to do that is by submitting a pull request.
+The text file [`CONTRIBUTING.md`](./CONTRIBUTING.md) has more details for developers and power users.
+If you've already made several additions and would like to be involved in a more long-term capacity, please message me!
+Contact information can be found next to my name near the top of this README.
+### Donating
+If you like this software, please consider donating to support development [via PayPal](https://paypal.me/peterdsharpe)
+or [GitHub Sponsors](https://github.com/sponsors/peterdsharpe/)! Proceeds will go towards more coffee for the grad students.
+### Bugs
+Please, please report all bugs by [creating a new issue](https://github.com/peterdsharpe/AeroSandbox/issues)!
+### Versioning
+AeroSandbox loosely uses [semantic versioning](https://semver.org/), which should give you an idea of whether or not you can probably expect backward-compatibility and/or new features from any given update.
+For more details, see the [changelog](./CHANGELOG.md).
+### Citation & Commercial Use
+If you find AeroSandbox useful in a research publication, please cite it using the following BibTeX snippet:
+```bibtex
+@mastersthesis{aerosandbox,
+ title = {AeroSandbox: A Differentiable Framework for Aircraft Design Optimization},
+ author = {Sharpe, Peter D.},
+ school = {Massachusetts Institute of Technology},
+ year = {2021}
+}
+```
+As the MIT License applies, use AeroSandbox for anything you want (attribution appreciated, but not required).
+Commercial users: I'm more than happy to discuss consulting work for active AeroSandbox support if this package proves helpful - use the email address in the header of this README to get in touch.
+### License
+[MIT License, terms here](LICENSE.txt). Basically: use AeroSandbox for anything you want; no warranty express or implied.
+## Stargazers over time
+[![Stargazers over time](https://starchart.cc/peterdsharpe/AeroSandbox.svg)](https://starchart.cc/peterdsharpe/AeroSandbox)
+
+%package -n python3-AeroSandbox
+Summary: AeroSandbox is a Python package for design optimization of engineered systems such as aircraft.
+Provides: python-AeroSandbox
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-AeroSandbox
+### Gallery
+Use AeroSandbox to design and optimize entire aircraft:
+<table>
+ <tr>
+ <td width="50%" valign="top">
+ <p align="center">
+ <a href="https://github.com/peterdsharpe/Feather-RC-Glider"><i>Feather</i> (an ultra-lightweight 1-meter-class RC motor glider)</a>
+ </p>
+ <img src="https://raw.githubusercontent.com/peterdsharpe/Feather-RC-Glider/master/CAD/feather.png" alt="Feather first page">
+ </td>
+ <td width="50%" valign="top">
+ <p align="center">
+ <a href="https://github.com/peterdsharpe/solar-seaplane-preliminary-sizing"><i>SEAWAY-Mini</i> (a solar-electric, 13' wingspan seaplane)</a>
+ </p>
+ <img src="https://raw.githubusercontent.com/peterdsharpe/solar-seaplane-preliminary-sizing/main/CAD/renders/seaway_mini_packet_Page_1.png" alt="Seaway-Mini first page">
+ </td>
+ </tr>
+</table>
+Use AeroSandbox to support real-world aircraft development programs, all the way from your very first sketch to your first-flight and even beyond:
+<table>
+ <tr>
+ <td width="50%" valign="top">
+ <p align="center">
+ <a href="https://github.com/peterdsharpe/DawnDesignTool">Initial concept sketches + sizing of <i>Dawn</i> (a solar-electric airplane for climate science research) in AeroSandbox, Spring 2020</a>
+ </p>
+ <img src="./media/images/dawn1-first-sketch.png" alt="Dawn initial design">
+ </td>
+ <td width="50%" valign="top">
+ <p align="center">
+ <a href="https://youtu.be/CyTzx9UCvyo"><i>Dawn</i> (later renamed <i>SACOS</i>) in first flight, Fall 2022</a>
+ </p>
+ <p align="center"><a href="https://www.electra.aero/news/sacos-first-flight">(Thanks to so, so many wonderful people!)</a></p>
+ <img src="./media/images/SACOS%20First%20Flight%20Zoomed.jpg" alt="SACOS first flight">
+ </td>
+ </tr>
+</table>
+Use AeroSandbox to explore counterintuitive, complicated design tradeoffs, all at the earliest stages of conceptual design *where these insights make the most difference*:
+<table>
+ <tr>
+ <td width="50%" valign="top">
+ <p align="center">
+ <a href="https://github.com/peterdsharpe/DawnDesignTool">Exploring how big a solar airplane needs to be to fly, as a function of seasonality and latitude</a>
+ </p>
+ <img src="https://github.com/peterdsharpe/DawnDesignTool/raw/master/docs/30kg_payload.svg" alt="Dawn seasonality latitude tradespace">
+ </td>
+ <td width="50%" valign="top">
+ <p align="center">
+ <a href="https://www.popularmechanics.com/military/aviation/a13938789/mit-developing-mach-08-rocket-drone-for-the-air-force/">Exploring how the mission range of <i>Firefly</i>, a Mach 0.8 rocket drone, changes if we add an altitude limit, simultaneously optimizing aircraft design and trajectories</a>
+ </p>
+ <img src="./media/images/firefly-range-ceiling-trade.png" alt="Firefly range ceiling trade">
+ </td>
+ </tr>
+</table>
+Use AeroSandbox as a pure aerodynamics toolkit:
+<table>
+ <tr>
+ <td width="50%" valign="top">
+ <p align="center">
+ VLM simulation of a glider, aileron deflections of +-30°
+ </p>
+ <img src="./media/images/vlm3_with_control_surfaces.png" alt="VLM simulation">
+ </td>
+ <td width="50%" valign="top">
+ <p align="center">
+ Aerodynamic shape optimization of a wing planform, using an arbitrary objective and constraints
+ </p>
+ <img src="./media/images/wing_optimization.png" alt="Wing optimization">
+ </td>
+ </tr>
+</table>
+Among many other discplines:
+<table>
+ <tr>
+ <td width="50%" valign="top">
+ <p align="center">
+ Structural optimization of a composite tube spar
+ </p>
+ <img src="./media/images/beam-optimization.png" alt="Beam optimization">
+ </td>
+ <td width="50%" valign="top">
+ <p align="center">
+ Electric motor analysis for propeller matching
+ </p>
+ <img src="./media/images/motor_perf.png" alt="Motor performance">
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p align="center" valign="top">
+ <a href="https://github.com/peterdsharpe/transport-aircraft">Tools to analyze unconventional propulsion (e.g., LH2)</a>
+ </p>
+ <img src="https://github.com/peterdsharpe/transport-aircraft/raw/master/figures/three_view.png" alt="LH2 airplane three-view">
+ </td>
+ <td>
+ <p align="center" valign="top">
+ Detailed weights estimation for aircraft ranging from micro-UAVs to airliners
+ </p>
+ <img src="https://github.com/peterdsharpe/transport-aircraft/raw/master/figures/mass_budget.png" alt="Mass Budget">
+ </td>
+</tr>
+</table>
+Easily interface AeroSandbox with all your favorite tools:
+<table>
+ <tr>
+ <td width="33%" valign="top">
+ <p align="center">
+ Other conceptual design tools (AVL, XFLR5, XFoil, ASWING, MSES, etc.)
+ </p>
+ <img src="./media/images/airfoil_contours.png" alt="XFoil">
+ </td>
+ <td width="33%" valign="top">
+ <p align="center">
+ CAD tools via STEP export (SolidWorks, Fusion 360, etc.)
+ </p>
+ <p align="center">
+ (STL, OBJ, etc. supported too)
+ </p>
+ <img src="https://github.com/peterdsharpe/solar-seaplane-preliminary-sizing/raw/main/CAD/renders/raytrace-lowres.jpg" alt="CAD">
+ </td>
+ <td width="33%" valign="top">
+ <p align="center">
+ User-provided models + code (for custom aerodynamics, structures, propulsion, or anything else - e.g., for optimizing flight through a probabilistic wind field, shown below)
+ </p>
+ <img src="./media/images/wind_speeds_model.png" alt="Wind speed">
+ </td>
+ </tr>
+</table>
+Or, throw all the airplane-design-specific code out entirely, and use AeroSandbox purely as an optimization solver or as a solver for nonlinear systems of equations (or ODEs, or PDEs):
+<table>
+ <tr>
+ <td width="50%" valign="top">
+ <p align="center">
+ <a href="https://github.com/peterdsharpe/AeroSandbox/blob/develop/tutorial/01%20-%20Optimization%20and%20Math/01%20-%202D%20Rosenbrock.ipynb">Optimize the 2D Rosenbrock function</a>
+ </p>
+ <img src="./media/images/optimization.png" alt="Optimization">
+ </td>
+ <td width="50%" valign="top">
+ <p align="center">
+ <a href="https://github.com/peterdsharpe/AeroSandbox/tree/develop/tutorial/03%20-%20Trajectory%20Optimization%20and%20Optimal%20Control/01%20-%20Solving%20ODEs%20with%20AeroSandbox">Specify the Falkner Skan ODE (nonlinear, 3rd-order BVP) and let AeroSandbox automatically take care of the discretization, solution, and even inverse solving.</a>
+ </p>
+ <img src="./media/images/falkner-skan.png" alt="FS ODE">
+ </td>
+</tr>
+</table>
+And much, much more. Best of all, combine these tools arbitrarily without any loss in optimization speed and without any tedious derivative math, all thanks to AeroSandbox's end-to-end automatic-differentiability.
+## Getting Started
+### Installation
+In short:
+* `pip install aerosandbox[full]` for a complete install.
+* `pip install aerosandbox` for a lightweight (headless) installation with minimal dependencies. All optimization, numerics, and physics models are included, but optional visualization dependencies are skipped.
+For more installation details (e.g., if you're new to Python), [see here](./INSTALLATION.md).
+### Tutorials, Examples, and Documentation
+To get started, [check out the tutorials folder here](./tutorial/)! All tutorials are viewable in-browser, or you can open them as Jupyter notebooks by cloning this repository.
+For a more detailed and theory-heavy introduction to AeroSandbox, [please see this thesis](./tutorial/sharpe-pds-sm-AeroAstro-2021-thesis.pdf).
+For a yet-more-detailed developer-level description of AeroSandbox modules, [please see the developer README](aerosandbox/README.md).
+For fully-detailed API documentation, see [the documentation website](https://aerosandbox.readthedocs.io/en/master/).
+You can print documentation and examples for any AeroSandbox object by using the built-in `help()` function (e.g., `help(asb.Airplane)`). AeroSandbox code is also documented *extensively* in the source and contains hundreds of unit test examples, so examining the source code can also be useful.
+### Usage Details
+One final point to note: as we're all sensible and civilized here, **all inputs and outputs to AeroSandbox are expressed in base SI units, or derived units thereof** (e.g, m, N, kg, m/s, J, Pa).
+The only exception to this rule is when units are explicitly noted via variable name suffix. For example:
+* `battery_capacity` -> Joules
+* `battery_capacity_watt_hours` -> Watt-hours.
+All angles are in radians, except for α and β which are in degrees due to long-standing aerospace convention. (In any case, units are marked on all function docstrings.)
+If you wish to use other units, consider using [`aerosandbox.tools.units`](./aerosandbox/tools/units.py) to convert easily.
+## Project Details
+### Contributing
+Please feel free to join the development of AeroSandbox - contributions are always so welcome! If you have a change you'd like to make, the easiest way to do that is by submitting a pull request.
+The text file [`CONTRIBUTING.md`](./CONTRIBUTING.md) has more details for developers and power users.
+If you've already made several additions and would like to be involved in a more long-term capacity, please message me!
+Contact information can be found next to my name near the top of this README.
+### Donating
+If you like this software, please consider donating to support development [via PayPal](https://paypal.me/peterdsharpe)
+or [GitHub Sponsors](https://github.com/sponsors/peterdsharpe/)! Proceeds will go towards more coffee for the grad students.
+### Bugs
+Please, please report all bugs by [creating a new issue](https://github.com/peterdsharpe/AeroSandbox/issues)!
+### Versioning
+AeroSandbox loosely uses [semantic versioning](https://semver.org/), which should give you an idea of whether or not you can probably expect backward-compatibility and/or new features from any given update.
+For more details, see the [changelog](./CHANGELOG.md).
+### Citation & Commercial Use
+If you find AeroSandbox useful in a research publication, please cite it using the following BibTeX snippet:
+```bibtex
+@mastersthesis{aerosandbox,
+ title = {AeroSandbox: A Differentiable Framework for Aircraft Design Optimization},
+ author = {Sharpe, Peter D.},
+ school = {Massachusetts Institute of Technology},
+ year = {2021}
+}
+```
+As the MIT License applies, use AeroSandbox for anything you want (attribution appreciated, but not required).
+Commercial users: I'm more than happy to discuss consulting work for active AeroSandbox support if this package proves helpful - use the email address in the header of this README to get in touch.
+### License
+[MIT License, terms here](LICENSE.txt). Basically: use AeroSandbox for anything you want; no warranty express or implied.
+## Stargazers over time
+[![Stargazers over time](https://starchart.cc/peterdsharpe/AeroSandbox.svg)](https://starchart.cc/peterdsharpe/AeroSandbox)
+
+%package help
+Summary: Development documents and examples for AeroSandbox
+Provides: python3-AeroSandbox-doc
+%description help
+### Gallery
+Use AeroSandbox to design and optimize entire aircraft:
+<table>
+ <tr>
+ <td width="50%" valign="top">
+ <p align="center">
+ <a href="https://github.com/peterdsharpe/Feather-RC-Glider"><i>Feather</i> (an ultra-lightweight 1-meter-class RC motor glider)</a>
+ </p>
+ <img src="https://raw.githubusercontent.com/peterdsharpe/Feather-RC-Glider/master/CAD/feather.png" alt="Feather first page">
+ </td>
+ <td width="50%" valign="top">
+ <p align="center">
+ <a href="https://github.com/peterdsharpe/solar-seaplane-preliminary-sizing"><i>SEAWAY-Mini</i> (a solar-electric, 13' wingspan seaplane)</a>
+ </p>
+ <img src="https://raw.githubusercontent.com/peterdsharpe/solar-seaplane-preliminary-sizing/main/CAD/renders/seaway_mini_packet_Page_1.png" alt="Seaway-Mini first page">
+ </td>
+ </tr>
+</table>
+Use AeroSandbox to support real-world aircraft development programs, all the way from your very first sketch to your first-flight and even beyond:
+<table>
+ <tr>
+ <td width="50%" valign="top">
+ <p align="center">
+ <a href="https://github.com/peterdsharpe/DawnDesignTool">Initial concept sketches + sizing of <i>Dawn</i> (a solar-electric airplane for climate science research) in AeroSandbox, Spring 2020</a>
+ </p>
+ <img src="./media/images/dawn1-first-sketch.png" alt="Dawn initial design">
+ </td>
+ <td width="50%" valign="top">
+ <p align="center">
+ <a href="https://youtu.be/CyTzx9UCvyo"><i>Dawn</i> (later renamed <i>SACOS</i>) in first flight, Fall 2022</a>
+ </p>
+ <p align="center"><a href="https://www.electra.aero/news/sacos-first-flight">(Thanks to so, so many wonderful people!)</a></p>
+ <img src="./media/images/SACOS%20First%20Flight%20Zoomed.jpg" alt="SACOS first flight">
+ </td>
+ </tr>
+</table>
+Use AeroSandbox to explore counterintuitive, complicated design tradeoffs, all at the earliest stages of conceptual design *where these insights make the most difference*:
+<table>
+ <tr>
+ <td width="50%" valign="top">
+ <p align="center">
+ <a href="https://github.com/peterdsharpe/DawnDesignTool">Exploring how big a solar airplane needs to be to fly, as a function of seasonality and latitude</a>
+ </p>
+ <img src="https://github.com/peterdsharpe/DawnDesignTool/raw/master/docs/30kg_payload.svg" alt="Dawn seasonality latitude tradespace">
+ </td>
+ <td width="50%" valign="top">
+ <p align="center">
+ <a href="https://www.popularmechanics.com/military/aviation/a13938789/mit-developing-mach-08-rocket-drone-for-the-air-force/">Exploring how the mission range of <i>Firefly</i>, a Mach 0.8 rocket drone, changes if we add an altitude limit, simultaneously optimizing aircraft design and trajectories</a>
+ </p>
+ <img src="./media/images/firefly-range-ceiling-trade.png" alt="Firefly range ceiling trade">
+ </td>
+ </tr>
+</table>
+Use AeroSandbox as a pure aerodynamics toolkit:
+<table>
+ <tr>
+ <td width="50%" valign="top">
+ <p align="center">
+ VLM simulation of a glider, aileron deflections of +-30°
+ </p>
+ <img src="./media/images/vlm3_with_control_surfaces.png" alt="VLM simulation">
+ </td>
+ <td width="50%" valign="top">
+ <p align="center">
+ Aerodynamic shape optimization of a wing planform, using an arbitrary objective and constraints
+ </p>
+ <img src="./media/images/wing_optimization.png" alt="Wing optimization">
+ </td>
+ </tr>
+</table>
+Among many other discplines:
+<table>
+ <tr>
+ <td width="50%" valign="top">
+ <p align="center">
+ Structural optimization of a composite tube spar
+ </p>
+ <img src="./media/images/beam-optimization.png" alt="Beam optimization">
+ </td>
+ <td width="50%" valign="top">
+ <p align="center">
+ Electric motor analysis for propeller matching
+ </p>
+ <img src="./media/images/motor_perf.png" alt="Motor performance">
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p align="center" valign="top">
+ <a href="https://github.com/peterdsharpe/transport-aircraft">Tools to analyze unconventional propulsion (e.g., LH2)</a>
+ </p>
+ <img src="https://github.com/peterdsharpe/transport-aircraft/raw/master/figures/three_view.png" alt="LH2 airplane three-view">
+ </td>
+ <td>
+ <p align="center" valign="top">
+ Detailed weights estimation for aircraft ranging from micro-UAVs to airliners
+ </p>
+ <img src="https://github.com/peterdsharpe/transport-aircraft/raw/master/figures/mass_budget.png" alt="Mass Budget">
+ </td>
+</tr>
+</table>
+Easily interface AeroSandbox with all your favorite tools:
+<table>
+ <tr>
+ <td width="33%" valign="top">
+ <p align="center">
+ Other conceptual design tools (AVL, XFLR5, XFoil, ASWING, MSES, etc.)
+ </p>
+ <img src="./media/images/airfoil_contours.png" alt="XFoil">
+ </td>
+ <td width="33%" valign="top">
+ <p align="center">
+ CAD tools via STEP export (SolidWorks, Fusion 360, etc.)
+ </p>
+ <p align="center">
+ (STL, OBJ, etc. supported too)
+ </p>
+ <img src="https://github.com/peterdsharpe/solar-seaplane-preliminary-sizing/raw/main/CAD/renders/raytrace-lowres.jpg" alt="CAD">
+ </td>
+ <td width="33%" valign="top">
+ <p align="center">
+ User-provided models + code (for custom aerodynamics, structures, propulsion, or anything else - e.g., for optimizing flight through a probabilistic wind field, shown below)
+ </p>
+ <img src="./media/images/wind_speeds_model.png" alt="Wind speed">
+ </td>
+ </tr>
+</table>
+Or, throw all the airplane-design-specific code out entirely, and use AeroSandbox purely as an optimization solver or as a solver for nonlinear systems of equations (or ODEs, or PDEs):
+<table>
+ <tr>
+ <td width="50%" valign="top">
+ <p align="center">
+ <a href="https://github.com/peterdsharpe/AeroSandbox/blob/develop/tutorial/01%20-%20Optimization%20and%20Math/01%20-%202D%20Rosenbrock.ipynb">Optimize the 2D Rosenbrock function</a>
+ </p>
+ <img src="./media/images/optimization.png" alt="Optimization">
+ </td>
+ <td width="50%" valign="top">
+ <p align="center">
+ <a href="https://github.com/peterdsharpe/AeroSandbox/tree/develop/tutorial/03%20-%20Trajectory%20Optimization%20and%20Optimal%20Control/01%20-%20Solving%20ODEs%20with%20AeroSandbox">Specify the Falkner Skan ODE (nonlinear, 3rd-order BVP) and let AeroSandbox automatically take care of the discretization, solution, and even inverse solving.</a>
+ </p>
+ <img src="./media/images/falkner-skan.png" alt="FS ODE">
+ </td>
+</tr>
+</table>
+And much, much more. Best of all, combine these tools arbitrarily without any loss in optimization speed and without any tedious derivative math, all thanks to AeroSandbox's end-to-end automatic-differentiability.
+## Getting Started
+### Installation
+In short:
+* `pip install aerosandbox[full]` for a complete install.
+* `pip install aerosandbox` for a lightweight (headless) installation with minimal dependencies. All optimization, numerics, and physics models are included, but optional visualization dependencies are skipped.
+For more installation details (e.g., if you're new to Python), [see here](./INSTALLATION.md).
+### Tutorials, Examples, and Documentation
+To get started, [check out the tutorials folder here](./tutorial/)! All tutorials are viewable in-browser, or you can open them as Jupyter notebooks by cloning this repository.
+For a more detailed and theory-heavy introduction to AeroSandbox, [please see this thesis](./tutorial/sharpe-pds-sm-AeroAstro-2021-thesis.pdf).
+For a yet-more-detailed developer-level description of AeroSandbox modules, [please see the developer README](aerosandbox/README.md).
+For fully-detailed API documentation, see [the documentation website](https://aerosandbox.readthedocs.io/en/master/).
+You can print documentation and examples for any AeroSandbox object by using the built-in `help()` function (e.g., `help(asb.Airplane)`). AeroSandbox code is also documented *extensively* in the source and contains hundreds of unit test examples, so examining the source code can also be useful.
+### Usage Details
+One final point to note: as we're all sensible and civilized here, **all inputs and outputs to AeroSandbox are expressed in base SI units, or derived units thereof** (e.g, m, N, kg, m/s, J, Pa).
+The only exception to this rule is when units are explicitly noted via variable name suffix. For example:
+* `battery_capacity` -> Joules
+* `battery_capacity_watt_hours` -> Watt-hours.
+All angles are in radians, except for α and β which are in degrees due to long-standing aerospace convention. (In any case, units are marked on all function docstrings.)
+If you wish to use other units, consider using [`aerosandbox.tools.units`](./aerosandbox/tools/units.py) to convert easily.
+## Project Details
+### Contributing
+Please feel free to join the development of AeroSandbox - contributions are always so welcome! If you have a change you'd like to make, the easiest way to do that is by submitting a pull request.
+The text file [`CONTRIBUTING.md`](./CONTRIBUTING.md) has more details for developers and power users.
+If you've already made several additions and would like to be involved in a more long-term capacity, please message me!
+Contact information can be found next to my name near the top of this README.
+### Donating
+If you like this software, please consider donating to support development [via PayPal](https://paypal.me/peterdsharpe)
+or [GitHub Sponsors](https://github.com/sponsors/peterdsharpe/)! Proceeds will go towards more coffee for the grad students.
+### Bugs
+Please, please report all bugs by [creating a new issue](https://github.com/peterdsharpe/AeroSandbox/issues)!
+### Versioning
+AeroSandbox loosely uses [semantic versioning](https://semver.org/), which should give you an idea of whether or not you can probably expect backward-compatibility and/or new features from any given update.
+For more details, see the [changelog](./CHANGELOG.md).
+### Citation & Commercial Use
+If you find AeroSandbox useful in a research publication, please cite it using the following BibTeX snippet:
+```bibtex
+@mastersthesis{aerosandbox,
+ title = {AeroSandbox: A Differentiable Framework for Aircraft Design Optimization},
+ author = {Sharpe, Peter D.},
+ school = {Massachusetts Institute of Technology},
+ year = {2021}
+}
+```
+As the MIT License applies, use AeroSandbox for anything you want (attribution appreciated, but not required).
+Commercial users: I'm more than happy to discuss consulting work for active AeroSandbox support if this package proves helpful - use the email address in the header of this README to get in touch.
+### License
+[MIT License, terms here](LICENSE.txt). Basically: use AeroSandbox for anything you want; no warranty express or implied.
+## Stargazers over time
+[![Stargazers over time](https://starchart.cc/peterdsharpe/AeroSandbox.svg)](https://starchart.cc/peterdsharpe/AeroSandbox)
+
+%prep
+%autosetup -n AeroSandbox-4.0.6
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-AeroSandbox -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 4.0.6-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..c0f41b8
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+5b2ff71392ba2fe01ad35d811205084f AeroSandbox-4.0.6.tar.gz