Skip to main content

A modified version of Mark Drela and Harold Youngren's famous AVL code with a direct Python interface and gradient based optimization support.

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

optvl-2.5.0-cp314-cp314-win_arm64.whl (2.4 MB view details)

Uploaded CPython 3.14Windows ARM64

optvl-2.5.0-cp314-cp314-win_amd64.whl (861.3 kB view details)

Uploaded CPython 3.14Windows x86-64

optvl-2.5.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

optvl-2.5.0-cp314-cp314-macosx_12_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.14macOS 12.0+ ARM64

optvl-2.5.0-cp313-cp313-win_arm64.whl (2.3 MB view details)

Uploaded CPython 3.13Windows ARM64

optvl-2.5.0-cp313-cp313-win_amd64.whl (846.9 kB view details)

Uploaded CPython 3.13Windows x86-64

optvl-2.5.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

optvl-2.5.0-cp313-cp313-macosx_12_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.13macOS 12.0+ ARM64

optvl-2.5.0-cp312-cp312-win_arm64.whl (2.3 MB view details)

Uploaded CPython 3.12Windows ARM64

optvl-2.5.0-cp312-cp312-win_amd64.whl (846.9 kB view details)

Uploaded CPython 3.12Windows x86-64

optvl-2.5.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

optvl-2.5.0-cp312-cp312-macosx_12_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.12macOS 12.0+ ARM64

optvl-2.5.0-cp311-cp311-win_arm64.whl (2.3 MB view details)

Uploaded CPython 3.11Windows ARM64

optvl-2.5.0-cp311-cp311-win_amd64.whl (844.2 kB view details)

Uploaded CPython 3.11Windows x86-64

optvl-2.5.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

optvl-2.5.0-cp311-cp311-macosx_12_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.11macOS 12.0+ ARM64

optvl-2.5.0-cp310-cp310-win_amd64.whl (843.2 kB view details)

Uploaded CPython 3.10Windows x86-64

optvl-2.5.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

optvl-2.5.0-cp310-cp310-macosx_12_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.10macOS 12.0+ ARM64

optvl-2.5.0-cp39-cp39-win_amd64.whl (843.2 kB view details)

Uploaded CPython 3.9Windows x86-64

optvl-2.5.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

optvl-2.5.0-cp39-cp39-macosx_12_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.9macOS 12.0+ ARM64

File details

Details for the file optvl-2.5.0-cp314-cp314-win_arm64.whl.

File metadata

  • Download URL: optvl-2.5.0-cp314-cp314-win_arm64.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: CPython 3.14, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for optvl-2.5.0-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 79ddf2eba1cf424308c95c9f0e8a5a2fa21a03d5005ae8ef7da0f85aa803e2dd
MD5 0d2512843fee0f9d908ddd84de2acdcc
BLAKE2b-256 49c92cad5918bde193274ebad30d5c078a9d3de9434f2fa5345a25e5320bcca0

See more details on using hashes here.

File details

Details for the file optvl-2.5.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: optvl-2.5.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 861.3 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for optvl-2.5.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 7d7cb617c786e7744a627c69d639e7d595f6206943b69c2a55995ce8ad185800
MD5 5f108b58ae85a57393847ad504bf7b6b
BLAKE2b-256 c512f6630312759deef094843475849ecfb26c4b528b4b0803c59b9ff5736f7d

See more details on using hashes here.

File details

Details for the file optvl-2.5.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for optvl-2.5.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 15349cf0f74399f32ef116a83dd8fe895639330e37dee421d12ab52766010a1d
MD5 d6809121eca5917e1c30d55ab09e7d08
BLAKE2b-256 24d33f6170246adfd84da9c03e51201ed39fe3f4b205c398acdb60deaba89ccd

See more details on using hashes here.

File details

Details for the file optvl-2.5.0-cp314-cp314-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for optvl-2.5.0-cp314-cp314-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 8bf7f92aa6b0139c2f131be09f88bf65ff86cc9c8075ab5cac3f7f4e25a3a324
MD5 bfad440a9692b2192b3522dfca65e230
BLAKE2b-256 e6e706d745c981986fc264e23e82ebbca588bed94437eae4cb65b0a730fcd941

See more details on using hashes here.

