Aerosandbox

Latest version: v4.2.8

Safety actively analyzes 722032 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 3 of 5

4.1.4

- Public release of `asb.NonlinearLiftingLine`, which is a new 3D aerodynamics analysis method implemented by Yashil Choony (yashil99) at Politecnico di Milano. It is implicitly solved (i.e., by iteration), subclassing `asb.ImplicitAnalysis`. This is a nonlinear lifting line theory method (with sweep and dihedral accounting), where the CL(alpha) function used to drive the nonlinear closure loop is taken from NeuralFoil. Fuselage influences can be optionally handled using a source-line (i.e. nonlifting) method. Preliminary testing on full-aircraft configurations indicates good agreement with other solvers, but production use should likely wait until more testing is performed in future versions.
- Added `asb.LiftingLine`, which is an experimental new 3D aerodynamics analysis method. It is explicitly solved by linearizing about the "naive" incidence angle on each surface, then doing a linear solve. Basic method is a lifting line theory method (with sweep and dihedral accounting), where the linearized sectional data is taken from NeuralFoil results for improved accuracy. Fuselage modeling is handled through a semi-empirical method (essentially, falling back on `asb.AeroBuildup`). Preliminary testing on full-aircraft configurations indicates good agreement with other solvers, but production use should likely wait until more testing is performed in future versions. Stability derivatives with respect to alpha and beta appear accurate, but rate derivatives (p, q, r) are not yet tested.
- Added save/load capabilities for AeroSandboxObjects (parent class of Airplane, Wing, Airfoil, etc.) via `AeroSandboxObject.save()` and `asb.load()`.

4.1.3

- Various plotting-related syntax changes to address deprecation warnings in Matplotlib 3.8.0.

4.1.2

- Added cost modeling capabilities for electric aircraft, in `aerosandbox.library.costs`.
- Rework of fuselage aerodynamics calculation to be much more accurate in moment prediction (and stability derivative prediction). This involves a much more precise moment integration based on slender body theory (potential flow around a line-source-doublet), and removing various unnecessary coordinate system conversions.
- Added deprecation warning on `/aerosandbox/geometry/airfoil/default_airfoil_aerodynamics.py`, which is superseded by `asb.Airfoil.get_aero_from_neuralfoil()`.
- BREAKING: In aircraft cost model (the DAPCA IV model in `/aerosandbox/library/costs.py`, adjusted key names on the dictionary output to be consistent with each other. This is a breaking change, but because this is a relatively new feature and buried very deep into the cost library, it's expected that this will affect very few users.

4.1.1

- Added `asb.KulfanAirfoil`, which is a new subclass of `asb.Airfoil` with the underlying parameterization as Kulfan (CST) parameters rather than a coordinate array. Useful for design optimization, as CST parameters can be optimized through, but raw coordinate arrays cannot.
- Added transonic airfoils from TASOPT to the AeroSandbox airfoil database. See them, for example, with `asb.Airfoil("tasopt-c090")`.
- Extend capabilities for `aerosandbox.numpy` functions `np.max`, `np.min`, `np.diag`.
- Added new tutorials on airfoil analysis and airfoil shape optimization. (Roughly in the path `/tutorials/Aerodynamics/...2D Aero Tools/NeuralFoil`)
- Begin work on a unified potential flow model for 3D aerodynamics, which will allow easy switching between different modeling assumptions.
- Added an improvement to Airplane geometry export to STEP thanks to Zcaic, which now makes a leading-edge line part of each Wing. Improves STEP accuracy.

4.1.0

- In general, uses NeuralFoil throughout instead of XFoil. `asb.Airfoil` no longer needs to have its `generate_polars()` method called before assembling an airplane object. In general, the old "polar functions" of `Airfoil` (e.g., `Airfoil.CL_function()`) are no longer used.
- Added `asb.Airfoil.get_aero_from_neuralfoil()`, which is the standard rapid airfoil aerodynamics analysis method in AeroSandbox now.
- Significant backend change in `asb.AeroBuildup` to use NeuralFoil instead of XFoil for airfoil analysis. This is a significant mathematical change, but it should be transparent to the user. Nevertheless, bumping minor version because this change has the potential to cause differences in power-users' workflows (i.e., if they're hacking Airfoil.xfoil_data or Airfoil.generate_polars() to make custom polars).
- Made a change in `asb.AeroBuildup` within the `.fuselage_aerodynamics()` method that causes fuselage potential flow lift (via slender body theory) to act in the local-wind-normal direction, not halfway between the body-axes-$z$ and wind-axes-$z$ vector as before. The new implementation agrees with Drela's Flight Vehicle Aerodynamics (and intuition), but disagrees with Jorgensen 1977, a NASA TR on fuselage aero. In general, new aero predictions are verified as more realistic (no longer generate a suction force from potential flow in edge cases, satisfying d'Alembert). In general, this results in slightly higher (~5%) fuselage drag prediction, and negligible changes to fuselage lift prediction. For most airplanes this will make negligible difference, but for lifting-body-type aircraft this may be perceptible. As a bonus, optimization should be better-behaved through `asb.AeroBuildup` analyses with fuselages now.
- Added lots of new tools for computing drag of various miscellaneous components in `aerosandbox.library.aerodynamics.components`.

-----

4.0.11

- Fixed a bug in `asb.Airfoil.add_control_surface()` that resulted in duplicated leading-edge nodes.
- Added new ability to draw shaded 3D renderings of airplanes with Matplotlib backend, using Matplotlib 3.7.0 features. Available through `asb.Airplane.draw_three_view()` or `asb.Airplane.draw(backend="matplotlib", ...)`.
- Recast the Kulfan airfoil parameterization problem as a least-squares problem, resulting in a 20x speedup in converting an airfoil coordinate set to CST parameters. Available in `aerosandbox.geometry.airfoil.airfoil_families` in `get_kulfan_parameters()`. New behavior is added as the default, but the old behavior is still available as `get_kulfan_parameters(method="opti")` (as opposed to `"least_squares"`).

Page 3 of 5

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.