5. Projects & the workspace

Everything LatticeMind does lives in a project — a self-contained folder holding the inputs it generated, the results it produced, the plots and report, and a complete log of what happened. Projects are portable and reproducible: you can archive one, share it, or resume it later.

5.1. Where projects are stored

By default, projects are created under a latticemind_outputs/ folder in your current working directory, each in its own timestamped subfolder. Override the root with:

export LATTICEMIND_ARTIFACTS_DIR=/path/to/outputs

On shared machines, HPC, and cloud, set this to persistent storage so projects survive restarts.

5.2. Managed vs. attached projects

Mode

Behaviour

Managed

LatticeMind creates a new project folder under latticemind_outputs/. This is the default when you start a new calculation.

Attached

LatticeMind works in place inside a folder you choose. Use /attach . to adopt the current folder — ideal when you already have RESCU inputs or a prior project. LatticeMind writes only lightweight metadata (workspace file, diagnostics, reports, logs) into it.

In place

/subdir off makes every new project land in the folder you started LatticeMind from, with no latticemind_outputs/ subdirectory. Set LATTICEMIND_SUBDIR=0 to start every session that way, or pass --no-subdir to latticemind run. The Web UI has the same control as the Project subdirectory checkbox. /subdir on restores the default.

Use /workspace to inspect a folder before deciding, and /whereami to see which project is active.

5.3. Anatomy of a project folder

A completed RESCU project typically contains:

my_project/
├── inputs/                    # generated solver input decks
│   ├── scf_main.input
│   ├── dos_main.input
│   └── bs_main.input
├── results/                   # solver output
│   ├── scf_main.mat           #   raw results (.mat / .h5)
│   ├── figures/               #   band structure & DOS plots (.png)
│   └── analysis_summary.json  #   extracted quantities (band gap, …)
├── scripts/                   # generated structure & post-processing helpers
├── report.html                # the human-readable report
└── (status & log files)       # bookkeeping LatticeMind manages for you

File / folder

What it is for

inputs/*.input

The solver input decks LatticeMind generated. These are exactly what is executed.

results/

Raw solver output (.mat/.h5), extracted quantities (analysis_summary.json), and plots under figures/.

scripts/

Generated structure-building and post-processing helper scripts.

report.html

The readable summary of the project: what was run, key results, and figures. (Set RESCU_REPORT_FORMAT=off to disable.)

.latticemind/

A hidden directory holding the status, event-log and provenance records LatticeMind uses to resume a project, track progress and self-heal. It travels with the project when you copy, archive or share it, so the history of every number stays attached to the results. You do not need to open or edit anything inside it, and the project directory itself shows only the files you asked for.

5.4. Where projects may be created

LatticeMind will not treat your home directory, the filesystem root, a system directory, or a software directory (the Python environment or the LatticeMind package itself) as a project, so a mistyped path cannot scatter project files across your machine. Work in a subdirectory instead — a folder of your own, or the latticemind_outputs/ directory LatticeMind creates for you. This holds with /subdir off too: asked to work in one of those folders, LatticeMind creates a project subdirectory anyway and says why.

When you work in a directory LatticeMind has not seen before, it may ask whether the files there are yours to read, because it can pick up structure files sitting alongside your work. Record an answer once and it is remembered, including for projects created beneath that folder:

/trust             # show the current answer for this directory
/trust yes         # allow LatticeMind to use structure files found here
/trust no          # attach files explicitly instead
/trust forget      # clear the recorded answer

Files you attach by name are always used; the question is only about files LatticeMind finds on its own.

5.5. Resuming and organizing work

/resume last          # continue the most recent project
/title "Si phonons"   # give the active project a readable display title
/whereami             # show active project, backend, execution, next action

Because a project is just a folder, you can copy it to another machine and resume it there — the generated inputs and (for NanoDCAL) the basis files travel with the project.

Note

LatticeMind preserves input_filename and info.savepath when you continue an interrupted calculation, so a restart reuses the same inputs and result paths. If you change an input, downstream steps are marked stale and recomputed.