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}'
)

# lets look at the cp countours
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.2.2-cp313-cp313-win_amd64.whl (808.1 kB view details)

Uploaded CPython 3.13Windows x86-64

optvl-2.2.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.13macOS 12.0+ ARM64

optvl-2.2.2-cp313-cp313-macosx_10_14_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.13macOS 10.14+ x86-64

optvl-2.2.2-cp312-cp312-win_amd64.whl (808.1 kB view details)

Uploaded CPython 3.12Windows x86-64

optvl-2.2.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.12macOS 12.0+ ARM64

optvl-2.2.2-cp312-cp312-macosx_10_14_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.12macOS 10.14+ x86-64

optvl-2.2.2-cp311-cp311-win_amd64.whl (807.9 kB view details)

Uploaded CPython 3.11Windows x86-64

optvl-2.2.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.11macOS 12.0+ ARM64

optvl-2.2.2-cp311-cp311-macosx_10_14_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.11macOS 10.14+ x86-64

optvl-2.2.2-cp310-cp310-win_amd64.whl (807.3 kB view details)

Uploaded CPython 3.10Windows x86-64

optvl-2.2.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.10macOS 12.0+ ARM64

optvl-2.2.2-cp310-cp310-macosx_10_14_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.10macOS 10.14+ x86-64

optvl-2.2.2-cp39-cp39-win_amd64.whl (807.3 kB view details)

Uploaded CPython 3.9Windows x86-64

optvl-2.2.2-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.9macOS 12.0+ ARM64

optvl-2.2.2-cp39-cp39-macosx_10_14_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.9macOS 10.14+ x86-64

File details

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

File metadata

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

File hashes

Hashes for optvl-2.2.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 62567d8a4fa40977e8b7347a6fa2fd29d9207e5ac91ac56e2a31389b37fa5c95
MD5 06a584fee7fc99aea2369fe69b9e91a8
BLAKE2b-256 a212ebc2621a5235c48834144a3482b4337a8b10a86bdb376c5da575446d84e4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 1dba824ab74410bec557f90fbb6f5687deda03b99314ea933cd6e94ef5c1d7d3
MD5 66bf28f3236819f8918a665048ea4f44
BLAKE2b-256 cb2e11a23d6da94cda9a97bbbf87e35af6280caef8c437d5727140768b0fb129

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.2-cp313-cp313-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 146e523fa129bb85b637c295f924174bbe7effa4ea961fd43f62eea580e6125c
MD5 1173ef77724bf49eb39a21bec171e772
BLAKE2b-256 efdb02f5f60d6a19df00ce3b37bd81c39e5795c44b48eaa56753dc667b32c6b7

See more details on using hashes here.

File details

Details for the file optvl-2.2.2-cp313-cp313-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for optvl-2.2.2-cp313-cp313-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 384661429e52c20fd98f5f9acdc9b8850368153d11102150747dc024a2865a88
MD5 b828f1d84abb64eb7fbc70f13ec11bbc
BLAKE2b-256 43e6e2e3e49253d0900695bc20378c42fa83fff5d18a02b6d9c444ab9fd59c2d

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for optvl-2.2.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 dcda8fe7c287f81b9472c6047867557c2d910a263238d8376e13cabaa173969e
MD5 a298f39dbf844d2206078fe883c5ba84
BLAKE2b-256 c7c9777dcefb896112a9c3dccf7647454da8169bf34dd1eba46cbc17e6695982

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 2db357a2f961b4b5165dc3835c6f0ba7667df81ae0376660f8ad701144501099
MD5 6b790ebf67fa334a78048b5789a51f0c
BLAKE2b-256 a6a299b1e9609f7c62e326222d079609401cf28fc3eebfb462bb29cfe34c037e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.2-cp312-cp312-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 6af45cd552ae40e71f10ee97a985dad033d28e7d0d989f8b8747dbf11136d881
MD5 4f52c240664041603c7b9c19223d87d9
BLAKE2b-256 12fefe8b5c991d2368b8bae41b9cad04d32f628ca35aead0f363a28c05889efa

See more details on using hashes here.

File details

