Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Rotorcraft Axial Descent Flow States

ASecurity

Use when you must classify the axial flow state of a rotor in vertical descent: hover at zero rate, the vortex-ring band from zero to twice the hover induced velocity, and the windmill-brake momentum state at and above that boundary. Computes the band limits, the windmill-brake induced velocity from the momentum-theory closed form, the signed rotor power and torque in descent (negative when the rotor absorbs power from the airstream), and the torque-reversal condition c = P_profile over k T v...

2 stars
0 votes
0 copies
0 views
Added 9/27/2026
ai-agentspythonrustgoperformance

Works with

claude codecli

Security Analysis

A100/100

Scanned 9/27/2026

Install to Claude Code

$npx -y skills add ashfordeOU/aero-agent-skills --skill rotorcraft-axial-descent-flow-states --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Rotorcraft Axial Descent Flow States?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Rotorcraft Axial Descent Flow States
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ashfordeou-rotorcraft-axial-descent-flow-states/badge)](https://www.skillsdirectory.com/skills/ashfordeou-rotorcraft-axial-descent-flow-states)

More formats (shields.io, HTML) on the badges page.

Download with Pro
Files
SKILL.md
---
name: rotorcraft-axial-descent-flow-states
description: "Use when you must classify the axial flow state of a rotor in vertical descent: hover at zero rate, the vortex-ring band from zero to twice the hover induced velocity, and the windmill-brake momentum state at and above that boundary. Computes the band limits, the windmill-brake induced velocity from the momentum-theory closed form, the signed rotor power and torque in descent (negative when the rotor absorbs power from the airstream), and the torque-reversal condition c = P_profile over k T versus v_h that decides whether the zero-shaft-power autorotative equilibrium is reachable on the momentum branch. Produces the flow-state verdict, the descent induced velocity, signed power and torque, and the momentum reachability verdict. Trigger: vortex-ring state, windmill-brake state, axial descent, descent induced velocity, torque reversal, rotor descent power."
license: Apache-2.0
compliance: STANDARDS-REF
standards:
  - id: far-29
    reference-only: true
gated: false
domain: flight-mechanics
pack: performance
compatibility: "agentskills.io SKILL.md; any SKILL.md host (Claude Code, Hermes, OpenClaw)"
metadata:
  domain: flight-mechanics
  subdomain: performance
  tags: [rotorcraft-axial-descent-flow-states, axial-descent-flow, vortex-ring-state, windmill-brake-state, descent-induced-velocity, torque-reversal, momentum-theory-reachability]
  version: 0.1.0
  author: AeroSkills
---

# Rotorcraft Axial Descent Flow States (flight-mechanics/performance/rotorcraft-axial-descent-flow-states)

Use when you must categorize the axial flow state of a helicopter
rotor in vertical descent from the descent-rate ratio w = Vd / v_h and
evaluate the windmill-brake state with momentum theory: the
vortex-ring / turbulent-wake band 0 < w < 2 versus the windmill-brake
state w >= 2, the band induced velocity from the momentum closed form,
the signed rotor power and torque in descent, and whether momentum
theory can close to the zero-shaft-power autorotative equilibrium. It
pairs with flight-mechanics/performance/rotorcraft-hover-performance
(the hover state at zero rate) and with
flight-mechanics/performance/rotorcraft-vertical-climb-performance (the
climb-only momentum leaf). It implements the windmill-brake momentum
model in pure Python, stdlib only, and never computes empirical inflow:
inside the vortex-ring band the flow is momentum-invalid and the
induced velocity is left None.

Scope: this leaf owns the windmill-brake momentum-theory branch and
the vortex-ring band boundary. Power-off descent estimation is owned by
the empirical leaf
flight-mechanics/performance/rotorcraft-autorotative-descent (which
explicitly excludes momentum theory in descent, the vortex-ring state
and vertical zero-airspeed descent); induced velocity at hover and in
climb belongs to the hover and vertical-climb leaves; inflow in level
flight belongs to the forward-flight leaf. Momentum theory is applied
only where it is valid, Vd >= 2 v_h.

## Domain quick reference

All quantities are SI (m/s, N, W, N m). Module constants are
RHO_SL = 1.225 kg/m^3, G = 9.80665 m/s^2, K_INDUCED_DEFAULT = 1.15,
PI = math.pi.

- Hover induced velocity from thrust and disk area:
  v_h = sqrt(T / (2 rho A)), A = PI R^2. The reference rotor
  (R = 5.0 m, m = 2200 kg, T = m G) gives v_h = 10.5887 m/s.
- Flow-state bands: Vd = 0 is hover, 0 < Vd < 2 v_h is the
  vortex-ring / turbulent-wake band (momentum invalid, empirical
  inflow, NASA TP-2005-213477 public-domain context), Vd >= 2 v_h is
  the windmill-brake state where momentum theory applies.
- Band limits: vortex_ring_band_limits(v_h) returns (0, 2 v_h); the
  worked rotor gives (0, 21.18) m/s.
- Windmill-brake induced velocity (physical branch):
  v_i = Vd/2 - sqrt((Vd/2)^2 - v_h^2), valid only for Vd >= 2 v_h.
  The boundary identity v_i(2 v_h) = v_h holds exactly, v_i never
  exceeds v_h, and v_i falls like v_h^2 / Vd as Vd grows (at
  Vd = 5 v_h, v_i / v_h = 0.2087, near the 1 / w asymptote).
- Signed descent power: P = k T (-Vd + v_i) + P_profile. Negative P
  means the rotor absorbs power from the airstream (windmill-brake
  working state); positive P means the shaft drives the rotor.
- Signed torque: Q = P / Omega. Negative torque opposes the engine
  drive while the rotor absorbs power.
- Torque-reversal condition: c = P_profile / (k T) versus v_h. The
  zero-power condition P = 0 combined with the momentum quadratic
  v_i^2 - Vd v_i + v_h^2 = 0 gives the formal crossing at
  Vd = c + v_h^2 / c with v_i = v_h^2 / c. That root is physical only
  when v_i <= v_h, i.e. c >= v_h (then Vd >= 2 v_h by AM-GM). When
  c < v_h no momentum root exists and the equilibrium is
  momentum-unreachable.

## Workflow

1. Fix the operating point: descent rate Vd (m/s, positive downward),
   thrust T (N) and disk area A = PI R^2 (or the mass, radius, density
   that imply them). The sibling vertical-climb leaf owns climb, so
   Vd < 0 raises ValueError here.
2. Get the hover induced velocity from the thrust, density and area:
   v_h = sqrt(T / (2 rho A)); call axial_flow_state(Vd, v_h) for the
   verdict "hover", "vortex-ring-band" or "windmill-brake", and
   vortex_ring_band_limits(v_h) for the band in m/s.
3. In the windmill-brake state only, get the induced velocity with
   windmill_brake_induced_velocity(Vd, v_h); the function refuses Vd
   below 2 v_h because momentum theory does not apply in the band.
4. Compute the signed power with rotor_descent_power(T, Vd, v_i,
   P_profile, k) and, with the rotor speed Omega, the signed torque
   with rotor_descent_torque(P, Omega).
5. Decide zero-shaft-power reachability with
   torque_reversal_condition(P_profile, T, k, v_h): c >= v_h reports
   the momentum root Vd = c + v_h^2 / c on the windmill-brake branch;
   c < v_h returns momentum_root_Vd None with the
   momentum-unreachable verdict (the equilibrium lies in the empirical
   vortex-ring / turbulent-wake regime).
6. Bundle everything with descent_summary(T, R, P_profile, Vd, rho, k,
   rotor_speed_rad_s): it returns flow_state, v_h, band_limits,
   induced_velocity, power_W, torque_Nm and momentum_root_reachable,
   with the momentum fields None in the band and at hover.
7. Confirm the deterministic checks with the contract test
   scripts/test_rotorcraft_axial_descent_flow_states.py.

## Worked example

Reference rotor (shared with the hover and blade-element siblings):
R = 5.0 m, m = 2200 kg (T = m G = 21574.63 N), rho = 1.225 kg/m^3,
A = PI R^2 = 78.540 m^2, P_profile = 122935 W, k = 1.15. Real module
outputs:

- v_h = 10.5887 m/s, vortex_ring_band_limits -> (0, 21.177) m/s.
- At Vd = 2 v_h (21.177 m/s): windmill_brake_induced_velocity returns
  v_i = 10.5887 m/s, the boundary identity with diff 0.0; the signed
  power is -139780.0 W (the rotor absorbs power from the airstream).
- At Vd = 25 m/s: v_i = 5.8570 m/s (0.553 v_h), P = -352017.6 W
  (spec magnitude about -352019 W).
- At Vd = 30 m/s: v_i = 4.3756 m/s (0.413 v_h), P = -512828.7 W
  (about -512829 W); with Omega = Vtip / R = 220 / 5 = 44 rad/s,
  Q = P / Omega = -11655.2 N m (about -11655 N m), torque opposing the
  engine drive.
- At Vd = 40 m/s: P = -794246.6 W (about -794247 W); P stays negative
  across the whole windmill-brake band for this rotor.
- torque_reversal_condition: c = P_profile / (k T) = 4.9549 m/s
  (about 4.955), c < v_h (4.955 < 10.589), verdict
  momentum-unreachable, momentum_root_Vd None. The formal crossing
  would sit at Vd = c + v_h^2 / c = 27.58 m/s only on the
  non-physical branch: it demands v_i = v_h^2 / c = 22.63 m/s, above
  v_h, impossible on the windmill-brake branch, so 27.6 m/s is never a
  momentum root of this rotor.

## Verification

- Confirm axial_flow_state boundaries: Vd = 0 -> "hover", Vd just
  below 2 v_h -> "vortex-ring-band", Vd = 2 v_h and above ->
  "windmill-brake".
- Confirm windmill_brake_induced_velocity(2 v_h, v_h) equals v_h to
  1e-9, and that v_i satisfies the momentum quadratic identity
  v_i (Vd - v_i) = v_h^2 exactly on the physical branch.
- Confirm the worked powers -139780.0, -352017.6, -512828.7 and
  -794246.6 W and the torque -11655.2 N m at Omega = 44 rad/s, all
  within the spec magnitude bounds, and that P is negative across the
  windmill-brake band.
- Confirm the torque-reversal split: c >= v_h reports the momentum
  root Vd = c + v_h^2 / c (>= 2 v_h) as reachable; the worked rotor
  with c = 4.955 < v_h reports momentum-unreachable with no root, and
  the required v_i = v_h^2 / c = 22.63 m/s exceeding v_h is the reason
  the formal 27.58 m/s crossing is non-physical.
- Confirm ValueError on Vd < 0 (climb), v_h <= 0, a windmill-brake
  call below 2 v_h, non-positive thrust, non-positive k, negative
  profile power or induced velocity, and Omega <= 0.
- Confirm the descent_summary dict contains exactly the seven
  documented keys with momentum fields None in the band and at hover.
- Confirm determinism: identical inputs give identical floats run to
  run (no RNG).
- Run the contract test offline: python3
  scripts/test_rotorcraft_axial_descent_flow_states.py (34 tests,
  deterministic).

## Pitfalls

- Evaluating momentum theory inside the vortex-ring band:
  windmill_brake_induced_velocity refuses Vd below 2*v_h with ValueError
  because momentum theory is invalid there, and the band induced velocity is
  None; do not fill the band with the closed form.
- Signing Vd wrong: descent rate is positive downward in this leaf and a
  negative Vd (climb) raises ValueError - vertical climb is owned by the
  sibling climb leaf.
- Reading the signed power without its sign: negative P means the rotor
  absorbs power from the airstream (windmill-brake working state) and the
  torque opposes the engine drive; flipping the sign for a 'magnitude'
  erases the physical verdict.
- Reporting the formal torque-reversal root as reachable: when c < v_h the
  momentum root Vd = c + v_h^2/c would demand v_i = v_h^2/c above v_h and is
  non-physical; the function returns momentum_root_Vd None with the
  momentum-unreachable verdict, as in the worked rotor (c = 4.955 < v_h =
  10.589).
- Reading descent_summary momentum fields at hover or in the band: the
  induced velocity, power and torque momentum fields are None outside the
  windmill-brake state by contract.
- Non-positive thrust, k, or rotor speed and negative profile power raise
  ValueError; determinism is pinned (no RNG).

## Related leaves

- flight-mechanics/performance/rotorcraft-autorotative-descent: the
  empirical power-off descent sibling; this leaf's torque-reversal
  verdict explains why momentum theory cannot close to the autorotative
  equilibrium.
- flight-mechanics/performance/rotorcraft-vertical-climb-performance:
  the climb-only momentum leaf (Vc < 0 raises ValueError there).
- flight-mechanics/performance/rotorcraft-hover-performance: the hover
  state at zero descent rate and its induced power terms.
- flight-mechanics/performance/rotorcraft-blade-element-hover-performance:
  the coefficient-polar blade-element model sharing the reference
  rotor.

## Behavior contract (gate 3)

Run the deterministic contract test (stdlib unittest, offline):

    python3 scripts/test_rotorcraft_axial_descent_flow_states.py

The test covers the reference-rotor worked example (v_h 10.5887 m/s,
band (0, 21.18) m/s, v_i(2 v_h) = v_h identity, powers about -139780 /
-352019 / -512829 / -794247 W, torque about -11655 N m at Omega 44),
the flow-state boundaries at 0, just below, at and above 2 v_h, the
momentum quadratic identity v_i (Vd - v_i) = v_h^2, the 1 / w
asymptote at 5 v_h, the torque-reversal split (c >= v_h reachable with
root at c + v_h^2 / c, c < v_h momentum-unreachable), the exact
descent_summary keys with momentum fields None in the band, the pinned
module constants, determinism run to run, and ValueError rejection of
climb rates, non-positive v_h, windmill calls below 2 v_h,
non-positive thrust, k, profile power and Omega.

## Compliance

- Standards referenced, not reproduced: FAR-29 is named reference-only
  per standards-map.yaml. NASA TP-2005-213477 (public domain) is named
  in the body as the empirical-inflow context that marks the
  vortex-ring band momentum-invalid; the momentum relations above are
  summary-only standard engineering methodology.
- compliance: STANDARDS-REF, gated: false.

Attribution

ashfordeOUashfordeOU
View sourceMore from ashfordeOU →
SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Related Skills

Caveman

Ultra-compressed communication mode that cuts output tokens while keeping technical accuracy. Levels: lite, full, ultra and the wenyan variants. Use for /caveman, "caveman mode", "talk like caveman", "be brief" or "less tokens".

1074701 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

694821 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3351 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

691 votes

math-skill

A comprehensive mathematical reasoning skill for AI assistants — handles arithmetic to research-level problems with rigorous step-by-step reasoning, systematic verification, and transparent uncertainty handling

381 votes
View all in ai-agents →