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=True)

# 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)

ovl.set_control_deflection("Elevator", 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.0.0-cp313-cp313-win_amd64.whl (788.3 kB view details)

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13macOS 12.0+ ARM64

optvl-2.0.0-cp313-cp313-macosx_10_13_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

optvl-2.0.0-cp312-cp312-win_amd64.whl (788.3 kB view details)

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12macOS 12.0+ ARM64

optvl-2.0.0-cp312-cp312-macosx_10_13_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

optvl-2.0.0-cp311-cp311-win_amd64.whl (788.2 kB view details)

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11macOS 12.0+ ARM64

optvl-2.0.0-cp311-cp311-macosx_10_13_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.11macOS 10.13+ x86-64

optvl-2.0.0-cp310-cp310-win_amd64.whl (788.0 kB view details)

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10macOS 12.0+ ARM64

optvl-2.0.0-cp310-cp310-macosx_10_13_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.10macOS 10.13+ x86-64

optvl-2.0.0-cp39-cp39-win_amd64.whl (787.9 kB view details)

Uploaded CPython 3.9Windows x86-64

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

Uploaded CPython 3.9macOS 12.0+ ARM64

optvl-2.0.0-cp39-cp39-macosx_10_13_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.9macOS 10.13+ x86-64

File details

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

File metadata

  • Download URL: optvl-2.0.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 788.3 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.0.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 14b84d01f911523e1228e5e54becc4219131d6eb49377ed35b9f2944f5fdafe7
MD5 3d002bcfaa178b12af05549a348a01a1
BLAKE2b-256 5c12eb815f4cf725973fc5e5d4573e77cd15fea347dc6a83df3cc4dabf045b9e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 b8d5b9cbc17cab24d059a51d1b9144ffa56e522bd3117182d0454f068184a625
MD5 5fae76eb532701a9d28ac8e93279ac86
BLAKE2b-256 96ba58b8d41b3fc9e10222bdd68bf4bc2f18d385f6b3904634866b151bc70c90

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.0.0-cp313-cp313-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 16f9d20be4002389ed0db3bc9557902cc201aeb98c8f5055e47b47c1ff5210ff
MD5 23018e3e26da448d81d8a28a34b9dcc7
BLAKE2b-256 f233fa5f55b7cb1222b7b01a47ccdd2e6aedf24e8bebe73a15436335b82058e0

See more details on using hashes here.

File details

Details for the file optvl-2.0.0-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for optvl-2.0.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 13b5dc4a6f7b58ddeaaaed2eb593b06525173f4ac12491987f75e48f1bda82cd
MD5 21701176634f4cf0bc4b1ef6466185a4
BLAKE2b-256 1edc068b0d3d4ec694d3e2ed56af491736a1616c609ed3ed0d630663aa64522b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: optvl-2.0.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 788.3 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.0.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 6280a3f1c4f487727062a1f93545e400f2135e84fb4781926009d9d3daa5354e
MD5 78103502e6c543f9cf30e3cc76e576e4
BLAKE2b-256 fe50e42bf3e932814956007b76711d986aad3b882dd2fe665a4dd25befac4eef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 b1c9e793c10f33a27defdfe6271efff8d5d3f64e9d2a75e8b27d8c852949e50a
MD5 02e7f2a41b22e3ed41531f61d5c5a1cc
BLAKE2b-256 8b6be9fa90eddaa3a572fbc09e0c59f233eda33b8ccb6f2a3ec2f855b2f82825

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.0.0-cp312-cp312-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 06774c31f43aa35054c9891d32fa330341824a59d2f57d42931e06b0ea1e0726
MD5 d494dc759b7745bcf91f6d8d6f05d134
BLAKE2b-256 7f8927545c644a942f9e1c0c088db8c0b09bf84fdb3dbd7d81f419033401ac0a

See more details on using hashes here.

File details

Details for the file optvl-2.0.0-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for optvl-2.0.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 e3fb3847dd58f6228ae2fe2638010d59e24ee0902b7ccc023801e4da9e7e62f0
MD5 ed170ccff97ad338473dc5ed1665cfc6
BLAKE2b-256 1c8ebb857a9e5a3596c02e4ce9fe68c630ddaf1acf98753a1ac82aee6b7d3e26

See more details on using hashes here.

File details

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

File metadata

  • Download URL: optvl-2.0.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 788.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.0.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 01b587f0fdd04cbc18aea5e2ccbb51d35366d6ebd05bf0343ae3559f32854bbb
MD5 35693f9799067e5d8d4264ff9992fb43
BLAKE2b-256 e85c04bd38fc16bea23f2ba123b1c24160a1c9a9d8f2eaf788b0f8f52112a422

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 48cd4f32887bdd3edd4899ff6a2acf14117c6f51e535f80047cabeb4eb22f010
MD5 64b9d84f25285389833b30f75666e179
BLAKE2b-256 eb9ef384852ae34036ec2825a259d76ee90a46850e0321f031c7631fb9441ae6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.0.0-cp311-cp311-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 fd3d30519550ade1e47f015a8a51f1f9b8ce6896ca511fa1ec8099d80ffa09f8
MD5 9c78547469cc04ac3c19932fd42e4e78
BLAKE2b-256 4e67ff80bbac79eb1b2cd22a98cfd49266f0ce552d7601af65efc7e643a0cfb5

See more details on using hashes here.

File details

Details for the file optvl-2.0.0-cp311-cp311-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for optvl-2.0.0-cp311-cp311-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 43eb86b0cb9a71fcf00d30d693bdbb36ce8dc896ead9473d17ca5e72ce8d0069
MD5 43db09bf9bf13d502e4e09b36493eb91
BLAKE2b-256 32aae007df14a9a454fa48b9cf65acabf6349b86710a2f1de58f97019281b479

See more details on using hashes here.

File details

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

File metadata

  • Download URL: optvl-2.0.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 788.0 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.0.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 c64cdf88847a7f1e1adc9d071db7fc367772fbf1ad99fa63794d6d4c462e5a86
MD5 10dafd76a016122c078fbb1766c179a4
BLAKE2b-256 3807cf7fdd70e492b030b7cb84f7553374c318d089e8da843f085ee02af40ca2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 449ebe3c70d12b85ca297c46ad7dfc9e4c3f99a3b3260bbef1e683c219cd5a2f
MD5 c0db31ecd1541cecd658cc78f8f97612
BLAKE2b-256 7c6ec441f27b2fad34c311055d48ff78b62a93d5df9213d76ed82e1e5e9db6c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.0.0-cp310-cp310-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 d18b207aeca16c85e451e12e701b2297f969b0e035d3377f083130722fc95ef9
MD5 e555a2f484aaacecf16e6d0dbd1c36b3
BLAKE2b-256 0c23be978afb641f0a62ab07f4b51029a9cd213d3ab684e52a29e1e07766dc63

See more details on using hashes here.

File details

Details for the file optvl-2.0.0-cp310-cp310-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for optvl-2.0.0-cp310-cp310-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 3c526512665023877ea51a61a51abd11ea6d3d84e8d634cccbfd071a6de193ae
MD5 62e9477c80ac446551e182c7a78f8092
BLAKE2b-256 3517e57e4996d1c820eb8ef864233e21447e97336a66f2e060c81be64db03bea

See more details on using hashes here.

File details

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

File metadata

  • Download URL: optvl-2.0.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 787.9 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.0.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 46c4fa501c0db1588171327aadf481cbbf8cdfc18ffcf6d16034bc5abb19b228
MD5 c781c3fb65dc220e98f4f67be9e80cd2
BLAKE2b-256 64a94b5e448312493f74b6bc286df60910b60bfd63a48351ca697d2d30859def

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.0.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 27206f00eaac2c0024baaecd190465ee43ff936602d6a10921ece1d54f85e8a1
MD5 10034bf5c29feb0aa845fcb0d2c2ed6b
BLAKE2b-256 9a7bc137635ef1273d0b06f5390dba7f4f7b7fb3a2e0abc148500292bd8ef7dd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.0.0-cp39-cp39-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 4e4877185616be555f2125edac68efd26351c8874110287d4845819784e9038d
MD5 1454ecfda6179673971a0c1e2a7e8f2a
BLAKE2b-256 f588bd0473f406971fffe1204abb7372136a65d7cb985275a3c0aa7c4cf5f2c4

See more details on using hashes here.

File details

Details for the file optvl-2.0.0-cp39-cp39-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for optvl-2.0.0-cp39-cp39-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 a156904b12486d3f4fde4f7de256a092679354067e6e0b1d220b3d4735db7f7b
MD5 dfdd25e08ae5475988ed5a5a741f4439
BLAKE2b-256 316d863949b8ce62273f81e0bfe2c5dccc73d9c6925dc80542bbf0655236d042

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