Skip to content

DOC: add aerodynamic surfaces user guide#1043

Open
ViniciusCMB wants to merge 2 commits into
RocketPy-Team:developfrom
ViniciusCMB:doc/aero-surfaces-user-guide
Open

DOC: add aerodynamic surfaces user guide#1043
ViniciusCMB wants to merge 2 commits into
RocketPy-Team:developfrom
ViniciusCMB:doc/aero-surfaces-user-guide

Conversation

@ViniciusCMB

Copy link
Copy Markdown

Summary:
Add comprehensive user guide documentation for aerodynamic surfaces in RocketPy.

Changes:

  • New file: docs/user/aerodynamics/surfaces.rst — Complete user guide covering nose cones, fins, tails, and generic surfaces
  • Modified: docs/user/index.rst — Added "Aerodynamic Surfaces" to the "Further Analysis" section

What the documentation covers:
Nose Cones

  • 8 supported kinds: conical, ogive, elliptical, tangent, von karman, parabolic, powerseries, lvhaack
  • Geometric parameters (length, base_radius, position)
  • Parameter-specific notes (bluffness for ogive, power for powerseries)

Fins

  • Three geometries: Trapezoidal, Elliptical, Free Form
  • Distinction between fin sets (TrapezoidalFins, EllipticalFins, FreeFormFins) and individual fins (TrapezoidalFin, EllipticalFin, FreeFormFin)
  • Geometric parameters for each type
  • Airfoil profile support (CSV format, units)
  • Complete code example using rocket.add_trapezoidal_fins()

Tail

  • Parameters: top_radius, bottom_radius, length, position

Generic Surfaces

  • Overview of GenericSurface and LinearGenericSurface for custom aerodynamic coefficients
  • Use cases: CFD/wind tunnel data, non-standard surfaces (canards, air brakes)
  • Cross-reference to detailed generic surface guide

Reference Area & Length

  • Explanation of reference area (πr²) and reference length (2r)

Cross-references:

  • Links to technical docs: Individual Fin Model, Elliptical Fins Equations, Roll Equations
  • Links to coordinate system docs: Rocket Class Axes Definitions, Positions and Coordinate Systems

Pull request type:

  • ReadMe, Docs and GitHub updates

Checklist:

  • Tests for the changes have been added (if needed)
  • Docs have been reviewed and added / updated
  • Lint (black rocketpy/ tests/) has passed locally
  • All tests (pytest tests -m slow --runslow) have passed locally
  • CHANGELOG.md has been updated (if relevant)

Current behavior:
No dedicated user guide for aerodynamic surfaces existed. Users had to piece together information from class docstrings, technical docs, and examples.

New behavior:
A new comprehensive user guide page (docs/user/aerodynamics/surfaces.rst) provides:

  • Overview of all aerodynamic surface types (nose cones, fins, tails, generic surfaces)
  • Geometric parameters for each surface kind
  • Code examples for adding surfaces to a rocket
  • Airfoil profile documentation
  • Distinction between fin sets and individual fins (new in Individual Fins feature)
  • Cross-references to technical derivations and coordinate system docs

The page is linked from the user guide index under "Further Analysis".

Breaking change:
No

Additional information:
This documentation supports the Individual Fins feature (PR #818) by clearly documenting the difference between fin set classes and individual fin classes, their respective use cases, and when to use each approach.

Add surfaces.rst documentation covering nose cones, fins, tails, and generic surfaces.
This document explains the geometric parameters, available kinds, and how to
add aerodynamic surfaces to a rocket.

Fixes: None (new documentation)
@ViniciusCMB ViniciusCMB self-assigned this Jun 30, 2026
@ViniciusCMB ViniciusCMB requested a review from a team as a code owner June 30, 2026 20:49
@ViniciusCMB ViniciusCMB added Docs Docs and examples related Aerodynamics Any problem to be worked on top of RocketPy's Aerodynamic labels Jun 30, 2026

@Gui-FernandesBR Gui-FernandesBR left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

can you also add your PR to the CHANGELOG please?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Aerodynamics Any problem to be worked on top of RocketPy's Aerodynamic Docs Docs and examples related

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants