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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13macOS 12.0+ ARM64

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

Uploaded CPython 3.13macOS 10.14+ x86-64

optvl-2.2.1-cp312-cp312-win_amd64.whl (808.0 kB view details)

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12macOS 12.0+ ARM64

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

Uploaded CPython 3.12macOS 10.14+ x86-64

optvl-2.2.1-cp311-cp311-win_amd64.whl (807.8 kB view details)

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11macOS 12.0+ ARM64

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

Uploaded CPython 3.11macOS 10.14+ x86-64

optvl-2.2.1-cp310-cp310-win_amd64.whl (807.2 kB view details)

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10macOS 12.0+ ARM64

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

Uploaded CPython 3.10macOS 10.14+ x86-64

optvl-2.2.1-cp39-cp39-win_amd64.whl (807.2 kB view details)

Uploaded CPython 3.9Windows x86-64

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

Uploaded CPython 3.9macOS 12.0+ ARM64

optvl-2.2.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.2.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: optvl-2.2.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 808.0 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.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 7455fb3d280c45db347af476598cec5645d1dea1cb31b0cac37f5ff90963f7ee
MD5 d69f3ac657bb68e497d1243211bf3d6d
BLAKE2b-256 3c582794c138983cec15aa599018f09711c475aaf1a74f006129938e73956ad8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 398cf014d394f579785266dd50f1a79566947384f743207918e25a162c0296d5
MD5 78a7917a4d5768f4c9c5033c7e7d1186
BLAKE2b-256 2a1c011d3904e9dee17e882e5762db636178dd2648e7da876450a4039057606c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.1-cp313-cp313-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 a59457bac40f5a5dd801bff563b4358cbe477c5fce8c2bbc76094fefafbc3bea
MD5 a36cfc66222924054e0f4b838aeb9bb6
BLAKE2b-256 4c76c9af7f7ec75d0396fb7c38b0eefd9431789c265507e1b9fc4a927640f709

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.1-cp313-cp313-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 6458a2eee3a2add87a1430be38f6447ac1efa7552b3d05e638378a88c6149628
MD5 ad3b664ba77bf27d5d3f42750a5ab804
BLAKE2b-256 216754986534e6713c6793b140e30a85d5d140f569d3fb81461edaf9779f7c76

See more details on using hashes here.

File details

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

File metadata

  • Download URL: optvl-2.2.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 808.0 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.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 732b8285531d4becd7db0dc1cb4c9e14dc263f2ba77a6ea013b3dc7cbe2f9073
MD5 d6dfa58ca4f935d9793977e1b294210a
BLAKE2b-256 810668a4d3585c048e4bb46e693243530fb27bc4ce9729d377a119b15180632a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 36d713b9cab639cd71e3e454e198bcf1aa3c1e24318b0816f8e89f1e5b0f5700
MD5 a5040033370dceec4d6aa6b948375398
BLAKE2b-256 f96ce8caa4e23de1337b5efbff407e3ff828c861d3e6f6795668f87487569cbf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.1-cp312-cp312-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 05a042fdb054da068fe864c54a86263f9e7e3a56bb485a46c6ad66c1805b8c93
MD5 645232894d565ad49f11f87a3427845c
BLAKE2b-256 e1ded21ac7e9cc35e1e735e28da9e0d00e9a23f09ea21bc42da36c0d973c44bd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.1-cp312-cp312-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 498a87b8f3bae507561e82353e8d4bbcd80613030cfb21f3ab6800d309105d8a
MD5 35fc5a4d516d094da98420f1d2784482
BLAKE2b-256 390d6996b0d886102de74651659ebc61ceef9f7ff117d2d87c550c492725c56a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: optvl-2.2.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 807.8 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.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e1e18d5fad21b729ee491a22e26743be6c197ed658d5d81792fdd5a5004ef7dc
MD5 d19259554741e7b54a5c3b77f925a53b
BLAKE2b-256 c5fd52cdd1f15fd1e7422e041585095acfd11e36eba45e0fcb33e084d33d6ede

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 3a876d4388210900e4c294d765f7f28abc4c4ff666382bfc73d5d20c90cdb616
MD5 ae1c64d135bdcad88d9d1c31941cdfc3
BLAKE2b-256 b445e6a8ce42bd02ab29624181caeb76d82c26023cd8d672805270c659015d70

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.1-cp311-cp311-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 e5f21c6303094e1ad3a4e262765a26f99ea2b4777b77a64bb13963c896d6d3b1
MD5 c1406a3421ef4ad0d62a8a7ade471b07
BLAKE2b-256 ae60bcce43579b1f38a9cd7a866069b946d4129511afb14b354c2baf6b3f1dc9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.1-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 fbb8f879da95ffc9b4e382b1546b96d9290d34220a62bea9cea4d64eeae93126
MD5 54dbb8e73753dbfad076c2a08b0d68be
BLAKE2b-256 b3624344a42e798199978f7711fab90007a8a2855e98e6f9db980161226048aa

