MolForma

“History”

“History” reads the jobs you saved or ran (“Save as job”, “Run calculation”) from the run.json files directly under the job folder. After a restart, choosing the same folder restores the list. By default it uses the folder of “3 Run settings”. The job folder button at the top shows the path and whether it is “(same as 3 Run settings)” or a “(chosen folder)” (when the toolbar does not fit on one row, the caption “Job folder” and this note move into the tooltip, the search field narrows and “Compare ΔE” shows only its icon); another folder chosen with “Choose folder…” in its menu is remembered in the app settings. “Back to the “3 Run settings” folder” returns to following it. Viewing the history does not change the molecule being edited, candidates, Undo or the unsaved state of the project.

The “History” tab: four jobs in ~/MolForma/jobs (three finished, one stopped) listed by day, and the energy, start and end, folder, note and actions of the chosen ethanol job on the right

Figure 1 “History” lists the calculations in the job folder and shows the details, note and actions such as “Open in result viewer” and “Reuse molecule and settings” of the chosen job on the right.

ΔE compared with ethanol as the reference: dimethyl_ether, with the same composition, method and basis, shows +5.49 kcal/mol with a bar, and jobs with another composition show “Composition differs”

Figure 2 ΔE compared with ethanol as the reference. Dimethyl ether, also C2H6O, is +5.49 kcal/mol; jobs with another composition show why there is no value.

The list shows the state as a short label (Saved only, Starting, Running, Stopping, Finished, Failed, Stopped, Timed out, Unconfirmed, No process, Interrupted, Unreadable); the detailed state (“Input saved”, “Finished (code 0)”, “Run failed”, “Stopped”, “Not confirmed running (recorded: running)”, “Interrupted, no process”, “Interrupted (record repaired)”, “Record unreadable”, etc.) appears in the tooltip of the row and of the label on the right. run.json records the host name, boot ID (Linux), process ID and process start time of the run. A calculation left recorded as starting / running / stopping by another window or an earlier session is marked “Interrupted, no process” only when it was recorded on the same PC and its process can be shown to have ended (the PID no longer exists, has been reused by another process, or the PC has restarted); otherwise (another PC, an old record without process information, or still running) it is “Unconfirmed”. Exit code 0 does not mean convergence or success of all tasks. The energy in the list is the value found at the end of the calculation by dividing the whole log by task and stored in summary of run.json (the SCF, DFT, MP2, CCSD or CCSD(T) total energy of the last task; for a frequency task the value of the reference structure, for BSSE the corrected value). Running jobs, and older jobs without this record, show the last total energy within the last 128 KiB of the log. It is not necessarily a converged value. If there is no such value, — is shown.

Newly saved run.json files also contain a summary of the calculation settings, the base directory of the original project and the SHA-256 of the project. Reuse is refused when the input or project does not match. Older version 1 records are read too; when the settings summary is missing, it is taken from the fixed copies. When an old record has no project hash, only the input is checked, and this is shown. The hashes are there to detect external edits and corruption; they are not signatures of authenticity.

Reuse keeps the original reference directory and resolves a relative executable path from the original base. The new job is saved in the parent folder of the selected job. If an old record cannot restore the original location of a relative executable path, reuse is refused. External movecs, basis set, scratch and permanent directories are neither copied nor guessed for the new location. Check in the run settings that they exist and are writable before running again. Not supported: converting a calculation whose input was edited by hand back to the original settings, restarting from the NWChem database, SSH, job queues, stopping processes of other windows, and history graphs.

The list is built by scanning the jobs directly under the folder one at a time in the event loop, and the scan can be stopped or switched to another folder. The limit is 2000 jobs or 20000 folders; when it is reached, a partial list and a limit message are shown. Subfolders are not scanned recursively, and jobs reached through symbolic links are excluded. run.json is parsed up to 256 KiB, the input and project up to 8 MiB each. Folders with broken records remain as error rows, and the rest of the history is still read. Folders that hold only an arbitrary NWChem output are not registered in the history; open them directly in the “Result viewer”.

Verifying history

The history Qt Test checks new and old fixed copies, moved folders, SHA-256 mismatches, broken records, read limits, links, energies from the log tail and from partial lines, the summary of the whole log (tasks, BSSE, frequencies) and the process information in the run record, detection of ended processes (vanished or reused PID, another PC) and record repair (including the bar that prompts it), atom count, charge and multiplicity of the saved project, which jobs ΔE can compare (composition, method, basis set, kind of energy), CSV, stopping a scan and changing the folder, day dividers, per-state counts and filtering, search, numeric sorting and keeping the selection, the details on the right and saving notes, ΔE comparison (reference, units, order, reasons for not showing), the progress of running jobs and stopping with confirmation, folders without jobs and returning to the folder of “3 Run settings”, the one-row toolbar in narrow windows, protection of unsaved work and Save as on reuse, candidate protection, moving to the result viewer, and the restrictions on what can go to the trash. The normal tests use a native fake executable and need no NWChem, MPI or network.

On 2026-10-23, CTest for all 9 series and the AddressSanitizer check of 13 history cases (including initialization, shutdown and optional screen output) passed. Images of the history page were also checked.

After the page was rebuilt on 2026-10-25, CTest for all 13 series (normal and without VTK) and the AddressSanitizer checks of history, execution, mcp and output passed. With jobs made by real NWChem (finished, stopped, timed out, failed, saved only, and water jobs with the same settings for comparing ΔE), the list, comparison, running-job and no-job pages were checked in both light and dark color schemes.

See also: “Result viewer”, recipe 14 From a result to the next calculation, the list of pages in “Features”.