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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13macOS 12.0+ ARM64

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

Uploaded CPython 3.13macOS 10.13+ x86-64

optvl-2.0.1-cp312-cp312-win_amd64.whl (788.5 kB view details)

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12macOS 12.0+ ARM64

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

Uploaded CPython 3.12macOS 10.13+ x86-64

optvl-2.0.1-cp311-cp311-win_amd64.whl (788.3 kB view details)

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11macOS 12.0+ ARM64

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

Uploaded CPython 3.11macOS 10.13+ x86-64

optvl-2.0.1-cp310-cp310-win_amd64.whl (788.1 kB view details)

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10macOS 12.0+ ARM64

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

Uploaded CPython 3.10macOS 10.13+ x86-64

optvl-2.0.1-cp39-cp39-win_amd64.whl (788.0 kB view details)

Uploaded CPython 3.9Windows x86-64

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

Uploaded CPython 3.9macOS 12.0+ ARM64

optvl-2.0.1-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.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: optvl-2.0.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 788.5 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.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 cdcdc023c3c699f65e91e73ef59e9cc2e704ba3d859728d0049819e66e1233f3
MD5 87efa6d525ef1dba9c09689c267444bb
BLAKE2b-256 944517e3b04043448f44399527cf212ee897e9365067cd7158f29069b40cc3af

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.0.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 d2fdae3af4e9650e723458ff31570306f4744150eca4733106983a5a9faed6b5
MD5 3853e8749f1991f37081ef598bdac4ba
BLAKE2b-256 3406afc375994d768ffc2079dffe2a4f5934e1e7f4dbff18fcd2297613d931f5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.0.1-cp313-cp313-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 015f5af7d9c52e014f2c8ce5913a74697dfab70d55792af3820cf72839eb1b0d
MD5 19d274291094ae157a665286b44432c4
BLAKE2b-256 c42426e3811c3f7002888b5027dd7b3c3e2d92929107bfc3bd7c20348ea30fc9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.0.1-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 9720d0393e30bfa0a075d42ebbfd3a2d1e7592eab51c4544a7cc086d3738275d
MD5 5ee1cea02f64776e8d561b3f2b024707
BLAKE2b-256 637926f0e9a22ea08fdeaa101b26917967f226f163970c35cc962ee1867a5ad5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: optvl-2.0.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 788.5 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.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 22e53e569c7550f62017ad1f2b22dc1492b7dd1a56a077ba68fc00b6c84d2aca
MD5 cfd24f95c9b234ef9a4eaf3bad22626c
BLAKE2b-256 7c4effebb09e82f2205909c4ef4475493abe04d64de82902a1f10bdb6c41f4c9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.0.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 d7447c78db72e83493cabd11fa02941b25f1b9228dc9cbc63a30e58d36ac450c
MD5 801b45f1b2f3700a468ed6c7c35c631b
BLAKE2b-256 a339a201804ec30db69cc561812c4d7677996d27d74eb1004f62bc417e480b89

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.0.1-cp312-cp312-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 a0ea1e9fd2b9d42f85eab09d0ec0a95736a068b9b50efa7987b67ace1e6b2475
MD5 fcdb6796df0e84451d9150ad18c277ef
BLAKE2b-256 fb9e465c4ce8ec9d5c1c27839e57c550e1d050f9b21ea2bb4f3210bfb78cec94

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.0.1-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 bf9e162413a8c8530d1bfb08991840c46da407b233bbdc200314e649fa0c958b
MD5 9dcc15f6e99d418e01e917bb18e8d536
BLAKE2b-256 bd7b1f1f8e190d2264f7607ce89d865f5d57ccf7069ca3673c8c6015d90e80b7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: optvl-2.0.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 788.3 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.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 6afa5d238fc909613849c8730a236f34f329a83d630d11b6ce8ac4388366df2f
MD5 b039b3ab2d8c2f03ec1f0f97d9252fb5
BLAKE2b-256 7e54ba90efb09ae0828df5f63c0508769a71c921e3a071c0dcc561d2ea2ddb67

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.0.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 4fc65f6f4f283e0d18ee2770eb893887a35ceaf2c4c8f36acacdebf757f93f30
MD5 3895474632a859a98f6617fa3743bea3
BLAKE2b-256 af83c8e8ba21c55243afd26709a7db15892fb073bb9a5f693f604e73103645b4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.0.1-cp311-cp311-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 18543678ecccbe64f141b75208cd65bdf315549db4cbe5271887bb0c37a042cf
MD5 490f4663ff4560e018362a2c42f4ae59
BLAKE2b-256 8a4baede6d1ee04a9c112c24d2ec9cd18e413a9c784f3e072bd14390e3ba4104

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.0.1-cp311-cp311-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 21428bfb1edac69e13bad141135439ce09fcf3bdecb54bd389615e7c5078fd54
MD5 3e9e647a2ee339e9f3f07c8d122f77b2
BLAKE2b-256 7cb3620311607b7016377147264b4b99b3baef26d6a231ef4e2a89938ea6a52b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: optvl-2.0.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 788.1 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.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f72d55824d8d662f28a23e2df098f2c54b754f5ab32e84f3820847f89a074755
MD5 9266864c2bd9376a13829e3d28225205
BLAKE2b-256 a781bfeb9cce2c1e6456de3ea85a7020b145935f302d5a7b4719455d554c5187

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.0.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 2ca9010e945480daab9d79655fef7ece0d28cbb8612e82814c9a9ef5b9ea7ec9
MD5 3b1596e3e7efa1dd041f785972706a1d
BLAKE2b-256 2a9c49ac3c58efc69f5ab62d05b1665b7bcea68b5ed70dc6b7285eef6ef982ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.0.1-cp310-cp310-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 fca03d4f51f0949e99142cf681eb7d10bc4db7575ac553b8c8a9bedb096461d1
MD5 7ad359293e6e663e4d06cad8cb24fa95
BLAKE2b-256 81af7941708b174c2391a3bd1202c9e9812c89ff23e2d1860c98504ba824ebad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.0.1-cp310-cp310-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 e2dc696bf81ef1584366d710abc2bee5f39d3760e5ba89d80d761ab6926fa1c3
MD5 a2d197d024f044d9ddee28b7867fa97d
BLAKE2b-256 367ea06bea03609263f17cc42d68bad459f141d247c1ac794aeadad204dd2e17

