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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13macOS 12.0+ ARM64

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

Uploaded CPython 3.13macOS 10.14+ x86-64

optvl-2.2.3-cp312-cp312-win_amd64.whl (808.4 kB view details)

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12macOS 12.0+ ARM64

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

Uploaded CPython 3.12macOS 10.14+ x86-64

optvl-2.2.3-cp311-cp311-win_amd64.whl (808.2 kB view details)

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11macOS 12.0+ ARM64

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

Uploaded CPython 3.11macOS 10.14+ x86-64

optvl-2.2.3-cp310-cp310-win_amd64.whl (807.6 kB view details)

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10macOS 12.0+ ARM64

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

Uploaded CPython 3.10macOS 10.14+ x86-64

optvl-2.2.3-cp39-cp39-win_amd64.whl (807.6 kB view details)

Uploaded CPython 3.9Windows x86-64

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

Uploaded CPython 3.9macOS 12.0+ ARM64

optvl-2.2.3-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.3-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: optvl-2.2.3-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 808.4 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.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 4a06107e85576326c27db1f9859127e5a413a128f9d47db1c53daba8b5c27f86
MD5 d26aec1ffd9459e0b79b3f294ba04516
BLAKE2b-256 37aa81040c7e71a60eda13a472dd1a8f1c569967b288bcb28d06c4e40a2523b0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 ea1b603c9443f096422b1faf66af4182e270343636702c609fa21c839f31d7c3
MD5 bec90d55af19035f0962dee1723272ae
BLAKE2b-256 fd3d98f000d589e7b9aeed1f9cde9f30ae9c184691c5620f5cccbe70031ba7b4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.3-cp313-cp313-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 80dfd35d8e79a45d0dcd762295a0a2e59af1cb27d1a12bf4dcab1792bf231c02
MD5 5410779f27632b555c01585e7c89e11b
BLAKE2b-256 3c74a79bbbab63ae3a8d0effc56b51ca6a677c88f3d239c15a53f28fee9f2d8d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.3-cp313-cp313-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 461fe95e31947651c5f44f691347dabcf96b246b34520d8c0abb113f4cac3cb4
MD5 090a275aebeeaf1010c7771f17638b96
BLAKE2b-256 74b201224df3bb44050311aa04a4267b3616eb5ecb519830a37afaa1ed2fdf12

See more details on using hashes here.

File details

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

File metadata

  • Download URL: optvl-2.2.3-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 808.4 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.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 420975fc6a4ab8e283d65d267997667191bc202328fdc9ba55677b5a8c4cd892
MD5 e127c4375815b9e6f96c77ceadcfc16d
BLAKE2b-256 070ada5427188e7cb2f7b7a2f07e2fbd0fbbe8237815651ef68fc55961760e43

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 e4b449c5f04b6462aac9471d82de4adeae27cc45d430ac7890401b685b440067
MD5 17d7ab36305b637f88c8c0e092d7505f
BLAKE2b-256 a622781f043b7ed6bb8ce1ff19bbe6828e137ac4c24b48da11607b63a773af67

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.3-cp312-cp312-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 2ad4a34780d20673c33504617f7fc4f8dbe49c9eed02f823969181f11b98ccc7
MD5 f9fe9054f79c2040ca0fa4ee90ffa9d2
BLAKE2b-256 528ca5b1af26b02c2450ecd687b90bdc9cf9ccaec0a15435f9c69a84e22a2768

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.3-cp312-cp312-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 8e0dabcaa108d148b06d92fe4e0b1d35639710a7ab33739d08dd30c1ffe4503d
MD5 258562d53e0d85b1bc648891b8f953c4
BLAKE2b-256 367ece9a3e07fced10c87a01c1a1cedfc5d7556457a8e6a7e16a7f85eb44d3e0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: optvl-2.2.3-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 808.2 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.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 92bea515729cd53c63a886d6ccd9f96b1fd92e029233d0328ecb561c1085a8aa
MD5 44c1b5e29b5814f43bbd4ee9d921df19
BLAKE2b-256 4ac985bc7a6b0a9b4ed90318ade92342fa0f0140ee0c6bedfdef3dcce113552a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 0defe42087e129aabba825209f331b00aef867d478f853d6f7b7306a05b646e3
MD5 edc03949930a918d4258221c60480f96
BLAKE2b-256 7002c76000a9c07a5c47461b639fe5db6bad2095611bdee20943d08e4d2ee115

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.3-cp311-cp311-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 c9cba34e1a55319e1c6eb5071dab454e145ebbc34373d96656f8e87e34cc9247
MD5 43793d9abe2bfded6d25e6ffbfd381db
BLAKE2b-256 ae1ee9dc0437a2687ebc5f6e071becf6d1a2d9597ee3082622af3dcf71041d55

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.3-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 86831bf310de73b127a1b8051162556186e630926f0ff3be8940c88eb2afe533
MD5 4f019c7650df7fa49f5b28cab672b476
BLAKE2b-256 44ef15710c811364df19251c46295658c4ad1e998e176a7ca7cbf541622ac948

