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.1.1-cp313-cp313-win_amd64.whl (789.2 kB view details)

Uploaded CPython 3.13Windows x86-64

optvl-2.1.1-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.1.1-cp313-cp313-macosx_12_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.13macOS 12.0+ ARM64

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

Uploaded CPython 3.13macOS 10.14+ x86-64

optvl-2.1.1-cp312-cp312-win_amd64.whl (789.2 kB view details)

Uploaded CPython 3.12Windows x86-64

optvl-2.1.1-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.1.1-cp312-cp312-macosx_12_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.12macOS 12.0+ ARM64

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

Uploaded CPython 3.12macOS 10.14+ x86-64

optvl-2.1.1-cp311-cp311-win_amd64.whl (788.9 kB view details)

Uploaded CPython 3.11Windows x86-64

optvl-2.1.1-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.1.1-cp311-cp311-macosx_12_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.11macOS 12.0+ ARM64

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

Uploaded CPython 3.11macOS 10.14+ x86-64

optvl-2.1.1-cp310-cp310-win_amd64.whl (788.6 kB view details)

Uploaded CPython 3.10Windows x86-64

optvl-2.1.1-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.1.1-cp310-cp310-macosx_12_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.10macOS 12.0+ ARM64

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

Uploaded CPython 3.10macOS 10.14+ x86-64

optvl-2.1.1-cp39-cp39-win_amd64.whl (788.6 kB view details)

Uploaded CPython 3.9Windows x86-64

optvl-2.1.1-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.1.1-cp39-cp39-macosx_12_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.9macOS 12.0+ ARM64

optvl-2.1.1-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.1.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: optvl-2.1.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 789.2 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.1.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 a2dc83b23a6da30be589fd5e8d7e7e10a1206a4c7189dc56e914c84750cd9e31
MD5 821459950f5173caefc8441c80b5b0ef
BLAKE2b-256 207b7ab3569dd46289ed536c29f769f8bcd444899ffb525fd042f76e18e34699

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.1.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 f764e502372c44548d38e15044c9c737ef637b2328bd8eb5c3598891ca3d02cc
MD5 289013fbab6b022ac61296182ebc0975
BLAKE2b-256 9b8405f909f7737b9bbdcbd22767ebeec36bb0ba112cd344519ee645aac7761c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.1.1-cp313-cp313-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 cf58540c601565a896377bfc6db986792969a51a59c19accbbdf32ca87d8ce37
MD5 a41a208318c5b03e5c300eb358993657
BLAKE2b-256 1ac4ab325b62f914d181353f5573c6d2cdf967d86d9012766b9388d46768ab8b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.1.1-cp313-cp313-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 a789f2e51777263788b001210c8e694f43d8c6d43bde785773b4d658aea9bae5
MD5 acd74b4317e6c7c1f269afaaf1873761
BLAKE2b-256 a8b9762c036847a76064342035dfc93d3901a87078f1fcc800cfcb2b8f269ac5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: optvl-2.1.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 789.2 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.1.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 3cc8bc1e47b8c1ae3c963786b14ce5154ac838122a922bca776685c5742e5c29
MD5 56c2c6ec041c44c876d55db3e403618a
BLAKE2b-256 cc20ff7d97227819e1db4d10e7eea1fa3e12df387f6d10eb2579dfbf632e191e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.1.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 fda97802d4e1c1fd0f27afc59275131f039d6a28dc5469499ade7ccd7e8a0002
MD5 b901c95c09841ecb8fb0c60161529eb8
BLAKE2b-256 f42ff360dde1f3fbd9b25c625f739d586a481e862addc98b7633d38bfa811698

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.1.1-cp312-cp312-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 72df13ee806bb26e93b986ee528bd0e814ccc09d22f752b8e58dd653f0adf416
MD5 fed64a42e5ec5337c3bc27b98429eba4
BLAKE2b-256 5f50985befe9f0c9ceda0b79289a10fdf62194547c6eaea87df6e5e615918c8c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.1.1-cp312-cp312-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 96160d91fe3eb8a4c47327d1bedbb0c7fe0166982c2c3125ca0ace69bac02ad8
MD5 de2e0a5fff655e06c056e22b56d21f85
BLAKE2b-256 db4c48584e5c34fbeb2514a6b995c735c079df031dc08ef466017760259c4985

