Skip to main content

AVL + python + optimization = OptVL

aircraft iso cp

Documentation OptVL for AVL users

OptVL is a modified version of Mark Drela and Harold Youngren's famous AVL code with a python-wrapper and AD derivative routines for gradient-based optimization. Its key features are

  • Python wrapper to easily conduct large parameter sweeps from an existing AVL geometry file or include a vortex lattice method in a larger model.
  • Total derivatives of total forces, control surface derivatives, and stability derivatives with respect to geometric and aerodynamic variables for use with gradient-based optimization.
  • Post-processing directly through Python or Paraview and Tecplot for flexibility.

Installation

The best way to install OptVL is through pip

pip install optvl

Windows, macOS, and Linux are all supported! For information on building locally see the developer docs

Basic usage

The API of OptVL was made to mirror the usage of AVL through its text interface. The user loads in a geometry file, adds constraints, and then executes analysis runs.

The AVL wrapper is implemented in the OVLSolver class. To use this wrapper, first one must initialize the OVLSolver object with a geometry file and optionally a mass file. After, the user can add constraints and then execute the run to generate data. Below is a basic example of this workflow and this page provides more information on building run scripts.

from optvl import OVLSolver

ovl = OVLSolver(geo_file="../geom_files/aircraft.avl", debug=False)

# look at the geometry to see that everything is right
ovl.plot_geom()

# set the angle of attack
ovl.set_variable("alpha", 1.23)
# modify the mach number
ovl.set_parameter("Mach", 0.3)

# set the deflection of the elevator to trim the pitching moment
ovl.set_constraint("Elevator", "Cm", 0.00)

# set the rudder deflection to set value
ovl.set_control_deflection("Rudder", 10.0)

# This is the method that acutally runs the analysis
ovl.execute_run()

# print data about the run
force_data = ovl.get_total_forces()
print(
    f'CL:{force_data["CL"]:10.6f}   CD:{force_data["CD"]:10.6f}   Cm:{force_data["Cm"]:10.6f}'
)

# let's look at the cp contours
ovl.plot_cp()

The plotting calls in this example use matplotlib to produce visualizations like this aircraft cp

Examples

License

As stated, OptVL includes a modified version of the source code of AVL. AVL is distributed under the GLP version 2 license. As a consequence, OptVL is also distributed under a GLP license via the copyleft principle of the original license. Although, here we update the GLP license to version 3 as allowed by the original license.

This software includes portions of NetLib's LAPACK library. LAPACK is a software package provided by University of Tennessee, University of California Berkeley, University of Colorado Denver and NAG Ltd under the modified BSD license. See the license file in src/lapack/LICENSE.txt for more details.

Metadata

Release files for optvl 2.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for optvl 2.5.0
File
optvl-2.5.0-cp314-cp314-win_arm64.whl CPython 3.14 CPython 3.14 Windows ARM64 Details
optvl-2.5.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
optvl-2.5.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details
optvl-2.5.0-cp314-cp314-macosx_12_0_arm64.whl CPython 3.14 CPython 3.14 macOS 12.0+ ARM64 Details
optvl-2.5.0-cp313-cp313-win_arm64.whl CPython 3.13 CPython 3.13 Windows ARM64 Details
optvl-2.5.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
optvl-2.5.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
optvl-2.5.0-cp313-cp313-macosx_12_0_arm64.whl CPython 3.13 CPython 3.13 macOS 12.0+ ARM64 Details
optvl-2.5.0-cp312-cp312-win_arm64.whl CPython 3.12 CPython 3.12 Windows ARM64 Details
optvl-2.5.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
optvl-2.5.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
optvl-2.5.0-cp312-cp312-macosx_12_0_arm64.whl CPython 3.12 CPython 3.12 macOS 12.0+ ARM64 Details
optvl-2.5.0-cp311-cp311-win_arm64.whl CPython 3.11 CPython 3.11 Windows ARM64 Details
optvl-2.5.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
optvl-2.5.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
optvl-2.5.0-cp311-cp311-macosx_12_0_arm64.whl CPython 3.11 CPython 3.11 macOS 12.0+ ARM64 Details
optvl-2.5.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
optvl-2.5.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
optvl-2.5.0-cp310-cp310-macosx_12_0_arm64.whl CPython 3.10 CPython 3.10 macOS 12.0+ ARM64 Details
optvl-2.5.0-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
optvl-2.5.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details
optvl-2.5.0-cp39-cp39-macosx_12_0_arm64.whl CPython 3.9 CPython 3.9 macOS 12.0+ ARM64 Details

Total release size: 38.4 MB

Release files / optvl-2.5.0-cp314-cp314-win_arm64.whl

Download URL optvl-2.5.0-cp314-cp314-win_arm64.whl
Size 2.4 MB
Tags CPython 3.14 Windows ARM64
SHA-256 checksum
How to use checksums
79ddf2eba1cf424308c95c9f0e8a5a2fa21a03d5005ae8ef7da0f85aa803e2dd
BLAKE2b-256 checksum
How to use checksums
49c92cad5918bde193274ebad30d5c078a9d3de9434f2fa5345a25e5320bcca0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / optvl-2.5.0-cp314-cp314-win_amd64.whl

