# LW33 — residual mesh controls and longer R18 flow

## Findings

R19 (nGrow=1) removes all wall layers. Although its determinant check passes and concavity flags fall to 486, this is not an acceptable layered resistance mesh. R20 (feature-face splitting on R18) retains layers but produces mixed results: one fewer poor-determinant cell, more concavity flags and slightly less three-layer coverage. R21 uses a graded termination buffer of two cells instead of one: poor determinants fall from 14 to 12 and concavity flags from 2,823 to 2,357, but three-layer coverage drops from 34.63% to 22.41%; the stronger plane-violation count increases from 441 to 449. R18 is retained as the flow reference, and none of these alternatives is promoted as an accepted mesh. All other settings are copied from R18.

| Mesh | Cells | Poor determinants | Concavity flags | Wet ≥1 layer | Wet ≥3 layers | Failed checks |
|---|---:|---:|---:|---:|---:|---:|
| R18 | 330,151 | 14 | 2,823 | 80.42% | 34.63% | 2 |
| R19 | 307,421 | 0 | 486 | 0.00% | 0.00% | 1 |
| R20 | 330,207 | 13 | 2,865 | 80.81% | 34.25% | 2 |
| R21 | 327,323 | 12 | 2,357 | 81.39% | 22.41% | 2 |

The table uses the full checkMesh -allGeometry -allTopology output. A zero utility exit code is not a clean mesh. Coverage is area-weighted using hull-face centers below the historical initial waterline; it does not establish adequate wall resolution or y+. Concave/warped face warnings also remain in the full logs. No mesh-only control is represented as a flow run.

## Concavity classification

| Mesh | Positive plane violations >1e-6 | Stronger violations >0.01 |
|---|---:|---:|
| R18 | 1,977 | 441 |
| R19 | 476 | 441 |
| R20 | 2,016 | 461 |
| R21 | 1,463 | 449 |

These are maximum face-plane cosine tests using installed OpenFOAM area-weighted face centers and normals. The independent calculation reproduces native flagged-cell counts; it does not waive them. R19 stores moved points and cell sets under 0/polyMesh; the classifier uses that time-zero override and constant topology, matching checkMesh. Both directories are preserved.

## Why the determinant checks differ

The installed snappyHexMesh geometry check uses all face-area vectors, whereas checkMesh uses internal/coupled face vectors to test connectivity. Independent calculations on all 14 flagged R18 cells reproduce this difference: every cell passes the snappy 0.01 threshold but fails the native 0.001 connectivity threshold. Minimum values in the flagged set are 0.0104297485 and 0.000232547182 respectively. Increasing snappy minDeterminant does not directly enforce the final connectivity criterion. All 14 flagged cells have three internal faces and one boundary face, with mean face-center Z between -0.214 m and -0.071 m below the historical waterline. The remaining repair must address cell connectivity and shape; this finding does not justify suppressing either check. Source: installed OpenFOAM v2412 polyMeshGeometry.C::checkCellDeterminant, primitiveMeshTools.C::cellDeterminant and polyMeshCheck.C::checkCellDeterminant. Per-cell evidence is in audit/r18-determinant-metrics.json.

## Longer R18 flow

The continuation restarts at **0.009986014 s**, requests **0.025 s**, and saves through **0.025016747 s**. Saved maximum air/water velocities: **25.473 / 15.973 m/s**. All final velocities finite: **True**. Stop reason: **normal completion**. Solver exit: **0**. Continuation wall time: **653.2 seconds**.

OpenFOAM v2412 serial interFoam, fixed hull, prescribed 30 kn, unchanged R18 mesh and flow settings. Limits: 750-second wall budget, global velocity above 100 m/s, or time step below 5 microseconds; 40-second checkpoint grace period. Air/water maxima use alpha.water <0.01 / >0.99. The cockpit curve reports the global velocity maximum. The continuation curve starts at its first recorded time; earlier flow remains in the separate R18 record.

One hull transit at this imposed speed is approximately 0.64 seconds. The saved endpoint is only **3.9%** of that time. Passing a short startup window does not prove steady forces, long-term stability or usable resistance. No new flow is claimed for R19–R21.

## What still needs to be solved

1. Retain adequate wall-layer resolution while resolving residual poor cell shapes; explain and address native geometry warnings rather than suppressing their checks.
2. Confirm the CG datum and direction for 2,750 mm, plus the missing vertical CG. Solve the loaded 4,100 kg equilibrium and check displaced volume and moments against that reference.
3. On an acceptable mesh and loaded equilibrium, run sufficiently long calm-water cases to settle force histories, then demonstrate time-step and mesh sensitivity. Use phase bounds, continuity and force histories alongside velocity guards.
4. Compare against actual sea trials. Engine/propeller matching additionally needs the drive model, ratio and confirmed propeller specification. Wave response follows a reliable calm-water baseline.

Current user reference: 4,100 kg loaded, one Volvo Penta D6-340, reported Volvo Penta H6. H8 remains an unverified candidate. CG 2.75 m has no confirmed datum/direction. These diagnostics retain the historical 3,500 kg reference, inferred LCG 2.9405231959611386 m forward of aft keel, VCG 0.8 m and initial waterline 0.474812285331381 m above aft keel. The new loading is NOT applied. There are no validated speed, fuel, running trim, propeller or wave-response predictions.

## Reproduction and files

Source hull STL SHA-256 remains e7fada1f1334c7998e43d9067d4e9a4d511f39464fe5ca6659a95d8d2f5554ef; original STEP unchanged. Generated boundary/volume meshes can differ. The archive contains R19–R21 inputs and complete generated meshes, the R18 mesh once, the longer R18 initialized restart and final two saved field directories, histories, logs, audits and scripts. Copy meshes/r18-internal-smoothing/constant/polyMesh to cases/LW33-r18ext-longer-control/constant/polyMesh before running the extracted continuation. The original warm restart is retained even if later fields are present. Choose startTime explicitly when reproducing from that restart. OpenFOAM v2412, Python, NumPy and VTK are not bundled. Preparation scripts refer to historical source cases; use the archived initialized restart for direct reproduction.
