Repository navigation
Liu Threshold Analyzer 1.0.0
Download LiuAnalyzer.exe below: one file, no installer, for Windows 10 (1809 or later) and Windows 11.
First public release. The tool has been in use since May 2026; this is the point
at which somebody else could pick it up.
Added
- Liu's method, end to end. Enter (pulse energy, crater diameter) pairs and
read the ablation threshold fluence and the Gaussian beam waist, each with a
1σ uncertainty propagated from the regression covariance, plus the R² of the
fit. - Error bars from repeats. Measurements sharing a pulse energy are grouped
automatically and drawn with their sample standard deviation. - A chart that makes the method obvious, with a switchable logarithmic or
linear energy axis. On the logarithmic axis the fit is a straight line, which
is the whole point of the technique. - Five languages: English, Chinese, Spanish, French and Russian, switchable
from the header. English is the default. - Light and dark themes, switchable from Settings.
- Save as a JSON session that reopens, or as a PNG of the chart with the
data table drawn underneath it. - An Instructions dialog deriving every quantity from the fitted slope and
intercept, with the error-propagation expression for each, and a diagram of
the beam geometry. - A one-file portable executable. No installer and no Python on the target
machine.build.batbuilds it locally; pushing a version tag builds it on a
clean Windows runner and attaches it to a GitHub release. - Demo data on first launch — six greyed-out points, dismissed by the first
real measurement, so that the window is never blank and never ambiguous about
whether the data is yours.
Fixed
- The Gaussian-beam diagram is now credited. It is adapted from a Wikimedia
Commons figure under CC BY-SA 3.0, which requires attribution; the credit
appears in the About dialog, so it travels inside the executable, and in
NOTICE. - Lint findings across the codebase: modern
X | Noneannotations, imports from
collections.abc, and sorted imports. Qt's model API requires a call in a
default argument, soB008is ignored fordata_table.pywith a note saying
why rather than being worked around.