6. Updating & troubleshooting

6.1. Updating LatticeMind

When an interactive CLI or Web startup finds a newer release on the public Nanoacademic package index, it prints one line containing the exact upgrade command. LatticeMind checks at most once per 24 hours and stores the last result in ~/.latticemind/update_check.json. A failed check is silent and is not retried for one hour. Interactive startup waits at most 1.5 seconds for the notice.

python -m pip install --upgrade \
  --index-url https://pypi.nanoacademic.ca/simple/ \
  --extra-index-url https://pypi.org/simple/ \
  lattice-mind

Set LATTICEMIND_UPDATE_CHECK=0 to disable the check. It reads only the public lattice-mind project page; it does not send prompts, project paths, API keys, or solver files. latticemind --version and other shell subcommands never make the check.

This is the same index pair used to install LatticeMind in the first place; see Where LatticeMind comes from.

To install a wheel file supplied directly by Nanoacademic instead, open a terminal in the directory containing it and run:

python -m pip install --upgrade --force-reinstall <matching-wheel>.whl

The wheel installs the post-processing libraries (h5py, scipy, matplotlib) by default. Your projects in latticemind_outputs/ (or LATTICEMIND_ARTIFACTS_DIR) are untouched by an upgrade.

To confirm which version you are running, use latticemind --version; the interactive welcome banner and the Web UI header and footer also state it.

6.2. Troubleshooting

Symptom

Fix

“Provider configuration required” / missing API key

Set the key for your selected provider (see Choosing a provider) in .env in the folder you launch from, or as an environment variable.

Web UI port already in use

LatticeMind picks another free port automatically, or set LATTICEMIND_WEB_PORT=7866.

Web UI loads but CSS / live updates don’t (behind a proxy)

Set LATTICEMIND_WEB_BASE_PATH to your proxy prefix, e.g. /proxy/7865.

No browser / running on a server

Nothing to change: latticemind starts in the plain CLI. Neither dashboard opens on its own — use /dashboard on for the terminal dashboard, or latticemind-web for the Web UI.

LatticeMind reports “License check failed”

LatticeMind needs its own license, not a RESCU one. Put exactly one valid *.lic or *.license file under ~/.nanoacademic/LATTICEMIND, or set LATTICEMIND_LICENSE_FILE to the exact file. This startup check applies to every solver selection.

RESCU command needs configuration

Test rescu directly, or set LATTICEMIND_RESCU_CMD to the exact executable. RESCU execution needs its own active RESCU license on the computer that runs it.

NanoDCAL command needs configuration

Test NanoDCAL directly, then set LATTICEMIND_NANODCAL_CMD or the Web UI’s Local NanoDCAL command field. NanoDCAL needs its own active solver license on the computer that executes it.

NanoDCAL neutral-atom data path needs configuration

Extract the NeutralAtomDatabase from the Nanoacademic Portal and set LATTICEMIND_NANODCAL_DATA_PATH or the Web UI’s NanoDCAL neutral atom data field to its root directory, not to the archive file.

A DFPT/phonon post-processing step fails in parallel

Some RESCU post-analysis stages are serial-only; LatticeMind strips MPI launchers for them automatically. See Settings & configuration reference.

6.3. Before launching expensive jobs

Use these guards to avoid surprises:

/cost              # estimate resource risk before launch
/launch-preview    # preview commands, inputs, readiness, serial guards, cost

RESCU and NanoDCAL feasibility depends on atom count, basis, k/q grids, functional, spin, wall time, memory, and scheduler limits. Start with a cheap validation run before launching dense DFPT, phonon, optics, Raman, relaxation, transport, or large-cell workflows.

6.4. Getting help

See Contact Us for the Nanoacademic forum and support email, and what to include in a report.