File details

Details for the file optvl-2.5.0-cp313-cp313-win_arm64.whl.

File metadata

  • Download URL: optvl-2.5.0-cp313-cp313-win_arm64.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: CPython 3.13, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for optvl-2.5.0-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 2575c5ded8b5669752fbf991eb904fd4431efe1cedb47dbd64581394e67db57e
MD5 789d5514294805ea7a610d932404d903
BLAKE2b-256 90c76084888f5af2c98b6e76e4386fe89049dbb23cc71a66f9c413a769d60717

See more details on using hashes here.

File details

Details for the file optvl-2.5.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: optvl-2.5.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 846.9 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for optvl-2.5.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 7385c26df78b359b671f2f5ced0392dc1fcb15340bca95f611e277fb15df5da3
MD5 a3389acc4a0dcf01e7e5bb7fd27e636d
BLAKE2b-256 b0d6938dee71b2f95b626ee1596b1f2079d37d114a7e80a28a3dec2a61ac3495

See more details on using hashes here.

File details

Details for the file optvl-2.5.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for optvl-2.5.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 90fefeb0796dbb543afe991f51cce15039eb01783e83119771970a1c506563ec
MD5 9733b3c28cc0ef91e2516f3f76d2ec49
BLAKE2b-256 73c9d1856fe7c380df5c653a56a364e775d3c8c757f9bd268e7347de7ab612bd

See more details on using hashes here.

File details

Details for the file optvl-2.5.0-cp313-cp313-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for optvl-2.5.0-cp313-cp313-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 48890929cea4c4a87e579b27b1c3779ea6da9e7b44964f476007cde66baaa5db
MD5 05875fc264774e9bc189fae22a063ba0
BLAKE2b-256 90472117d4112c48e51f0b244f1853a09956b4cea81f074b1202fc29a30db277

See more details on using hashes here.

File details

Details for the file optvl-2.5.0-cp312-cp312-win_arm64.whl.

File metadata

  • Download URL: optvl-2.5.0-cp312-cp312-win_arm64.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: CPython 3.12, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for optvl-2.5.0-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 e23eafd8ea7e83a5e589f045e632f9c472c87c9c29f356bf087b2fcbc321905c
MD5 22b5116a30acd1d30ee6f433896720a3
BLAKE2b-256 e406b85d20095ffe662cf82f0da8ab4490985f326a54328532d71e3f00c48d9b

See more details on using hashes here.

File details

Details for the file optvl-2.5.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: optvl-2.5.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 846.9 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for optvl-2.5.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 daca7bf3593f4af194f9235595a62f3df7f4fd1e7f9bbcd976cec5d8538f0a19
MD5 e2d5ac9b91df23192a486f5cba2ee37c
BLAKE2b-256 e7cfcbd3e51f6758104346aa30d7ae9e55890fea6cf47f10d49f876eaa3b5a2a

See more details on using hashes here.

File details

Details for the file optvl-2.5.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for optvl-2.5.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 8227c4af58b99e9de7d8543ff1bb855ae855d154912efd18675ac57405143fe2
MD5 b88fb343b13e5ea301ea1c40e4f82f34
BLAKE2b-256 8e45d951dc996b5ed1df63baaf63fb2703b7f50d394e57a789a33638094c6088

See more details on using hashes here.

File details

Details for the file optvl-2.5.0-cp312-cp312-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for optvl-2.5.0-cp312-cp312-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 f4b1cd8967971e4ae4b704fe9ba1c4e9bd124ea9be5d58ba90a145c5d49bb7cb
MD5 9be765bff9c7f9fe521e07d0158d0eba
BLAKE2b-256 0f447f02d99f42004e874a9d9011b4c6ab1186dabbfec761ce280d3d6197c8a7

See more details on using hashes here.

File details

Details for the file optvl-2.5.0-cp311-cp311-win_arm64.whl.

File metadata

  • Download URL: optvl-2.5.0-cp311-cp311-win_arm64.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: CPython 3.11, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for optvl-2.5.0-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 c5514b54100cd6d2588e31a0be9fbdff11e84b457563425676d91753633f439d
MD5 2b9b1b53f5935941d920d2cff1f21469
BLAKE2b-256 b5ca4d1bbf717ac8754e08ba973176c213e5d994156f1b062a899917f65c64c8

