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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13macOS 12.0+ ARM64

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

Uploaded CPython 3.13macOS 10.14+ x86-64

optvl-2.3.0-cp312-cp312-win_amd64.whl (819.9 kB view details)

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12macOS 12.0+ ARM64

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

Uploaded CPython 3.12macOS 10.14+ x86-64

optvl-2.3.0-cp311-cp311-win_amd64.whl (819.7 kB view details)

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11macOS 12.0+ ARM64

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

Uploaded CPython 3.11macOS 10.14+ x86-64

optvl-2.3.0-cp310-cp310-win_amd64.whl (819.3 kB view details)

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10macOS 12.0+ ARM64

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

Uploaded CPython 3.10macOS 10.14+ x86-64

optvl-2.3.0-cp39-cp39-win_amd64.whl (819.2 kB view details)

Uploaded CPython 3.9Windows x86-64

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

Uploaded CPython 3.9macOS 12.0+ ARM64

optvl-2.3.0-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.3.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: optvl-2.3.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 819.9 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.3.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 65b630d6fa08256d6e948f873275cc9e8b1457841e9fc0740fdcbd98f8a5c115
MD5 2c6de2061df72c68b36eff7689f74a16
BLAKE2b-256 6ea96d3b8cc53f07a9a8a1f24e5be05adffd005db992daadb816893e21880d30

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 c6c7240a784f393cd0bbc534a8d78be0d8e840d3e61483097d73e11ac3a2be47
MD5 034544373441aabef26d92bc0f0ae78e
BLAKE2b-256 032c8b14e980b63cb37d6d57a7353ef44a75402ee8f446a8cf8ffb8f9a4eb9e9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.3.0-cp313-cp313-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 a9dfb1fd10d61ca7f3a797d22dbd952efb40173053a62f2a4992f08e5694aeb9
MD5 505a97ded9e5e87bf86839f30ae4417f
BLAKE2b-256 929cc9f02f4d5392120e5c0835c4209b3f57bca328d58f17ef3e1f9831e90e39

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.3.0-cp313-cp313-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 e241112b605c3bbdb3602d7bd122b96dd736d94ba291e18c4c1196f7a3bad3de
MD5 fb99f9d6f375965db512c0ca0b6313ac
BLAKE2b-256 9b495d205ae5a5a8b93fbcd8eae33a86b1c26e1042f383c4d1732b1823b3c633

See more details on using hashes here.

File details

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

File metadata

  • Download URL: optvl-2.3.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 819.9 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.3.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e9ea3b91edc2a813e1fde200c54408e286f1c46fe46118d55fc82df64745b8b7
MD5 26f2a0aa43554b32f1e534344b07c521
BLAKE2b-256 5dcc3f088932339e1d2fafdc7dcb8fe390dd911f925cd2ce8ec9b80bf2eef16d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 57a57022cb42058fcdb98e8f0fbeb21a7f5ead28abc53f9832d4fc217fada445
MD5 7a128155a2cff0e68d8fd0f6bf914d63
BLAKE2b-256 53a32d04d0d90108ffc2a20b65aa8bcefb9a78c2372c4f0ae564871a5f2b06f1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.3.0-cp312-cp312-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 b3fe22f985735d063d76bcdba71cdf4a5438c64f3e1e3b88e85517e653c90abd
MD5 8ab47931065f1b51078621214cfebc41
BLAKE2b-256 ea5af369d7c1ae53c4091019d1bcca909c4cb473444fde65762682e140377c4b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.3.0-cp312-cp312-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 d6ef3de2fa0b0277acf7f8a11c6548809d817e17bdda58d1ab49c99e0509d14a
MD5 1baf171cc405ebf0d33a4426298ea145
BLAKE2b-256 da8acdfe347b037db673a5c690ad17a9731f03d083b43d6ccd12d5ae65579cce

See more details on using hashes here.

File details

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

File metadata

  • Download URL: optvl-2.3.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 819.7 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.3.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 fd4779a9b4864affb1809f4dcd0902dbf21c5cbb809bb1e40e2dc00fa3f1a44d
