From 381f76ba2f6aa8a3dd5d00ba98f3c6b41621b161 Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Tue, 11 Apr 2023 08:02:47 +0000 Subject: automatic import of python-aerosandbox --- .gitignore | 1 + python-aerosandbox.spec | 670 ++++++++++++++++++++++++++++++++++++++++++++++++ sources | 1 + 3 files changed, 672 insertions(+) create mode 100644 python-aerosandbox.spec create mode 100644 sources 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: + + + + + +
+

+ Feather (an ultra-lightweight 1-meter-class RC motor glider) +

+ Feather first page +
+

+ SEAWAY-Mini (a solar-electric, 13' wingspan seaplane) +

+ Seaway-Mini first page +
+Use AeroSandbox to support real-world aircraft development programs, all the way from your very first sketch to your first-flight and even beyond: + + + + + +
+

+ Initial concept sketches + sizing of Dawn (a solar-electric airplane for climate science research) in AeroSandbox, Spring 2020 +

+ Dawn initial design +
+

+ Dawn (later renamed SACOS) in first flight, Fall 2022 +

+

(Thanks to so, so many wonderful people!)

+ SACOS first flight +
+Use AeroSandbox to explore counterintuitive, complicated design tradeoffs, all at the earliest stages of conceptual design *where these insights make the most difference*: + + + + + +
+

+ Exploring how big a solar airplane needs to be to fly, as a function of seasonality and latitude +

+ Dawn seasonality latitude tradespace +
+

+ Exploring how the mission range of Firefly, a Mach 0.8 rocket drone, changes if we add an altitude limit, simultaneously optimizing aircraft design and trajectories +

+ Firefly range ceiling trade +
+Use AeroSandbox as a pure aerodynamics toolkit: + + + + + +
+

+ VLM simulation of a glider, aileron deflections of +-30° +

+ VLM simulation +
+

+ Aerodynamic shape optimization of a wing planform, using an arbitrary objective and constraints +

+ Wing optimization +
+Among many other discplines: + + + + + + + + + +
+

+ Structural optimization of a composite tube spar +

+ Beam optimization +
+

+ Electric motor analysis for propeller matching +

+ Motor performance +
+

+ Tools to analyze unconventional propulsion (e.g., LH2) +

+ LH2 airplane three-view +
+

+ Detailed weights estimation for aircraft ranging from micro-UAVs to airliners +

+ Mass Budget +
+Easily interface AeroSandbox with all your favorite tools: + + + + + + +
+

+ Other conceptual design tools (AVL, XFLR5, XFoil, ASWING, MSES, etc.) +

+ XFoil +
+

+ CAD tools via STEP export (SolidWorks, Fusion 360, etc.) +

+

+ (STL, OBJ, etc. supported too) +

+ CAD +
+

+ User-provided models + code (for custom aerodynamics, structures, propulsion, or anything else - e.g., for optimizing flight through a probabilistic wind field, shown below) +

+ Wind speed +
+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): + + + + + +
+

+ Optimize the 2D Rosenbrock function +

+ Optimization +
+

+ Specify the Falkner Skan ODE (nonlinear, 3rd-order BVP) and let AeroSandbox automatically take care of the discretization, solution, and even inverse solving. +

+ FS ODE +
+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: + + + + + +
+

+ Feather (an ultra-lightweight 1-meter-class RC motor glider) +

+ Feather first page +
+