See more details on using hashes here.

File details

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

File metadata

  • Download URL: optvl-2.0.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 788.0 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.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 28887cce973c25c1715b54527fb344b9475b4e5bd1c46269224f1470561b3802
MD5 0b0c5947f21bbf73f828b7c1ab5786da
BLAKE2b-256 1e9b03b395d2b649cd0897c7e7282cf4fd294bdeacd4efa2e467e444e1fe19de

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.0.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 6a1dc8d502790bd5771771688d1c9c0b0612e51a95f8cf03bb51a345aa2248c2
MD5 bd49b4f0d11f176ea4bdb5d46a66c189
BLAKE2b-256 ebc760ed7d84b4e7660c0ac8aef620a3a9ad622b3e87336287ed5453179f97b3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.0.1-cp39-cp39-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 1a189f1d66f5e5ca37d4ed6b7a687f7637adfec070dda8ae1a8907ae5de088ed
MD5 540559c6489aa5087e6736cf024670af
BLAKE2b-256 2bb5a9248e84d13b6a8a1e0ca2ffa48b93e335cc6a387d529f5b7fa6160e8d6a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.0.1-cp39-cp39-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 e58130d1cdb0114628204faff4e1f34207caca90aa2c365433eabcf1837c4eac
MD5 278b5c1967f5aacfab15457564099b7d
BLAKE2b-256 c221f71b65b89d1cdcdeb5e2f597790794db3fe90a1e0b1d80aa5101027a340b

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