MD5 477cbdeab71969fe0ad6a273413437bf
BLAKE2b-256 ffef5ec9e7b4e5636e41d192ce31450cee4bed6305fa92506cc18d093e078963

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 7053cae019e782b5f6bbd87efd065da7d4047bd1ae75d0852d2db0aadff4f149
MD5 7dd6b0304e3391baa10f14e93251e708
BLAKE2b-256 1e6d74b9cd441e2381d6225dbcef1400c50d6beb010fb83682a02740b5d72e4b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.3.0-cp311-cp311-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 43dcc4ade902e36728820f6492f22f90e28c1303a61fccbd3de37b14fee4fa0d
MD5 8361c0e0ae32e8106dfce2f68a32f521
BLAKE2b-256 36cae165d495409ed3761078c89a9e78534a6ec7e128cecc6215d269510d9434

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.3.0-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 0b759b7194d13aa05da86570948ef10fff4bca9e29f3304b618a03da1ac9db5e
MD5 a5daffaf15c3d9e66ff818d4bcc1d0b0
BLAKE2b-256 dc29bd343644a6bea3efb7cc738bdf3421ae37d226854c050aa78685b936ee1a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: optvl-2.3.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 819.3 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.3.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 84096f1149ae381561c0ff21be77e5ee68fef018817ad0ed23e3b7e328b8fd54
MD5 cc8b4cacfb341a7dc4a561b626031f6a
BLAKE2b-256 36617ce2f5f3f4d0274923c28a6b2842dc5bbb03371251d42a4b6295322f46ab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 95f5072e330857fb155131de388744c560c8182d3678cc5d91b275593b964081
MD5 10549f5c30b6222bf1dc9b42abffc131
BLAKE2b-256 af926ae1297efd9df959f2cc7c6d32d039c2ef50da0daded6f3ee45df08e3c69

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.3.0-cp310-cp310-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 f788905b067078d3e09347358c8e93cd0010b9fbf4c7ba4369b1034ca3270582
MD5 0b126d58532cb22494ab106d945b219e
BLAKE2b-256 fb9b12ff4071ee2af41f8594df59986c8b3b6a6e49e1dfeb12a3e3d557957544

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.3.0-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 a08bd4f070988a69d29a7ad83e1454981bf2f3daf60246616aa7ce4e4266ad75
MD5 c36d2dfed5839f2616d30d93d3c30e57
BLAKE2b-256 e458b732540343d969264ff2a72695ff8d053b656453796286bf2f854d976238

See more details on using hashes here.

File details

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

File metadata

  • Download URL: optvl-2.3.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 819.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.3.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 18ae1f560b5819f3b90041908d51c1771e140e82b0ce5c48a770a9353bf44653
MD5 dba052e4ddd69fcdad8caaf7dc24372f
BLAKE2b-256 90a0f96f1e30d2ea4752c4a8a13ab83d49b27d07b26388a86aefcc345f8f153d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.3.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 4ec09f33d4d0a2e1d714ce46d2853e05914bb1f36aa638c7f056f3aa9c5f5e5f
MD5 390969a379eefed1c79345d956825314
BLAKE2b-256 4a113d2ed77c69a4a8b3001fdf8ffd9368619c6011fdc5a723b4b8b47c2c66e9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.3.0-cp39-cp39-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 6d84de6c04e4e9d236ef7605717cd30dd15303c5b86aa0eaa09280877f5b1d03
MD5 9ae95920a43d762a4959bbc720f89d74
BLAKE2b-256 4f079a8d3070945dc672fa1999380019f14e7dec391af918eaacc1db76e1de98

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.3.0-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 437d8724e3974e41946d3c782e1013fb5360dfd475b02c89c4cd452484ce03ac
MD5 b05c2bbd8099f8ac3dce515f38eef920
BLAKE2b-256 7e910b1b28493187e162020270654d5ce513252eb7964bd1c3a0d4ef4df8c009

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