This release is a pre-release and may not be stable for production use.
Author: Matthew G Lauer
Source code can be found here. Documentation can be found here.
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).
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 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.
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. Check out the User Guide to learn how to use these features.
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 using the gradient-based "SLSQP"
optimizer. See the pymead gallery for more example
applications.
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
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.
Metadata
Release files for pymead 2.0.0b13
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pymead-2.0.0b13.tar.gz | 8.0 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pymead-2.0.0b13-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 16.0 MB
Release files / pymead-2.0.0b13.tar.gz
| Download URL | pymead-2.0.0b13.tar.gz |
|---|---|
| Size | 8.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d39282c7ede06e730be8714dc4fedeff35fed96b5f179f56c29bd3db36be740b
|
|
BLAKE2b-256 checksum How to use checksums |
b56058388ade20c25d2c3bfba7e97e5d0020907e6f0f7d6ae3cec374b1f12dc1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 24, 2025.
Transparency logRelease files / pymead-2.0.0b13-py3-none-any.whl
| Download URL | pymead-2.0.0b13-py3-none-any.whl |
|---|---|
| Size | 8.1 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a7fa99e9f4c5955bbce296757ffc17e79737c2d4e82e812adafe2cae36b06bd6
|
|
BLAKE2b-256 checksum How to use checksums |
2370424b5e5283da28e327b42d185c1c30bc6d3e656dce909ed4e08f454936ef
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 24, 2025.
Transparency log