See more details on using hashes here.

File details

Details for the file optvl-2.5.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: optvl-2.5.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 844.2 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for optvl-2.5.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 118867aebb0472f44d4807462f026a29acc6624700af8dc9bbbbebe0a8949ef8
MD5 ea0e11d6566b6fba956fab1c6aae564f
BLAKE2b-256 67f719891c5c9e4880c0727685c38bd2b1f7d41856de84256aecd7070fffb3f8

See more details on using hashes here.

File details

Details for the file optvl-2.5.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for optvl-2.5.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 cab7c5d36abc67e05c9e8130e496344ff29246b043ef90d9e5d1d8fc5a028e36
MD5 9da98324cbbe92574ffbd228c2615688
BLAKE2b-256 bc0ce8b0027b76c605b094bcced4b8e6c8180392c3d8431d648959caab3b6814

See more details on using hashes here.

File details

Details for the file optvl-2.5.0-cp311-cp311-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for optvl-2.5.0-cp311-cp311-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 47b5c914e7831cad1d7d2331aa862d10a911fb419aa25efa870cae61a65ddb8d
MD5 307fa797f99e59ca85f41c599d076795
BLAKE2b-256 4849dd8595338fda610cba58e4c5d4db417d9a53a003999dfd54d0af5e330d4f

See more details on using hashes here.

File details

Details for the file optvl-2.5.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: optvl-2.5.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 843.2 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for optvl-2.5.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 6c95d1c24b9da101562df8103afd9feb06e5f31cfd81440ecba959fdcf662ff3
MD5 9e8967f3bb040fee0e3d55f18081bccf
BLAKE2b-256 4c67163cc22d929c839ce7a1b6de2f356e00f2206cd8cc25628a37bfed59729c

See more details on using hashes here.

File details

Details for the file optvl-2.5.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for optvl-2.5.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 1679074430689441e9b4197c32a8cd67da7bb882e5dfcd5e48d71947bd543c76
MD5 7b26ace71a8d59701685e3ec91084fb4
BLAKE2b-256 248e92b8084e54072647ce6722f090515b3aa3da5fa47b58d2bedb9c4e22c78c

See more details on using hashes here.

File details

Details for the file optvl-2.5.0-cp310-cp310-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for optvl-2.5.0-cp310-cp310-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 dbb4b70f7918303820177860a0214913fc8a50e5e29fd226e43e66960c6dc0ee
MD5 6dec9fe92d74a1bfdccc35d688f4531d
BLAKE2b-256 e3677fedaa1f290caf0a2b3f587a9ef4c148ffe534a103549288e664a0732d5a

See more details on using hashes here.

File details

Details for the file optvl-2.5.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: optvl-2.5.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 843.2 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for optvl-2.5.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 76acf89d87dc7906792bb81f553b8487ee01816646da08ed109f36662f306cff
MD5 7dead5e809b9f239d4c2fda23e6d7bb5
BLAKE2b-256 1bfcacb2dab8be2e7cdd1e88daa7e3b2aed9ea6b6974ee0150fcd7d420342153

See more details on using hashes here.

File details

Details for the file optvl-2.5.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for optvl-2.5.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 a57771ecfbee9544142cc09cea21a4bbb0f3f88b8f82a50b23422087a091155f
MD5 7dadf1f55ff7d3f12abf2f0ff3ce5d21
BLAKE2b-256 39fdc8f8164183e79781bc12d6319585e14cf2f49d0530604b0e226c7c6ad1b7

See more details on using hashes here.

File details

Details for the file optvl-2.5.0-cp39-cp39-macosx_12_0_arm64.whl.

File metadata

  • Download URL: optvl-2.5.0-cp39-cp39-macosx_12_0_arm64.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: CPython 3.9, macOS 12.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for optvl-2.5.0-cp39-cp39-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 bdfd450bd981296ad24c67238f8a81f6dff9d3620bf63eb973f1ff34f32471a3
MD5 b8a00d2a3f69ab7ca85c2ef02a4a7bee
BLAKE2b-256 bc4dd8f1c2f4e7165de762190b3a6a5becdd32a09fc257991772673768943f68

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page