Download URL optvl-2.5.0-cp314-cp314-win_amd64.whl
Size 861.3 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
7d7cb617c786e7744a627c69d639e7d595f6206943b69c2a55995ce8ad185800
BLAKE2b-256 checksum
How to use checksums
c512f6630312759deef094843475849ecfb26c4b528b4b0803c59b9ff5736f7d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / optvl-2.5.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL optvl-2.5.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 2.5 MB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
15349cf0f74399f32ef116a83dd8fe895639330e37dee421d12ab52766010a1d
BLAKE2b-256 checksum
How to use checksums
24d33f6170246adfd84da9c03e51201ed39fe3f4b205c398acdb60deaba89ccd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / optvl-2.5.0-cp314-cp314-macosx_12_0_arm64.whl

Download URL optvl-2.5.0-cp314-cp314-macosx_12_0_arm64.whl
Size 1.4 MB
Tags CPython 3.14 macOS 12.0+ ARM64
SHA-256 checksum
How to use checksums
8bf7f92aa6b0139c2f131be09f88bf65ff86cc9c8075ab5cac3f7f4e25a3a324
BLAKE2b-256 checksum
How to use checksums
e6e706d745c981986fc264e23e82ebbca588bed94437eae4cb65b0a730fcd941
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / optvl-2.5.0-cp313-cp313-win_arm64.whl

Download URL optvl-2.5.0-cp313-cp313-win_arm64.whl
Size 2.3 MB
Tags CPython 3.13 Windows ARM64
SHA-256 checksum
How to use checksums
2575c5ded8b5669752fbf991eb904fd4431efe1cedb47dbd64581394e67db57e
BLAKE2b-256 checksum
How to use checksums
90c76084888f5af2c98b6e76e4386fe89049dbb23cc71a66f9c413a769d60717
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / optvl-2.5.0-cp313-cp313-win_amd64.whl

Download URL optvl-2.5.0-cp313-cp313-win_amd64.whl
Size 846.9 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
7385c26df78b359b671f2f5ced0392dc1fcb15340bca95f611e277fb15df5da3
BLAKE2b-256 checksum
How to use checksums
b0d6938dee71b2f95b626ee1596b1f2079d37d114a7e80a28a3dec2a61ac3495
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / optvl-2.5.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL optvl-2.5.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 2.5 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
90fefeb0796dbb543afe991f51cce15039eb01783e83119771970a1c506563ec
BLAKE2b-256 checksum
How to use checksums
73c9d1856fe7c380df5c653a56a364e775d3c8c757f9bd268e7347de7ab612bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / optvl-2.5.0-cp313-cp313-macosx_12_0_arm64.whl

Download URL optvl-2.5.0-cp313-cp313-macosx_12_0_arm64.whl
Size 1.4 MB
Tags CPython 3.13 macOS 12.0+ ARM64
SHA-256 checksum
How to use checksums
48890929cea4c4a87e579b27b1c3779ea6da9e7b44964f476007cde66baaa5db
BLAKE2b-256 checksum
How to use checksums
90472117d4112c48e51f0b244f1853a09956b4cea81f074b1202fc29a30db277
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / optvl-2.5.0-cp312-cp312-win_arm64.whl

Download URL optvl-2.5.0-cp312-cp312-win_arm64.whl
Size 2.3 MB
Tags CPython 3.12 Windows ARM64
SHA-256 checksum
How to use checksums
e23eafd8ea7e83a5e589f045e632f9c472c87c9c29f356bf087b2fcbc321905c
BLAKE2b-256 checksum
How to use checksums
e406b85d20095ffe662cf82f0da8ab4490985f326a54328532d71e3f00c48d9b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / optvl-2.5.0-cp312-cp312-win_amd64.whl

Download URL optvl-2.5.0-cp312-cp312-win_amd64.whl
Size 846.9 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
daca7bf3593f4af194f9235595a62f3df7f4fd1e7f9bbcd976cec5d8538f0a19
BLAKE2b-256 checksum
How to use checksums
e7cfcbd3e51f6758104346aa30d7ae9e55890fea6cf47f10d49f876eaa3b5a2a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / optvl-2.5.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL optvl-2.5.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 2.5 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
8227c4af58b99e9de7d8543ff1bb855ae855d154912efd18675ac57405143fe2
BLAKE2b-256 checksum
How to use checksums
8e45d951dc996b5ed1df63baaf63fb2703b7f50d394e57a789a33638094c6088
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / optvl-2.5.0-cp312-cp312-macosx_12_0_arm64.whl

Download URL optvl-2.5.0-cp312-cp312-macosx_12_0_arm64.whl
Size 1.4 MB
Tags CPython 3.12 macOS 12.0+ ARM64
SHA-256 checksum
How to use checksums
f4b1cd8967971e4ae4b704fe9ba1c4e9bd124ea9be5d58ba90a145c5d49bb7cb
BLAKE2b-256 checksum
How to use checksums
0f447f02d99f42004e874a9d9011b4c6ab1186dabbfec761ce280d3d6197c8a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / optvl-2.5.0-cp311-cp311-win_arm64.whl