See more details on using hashes here.

File details

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

File metadata

  • Download URL: optvl-2.2.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 807.2 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.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 0b463df397d909bf06a6844f0d90c04fa3b51bec4e3c71fe6d32cef9a29c6a60
MD5 0660127523fb10b0ffcfab650106988b
BLAKE2b-256 a39fca250c54b22716ef773c5d1722f9bb4bf8e1aad8fd4d7ed57488e71d2025

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 eadd9229ed1018736f13dfbc55d4444a87964705b1832f807d8c7d4ab0af949a
MD5 fc5e64f2874e251db447744290aba893
BLAKE2b-256 2d5cd302cdf7046c4b23d4c93f3945c33d9ae79d4135ba29f7423f889a012ed9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.1-cp310-cp310-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 06d3701c86ab05a1e4685084493902150df175ff598a856e9377111af6ba5791
MD5 b4018a535f2b1fb8aef0db0f61fb29fc
BLAKE2b-256 4f8d3dfb630a4d64b9f7e68405d513b319d3755e64fe3d4972f4ba0da7b39fc1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.1-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 399dfd0aca124e9a57b285dc23d7b5e6902b39afb5540e62e06773293bfcc760
MD5 5c6baa0fddf44369a8a6153d1b6d8ead
BLAKE2b-256 bc8ee44b46bbb9b5248f32169346c7d02ba62dc4e00089799232dcb3b18f2968

See more details on using hashes here.

File details

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

File metadata

  • Download URL: optvl-2.2.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 807.2 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.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 2db01689d15a70bca9531f4144851c485346237200a24d4730155db1efba1b5e
MD5 6479cef5ac79e1e8d387bd9f773afc00
BLAKE2b-256 ae64b4e3e6b9b33e7800718fed6188ac32695a682b01de3604f53be00ae4bdc0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 d2922049c2583f627ac88c1925690d6d3c52b2b8109d25a12b0254f65f2bee5e
MD5 6a2e4a67dd78290e0cec773676c49779
BLAKE2b-256 09fe4eb9b52be5693f713f1a7f12c3115ad64819879626955b664ff9c7e03291

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.1-cp39-cp39-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 71313f99e9d2642ba4769c013fd4aed538a3c51f43a4cfa4e8375031643ab524
MD5 ee21a968bcd38dfb431a270843d7d662
BLAKE2b-256 90252b620e6e776b8176831be8422b2541adb03f653736816f01fb35d5318db1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.1-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 66f3c15b71ee81f594a84bead948409943ac4d9c4c991b5be74d6bd47cfc2f06
MD5 ab496fbd3dae17979a4153453aad92b8
BLAKE2b-256 1a888a469bbd7f0d13a47378fcf56f99bcdccf5e1528dcec46a77f2b0c0f4f4a

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