Skip to main content

Structured 2D panel-method tools for aerodynamic case setup, solution, and post-processing.

Project description

Buffalo Panel

CI Docs License PyPI

Buffalo Panel is an early-stage Python library for structured 2D panel-method workflows in aerodynamics. It currently focuses on case definition, solving, and post-processing for panelized airfoil problems, with small CLI, GUI, and TUI applications built around the same structured case schema.

What It Can Do Today

  • Define simulation cases with typed Python dataclasses and YAML or JSON files.
  • Load structured airfoil cases and solve the current 2D Hess-Smith workflow.
  • Save solved artifacts for later inspection and post-processing.
  • Export integrated coefficients and optional surface-quantity CSV data.
  • Explore element influence fields and diagnostic views through example scripts.
  • Reuse shared Buffalo ecosystem foundations such as numeric typing, diagnostics, and Buffalo Wings airfoil definitions.

How The Apps Fit Together

Buffalo Panel currently treats the structured case file as the source of truth.

  • panel2d_tui helps browse and edit the case structure in a terminal UI.
  • panel2d_gui provides a tree-based editor plus interactive geometry, surface, and flow-field views.
  • panel2d_cli run solves one case file and writes one solved artifact.
  • panel2d_cli inspect reviews artifact metadata and can reconstruct integrated results from the command line.

The normal workflow is:

  1. Create or edit a case file.
  2. Run the case to produce a solved artifact.
  3. Inspect the artifact in the CLI or load it in the GUI for exploration.

Installation

Install from PyPI:

pip install BuffaloPanel

For local development with the repository-managed toolchain:

uv sync --extra docs

Quick Start

Run one of the packaged examples from the repository root:

panel2d_cli run examples/naca0012_designation.yaml
panel2d_cli inspect examples/naca0012_designation.solution.yaml --include-results

You can also use the Python API directly:

from buffalo_panel.config import load_panel_case, solve_panel_case

case = load_panel_case("examples/naca0012_designation.yaml")
results = solve_panel_case(case)

print(results.integrated.cl_pressure)

Documentation

The main documentation lives at buffaloherd.codeberg.page/BuffaloPanelDocs. Useful starting points are:

Project Status

The library and apps are still in early development. The core structured-case workflow and the current 2D Hess-Smith and lumped-vortex paths are usable, but the public API and app behavior should still be expected to change as the project grows.

Contributing

Contributions, issue reports, and documentation improvements are welcome. See the contributing guide for development setup and workflow notes.

License

Buffalo Panel is released under the GNU General Public License v3.0 only.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

buffalopanel-0.2.0.tar.gz (122.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

buffalopanel-0.2.0-py3-none-any.whl (160.7 kB view details)

Uploaded Python 3

File details

Details for the file buffalopanel-0.2.0.tar.gz.

File metadata

  • Download URL: buffalopanel-0.2.0.tar.gz
  • Upload date:
  • Size: 122.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for buffalopanel-0.2.0.tar.gz
Algorithm Hash digest
SHA256 b1295dcded58afb126b022fb63d35eecadb04bbd1aafbca4a92df7fdfa96974f
MD5 aa47d67a97187362062de0b9b5f9581a
BLAKE2b-256 bf4853ffeef69faac48e19a6aa75b360193f1c79e74199622ba1c5c2900cf1f2

See more details on using hashes here.

File details

Details for the file buffalopanel-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: buffalopanel-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 160.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for buffalopanel-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9e77f3c59a5fd274201dc254593c5c061ab73f06f559b940b1128b6b683f753c
MD5 ee235bb1b8f5c046483e40b76cb46e2f
BLAKE2b-256 bc14c28845843ddb170eb4641d4f69d767f742d9c032113062e2e1dbb14c83ca

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