pymead


Namepymead JSON
Version 2.0.0b11 PyPI version JSON
download
home_pageNone
SummaryPython GUI and API for generation, aerodynamic analysis, and shape optimization of parametric airfoil systems
upload_time2024-09-03 21:23:03
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseNone
keywords aerodynamic aerodynamics aero-propulsive aero-propulsion aeropropulsive aeropropulsion airfoil shape optimization mdao mdo airfoil matching analysis parametric airfoil system xfoil mses
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <p align="center">
<img src="https://raw.githubusercontent.com/mlau154/pymead/dev/pymead/icons/pymead-logo.png" alt="pymead logo" width="200">
</p>

## Author: Matthew G Lauer

Source code can be found [here](https://github.com/mlau154/pymead). 
Documentation can be found [here](https://pymead.readthedocs.io/en/latest/).

## Welcome
To the documentation page for *pymead*, a Python GUI and API for generation, aerodynamic analysis, and shape 
optimization of parametric airfoil systems. This parametrization framework in its preliminary stage was presented at the 
2022 AIAA Aviation Conference in Chicago, IL under the title
"A Parametrization Framework for Multi-Element Airfoil Systems Using Bézier Curves."

## Motivation

The creation of this package was motivated by a research aircraft application: the aerodynamic design of a
propulsion-airframe-integrated commercial transport aircraft. The cross-section of a wing or fuselage with integrated
propulsors can be represented, with some sacrifice in fidelity, as a quasi-2D multi-element airfoil system. This
multi-element airfoil system comprises a main airfoil (either the fuselage or main airfoil element), a hub
airfoil (representing the cross-section of an axisymmetric hub), and a nacelle airfoil (representing the cross-section
of an axisymmetric nacelle).

<p align="center">
<img src="https://raw.githubusercontent.com/mlau154/pymead/dev/docs/source/images/pymead_main_screenshot_light.PNG" alt="pressure coefficient contours of an aeropropulsive system" width="700">
</p>

## Installation

For access to both the API and GUI, *pymead* can be installed using the typical `pip install pymead`.
There are several other installation options, including a standalone Windows installer.
See the [*pymead* installation page](https://pymead.readthedocs.io/en/latest/install.html) for more details.

## How It Works

By using a well-defined parametrization framework, this airfoil system can be morphed or deformed in a variety of ways
using changes in high-level design variables. These design variables are represented by
`pymead.core.param.DesVar` objects in this framework, which have modifiable lower and upper bounds for optimization. 
This facilitates aerodynamic analysis, parametric sweeps, and even shape optimization.

<p align="center">
<img src="https://raw.githubusercontent.com/mlau154/pymead/dev/docs/source/images/desvar_mod_light.gif" alt="dynamic modification of airfoil design variables" width="700">
</p>

*pymead* has both an application programming interface (API) and a graphical user interface (GUI), either of which
can be used to define airfoil geometries from basic geometries (like points, lines, and curves), implement
geometric constraints, perform analysis using wrappers for XFOIL and MSES, match existing airfoils with Bézier curves,
and even execute aerodynamic or aeropropulsive shape optimization studies. See the documentation site under
development for [GUI tutorials](https://pymead.readthedocs.io/en/latest/gui.html) and 
[API tutorials](https://pymead.readthedocs.io/en/latest/tutorials.html).

<p align="center">
<img src="https://raw.githubusercontent.com/mlau154/pymead/dev/docs/source/images/n0012_analysis_xfoil_light.gif" alt="XFOIL analysis of the NACA 0012 airfoil" width="700">
</p>

<p align="center">
<img src="https://raw.githubusercontent.com/mlau154/pymead/dev/docs/source/images/sc20612_analysis_light.gif" alt="MSES analysis of the NASA SC20612 airfoil" width="700">
</p>

## Applications

It is the hope of the author that *pymead* is sufficiently flexible to be used for airfoil applications of
varying complexities, from simple, single-airfoil design to high-fidelity, multi-element airfoil shape optimization.
Other common multi-element airfoil systems, such as the high-lift configuration on an aircraft, are also target
applications for this software package.

One utility provided in this software package which may be useful in the start-up phase of airfoil design is
`pymead.optimization.airfoil_matching.match_airfoil()`. This function allows the matching of a particular 
parametrization to any public airfoil geometry at [airfoiltools.com](http://airfoiltools.com/) using the gradient-based "SLSQP"
optimizer. See the [*pymead* gallery](https://pymead.readthedocs.io/en/latest/gallery.html) for more example
applications.

<p align="center">
<img src="https://raw.githubusercontent.com/mlau154/pymead/dev/docs/source/images/sc20612_matching_4x_speed_light.gif" alt="Matching a NASA SC20612 airfoil (4x speed)" width="700">
</p>

## Acknowledgments

This work was supported by NASA under award number 80NSSC19M0125 as part of the Center for High-Efficiency Electrical
Technologies for Aircraft (CHEETA).

## Contact Information

**Author**: Matthew G Lauer

**Email**: mlauer2015@gmail.com

## Version Notes

### 2.0.0-alpha.0+

- Version notes have migrated to [pymead's GitHub releases page](https://github.com/mlau154/pymead/releases)

### 1.1.1

- Corrections to README.md for PyPi long project description (images not showing properly)

### 1.1.0

- Made corrections on BaseAirfoilParams and AnchorPoint Args domains
- Added support for zero-curvature anchor points
using 180-degree curvature control arm angles (or 90-degree curvature control arm angles for the leading edge)
- Added support for sharp-juncture anchor points with R=0 or R_{LE}=0. Adding multiple consecutive sharp
juncture anchor points creates line segments. Adding sharp-juncture anchor points violates the principle of slope and
curvature continuity, but may be useful in some cases.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "pymead",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "aerodynamic, aerodynamics, aero-propulsive, aero-propulsion, aeropropulsive, aeropropulsion, airfoil, shape optimization, MDAO, MDO, airfoil matching, analysis, parametric, airfoil system, XFOIL, MSES",
    "author": null,
    "author_email": "Matthew G Lauer <mlauer2015@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/22/8e/ee69717fc61e92257fb88a2078d995efdf8d095d843ce9c556b0a5774b50/pymead-2.0.0b11.tar.gz",
    "platform": null,
    "description": "<p align=\"center\">\r\n<img src=\"https://raw.githubusercontent.com/mlau154/pymead/dev/pymead/icons/pymead-logo.png\" alt=\"pymead logo\" width=\"200\">\r\n</p>\r\n\r\n## Author: Matthew G Lauer\r\n\r\nSource code can be found [here](https://github.com/mlau154/pymead). \r\nDocumentation can be found [here](https://pymead.readthedocs.io/en/latest/).\r\n\r\n## Welcome\r\nTo the documentation page for *pymead*, a Python GUI and API for generation, aerodynamic analysis, and shape \r\noptimization of parametric airfoil systems. This parametrization framework in its preliminary stage was presented at the \r\n2022 AIAA Aviation Conference in Chicago, IL under the title\r\n\"A Parametrization Framework for Multi-Element Airfoil Systems Using B\u00e9zier Curves.\"\r\n\r\n## Motivation\r\n\r\nThe creation of this package was motivated by a research aircraft application: the aerodynamic design of a\r\npropulsion-airframe-integrated commercial transport aircraft. The cross-section of a wing or fuselage with integrated\r\npropulsors can be represented, with some sacrifice in fidelity, as a quasi-2D multi-element airfoil system. This\r\nmulti-element airfoil system comprises a main airfoil (either the fuselage or main airfoil element), a hub\r\nairfoil (representing the cross-section of an axisymmetric hub), and a nacelle airfoil (representing the cross-section\r\nof an axisymmetric nacelle).\r\n\r\n<p align=\"center\">\r\n<img src=\"https://raw.githubusercontent.com/mlau154/pymead/dev/docs/source/images/pymead_main_screenshot_light.PNG\" alt=\"pressure coefficient contours of an aeropropulsive system\" width=\"700\">\r\n</p>\r\n\r\n## Installation\r\n\r\nFor access to both the API and GUI, *pymead* can be installed using the typical `pip install pymead`.\r\nThere are several other installation options, including a standalone Windows installer.\r\nSee the [*pymead* installation page](https://pymead.readthedocs.io/en/latest/install.html) for more details.\r\n\r\n## How It Works\r\n\r\nBy using a well-defined parametrization framework, this airfoil system can be morphed or deformed in a variety of ways\r\nusing changes in high-level design variables. These design variables are represented by\r\n`pymead.core.param.DesVar` objects in this framework, which have modifiable lower and upper bounds for optimization. \r\nThis facilitates aerodynamic analysis, parametric sweeps, and even shape optimization.\r\n\r\n<p align=\"center\">\r\n<img src=\"https://raw.githubusercontent.com/mlau154/pymead/dev/docs/source/images/desvar_mod_light.gif\" alt=\"dynamic modification of airfoil design variables\" width=\"700\">\r\n</p>\r\n\r\n*pymead* has both an application programming interface (API) and a graphical user interface (GUI), either of which\r\ncan be used to define airfoil geometries from basic geometries (like points, lines, and curves), implement\r\ngeometric constraints, perform analysis using wrappers for XFOIL and MSES, match existing airfoils with B\u00e9zier curves,\r\nand even execute aerodynamic or aeropropulsive shape optimization studies. See the documentation site under\r\ndevelopment for [GUI tutorials](https://pymead.readthedocs.io/en/latest/gui.html) and \r\n[API tutorials](https://pymead.readthedocs.io/en/latest/tutorials.html).\r\n\r\n<p align=\"center\">\r\n<img src=\"https://raw.githubusercontent.com/mlau154/pymead/dev/docs/source/images/n0012_analysis_xfoil_light.gif\" alt=\"XFOIL analysis of the NACA 0012 airfoil\" width=\"700\">\r\n</p>\r\n\r\n<p align=\"center\">\r\n<img src=\"https://raw.githubusercontent.com/mlau154/pymead/dev/docs/source/images/sc20612_analysis_light.gif\" alt=\"MSES analysis of the NASA SC20612 airfoil\" width=\"700\">\r\n</p>\r\n\r\n## Applications\r\n\r\nIt is the hope of the author that *pymead* is sufficiently flexible to be used for airfoil applications of\r\nvarying complexities, from simple, single-airfoil design to high-fidelity, multi-element airfoil shape optimization.\r\nOther common multi-element airfoil systems, such as the high-lift configuration on an aircraft, are also target\r\napplications for this software package.\r\n\r\nOne utility provided in this software package which may be useful in the start-up phase of airfoil design is\r\n`pymead.optimization.airfoil_matching.match_airfoil()`. This function allows the matching of a particular \r\nparametrization to any public airfoil geometry at [airfoiltools.com](http://airfoiltools.com/) using the gradient-based \"SLSQP\"\r\noptimizer. See the [*pymead* gallery](https://pymead.readthedocs.io/en/latest/gallery.html) for more example\r\napplications.\r\n\r\n<p align=\"center\">\r\n<img src=\"https://raw.githubusercontent.com/mlau154/pymead/dev/docs/source/images/sc20612_matching_4x_speed_light.gif\" alt=\"Matching a NASA SC20612 airfoil (4x speed)\" width=\"700\">\r\n</p>\r\n\r\n## Acknowledgments\r\n\r\nThis work was supported by NASA under award number 80NSSC19M0125 as part of the Center for High-Efficiency Electrical\r\nTechnologies for Aircraft (CHEETA).\r\n\r\n## Contact Information\r\n\r\n**Author**: Matthew G Lauer\r\n\r\n**Email**: mlauer2015@gmail.com\r\n\r\n## Version Notes\r\n\r\n### 2.0.0-alpha.0+\r\n\r\n- Version notes have migrated to [pymead's GitHub releases page](https://github.com/mlau154/pymead/releases)\r\n\r\n### 1.1.1\r\n\r\n- Corrections to README.md for PyPi long project description (images not showing properly)\r\n\r\n### 1.1.0\r\n\r\n- Made corrections on BaseAirfoilParams and AnchorPoint Args domains\r\n- Added support for zero-curvature anchor points\r\nusing 180-degree curvature control arm angles (or 90-degree curvature control arm angles for the leading edge)\r\n- Added support for sharp-juncture anchor points with R=0 or R_{LE}=0. Adding multiple consecutive sharp\r\njuncture anchor points creates line segments. Adding sharp-juncture anchor points violates the principle of slope and\r\ncurvature continuity, but may be useful in some cases.\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Python GUI and API for generation, aerodynamic analysis, and shape optimization of parametric airfoil systems",
    "version": "2.0.0b11",
    "project_urls": {
        "Documentation": "https://pymead.readthedocs.io/",
        "Issues": "https://github.com/mlau154/pymead/issues",
        "Releases": "https://github.com/mlau154/pymead/releases",
        "Repository": "https://github.com/mlau154/pymead"
    },
    "split_keywords": [
        "aerodynamic",
        " aerodynamics",
        " aero-propulsive",
        " aero-propulsion",
        " aeropropulsive",
        " aeropropulsion",
        " airfoil",
        " shape optimization",
        " mdao",
        " mdo",
        " airfoil matching",
        " analysis",
        " parametric",
        " airfoil system",
        " xfoil",
        " mses"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c660bce4a82c8844a008c53c9b00cbf5b4c857e1735e44900fc6f38c021a5fbe",
                "md5": "36fb62d485bc8af7233d4aaa753fd926",
                "sha256": "e8c5cb0a559ade38501ab405a05eeb987169c5d04ef7006c3c155a51216a0d0f"
            },
            "downloads": -1,
            "filename": "pymead-2.0.0b11-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "36fb62d485bc8af7233d4aaa753fd926",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 6396540,
            "upload_time": "2024-09-03T21:23:01",
            "upload_time_iso_8601": "2024-09-03T21:23:01.292258Z",
            "url": "https://files.pythonhosted.org/packages/c6/60/bce4a82c8844a008c53c9b00cbf5b4c857e1735e44900fc6f38c021a5fbe/pymead-2.0.0b11-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "228eee69717fc61e92257fb88a2078d995efdf8d095d843ce9c556b0a5774b50",
                "md5": "266f282023a92ab2311a252ed41b7e6d",
                "sha256": "6b06c707be053bba3203efca00dc671eaae40aaf230600e8dbc264240f9c0035"
            },
            "downloads": -1,
            "filename": "pymead-2.0.0b11.tar.gz",
            "has_sig": false,
            "md5_digest": "266f282023a92ab2311a252ed41b7e6d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 6334211,
            "upload_time": "2024-09-03T21:23:03",
            "upload_time_iso_8601": "2024-09-03T21:23:03.232826Z",
            "url": "https://files.pythonhosted.org/packages/22/8e/ee69717fc61e92257fb88a2078d995efdf8d095d843ce9c556b0a5774b50/pymead-2.0.0b11.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-09-03 21:23:03",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "mlau154",
    "github_project": "pymead",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "tox": true,
    "lcname": "pymead"
}
        
Elapsed time: 2.15693s