See more details on using hashes here.

File details

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

File metadata

  • Download URL: optvl-2.1.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 788.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.1.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ac3988f6385613dc4f62b11678c45fe7bd67849b5e68b668d8439c7c49f9209b
MD5 7d5c00ce01371fd0b020bc08744e7f4c
BLAKE2b-256 d389803fb6bc39916acd0022cb6f701a0a87bf3a134d1f44c761ff69a0fbb914

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 d2513e45a5d44b01f1a5ec0d7cb1389e29699a5df3e8bd9f87f91bd56928ca69
MD5 f8f97b11d586e4e1625f3c2f268a7b55
BLAKE2b-256 58cd9e7a70b2882f395124bdd475745cafd78738137657d5100e816a8759b2a9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.1.1-cp311-cp311-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 a9474c7fed6c3b4d2e34ab506bae5a3dada1c47ff218657db026db8f751a0dc4
MD5 0783ccb9c10f57e71c9d3cc918b57ce8
BLAKE2b-256 30c750050aafd060f665161e1cf60ce3371d5b7b4d44a59c0c06392fadde9005

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.1.1-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 79b050da6f81c135f9309259d69146a58fd84c57f3010a83b78d9f9b6ccc6164
MD5 0f62e3ae17f4b0c9b79268f67250a627
BLAKE2b-256 6a5f229ef4a45d2357e83e0174f607b4812d9ba3147761f5a848aa0acbe9236b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: optvl-2.1.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 788.6 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.1.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 3fee148271a7f6c9aea52a05b9a44f536a68c7582a950ac190b7c27d4044c220
MD5 64a64ac581aaa69aa99dcc44a57be6d3
BLAKE2b-256 726e8a1426d77fea8ea359a8b1d2a0ff3a806662d4a45bb2fa2e279498c8a5f3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.1.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 576292fcb08067b0482ea5dbc9fdfa5f24aa3d3a5614dc7b74fe41fcc493840a
MD5 35e0de481370af661a86aba7fd596da2
BLAKE2b-256 80aec636fe0b8e40aaa8efce34b6abe9fdaa4a7c66d53aa81d5e73ba6cf9a40e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.1.1-cp310-cp310-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 557770743a7d3d694dd48508e342128b801b9445e062b87ec56d821156cd9e3d
MD5 7a5d6ac14e057004d0a714e683bf53d6
BLAKE2b-256 6888dc42ef76c9fd12fd91ab6914d6c9dca84401e7557bc4745f976680b6da32

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.1.1-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 24e3d152214127d8983253d66dbda079959b490a1179951fdcc9bca63109b021
MD5 f00343793c62f65ebc0949aff7f25b87
BLAKE2b-256 fa331ad7d83e3f63a431377548a6ea98902919fc8eaec712a4321ca107fafb0d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: optvl-2.1.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 788.6 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.1.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 f10d39f73c481a9cc51f810f259e8dec0bab0cf88d29d9d9ebafcaaeef8abb30
MD5 84b27c619fdc2a495e6f0c1581b7f749
BLAKE2b-256 4f32438e1fcad6d001ed1f22fee8710681f92c82e0c2b88351838344aef032d9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.1.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 b6354ef253074475b08df57f7b32dc97e8a3dc026c9256f9beab6a7184ac3240
MD5 bda7d36a056af9619e197e42d4e2748d
BLAKE2b-256 a4b24cc17e7c24212157d28f93ef02650b50d1fcc4327e3c51b8e324276fe70d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.1.1-cp39-cp39-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 339d11cf72d017b3e3675a95cd576809b156fedd5a5332d1de5c7c512441d56a
MD5 282250acbc60facf74137267b57e98e1
BLAKE2b-256 cd7ec658c0005f500fabf8ac669f6df947c297548d070cfab7d6f2564b3edbe9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.1.1-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 543013d269f04089fe12b9e1db6db7c3f683ee3e92755f5347fac3657e6a7c57
MD5 79f4e5745d3c11f6e6ecfbbe6c53338d
BLAKE2b-256 73abd3d89025916b824abae7711e3791be95cdbd800d85e5a2ea40d23d2079bf

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