# LW33 — R15 mesh and longer R14 flow control

## Outcome

R15 reduces poor-determinant cells from 18 to 13. It retains a passing face-interpolation-weight check but still fails two detailed checks: cell determinants and concave cells. It is not an accepted performance mesh.

| Mesh metric | R14 | R15 |
|---|---:|---:|
| Cells | 330,610 | 330,244 |
| Poor determinants | 18 | 13 |
| Native concavity flags | 20,708 | 20,662 |
| Wet area with at least one layer | 81.89% | 80.75% |
| Wet area with at least three layers | 35.21% | 34.88% |

R15 changes only the mesh-generation minDeterminant limit from 0.001 to 0.01. Final detailed checkMesh still finds 13 cells below 0.001 (minimum 0.00023254407). Raising the generation limit is not proof the final cells meet it. The source hull surface, interpolation-weight limit, layer proportions and historical initial waterline are unchanged. Coverage uses area-weighted face-centroid selection below the initial waterline.

## Flow evidence

| Case | Saved time (s) | Maximum air speed (m/s) | Maximum water speed (m/s) | Stop reason |
|---|---:|---:|---:|---|
| r14ext | 0.020014109 | 25.50 | 16.12 | normal completion |
| r15 | 0.004962644 | 31.08 | 16.63 | normal completion |

R14 continuation restarts from the saved 0.0098976336 s fields in a separate case. Its plot contains continuation data only; the original R14 record holds the earlier interval. Requested endpoint: 0.02 s; wall budget: 600 s. R15 starts from its own initialized fields, requests 0.005 s and has a 450 s wall budget. Both use a 100 m/s global-velocity guard and a 5-microsecond minimum-time-step guard. Adaptive stepping and checkpoint latency can change the actual endpoint. All runs use OpenFOAM v2412, fixed hull, 30 kn prescribed towing, full two-phase flow and the same historical loading. The speed is imposed, not predicted.

Air maxima use water fraction <0.01; water maxima use water fraction >0.99. Neither global nor phase maxima validate resistance or attainable boat speed. Even 0.02 s is only about 3% of one hull transit time (~0.64 s). These tests do not demonstrate developed flow or force convergence.

## Concavity audit

The installed OpenFOAM v2412 primitiveMeshCheck.C flags a cell when another face center lies across a face plane, including nearly planar arrangements at a cosine threshold of -1e-6. A separate diagnostic reproduces the native flagged-cell count using OpenFOAM face.C area-weighted face centers and area normals. It does not change or waive the native mesh test.

For R15, the independent calculation reproduces 20,662 of 20,662 native flags. 1,248 are near-planar only; 19,414 have positive plane violations above 1e-6, including 5,801 above 0.01. Most flags therefore cannot be dismissed as near-planar geometry. R14 similarly has 1,263 near-planar-only cases out of 20,708 native flags.

## Status and next work

The requested instability repair remains open. The remaining work is local mesh topology/shape repair and adequate near-wall resolution, followed by longer stable runs, mesh/time-step sensitivity and converged force histories. This checkpoint provides no validated resistance, running trim, engine/propeller match, top speed, fuel use or wave response.

User reference: 4,100 kg loaded, one Volvo Penta D6-340, reported H6, H8 only an unverified candidate; CG 2,750 mm with datum/direction unconfirmed. The tests above retain the historical 3,500 kg loading and inferred 2.9405231959611386 m LCG forward of aft keel. The new CG and loading have NOT been applied to these flow cases. A confirmed datum and fresh loaded equilibrium are needed before a new boat baseline. Actual sea-trial measurements are still needed for independent comparison.

## Reproduction

The archive includes the two meshes, mesh inputs, R14 restart fields, R15 initialized fields, final two saved field directories per case, complete histories/logs, numerical audits and scripts. OpenFOAM v2412, Python, NumPy and VTK are required separately. Meshes are stored once under meshes. Copy each mesh constant/polyMesh directory into the matching case constant/polyMesh before using an extracted case. For r14ext-longer-control use r14-strict-weight; for r15-strict-determinant use the same-named mesh. Preserve evidence and rerun only in separate copies. Preparation scripts retain historical source-case dependencies; the included initialized/restart cases can be run directly with OpenFOAM.
