KatzPlotkinPy
KatzPlotkinPy copied to clipboard
Python companion to Low Speed Aerodynamics by Joseph Katz and Allen Plotkin
Python companion to Low Speed Aerodynamics
Low Speed Aerodynamics 2nd Edition by Joseph Katz and Allen Plotkin
Purpose
This is a project implements the FORTRAN computer programs listed in Low Speed Aerodynamics (2nd Ed) into a Python package and stand alone program(s). Additional features such as visualisation have been included.
Written permission provided by Professor Joseph Katz, San Diego State University, to recreate the original FORTRAN functionality in Python and/or C for this Open Source Software.
Programs and Features
Programs
The following table is a summary from Appendix D of Low Speed Aerodynamics. Each program will be recreated in Python. Fortran transcripts are available in tests/f77 and can be built following the instructions in tests/BUILD.md.
No. | Name | Program Description | Section | Python | Fortran |
---|---|---|---|---|---|
2D Panel Methods | |||||
1. | AFGEN |
Grid generator for van de Vooren airfoil shapes | 6.7 | ✅ | ✅ |
2D: Neumann Boundary Condition | |||||
2. | VOR2D |
Discrete vortex, thin wing method | 11.1.1 | 🔄 | ✅ |
3. | SOR2DC |
Constant strength source method | 11.2.1 | 🔄 | ✅ |
4. | DUB2DC |
Constant strength doublet method | 11.2.2 | 🔄 | ✅ |
5. | VOR2DC |
Constant strength vortex method | 11.2.3 | 🔄 | ✅ |
6. | SOR2DL |
Linear strength source method | 11.4.1 | 🔄 | ✅ |
7. | VOR2DL |
Linear strength vortex method | 11.4.2 | 🔄 | ✅ |
2D: Dirichlet Boundary Condition | |||||
8. | PHICD |
Constant strength doublet method | 11.3.2 | ⬜ | ✅ |
9. | PHICSD |
Constant strength source/doublet method | 11.3.1 | ⬜ | ✅ |
10. | PHILD |
Linear strength doublet method | 11.5.2 | ⬜ | ✅ |
11. | PHIQD |
Quadratic strength doublet method | 11.6.2 | ⬜ | ✅ |
3D Programs | |||||
12. | DUB3DC |
Influence of constant strength source/doublet | 10.4.1 | ⬜ | ✅ |
13. | VORING |
VLM for rectilinear surfaces (with ground effect) | 12.3 | ⬜ | ✅ |
14. | PANEL |
Constant strength sources and doublets (Dirichlet BC) | 12.5 | ⬜ | ✅ |
Time Dependent Programs | |||||
15. | WAKE |
Acceleration of flat plate using a lumped vortex | 13.7 | ⬜ | ✅ |
16. | UVLM |
Unsteady motion of a thin rectangular lifting surface | 13.12 | ⬜ | ✅ |
✅ Supported | 🔄 In-work | ⬜ To do | ❌ Skipped
Installation and Usage
Installation
Details to come
Usage
A program can be used as a group of programs or individually.
katzplotkinpy [OPTIONS] {PROGRAM NAME} [PROGRAM OPTIONS]
Python companion to Low Speed Aerodynamics
optional arguments:
-h, --help show this help message and exit
-V, --version show the version and exit
programs:
Programs from Appendix D of 'Low Speed Aerodynamics'
{afgen,vor2d,sor2dc,dub2dc,vor2dc,sor2dl,vor2dl,phicd,phicsd,phild,phiqd,dub3dc,voring,panel,wake,uvlm}
afgen Grid generator for van de Vooren airfoil shapes
vor2d Discrete vortex, thin wing method
sor2dc Constant strength source method
dub2dc Constant strength doublet method
vor2dc Constant strength vortex method
sor2dl Linear strength source method
vor2dl Linear strength vortex method
phicd Constant strength doublet method
phicsd Constant strength source/doublet method
phild Linear strength doublet method
phiqd Quadratic strength doublet method
dub3dc Influence of constant strength source/doublet
voring VLM for rectilinear surfaces (with ground effect)
panel Constant strength sources and doublets (Dirichlet BC)
wake Acceleration of flat plate using a lumped vortex
uvlm Unsteady motion of a thin rectangular lifting surface
Source: https://github.com/AlwinW/KatzPlotkinPy
katzplotkinpy afgen [-h] [-v] [-d] [-s]
Grid generator for van de Vooren airfoil shapes
optional arguments:
-h, --help show this help message and exit
-v, --verbose Increase log verbosity (max -vvv)
-d, --debug Show debugging messages (eqv. to -vv, overrides verbosity flag)
-s, --silent Suppress log warning and lower messages (overrides other verbosity flags)
Features
In addition to recreating the programs in Python, visualisation and other features have been added.
Contributing
Local Development
- Clone this repository
git clone [email protected]:alwinw/KatzPlotkinPy.git
- Install the development version
pip install -v -e .[<extras>]
(-e
needs pip >= 22.0 for pyproject.toml) orpoetry install --extras "<extras>"
- Make your changes and commit using commitizen and ensure pre-commit is active
- When ready, bump the version and run
poetry build -v
. If deploying, runpoetry publish --build -v
Contributors
@Alwin Wang
@cibinjoseph - Fortran WAKE
and UVLM
transcripts
Acknowledgement
Written consent given by the author to create this python port from the original Fortran code and algorithms presented in Low Speed Aerodynamics 2nd Edition.