# Test fixture crosshead

This is an executed, reproducible **2D plane-stress finite element study**, with quadratic triangular elements. It is not a 3D contact simulation or a certified fixture load rating.

## Run

Use Python 3.12 in a virtual environment, then:

```
python -m pip install -r requirements.txt
python run.py
python test_project.py
```

Open `report.html`. `outputs/load-cases.csv` contains all 18 load/support cases. `outputs/mesh-convergence.csv` contains three refinement levels for each profile. `outputs/beam-benchmark.csv` records the separate analytical cantilever comparison. Editable source and all input values are included.

The assembly envelope is 240 x 40 x 20 mm, loaded at 500 N over a 20 mm patch. Vertical support stiffness is swept over 5, 20, and 100 MN/m per support. Loads are centered and offset by 30 mm. Geometry and elastic values are declared reference inputs, not measurements of an existing fixture.

The selected 12 mm flange windowed profile reduces mass while meeting the 0.05 mm displacement allowance in the nominal and stiff support cases. The weak support case does not meet that allowance. The report retains that failure rather than presenting every case as acceptable.

CAD is in millimetres; the solver uses SI units. The through-window geometry is suitable for a wire-EDM reference route. The nominal model uses sharp corners; finite internal radii, notch stresses and three-dimensional contact are outside the 2D model. The added installation study specifies a usable translation/rotation support envelope and evaluates off-plane loading with a separate reduced-order torsion calculation. Maximum sampled stress excludes singular corner and support neighborhoods.

The analytical benchmark, reaction force/moment balance, mesh convergence, CAD/mesh mass check, load scaling, and symmetry are numerical verification. The completed synthetic load-cycle exercise tests the data reduction with stated noise and hysteresis. It is not physical FEA correlation.

## Completed synthetic and theoretical run-through

12 mm flange profile; vertical support stiffness>=30 MN/m and rotational stiffness>=500 N m/rad per support. Load<=550 N, E>=66 GPa, thickness>=19.9 mm, load at x 120 or 150 mm, off-plane offset<=2 mm. Combined worst-case movement plus response-fit allowance<0.05 mm.

Run the added study and its regression checks after the original model:

```sh
python complete_validation.py
python test_completion.py
```

Open `completion/report.html`. `completion.json` contains the acceptance matrix, expected adverse outcomes, and SHA-256 hashes of the relevant source files. `completion-inputs.json` contains the declared operating and fault scenarios. `completion/` holds the generated tables, traces and plots. The commands regenerate the evidence and update the delivery summary. No fabricated bench measurements are included.