See more details on using hashes here.

File details

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

File metadata

  • Download URL: optvl-2.2.3-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 807.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.2.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 e4c9ac669caab19c84fd9588723e81dc9733d3dd8927d339943fe0f5821a6ea0
MD5 f3f21450a76bb66427332837e1da4140
BLAKE2b-256 3929a3ee5dd57ae2416ff9a1a202567253f8cc1f7a3109f83949d31cdd0a1a33

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 bcfb2bda96513d1e964bdc6340765765894b80e67c2186fbc3f2dcc3f7dc53db
MD5 4eb7b883cf524498325b0921483d38ba
BLAKE2b-256 c14a03db7d2f20e968e1e910a0a7cd3814876c0249d519c6b65895dd5c74383c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.3-cp310-cp310-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 f4c119c998ff050f2ef11a35366975ec44c78dd934133309e91e18b7ed8efde3
MD5 14d29fed8f7434c85bb4ec7ba75f8743
BLAKE2b-256 29cc926a0b1afe68c0f894c84cb92525f89a03ba2fe8e53526d8a4f5207ae618

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.3-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 34c69f73eaed7dbc4efb27ddc0c0b6cc6d7cb6b8234e25b5d177a11b90cdacfb
MD5 0d9883a03c435b4788d76a73c0578cb0
BLAKE2b-256 0f9b596f89158b87a19604d164d1a11839d9202b9d051839a631af822cb9348d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: optvl-2.2.3-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 807.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.2.3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 a8fa6afc020405c3fc656fbe29b83fb7a059cc0964be8413f83f9b51004d7150
MD5 ba8fc432f837c6d37596e66a014a199b
BLAKE2b-256 4f71ac26e6139f02cbf446971f26a0463d7036cfa1df83cb0c303abb2ceed370

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 7c91e0c3065bac35cd0f9d45741da7159e746778f3efece46c3fa385648bbfce
MD5 e9d10420504ee2ceea3bacaa1793f300
BLAKE2b-256 54d800358290f43d61e721f49b184bc0698ce1ce51838631be8ba2c496c2cd59

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.3-cp39-cp39-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 3dc02795c64b5d0c36c9ca2258826312ceb801e2398fd61637f4b6e52ae8f9e8
MD5 2cdd675dfcdf1ceb267c89feb10fddf6
BLAKE2b-256 a2df9a938299d3d2f6b4c2403cae56fb968781fe02bc3e2347592f01f988fd88

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.3-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 26031536b65074ff77665fe39d37186e0a8e22f1124e95341c2e6a6ebf6c6785
MD5 68f5f5a2011c98418a3d0542ae0f5356
BLAKE2b-256 3bcbf4fe3b3ea3f05756d05eef6b815980c3f13351b93f20e766cfdfb286a70e

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