# Heated platen

Reproducible thermal finite element study with nominal CAD, plate drawing, sensor layout, results and test records. This is a reference analysis, not a qualified heater or physical temperature test.

Use Python 3.12. In this folder:

```sh
python -m venv .venv
# Linux/macOS: source .venv/bin/activate
# Windows: .venv\Scripts\activate
python -m pip install -r requirements.txt
python run.py
python test_project.py
```

Open `report.html`. Outputs and drawings are in `outputs/`; STEP/STL exports are in `outputs/cad/`. Edit `inputs.json` to rerun the reference cases. Numerical coordinates use SI units; CAD uses mm.

The 2D plate model assumes temperature uniform through the 8 mm thickness. Three lumped heater nodes have finite contact conductance. Implicit Euler advances a consistent capacity matrix. Eighteen steady cases compare three layouts at equal total power. Six transients compare loss and degraded contact with identical PI control and a 60 W power ceiling.

Band-entry time means every sampled working-area node stays between 88 and 92 C for the remainder of a 3600 s simulation. It is not a measured warm-up time or an infinite-time stability guarantee. Poor contact can produce high heater temperatures despite acceptable plate temperatures. The completed fault study adds an explicit independent cutoff model and full-surface readiness gate. Actual hardware qualification is not represented by those numerical runs.

`verification.json` records executed conservation and convergence checks. `test_project.py` checks limiting cases, invalid inputs and contact/loss behavior.

Numerical library reference: https://scikit-fem.readthedocs.io/en/stable/listofexamples.html#example-19-heat-equation

## Completed synthetic and theoretical run-through

Three heaters with nominal 1000 W/(m 2 K) contact, bottom U 2 W/(m 2 K), 60 W maximum power, independent 125 C heater/105 C surface cutoff with 2 s response. Six 22/35 C ambient x 5/10/20 W/(m 2 K) convection cases reach 88-92 C across the working area for a 300 s hold.

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.
