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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13macOS 12.0+ ARM64

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

Uploaded CPython 3.13macOS 10.14+ x86-64

optvl-2.2.0-cp312-cp312-win_amd64.whl (790.7 kB view details)

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12macOS 12.0+ ARM64

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

Uploaded CPython 3.12macOS 10.14+ x86-64

optvl-2.2.0-cp311-cp311-win_amd64.whl (790.5 kB view details)

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11macOS 12.0+ ARM64

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

Uploaded CPython 3.11macOS 10.14+ x86-64

optvl-2.2.0-cp310-cp310-win_amd64.whl (790.0 kB view details)

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10macOS 12.0+ ARM64

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

Uploaded CPython 3.10macOS 10.14+ x86-64

optvl-2.2.0-cp39-cp39-win_amd64.whl (790.0 kB view details)

Uploaded CPython 3.9Windows x86-64

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

Uploaded CPython 3.9macOS 12.0+ ARM64

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

File metadata

  • Download URL: optvl-2.2.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 790.7 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.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 9b6e6f5e9fc4eb75046b87584eccb920c4b226f5a48fd3c7b966c0a24236e251
MD5 abd27ba1d987d6f01774c92ad5ce0289
BLAKE2b-256 0322c28b6e24cf7e4edab66fb059ca5e7fef9581292361d744806b08c264d6c0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 b7e653680ee8988ff4cd79876da950bb4cc5048e7adf414e4546673105a6eda3
MD5 28de845c93d136e298983ea8c80ae84f
BLAKE2b-256 bc7dde5283dc1f2bf5b8477294a6477f645dd2a4f2f02703f996e497cbfcf138

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.0-cp313-cp313-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 44a45b5d0d0fccde19f2aee8dfdc2be5fe56f9b1a877117dd2a17af5280291ce
MD5 b31793cd9755e7c0708fc961fe279458
BLAKE2b-256 f5bc1a19bb308ba41cb5a86b85bbfc09362eb46e42a110749b8f9f72c9832f1c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.0-cp313-cp313-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 3bee6b89da6c60fe0139d348aa67ef12415d07dee28c11f7d9d01dbf84cac620
MD5 35f07a62b3356bd0a0af90de61f595db
BLAKE2b-256 485d3d071132942c6a9d65a0d015bac2859090e540ccc269e1107b6caf2c3b48

See more details on using hashes here.

File details

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

File metadata

  • Download URL: optvl-2.2.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 790.7 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.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 087c852672f659117b6c5a4a725c55c88f50453d5cb78047608ad8699daa7de6
MD5 b44b1a97835af3c51c467286b9b7bd0d
BLAKE2b-256 234c0fc4425ad5e006b714ac33d11defc7c52c9f9b664d3e0e2d36b24b0f4332

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 d95235493451416bce4f82733c1085f18635069cea20c130355bc5356875acb7
MD5 c55d5056fe18883f58b375bfb21c2909
BLAKE2b-256 59347d04c085a18fd7cfce031019325cd99e1cd8043cb77aacf3f64650be7130

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.0-cp312-cp312-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 5cb9d8a6cb53d3186b82c02daf9cf792321ffbeba6a464686fa2f970ed8c0f44
MD5 15b406cf13652073ba2043a8e36739a3
BLAKE2b-256 c120bfbf40c81cad48dc7a4791e68fe7fd63f16135642d43f89a4d962f4c3108

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.0-cp312-cp312-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 26b840a2fd0aaa57acb76ede3223728e494ac117aa00b203986d3ded81f1df1a
MD5 70792d9c77e3a74afb3d2de37bc29dc8
BLAKE2b-256 7cdcf066ccccea113600ad9cf91cfafc2a2c499b779366b5e8564dcaebc44c77

See more details on using hashes here.

File details

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

File metadata

  • Download URL: optvl-2.2.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 790.5 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.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b99db65d8cf4b6bb24fdd7d6a8a1803c55cd06d2fbed326fbf942e336a07f0b5