Details for the file optvl-2.2.2-cp312-cp312-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for optvl-2.2.2-cp312-cp312-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 05946d26332fdef357fd758cef70502595231d698d61dcc6cf2c1cb0ab1a2a03
MD5 ff34e06d7d3b4ff68e96e70f08545d62
BLAKE2b-256 4eacc802a782d7a5fb7bfbcd0843783fa8a607835990835204ec8a39c44f8be7

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for optvl-2.2.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 444ccbb77806f4ea72dace5df9962491f81b52aa17b5ddf2c5dedb13627c037d
MD5 17416146e3b38d84e2d6cd6c8f34def4
BLAKE2b-256 a6ea61b496302cc175ed4e3644c1ae6b2b5f3373bf91d4d3dc0fb047e4f551bc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 24cf32684fbf037353dfc2b1a229d17d4cc63e54bff8232db3879bbdba17a2d8
MD5 e39d9a4e6edd547e6e2bac70d485f57f
BLAKE2b-256 46f708c2bbd63ce20dff41b8240242520c0651a09bc6ce200eaf3e22b104ef0a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.2-cp311-cp311-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 e14017bfe8fe1ebf7d6aa0b685f6b6809a1a524750d5a074b2432ecb49d1865e
MD5 3e3224781ebd13cf01425568f13baf76
BLAKE2b-256 b392315d7f375e98919b424fa23d69514c02dc9b60b8622fda5c9c13c34374ba

See more details on using hashes here.

File details

Details for the file optvl-2.2.2-cp311-cp311-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for optvl-2.2.2-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 f2cab60f26038748dc1ee4f84c9da47469c9b889b4d2832f0d8bc669fee74838
MD5 b02a33f200a2be1c8d6f2c2697885b66
BLAKE2b-256 15dce5f0decd25fe6e25ff3ba01767823c1fb05dbd9f3b3bd5ebe087c60fe54c

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for optvl-2.2.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f2d1560b90913d0ecf96c7da4c85d70434e821f48e67f0b313a8893255b167a9
MD5 e4758742a9ddc81ba0ebecb0d99db519
BLAKE2b-256 ca21c595ea4e0a47739cde737b0416552c8d5c991ff3f13558b7837ce4e51813

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 5cdd499ea7c271953971af5b739420ac2eb8c3683a504a52d29f86e0a4985e41
MD5 fc9c0c9c2b97d0f092a19e02384a5d60
BLAKE2b-256 95df0b5532262ea1db37592771c2efeb2319ca0194a407ac9fefbf4896ae3fde

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.2-cp310-cp310-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 8a940758a4fdbc60a45e7a3cd933be5820e307f77f110243084f3a7285c96919
MD5 cbafc31a43e853c8b5e324f99461e542
BLAKE2b-256 39d2bd8ffeca65eecf35b51ff7162f239d4d3411cd2dc19240e9dd25a10d9854

See more details on using hashes here.

File details

Details for the file optvl-2.2.2-cp310-cp310-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for optvl-2.2.2-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 f0bed00247af0a34c3e584b2a57ca143aaa988b9b529110c19edd8860f3ca403
MD5 8b6f26c9af9b80e1b2a59e6b2709c8fe
BLAKE2b-256 ec3ac3f7788d39478e722707a614133560dff0da61962bec2d0945b8f3f0f901

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for optvl-2.2.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 62ff7ace9c3076db6b486f6a41368c4f7074804a727aaf902d3f728974e46537
MD5 6ce8e7cf4a747389a5132050dc3f217e
BLAKE2b-256 70165b89d55416de90a351b430dc520f35383d272ef51879eac99f8130e85852

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.2-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 70764657e9c2ea99fcbebd8be021c74432aa1e07deafe8ea76004546b2006513
MD5 bee1fa69c3cc34211398fb2b84f75c6e
BLAKE2b-256 16b9ce7adf42f9bad9cb3da370f24892ac1b5564efb3700a7dd72ace164a2e81

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.2-cp39-cp39-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 eccb09057e68b6bc16537dfb74ee8d056064d560e20598347da68f857d3cfcd8
MD5 27f6ec526b615490c4622db6f593aade
BLAKE2b-256 d67ef339f55321f4a3fe0c37330aef4c47fb997cf32d6985a2276efe3c8cb64e

See more details on using hashes here.

File details

Details for the file optvl-2.2.2-cp39-cp39-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for optvl-2.2.2-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 c173ef0914877155382f52aebf24c8e3deea5c4dadeba7bbfdb76b22b033f321
MD5 d2745b0fb24e841895adf203ca08f29c
BLAKE2b-256 facadd7ee54537b55a3f87375fefe16f48cc7593d87e2393b8c0f4905ad0773c

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