openavl 1.0.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- openavl/__init__.py +41 -0
- openavl/aero/__init__.py +23 -0
- openavl/aero/aic.py +792 -0
- openavl/aero/ba_trans.py +117 -0
- openavl/aero/cdcl.py +117 -0
- openavl/aero/cpoml.py +347 -0
- openavl/aero/forces.py +1365 -0
- openavl/aero/trefftz.py +426 -0
- openavl/aero/vortex.py +290 -0
- openavl/analysis/__init__.py +47 -0
- openavl/analysis/amode.py +661 -0
- openavl/analysis/deriv.py +308 -0
- openavl/analysis/trim.py +168 -0
- openavl/constants.py +118 -0
- openavl/core/__init__.py +21 -0
- openavl/core/exec.py +395 -0
- openavl/core/reporting.py +47 -0
- openavl/core/setup.py +385 -0
- openavl/core/solver/__init__.py +5 -0
- openavl/core/solver/analysis.py +286 -0
- openavl/core/solver/api.py +489 -0
- openavl/core/solver/initialization.py +73 -0
- openavl/core/solver/results.py +186 -0
- openavl/core/solver/settings.py +320 -0
- openavl/core/solver/visualization.py +153 -0
- openavl/core/state.py +730 -0
- openavl/fileio/__init__.py +29 -0
- openavl/fileio/cad_export.py +307 -0
- openavl/fileio/mass.py +362 -0
- openavl/fileio/parser.py +784 -0
- openavl/geom/__init__.py +21 -0
- openavl/geom/airfoil.py +285 -0
- openavl/geom/display.py +141 -0
- openavl/geom/geometry.py +892 -0
- openavl/geom/spacing.py +188 -0
- openavl/geom/spline.py +153 -0
- openavl/geometry/__init__.py +34 -0
- openavl/geometry/_convert.py +175 -0
- openavl/geometry/aircraft.py +243 -0
- openavl/geometry/airfoil.py +30 -0
- openavl/geometry/body.py +32 -0
- openavl/geometry/cdcl_polar.py +113 -0
- openavl/geometry/control.py +25 -0
- openavl/geometry/section.py +159 -0
- openavl/geometry/wing.py +178 -0
- openavl/jax/__init__.py +95 -0
- openavl/jax/aic.py +562 -0
- openavl/jax/analysis.py +209 -0
- openavl/jax/backend.py +20 -0
- openavl/jax/body.py +73 -0
- openavl/jax/cdcl.py +72 -0
- openavl/jax/forces.py +823 -0
- openavl/jax/freestream.py +41 -0
- openavl/jax/geom_jax.py +1032 -0
- openavl/jax/openmdao.py +162 -0
- openavl/jax/openmdao_group.py +398 -0
- openavl/jax/setup.py +139 -0
- openavl/jax/snapshot.py +272 -0
- openavl/jax/solve.py +87 -0
- openavl/jax/solver.py +82 -0
- openavl/jax/trefftz.py +333 -0
- openavl/jax/types.py +391 -0
- openavl/jax/vortex.py +119 -0
- openavl/math/__init__.py +13 -0
- openavl/math/linalg.py +37 -0
- openavl/math/util.py +191 -0
- openavl/plotting/__init__.py +13 -0
- openavl/plotting/aircraft3d.py +399 -0
- openavl/plotting/cp_plot.py +315 -0
- openavl/plotting/lift_distribution.py +211 -0
- openavl/web/__init__.py +5 -0
- openavl/web/__main__.py +27 -0
- openavl/web/app.py +352 -0
- openavl/web/geometry_export.py +183 -0
- openavl/web/session.py +1177 -0
- openavl/web/static/favicon.ico +0 -0
- openavl/web/static/favicon.svg +11 -0
- openavl/web/static/help.js +60 -0
- openavl/web/static/index.html +1576 -0
- openavl/web/static/main.js +1630 -0
- openavl/web/static/plots.js +336 -0
- openavl/web/static/viewer3d.js +1142 -0
- openavl-1.0.0.dist-info/METADATA +412 -0
- openavl-1.0.0.dist-info/RECORD +87 -0
- openavl-1.0.0.dist-info/WHEEL +5 -0
- openavl-1.0.0.dist-info/licenses/LICENSE +337 -0
- openavl-1.0.0.dist-info/top_level.txt +1 -0
openavl/__init__.py
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"""OpenAVL: a Python port of the AVL vortex lattice code."""
|
|
2
|
+
|
|
3
|
+
from openavl.core.solver import AVLSolver
|
|
4
|
+
from openavl.core.state import AVLState
|
|
5
|
+
from openavl.fileio.parser import AVLHeader, AVLModel, parse_avl, parse_avl_file
|
|
6
|
+
from openavl.geometry import Aircraft
|
|
7
|
+
|
|
8
|
+
__all__ = [
|
|
9
|
+
"AVLSolver",
|
|
10
|
+
"Aircraft",
|
|
11
|
+
"AVLModel",
|
|
12
|
+
"AVLHeader",
|
|
13
|
+
"AVLState",
|
|
14
|
+
"StabilityDerivatives",
|
|
15
|
+
"EigenAnalysisResult",
|
|
16
|
+
"FlightMode",
|
|
17
|
+
"parse_avl",
|
|
18
|
+
"parse_avl_file",
|
|
19
|
+
]
|
|
20
|
+
# JaxAVLSolver stays out of __all__: it needs the optional JAX extra, and
|
|
21
|
+
# ``from openavl import *`` must work without it. ``openavl.JaxAVLSolver`` still works.
|
|
22
|
+
|
|
23
|
+
def __getattr__(name: str):
|
|
24
|
+
"""Lazily import optional exports so core solver imports stay lightweight."""
|
|
25
|
+
if name in {"EigenAnalysisResult", "FlightMode"}:
|
|
26
|
+
from openavl.analysis.amode import EigenAnalysisResult, FlightMode
|
|
27
|
+
|
|
28
|
+
return {"EigenAnalysisResult": EigenAnalysisResult, "FlightMode": FlightMode}[name]
|
|
29
|
+
if name == "StabilityDerivatives":
|
|
30
|
+
from openavl.analysis.deriv import StabilityDerivatives
|
|
31
|
+
|
|
32
|
+
return StabilityDerivatives
|
|
33
|
+
if name == "JaxAVLSolver":
|
|
34
|
+
from openavl.jax.solver import JaxAVLSolver
|
|
35
|
+
|
|
36
|
+
return JaxAVLSolver
|
|
37
|
+
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def __dir__():
|
|
41
|
+
return sorted(__all__)
|
openavl/aero/__init__.py
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"""Aerodynamic force integration and vortex lattice kernels."""
|
|
2
|
+
|
|
3
|
+
from openavl.aero.aic import cross, dot, srdset, srdvelc, vorvelc, vsrd, vvor
|
|
4
|
+
from openavl.aero.ba_trans import ba2sa_mat, ba2wa_mat
|
|
5
|
+
from openavl.aero.cdcl import cdcl
|
|
6
|
+
from openavl.aero.forces import aero, vinfab
|
|
7
|
+
from openavl.aero.trefftz import tpforc
|
|
8
|
+
|
|
9
|
+
__all__ = [
|
|
10
|
+
"aero",
|
|
11
|
+
"ba2sa_mat",
|
|
12
|
+
"ba2wa_mat",
|
|
13
|
+
"cdcl",
|
|
14
|
+
"cross",
|
|
15
|
+
"dot",
|
|
16
|
+
"srdset",
|
|
17
|
+
"srdvelc",
|
|
18
|
+
"tpforc",
|
|
19
|
+
"vinfab",
|
|
20
|
+
"vorvelc",
|
|
21
|
+
"vsrd",
|
|
22
|
+
"vvor",
|
|
23
|
+
]
|