MD5 43d0e73363a69ef872269f2f6b431a7b
BLAKE2b-256 549afe6a273b3e2853596aee6de2783d0d36e427caceccd0c123c5167a93b10b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 05e2e4208c227b6618e73b84d6c6850bb53f490b74a410772b63b15ef0a60010
MD5 b4e8d5a683d48938be0f178a41d39474
BLAKE2b-256 491ad779baa5906bbf4343c10e455631f314d3d4bbe400db0c83b173356ae628

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.0-cp311-cp311-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 1b1a5620170c7d0f405f46bb54a1fa474045ac7f6ef72a9d2b2341184084fe61
MD5 c48b81ebc60aa38f2f498b91e477e10b
BLAKE2b-256 3b81a2b93cf04921b89847c4b1b48c9f93bb7a9934d34f3df1064f13e0924e5c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.0-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 db0cf4cff6e60202084fbc9bae8b9a5eb1c990884525454d272bd400a45dd066
MD5 8e6369440e0df3772ad7636a532cbec8
BLAKE2b-256 52ace5ccf90f1d8b4431b46a4ad2b2322f0d887b0c42bb4fbba6d37e68b91bc6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: optvl-2.2.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 790.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.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ca8bc0075e75b115c4a96edfdfe955e81739d5b61171a4c5a815b49b816e5ab7
MD5 d9255fa6669e9102d2abb12c4d0bc1a9
BLAKE2b-256 b1b2c6121069190a335f8cc383cec773a7277d6eddb99cb1cd8681b711afa1ac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 7d2f1143dee32f5e77db962e08126965fcd0edbe3b0b445704c165d2ac270f8b
MD5 d9e713cc9ae2dc2443e5c7be87b8428d
BLAKE2b-256 22bb2252bf9472b139032631e2266a240a4ffe3b0707d59469876503b6ef84e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.0-cp310-cp310-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 b618c8aeb16da463cb528ef0e39530347f2e9af9f053e734ca1fb883c69dc454
MD5 ef240550ecec43cca9c9e1192db2db4c
BLAKE2b-256 8503288a6a662a6837a4b14a336e8a940c622a7e0a6b64642686399cd7e720f1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.0-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 6160a78d90ca6f54979bdc04fffb7ba837bf741158cb5cb966fe1fa5b5fe0691
MD5 56986d1b8fbe74bafe5b5f3ea355479b
BLAKE2b-256 87a0e2684c3436905a1df618a813f0aa63c146ea18117387f671d73e59504794

See more details on using hashes here.

File details

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

File metadata

  • Download URL: optvl-2.2.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 790.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.2.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 946547f7bc82eb6aed7b445763d545c48ff66a42bab93a94aaa820b4ce3b4826
MD5 c1fc6f287fb0eb3689369f1a7944238d
BLAKE2b-256 ce4a6c35db635e9486335d4ae925f9559c7473d22821c3509ed64857adcfcf2b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 fde327b316cf9f3ae44c9f4cdfb1b62612ab05b93ceb7d48228e4c0069c015d2
MD5 808822be4f22f229b7876960f9525b01
BLAKE2b-256 0c54e474bc432529e2d8130aa29250df01e1170eb48720cfb96b9c4068ddde31

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.0-cp39-cp39-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 656ba8fa0c2d41c88bc6901c0938b71887c544012b69713c2eea0287a2237f48
MD5 1d0a48756a7ed678328e31697e1ce753
BLAKE2b-256 99e0fec124464670f12a93d0ec26bce911214381703d8c4cf76f42e48a9b1891

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optvl-2.2.0-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 e883b923ba92123f50ea56cd2b68f7e31b7208b0ebbe5e3692f5583c63741627
MD5 6d29651ae5f2231b426ecf02491b3289
BLAKE2b-256 cb756bd4a8d5159704c53b2f38eca36e07b7f3efa3601374a24b035e7f52b610

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