# Teardrop wing fairing — structural and packaging constraints

These rules apply to the low-profile teardrop wing / motor-bay fairing series (OpenFOAM `teardropv*_sim` cases, `wing.stl` in metres in the case tree).

## Axes (simulation `wing.stl`, metres)

- **Y** — span, symmetric about `Y = 0`. Freestream is **−Z**; lift reference is **+X**; pitch axis **+Y** (see `system/forceCoeffs` in each case).

## Hard constraints

1. **Span (total extent in Y)**  
   Fixed at **113.77 mm** total (half-span **56.385 mm**). Do not change without revisiting prop-disk placement, snappy background, and reporting.

2. **Maximum thickness (total extent in X)**  
   Former CAD limit was **20 mm**. Structural packaging is now **10 mm** total (half-thickness **5 mm** in `|X|`). All new fairing solids must satisfy **max(X) − min(X) ≤ 0.010 m** on the watertight outer surface.

3. **Height (total extent in Z)**  
   No fixed upper limit. **Minimum** total height **60 mm** (`max(Z) − min(Z) ≥ 0.060 m`). Larger Z is allowed for aerodynamic fineness.

4. **No chordwise boat-tailing**  
   Do not apply **rear (or nose) x,y scaling** along **Z** to fake a taper unless the mechanical design explicitly allows that outer mould line. **Affine** scaling of a baseline STL (uniform thickness / span / height factors) is OK.

## Design intent

- **v12 / v13** — empirical CAD; v12 used **20 mm** X-thickness; v13 taller in Z (~84 mm) with same 20 mm X.
- **teardropv17** — affine reshape from **v12** `wing.stl`: **10 mm** X, fixed **Y** span, **Z** between v12 and v13 — **no** taper along chord.

## Baseline for iterations — teardropv18_sim (best plain fairing to date)

Reference CFD on this machine (filesystem UTC):

- **`postProcessing/forceCoeffs/0/forceCoeffs.dat`** last modified **2026-05-05** (~**00:34** UTC); converged time directory **`500/`**.
- **Setup:** `simulate.sh` template, **42 m/s**, **500** iterations, **`forceCoeffs`** box **Aref** ≈ **0.008227 m²**, **lRef** ≈ **0.072848 m**, no **`fvModels`** prop disk.
- **Last 50 iterations (average):** **Cd ≈ 0.013018**, **Cl ≈ 0.000608**, **drag ≈ 0.116 N**.

## teardropv21 (allowed edits only — from `teardropv18.stl`)

- **Goal:** Beat **v18** **Cd** without chordwise taper (see **No chordwise boat-tailing** above).
- **Steps (`scripts/generate_teardropv21_from_v18.py`):** bounding-box **centre** in mm; **Y** symmetry in **(x,z)** bins (**0.025 mm**); **uniform Z scale** **×1.032** about the origin after centre (affine lengthening in streamwise **Z**, total height **≈75.2 mm**, still **≥60 mm**); then **uniform X** scale so total thickness **≤10.000 mm**.
- **teardropv21_sim** (same solver settings as baseline): check **`teardrop_reports/teardrop_force_coeffs_results.json`** for latest **Cd** / **drag** (solve completed **2026-05-05** UTC on this host).

## teardropv17 (plain fairing, v12-like mould line)

- **Source:** `teardropv12_sim/constant/geometry/wing.stl` vertex set, **affine** reshape only (same connectivity as v12): **X** scaled to **10 mm** total thickness, **Y** unchanged (**113.77 mm** span), **Z** scaled to mid-way between v12 and v13 depth (**~78.4 mm** total) for a fuller teardrop without artificial pole caps.
- **Generator:** `scripts/generate_teardropv17_from_v12_stl.py` → `teardropv17.stl` (binary mm for `simulate.sh`).
- **Not** the same part as `teardropv17_with_hubshield33mm.stl` (hub-shield campaign); this is the **plain** span-wise fairing line.
- **teardropv17_sim** (template, no prop disk): 42 m/s, 500 iters, box **Aref** ≈ 0.00884 m², last-50 **Cd ≈ 0.0126**, **drag ≈ 0.12 N** (see `teardrop_reports` after index regeneration).

## CFD parity note

Cases **without** `constant/fvModels` (e.g. **teardropv13_sim**) are clean-wing RANS. **teardropv12_sim** includes a `propellerDisk` model. Compare **Cd** only across cases that share the same `fvModels` setup.
