# Elements and fluid mechanics verification

## Visual refresh - 2026-10-11

Reviewed the current fluid and differential-element modules. Two-boundary
element dimensions now use external inward `->|` and `|<-` arrows, including
Cartesian spans and projected slice thicknesses. Fluid pressure-element
`dx` follows the same convention. The rotating tube now has thickness arrows;
its slice uses configurable hatching through `every fluid element` and
`every physics fluid element`. Font inheritance and native line widths remain
unchanged. The cylindrical shell's radial marker sits above the projected
rim with extension lines to its two boundaries. The font gallery has a deliberate page break before material styles.

- All 16 `l3build` suites pass; all 58 examples compile.
- All 18 element invalid-input cases and 16 combined element/fluid cases
  produce the intended diagnostics.
- All 122 generated feature references and the single-file runtime are current.
- All 20 isolated bundle checks pass at the 5-million-word memory limit.
- Visually inspected all 14 fluid assemblies, composed reference scenes,
  native fluid nodes, material patterns, circular/solid elements, the font
  gallery and projected percentage coordinates (eight PDFs, 26 pages).
- A separate rendered styling probe checks large labels, thin rotating slices,
  dots and solid-fill overrides, including the collision-safe style alias.
- The updated manual compiles to 92 pages. Changed element and fluid pages
  are rendered for inspection; the existing enumitem negative-labelwidth
  warning remains, with no overfull boxes or unresolved references.

Evidence: `tmp/fluid-elements-20261011/`, plus the existing verification
script output directories. Refreshed runtime and guides are in
`output/overleaf/`; current PDFs are in `output/pdf/`.

Historical release verification for 1.4.0, recorded on 2026-09-25.
For the current release, run the checks listed in the [README](../README.md)
and use the [debug overlay guide](debug-overlays.md) for the node display API.

## Automated checks

- `l3build check`: all six suites pass (`api`, `elements`, `elements-solids`, `fluids`, `geometry`, `reference`).
- `python3 scripts/verify_fluids.py`: all 43 examples compile; all 16 invalid element/fluid geometry cases produce the expected errors; five representative examples compile with the isolated single-file package.
- `python3 scripts/generate_reference.py --check`: all 70 feature references are current.
- `python3 scripts/build_overleaf_bundle.py --check`: the single-file package matches source modules.
- The extracted final Overleaf ZIP compiles its starter document with only the bundled `.sty` runtime and the standard TeX installation.
- LuaLaTeX with `fontspec`, `unicode-math`, TeX Gyre Pagella, and Pagella Math compiles the font/element/fluid smoke diagram successfully; its rendering was inspected.
- The manual compiles to 62 pages with no overfull boxes or unresolved references in the final log. The 13-page surface-anchor gallery renders all four flat surfaces, all three platform forms, and both sharp upward corners.

Regressions cover physical dimensions, surface levels, parabola geometry, contact-surface positions, transformed coordinates, concise and collision-safe aliases, independent instances, native node anchors and minimum sizes, individual element label fonts, picture fonts, fill/pattern precedence, and pattern color. The fluid suite also checks the explicit `physics fluid tank diagram` alias.

## Visual review

Rendered and inspected the circular and solid element galleries, three font sizes and individual node overrides, all eight fluid nodes, all fourteen diagram assemblies, all thirteen reference families in composed scenes, and native fill/pattern variants. Reviewed the complete manual in page contact sheets and inspected changed chapters and reference tables in detail.

Corrections made during review include angular-label placement and angle arcs,
inherited label sizes and arrow tips, node-local dimension-label capture,
duplicate gas labels, colliding force labels, fluid fill behavior, capillary
curve alignment, free-surface boundaries for patterns, and node-local fill
handlers. The element pass also corrected the cone slice's lower projection
and semantic centre, added finite-slice boundary validation, and separated
dashed rear projected edges from solid front edges. The refreshed consistency
pass changed examples and manual snippets to explicit `... diagram` pic names,
retained the shorter compatibility aliases, added explicit collision-safe
diagram aliases, and synchronized the README, extended guide, module
inventory, reference anchor lists, and package description.

## Outputs

- `output/overleaf/tikzphysics.sty`: single runtime file.
- `output/overleaf/tikzphysics-fluids-overleaf.zip`: runtime, starter `main.tex`, and README.
- `output/pdf/tikzphysics-manual.pdf`: updated manual.
- `output/pdf/fluid-mechanics-nodes.pdf`: native node gallery.
- `output/pdf/fluid-patterns.pdf`: user-controlled patterns, solid/no fill, and native positioning.
- `output/pdf/fluid-mechanics-gallery.pdf`: complete assembly gallery.
- `output/pdf/fluid-mechanics-reference-scenes.pdf`: composed reference scenes.
- `output/pdf/elements-fonts.pdf`, `elements-circular-differentials.pdf`, and `elements-solid-geometries.pdf`: element review artifacts.

Logs and intermediate renders are retained in `tmp/fluid-qa`, `tmp/fluid-verification`, and `tmp/visual-audit-2`. The source baseline is in `tmp/fluid-task-baseline`; this working directory has no Git metadata.

## Scope

The module is an editable schematic drawing API, not an equilibrium or CFD solver. The documented levels, curvature, and dimensions are user inputs. Pics provide complete teaching assemblies; nodes expose individual objects with native anchors and styling. Automatic node connections use a nominal frame; semantic surface/inlet/outlet anchors provide specific attachment points.
