4. Licenses and solver executables

The LatticeMind wheel supplies the assistant, validators, reports, and Python post-processing libraries. Configure a valid RESCU license before starting LatticeMind; the same license supports RESCU execution. If you plan to run NanoDCAL, configure a separate NanoDCAL license and the NeutralAtomDatabase.

4.1. The RESCU license used at LatticeMind startup

LatticeMind checks a valid RESCU license file before latticemind or latticemind-web starts. This check also runs when the selected solver is NanoDCAL. LatticeMind looks in the standard Nanoacademic directory:

  • Windows: C:\Users\<YourUsername>\.nanoacademic\RESCU

  • Linux / macOS: $HOME/.nanoacademic/RESCU

Put exactly one *.lic or *.license file there. If the file lives elsewhere, or the standard directory contains more than one candidate, select the exact file in .env or an environment variable:

LATTICEMIND_LICENSE_FILE=/path/to/rescu.lic

If LatticeMind cannot validate the selected RESCU license, it displays a License check failed message. Check the file path, expiry date, host eligibility, and whether the standard directory contains multiple candidates.

4.2. Running RESCU calculations

Input generation does not require a RESCU executable. RESCU execution does. By default LatticeMind runs rescu from PATH; to select a specific build, set one of:

LATTICEMIND_RESCU_CMD=/opt/esapp/rescu
RESCU_EXECUTABLE=/opt/esapp/rescu

Install RESCU from the Nanoacademic Portal and test the command directly before the first LatticeMind execution.

The wheel ships a runtime RESCU pseudopotential bundle. To use a different extracted database, point at the directory containing nano_tm_lda/ and nano_tm_pbe/:

LATTICEMIND_PSEUDO_ROOT=/path/to/pseudopotentials
RESCU_PSEUDO=/path/to/pseudopotentials

The bundled database covers 70 elements under LDA and 51 under PBE. Because LatticeMind uses PBE by default, a material containing one of the LDA-only elements — Ar, Ba, Bi, Br, Cs, F, He, Hg, I, K, Kr, Mn, Ne, Po, Rb, Rn, Sr, Te, Xe — cannot run with the default functional from the bundle alone. LatticeMind reports this before launching rather than silently substituting an LDA potential, which would answer a different question. Supply the missing potential through LATTICEMIND_PSEUDO_ROOT, or request LDA explicitly.

4.3. Running NanoDCAL calculations

The RESCU license configured for LatticeMind remains in place. To execute a NanoDCAL project, also configure these NanoDCAL components:

  1. The NanoDCAL executable.

  2. A separate NanoDCAL license on the local or remote computer that runs the calculation, following the NanoDCAL installation instructions.

  3. The extracted NeutralAtomDatabase from the Nanoacademic Portal.

Set the executable and extracted database root in .env:

LATTICEMIND_NANODCAL_CMD=/full/path/to/nanodcal
LATTICEMIND_NANODCAL_DATA_PATH=/full/path/to/NeutralAtomDatabase

The Web UI exposes the same values under Settings -> Solver -> NanoDCAL in the fields Local NanoDCAL command and NanoDCAL neutral atom data. Point the data field at the extracted directory, not the downloaded archive. LatticeMind searches that directory recursively for each requested element’s *.nad or *.mat basis file. Missing element coverage blocks launch with the missing symbols listed.

LatticeMind stages the selected basis files under the generated project’s nanodcal_basis/ directory so the exact decks can run locally or in a remote bundle. When sharing a project, please keep nanodcal_basis/ within the scope of your Nanoacademic license.

For remote execution, the selected entry in ~/.latticemind/remote_profiles.toml must define nanodcal_command. The remote computer must have NanoDCAL, its runtime dependencies, and an active NanoDCAL license. See Remote & HPC execution and NanoDCAL support (experimental).

4.4. The built-in RESCU documentation

While it builds your calculations, LatticeMind looks things up in the RESCU documentation — and that documentation already ships inside LatticeMind. It works out of the box, offline, the moment you install, so for almost all users there is nothing to set up here.

If you ever want LatticeMind to read the docs from a different local folder (for example a newer RESCU release), add one line to your .env:

RESCU_DOCS_DIR=/path/to/your/rescu_docs
Advanced — use an OpenAI vector store for retrieval instead

The built-in documentation is fully capable on its own and needs no vector store. If you specifically want retrieval to come from an OpenAI vector store (for example to add your own documents later):

  1. Locate the shipped RESCU documents. Run pip show lattice-mind and find the Location: line; the documents are under <Location>/rescu_agent/database/rescu.

  2. On https://platform.openai.com, open Storage → Vector stores, click Create, and name it (e.g. RESCU docs).

  3. Open the store, click Add files, and upload all files from the rescu_agent/database/rescu folder. Wait until each shows as ready.

  4. Copy the store ID (it begins with vs_). Use your own account’s store.

  5. Add to your .env:

    RESCU_RAG_BACKEND=openai
    OPENAI_VECTOR_STORE_ID=vs_your_store_id_here
    # if your account uses org/project scoping:
    OPENAI_ORG_ID=org_...
    OPENAI_PROJECT_ID=proj_...
    

4.5. Do I have everything?

To do this…

You need

Covered by

Start LatticeMind

Wheel + RESCU license + AI provider key

this page and Connecting your AI model

Generate & validate inputs

Running LatticeMind; no solver executable required

Getting started

Run RESCU locally

RESCU executable + startup license

this page

Run NanoDCAL locally

NanoDCAL executable + NanoDCAL license + NeutralAtomDatabase

this page and NanoDCAL support (experimental)

Run calculations on HPC

Remote profile + solver and solver license on the remote computer

Remote & HPC execution

With the startup license, AI provider, and selected solver files in place, continue to Getting started.