Web Texereau

Reduces a set of knife-edge readings, taken against a pin stick or a Couder mask, into the wavefront your mirror actually has — and into the number you want, the maximum error as a fraction of a wave. A port of Lindner and Phillips’ tex, checked against it.

Units

Every length converts live. The C program refuses to mix units; this one does not have to.

Mirror

Tester

Repeats are what give the Monte Carlo its uncertainty. With one sample per zone it falls back to a fixed 0.005 deviation, exactly as the C does.

Zone marker

Zone boundaries are editable in the table. An odd number of zones puts the 70.7% zone in the middle of one rather than on a boundary; five is what most mirrors want.

Pin stick

The pin stick

Knife-edge readings

One row per zone. Paste a column or a block straight from a spreadsheet; arrow keys and Enter move between cells.

Results

Maximum wavefront error
At zone boundary
80% confidence
Max transverse aberration
Suitable constant
Reference parabola
Airy disc radius
Focal ratio

How much to trust it

Each zone’s reading is jittered by its own measured scatter and the whole reduction is run again, a thousand times over, to see how much the verdict moves.

Simulated tests

Test sheet

The fourteen rows the C program prints, transposed so they grow downward with the zones.

How far to trust it

The reduction is a line-by-line port of calc() from tex.c, checked against the compiled C program on the reading sets in fixtures/. Where it looks numerically odd — the constant found by walking cnst += tdev/150000, the hand-tuned tolerances in the parabola search — that is deliberate, and changing it would break agreement with numbers makers wrote down decades ago.

Pin-stick mode is the exception. tex has no pin stick, so there is no C output to check it against. What is checked is the one thing that differs: the pin radius, against the closed form the Stellafane zone calculator publishes, Center(X) = √(X+0.5)/√N. Everything downstream of that radius is the same code the Couder path uses, and that path is checked against the C.

What it cannot tell you: the Foucault test at the centre of curvature says nothing about astigmatism unless you take readings on more than one diameter, and nothing at all about the surface between your zones.

The reduction

A zone at radius h on a perfect paraboloid returns to the axis further out than the centre does, by

h² / R

Which h depends on what marked the zone. A pin stick puts a pin at the zone’s equal-area radius and you null on the pin, so that is the radius the reading belongs to. A Couder mask exposes the whole band, and tex attributes it to the band’s arithmetic mean:

pin   h = √((in² + out²) / 2) mask   h = (in + out) / 2

Subtract that from the reading, subtract one constant chosen so the largest errors come out equal and opposite, and what is left is the figure error as a longitudinal distance. Scaled by h/4f it becomes a transverse aberration, and integrated across the zones it becomes the wavefront:

u = −20 · λf / R W(i) = W(i−1) + u(i−1) · (outer − inner)

Finally the best reference parabola is subtracted, because a parabolic term in the wavefront is only a change of focus, not an error.

Scope

Centre of curvature only, Foucault knife-edge only. No Ronchi, no autocollimation, no star test. For the Ronchi pattern the same mirror should show, see Web Ronchi.

Deliberate departures from the C are recorded in docs/adr/: the canonical millimetre, the dead calc_wavefront(), the dropped -s sphere flag, and why the graphs are the ones they are.