HPA is a browser-only tool for analyzing hydrogen permeation data in the browser. It is meant for people who have a transient current trace, want to compare the common textbook evaluation methods, and also want to see whether the data are self-consistent with a simplified one-dimensional Fickian membrane model.
The workflow is simple: paste or upload the data, confirm the current unit and membrane thickness, check the baseline and steady-state references, inspect the plot and results, then export what you need. Nothing is sent to a backend and the file stays in your browser.
Quick start
- Paste a two-column file or use File Upload.
- Set the input current unit so HPA knows how to read the second column.
- Enter the membrane thickness in mm.
- Check the baseline and steady-state references, then drag them on the plot if needed.
- Use the results cards to compare the classical methods, the inverse Fickian solve, and the global transient fit.
- Export PNG, SVG, or the processed data table when you are done.
Input
HPA is strict about the input format because the analysis only makes sense when the file is unambiguous. Each row must contain exactly two numeric values: time first, current second. One sample belongs on each line, and header rows are not allowed.
- Accepted separators are tab, semicolon, whitespace, and comma.
- The decimal separator can be dot or comma, but a single file should use one style consistently.
- Paste and file upload use the same parser, so both paths accept the same layout rules.
- Extra text, comments, mixed delimiters, or extra columns usually cause parsing to fail.
- If parsing fails, HPA reports the lines it could not understand and reminds you to keep the file to two numeric columns.
Most failed imports come from one of three things: a header row, mixed decimal styles, or a file that contains more than just time and current values.
Controls and plot
The Current unit tells HPA how to interpret the uploaded current column. The Y-axis unit only changes how the plot, reference markers, and data preview are displayed. The app converts between them automatically, so you can keep the file in its original unit and still view it in a different one.
- Supported current units are A, mA, μA, nA, and pA.
- The membrane thickness is entered in mm. It matters because all diffusion coefficients scale with
L2, so a unit mistake changes every result by a large factor.
- The baseline and steady-state fields define the normalization used by the analysis. If they are left blank, HPA starts from the minimum and maximum values in the loaded data.
- You can type baseline and steady-state values manually, or drag the reference lines directly on the plot. The values follow the currently selected display unit.
- The Start Time Offset control shifts the trace before analysis. A positive offset prepends baseline time and moves the transient forward. A negative offset removes early time and shifts the remaining data back to zero.
- Plot Options let you change the y-axis unit, choose how low-confidence diffusion segments are drawn, turn grid lines and minor grid lines on or off, and switch the left diffusion axis between linear and logarithmic scaling.
- The Reset button restores the default plot view. The Hide/Show buttons toggle the reference markers without deleting their values.
The plot itself is interactive. You can zoom and pan it directly, then use Reset to return to the default view. If you drag the baseline or steady-state line, HPA updates the corresponding value and reruns the analysis.
Results
HPA first normalizes the measured current with
y(t) = (I(t) - I0) / (Iss - I0)
where I0 is the baseline current and Iss is the steady-state current. That normalized curve is the common basis for the classical methods, the inverse solve, and the global fit.
Dapp(t) is an apparent coefficient, not a claim about the true lattice diffusion constant. It is the constant D that the simplified 1D Fickian membrane model would need in order to reproduce the measured transient at that time point.
- Breakthrough uses the first 10% crossing of the normalized curve. It is a quick textbook estimate, but it is sensitive to the early-time shape and to any baseline error.
- Time lag uses the 63% crossing. It assumes that the transient has a clear monotonic rise and that the steady-state level is meaningful.
- Inflection point uses the maximum-slope point of the normalized curve. It is only useful when the curve has one clear inflection and the steady-state current is valid.
- Inverse Fickian inverts the ideal Fickian response point by point to produce
Dapp(t). HPA then looks for a stable middle window and reports an average value when that window is robust enough.
- Global Transient Fit searches for one constant
D and one t0 shift that best reproduce the normalized curve. It is useful when you want a single self-consistent fit instead of pointwise inversion.
The preview table shows Dapp in mm²/s for readability. The CSV export writes Dapp in m²/s, so the exported numbers look different even though they represent the same quantity.
Export
- PNG saves the current plot as an image.
- SVG saves the current plot as a vector graphic.
- Data exports the processed table with time, current, and
Dapp.
The export always reflects the current display settings, including the selected plot unit, reference values, and plot view. If you change the plot or the controls, export again to capture the updated state.
Diagnostics
The Experimental: Diagnostics drawer is a self-consistency check, not a proof of the underlying physics. It looks for candidate baseline, steady-state, and t0 settings that make the data more compatible with the simplified model.
- The composite score is a heuristic measure of how self-consistent the selected preprocessing looks. Lower is better.
- Confidence is derived from that score and is meant as a convenience indicator, not as a statistical probability.
- The top candidates are alternate baseline, steady-state, and time-zero combinations that the diagnostic search tested against the same data.
- Apply Best copies the best candidate into the main controls and reruns the analysis.
- Revert restores the state that existed before diagnostics were run.
Warnings about weak signal, non-monotonic curves, plateau drift, or time-zero sensitivity mean the data or the selected preprocessing are not strongly self-consistent. They do not identify one physical mechanism by themselves, but they do tell you when the textbook methods deserve caution.
Limits and caveats
Dapp is omitted for rows where the normalized value is outside the physical interior of the curve or where the solver cannot produce a valid value.
- The inverse-solve values can hit the solver bounds. When that happens, HPA treats the result as unstable instead of pretending it is meaningful.
- The global fit needs fixed baseline and steady-state values. If those references are not usable, the fit is unavailable.
- The tool does not model trapping, surface kinetics, oxide layers, recombination, or other detailed transport mechanisms. It only evaluates a simplified Fickian membrane picture.
- HPA is local-only. Your pasted data or uploaded file is processed in the browser and is not sent to a backend service.
Use the results as a technical guide, not as a substitute for experimental judgment. If the diagnostic warnings are strong, the best next step is usually to check the file, the unit settings, and the reference levels before trusting a single-number diffusivity.