STM/STS analysis
From spectra to Hamiltonians.
Inspect a measurement, check it against an existing model, or train a model for the system under study.
How it works
A spin chain's excitation spectrum depends on its exchange couplings. HamLeT simulates spectra for known couplings and trains a model to infer those couplings from measured dI/dV. Each model is valid for a specified chain length, bias window, observable, and parameter range. These conditions are checked before inference.
The usual order
- My data — inspect the measurement and select a bias cutoff.
- Can I reuse a model? — check for a compatible trained model.
- Train a model — generate data and train if no model matches.
- Get my couplings — run inference and export the results.
For DMI studies, check the proposed geometry under DMI sample design before taking data.
Where your files are saved
Look at a measurement
Open a prepared measurement or a folder containing one raw STS spectrum per site. This step reads and plots the data; it does not run inference.
Drop a measurement file here
Use Choose a file for a prepared measurement or Choose a folder
for per-site .dat/.txt spectra. Browse this
machine selects data stored on the computer running HamLeT, including
a remote computer reached through SSH.
Accepts a canonical measurement NPZ, an experiment manifest, a CSV with site / bias / dI/dV columns, or a folder of standard Nanonis STS files.
Can I reuse an existing model?
Check whether the measurement and selected cutoff match the conditions of a trained model. Any mismatch is listed below the model.
Drop a measurement file here
The cutoff is the upper bias used for analysis. It must equal the cutoff used to train the model.
Existing models
Every model available here, published or trained by you: what it was trained on, how accurate it is, and the conditions under which it must not be reused.
Get my couplings
Apply a compatible trained model and export the inferred couplings, an HTML report, and a quality-control figure.
-
1 · Which measurement?
Drop a measurement file here
-
2 · Which model?
The model specifies the cutoff, chain length, view, and observable. Use Can I reuse a model? to check compatibility first.
quick-preset models are refused by default; they are for checking a pipeline, not for results. -
3 · Run it
Train a model for your own system
Set the physical system, simulated measurement, and training method. Review the configuration before starting the run.
-
1 · Which system are you measuring?
-
2 · The chain and its couplings
Spin per site is the magnitude every site of the chain carries. The cost is the Hilbert space, not the site count: raising an eight-site chain from S=1/2 to S=1 takes it from 256 states to 6561, so generation slows sharply and the simulator switches from exact diagonalisation to DMRG on its own. It changes the physics, so a dataset generated at one spin is not interchangeable with another.
Cores to use is how many chains are simulated at the same time, one per core. Every chain is independent, so this is the setting that actually shortens generation — the long stage, measured at 2.7× on four.
1uses a single core and0uses every core on the machine. It cannot change the dataset: each chain’s seed is fixed by its position, so the result is identical however many run at a time.Couplings are drawn uniformly from these ranges. Make them cover the values you expect: predictions outside the trained range are extrapolation.
Impurities
Impurity properties are fixed inputs, not inferred parameters. Enter the measured values. Recovering DMI requires at least two impurities with transverse anisotropy at different sites.
Click a site to add or remove an impurity. Site numbering begins at zero; enter the measured properties in the table.
-
3 · The measurement to simulate
Match this to the measurement you can actually take.
-
4 · Preview a simulated sample
Simulate one chain to check the bias window and broadening. The preview uses a subset of sites and usually takes about one minute.
-
5 · Which model, and how big?
Hyperparameter search
-
6 · Review and run
Where should it run?
Generating the dataset is the slow stage; training after it is minutes. It runs in the background.
DMI sample design
In a conventional chain, symmetry prevents Dz from being determined from these spectra. Compare impurity arrangements and transverse fields that may break this symmetry before preparing the sample.
-
1 · The chain you can build
Spin per site is what the unsubstituted chain carries. Each impurity must differ from it — a site matching the chain is a chain site — and impurities need not match each other, so one arrangement can mix species. Note that single-ion anisotropy vanishes at S=1/2, so a spin-1/2 impurity cannot break the symmetry whatever the chain is. Raising the chain’s spin raises the cost sharply: eight spin-1 sites is 6561 states against 256, and the screening switches from exact diagonalisation to DMRG on its own.
The exchange scale is the gauge-invariant quantity
sqrt(J1_xy² + D_z²). Each screening pair has the same exchange scale and a different DMI contribution. The comparison tests whether the simulated spectra distinguish the pair. -
2 · The measurement you can take
-
3 · The arrangements you could build
Add one card for each candidate sample. Select impurity sites and enter their anisotropy or a transverse field. Site numbering begins at zero.
-
4 · Screen them
The symmetry check does not run a simulation. Full screening simulates one gauge pair for each remaining candidate and reports the spectral DMI imprint. Allow about one minute per candidate.
Where the heavy work runs
Review the available CPU, GPU, and scheduler settings. Long runs can be submitted to a remote cluster.
This machine
Training device
This setting applies to model training. DMRG dataset generation runs on the CPU.
A cluster
Two things are needed: the address you ssh to, and which batch
system it runs. HamLeT uses your own ssh and never stores a
credential.
ssh <address> true
has to succeed without asking you for anything.
ssh-keygen -t ed25519 # only if you have no key yet ssh-copy-id you@cluster.example.edu ssh you@cluster.example.edu trueThe last line must succeed without asking. If your key has a passphrase, load it into
ssh-agent.
What to ask the scheduler for. Leave anything blank to accept your site's default.
Commands to run before the job starts — whatever your site needs to
make python -m hamlet work. One per line.
The saved file defines its own scheduler: block, which this
form cannot show. Saving here will replace it.
Send a run there
You can select this cluster and submit directly from Train a model. These controls remain available for inspecting or resubmitting its scripts.
Running and finished work
Monitor local and cluster jobs and view their output.
When a run is stopped, the current chain, trial, or candidate finishes before the job exits. Completed simulations are retained.