Download URL optvl-2.5.0-cp311-cp311-win_arm64.whl
Size 2.3 MB
Tags CPython 3.11 Windows ARM64
SHA-256 checksum
How to use checksums
c5514b54100cd6d2588e31a0be9fbdff11e84b457563425676d91753633f439d
BLAKE2b-256 checksum
How to use checksums
b5ca4d1bbf717ac8754e08ba973176c213e5d994156f1b062a899917f65c64c8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / optvl-2.5.0-cp311-cp311-win_amd64.whl

Download URL optvl-2.5.0-cp311-cp311-win_amd64.whl
Size 844.2 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
118867aebb0472f44d4807462f026a29acc6624700af8dc9bbbbebe0a8949ef8
BLAKE2b-256 checksum
How to use checksums
67f719891c5c9e4880c0727685c38bd2b1f7d41856de84256aecd7070fffb3f8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / optvl-2.5.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL optvl-2.5.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 2.5 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
cab7c5d36abc67e05c9e8130e496344ff29246b043ef90d9e5d1d8fc5a028e36
BLAKE2b-256 checksum
How to use checksums
bc0ce8b0027b76c605b094bcced4b8e6c8180392c3d8431d648959caab3b6814
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / optvl-2.5.0-cp311-cp311-macosx_12_0_arm64.whl

Download URL optvl-2.5.0-cp311-cp311-macosx_12_0_arm64.whl
Size 1.4 MB
Tags CPython 3.11 macOS 12.0+ ARM64
SHA-256 checksum
How to use checksums
47b5c914e7831cad1d7d2331aa862d10a911fb419aa25efa870cae61a65ddb8d
BLAKE2b-256 checksum
How to use checksums
4849dd8595338fda610cba58e4c5d4db417d9a53a003999dfd54d0af5e330d4f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / optvl-2.5.0-cp310-cp310-win_amd64.whl

Download URL optvl-2.5.0-cp310-cp310-win_amd64.whl
Size 843.2 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
6c95d1c24b9da101562df8103afd9feb06e5f31cfd81440ecba959fdcf662ff3
BLAKE2b-256 checksum
How to use checksums
4c67163cc22d929c839ce7a1b6de2f356e00f2206cd8cc25628a37bfed59729c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / optvl-2.5.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL optvl-2.5.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 2.5 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
1679074430689441e9b4197c32a8cd67da7bb882e5dfcd5e48d71947bd543c76
BLAKE2b-256 checksum
How to use checksums
248e92b8084e54072647ce6722f090515b3aa3da5fa47b58d2bedb9c4e22c78c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / optvl-2.5.0-cp310-cp310-macosx_12_0_arm64.whl

Download URL optvl-2.5.0-cp310-cp310-macosx_12_0_arm64.whl
Size 1.4 MB
Tags CPython 3.10 macOS 12.0+ ARM64
SHA-256 checksum
How to use checksums
dbb4b70f7918303820177860a0214913fc8a50e5e29fd226e43e66960c6dc0ee
BLAKE2b-256 checksum
How to use checksums
e3677fedaa1f290caf0a2b3f587a9ef4c148ffe534a103549288e664a0732d5a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / optvl-2.5.0-cp39-cp39-win_amd64.whl

Download URL optvl-2.5.0-cp39-cp39-win_amd64.whl
Size 843.2 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
76acf89d87dc7906792bb81f553b8487ee01816646da08ed109f36662f306cff
BLAKE2b-256 checksum
How to use checksums
1bfcacb2dab8be2e7cdd1e88daa7e3b2aed9ea6b6974ee0150fcd7d420342153
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / optvl-2.5.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL optvl-2.5.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 2.5 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
a57771ecfbee9544142cc09cea21a4bbb0f3f88b8f82a50b23422087a091155f
BLAKE2b-256 checksum
How to use checksums
39fdc8f8164183e79781bc12d6319585e14cf2f49d0530604b0e226c7c6ad1b7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / optvl-2.5.0-cp39-cp39-macosx_12_0_arm64.whl

Download URL optvl-2.5.0-cp39-cp39-macosx_12_0_arm64.whl
Size 1.4 MB
Tags CPython 3.9 macOS 12.0+ ARM64
SHA-256 checksum
How to use checksums
bdfd450bd981296ad24c67238f8a81f6dff9d3620bf63eb973f1ff34f32471a3
BLAKE2b-256 checksum
How to use checksums
bc4dd8f1c2f4e7165de762190b3a6a5becdd32a09fc257991772673768943f68
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release history Release notifications | RSS feed

This release

2.5.0 This release

22 release files

2.3.0

20 release files

2.2.4

20 release files

2.2.3

20 release files

2.2.2

20 release files

2.2.1

20 release files

2.1.1

20 release files

2.1.0

20 release files

2.0.0

20 release files

1.4.2

20 release files

1.4.1

20 release files

1.4.0

20 release files

1.2.1

20 release files

1.0.0

20 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page