Vortex Lattice Method Module

Vortex Lattice Method (VLM) for finite wings.

This module provides a simple implementation of the Vortex Lattice Method for computing aerodynamic forces on finite wings.

References

Katz, J., and Plotkin, A., “Low Speed Aerodynamics”, 2nd ed., Cambridge University Press, 2001.

Bertin, J.J., and Cummings, R.M., “Aerodynamics for Engineers”, 6th ed., Pearson, 2014.

class aerodemo.vlm.WingGeometry(span, root_chord, tip_chord, sweep_angle=0.0, dihedral=0.0, twist=0.0, n_spanwise=10, n_chordwise=4)[source]

Bases: object

Parameters defining a trapezoidal wing planform.

Parameters:
  • span (float) – Wing span [m].

  • root_chord (float) – Root chord length [m].

  • tip_chord (float) – Tip chord length [m].

  • sweep_angle (float) – Quarter-chord sweep angle [degrees]. Default 0.

  • dihedral (float) – Dihedral angle [degrees]. Default 0.

  • twist (float) – Tip washout (geometric twist) [degrees]. Default 0.

  • n_spanwise (int) – Number of spanwise panels. Default 10.

  • n_chordwise (int) – Number of chordwise panels. Default 4.

span: float
root_chord: float
tip_chord: float
sweep_angle: float = 0.0
dihedral: float = 0.0
twist: float = 0.0
n_spanwise: int = 10
n_chordwise: int = 4
property aspect_ratio: float

Wing aspect ratio AR = b^2 / S.

property taper_ratio: float

Taper ratio lambda = c_tip / c_root.

property reference_area: float

Wing reference area S = b * (c_root + c_tip) / 2.

property mean_aerodynamic_chord: float

Mean aerodynamic chord (MAC).

For trapezoidal wings: MAC = (2/3) * c_root * (1 + lambda + lambda^2) / (1 + lambda)

__init__(span, root_chord, tip_chord, sweep_angle=0.0, dihedral=0.0, twist=0.0, n_spanwise=10, n_chordwise=4)
Parameters:
Return type:

None

class aerodemo.vlm.VortexLatticeMethod(wing)[source]

Bases: object

Vortex Lattice Method solver for finite wings.

Computes lift, induced drag, and span-load distribution for trapezoidal wings using horseshoe vortex panels.

Parameters:

wing (WingGeometry) – Wing planform geometry definition.

Examples

>>> wing = WingGeometry(span=10.0, root_chord=2.0, tip_chord=1.0)
>>> vlm = VortexLatticeMethod(wing)
>>> result = vlm.solve(alpha_deg=5.0)
>>> print(f"CL = {result['CL']:.4f}")
__init__(wing)[source]
Parameters:

wing (WingGeometry)

solve(alpha_deg)[source]

Solve the VLM for given angle of attack.

Parameters:

alpha_deg (float) – Angle of attack in degrees.

Returns:

CLfloat

Lift coefficient.

CDifloat

Induced drag coefficient.

CL_distributionndarray

Spanwise lift coefficient distribution (per unit span).

y_stationsndarray

Spanwise stations corresponding to CL_distribution.

ARfloat

Wing aspect ratio.

efloat

Oswald efficiency factor.

Return type:

dict with keys

sweep_alpha(alpha_range)[source]

Compute aerodynamic coefficients over a range of angles of attack.

Parameters:

alpha_range (array_like) – Array of angles of attack in degrees.

Return type:

dict with keys ‘alpha’, ‘CL’, ‘CDi’, ‘CL_over_CDi’.