+ SEAWAY-Mini (a solar-electric, 13' wingspan seaplane) +

+ Seaway-Mini first page +
+Use AeroSandbox to support real-world aircraft development programs, all the way from your very first sketch to your first-flight and even beyond: + + + + + +
+

+ Initial concept sketches + sizing of Dawn (a solar-electric airplane for climate science research) in AeroSandbox, Spring 2020 +

+ Dawn initial design +
+

+ Dawn (later renamed SACOS) in first flight, Fall 2022 +

+

(Thanks to so, so many wonderful people!)

+ SACOS first flight +
+Use AeroSandbox to explore counterintuitive, complicated design tradeoffs, all at the earliest stages of conceptual design *where these insights make the most difference*: + + + + + +
+

+ Exploring how big a solar airplane needs to be to fly, as a function of seasonality and latitude +

+ Dawn seasonality latitude tradespace +
+

+ Exploring how the mission range of Firefly, a Mach 0.8 rocket drone, changes if we add an altitude limit, simultaneously optimizing aircraft design and trajectories +

+ Firefly range ceiling trade +
+Use AeroSandbox as a pure aerodynamics toolkit: + + + + + +
+

+ VLM simulation of a glider, aileron deflections of +-30° +

+ VLM simulation +
+

+ Aerodynamic shape optimization of a wing planform, using an arbitrary objective and constraints +

+ Wing optimization +
+Among many other discplines: + + + + + + + + + +
+

+ Structural optimization of a composite tube spar +

+ Beam optimization +
+

+ Electric motor analysis for propeller matching +

+ Motor performance +
+

+ Tools to analyze unconventional propulsion (e.g., LH2) +

+ LH2 airplane three-view +
+

+ Detailed weights estimation for aircraft ranging from micro-UAVs to airliners +

+ Mass Budget +
+Easily interface AeroSandbox with all your favorite tools: + + + + + + +
+

+ Other conceptual design tools (AVL, XFLR5, XFoil, ASWING, MSES, etc.) +

+ XFoil +
+

+ CAD tools via STEP export (SolidWorks, Fusion 360, etc.) +

+

+ (STL, OBJ, etc. supported too) +

+ CAD +
+

+ User-provided models + code (for custom aerodynamics, structures, propulsion, or anything else - e.g., for optimizing flight through a probabilistic wind field, shown below) +

+ Wind speed +
+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): + + + + + +
+

+ Optimize the 2D Rosenbrock function +

+ Optimization +
+

+ Specify the Falkner Skan ODE (nonlinear, 3rd-order BVP) and let AeroSandbox automatically take care of the discretization, solution, and even inverse solving. +

+ FS ODE +
+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: + + + + + +
+

+ Feather (an ultra-lightweight 1-meter-class RC motor glider) +

+ Feather first page +
+

+ SEAWAY-Mini (a solar-electric, 13' wingspan seaplane) +

+ Seaway-Mini first page +
+Use AeroSandbox to support real-world aircraft development programs, all the way from your very first sketch to your first-flight and even beyond: + + + + + +
+

+ Initial concept sketches + sizing of Dawn (a solar-electric airplane for climate science research) in AeroSandbox, Spring 2020 +

+ Dawn initial design +
+

+ Dawn (later renamed SACOS) in first flight, Fall 2022 +

+

(Thanks to so, so many wonderful people!)

+ SACOS first flight +
+Use AeroSandbox to explore counterintuitive, complicated design tradeoffs, all at the earliest stages of conceptual design *where these insights make the most difference*: + + + + + +
+

+ Exploring how big a solar airplane needs to be to fly, as a function of seasonality and latitude +

+ Dawn seasonality latitude tradespace +
+

+ Exploring how the mission range of Firefly, a Mach 0.8 rocket drone, changes if we add an altitude limit, simultaneously optimizing aircraft design and trajectories +

+ Firefly range ceiling trade +
+Use AeroSandbox as a pure aerodynamics toolkit: + + + + + +
+

+ VLM simulation of a glider, aileron deflections of +-30° +

+ VLM simulation +
+

+ Aerodynamic shape optimization of a wing planform, using an arbitrary objective and constraints +

+ Wing optimization +
+Among many other discplines: + + + + + + + + + +
+

+ Structural optimization of a composite tube spar +

+ Beam optimization +
+

+ Electric motor analysis for propeller matching +

+ Motor performance +
+

+ Tools to analyze unconventional propulsion (e.g., LH2) +

+ LH2 airplane three-view +
+

+ Detailed weights estimation for aircraft ranging from micro-UAVs to airliners +

+ Mass Budget +
+Easily interface AeroSandbox with all your favorite tools: + + + + + + +
+

+ Other conceptual design tools (AVL, XFLR5, XFoil, ASWING, MSES, etc.) +

+ XFoil +
+

+ CAD tools via STEP export (SolidWorks, Fusion 360, etc.) +

+

+ (STL, OBJ, etc. supported too) +

+ CAD +
+

+ User-provided models + code (for custom aerodynamics, structures, propulsion, or anything else - e.g., for optimizing flight through a probabilistic wind field, shown below) +

+ Wind speed +
+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): + + + + + +
+

+ Optimize the 2D Rosenbrock function +

+ Optimization +
+

+ Specify the Falkner Skan ODE (nonlinear, 3rd-order BVP) and let AeroSandbox automatically take care of the discretization, solution, and even inverse solving. +

+ FS ODE +
+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 - 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 -- cgit v1.2.3