1- # QuantUI-local
1+ # QuantUI
22
3- [ ![ CI] ( https://github.com/The-Schultz-Lab/QuantUI-local /actions/workflows/ci.yml/badge.svg )] ( https://github.com/The-Schultz-Lab/QuantUI-local /actions/workflows/ci.yml )
4- [ ![ Docs] ( https://img.shields.io/badge/docs-GitHub%20Pages-blue )] ( https://the-schultz-lab.github.io/QuantUI-local / )
3+ [ ![ CI] ( https://github.com/The-Schultz-Lab/QuantUI/actions/workflows/ci.yml/badge.svg )] ( https://github.com/The-Schultz-Lab/QuantUI/actions/workflows/ci.yml )
4+ [ ![ Docs] ( https://img.shields.io/badge/docs-GitHub%20Pages-blue )] ( https://the-schultz-lab.github.io/QuantUI/ )
55[ ![ License: MIT] ( https://img.shields.io/badge/License-MIT-yellow.svg )] ( LICENSE )
66[ ![ Python] ( https://img.shields.io/badge/python-3.9%20|%203.10%20|%203.11-blue )] ( https://www.python.org )
77
@@ -17,18 +17,30 @@ Built for classroom teaching at the
1717
1818## What it does
1919
20- - ** Molecule input** — paste XYZ coordinates, draw from a preset library, or
21- search PubChem by name or SMILES
22- - ** 3D visualization** — interactive py3Dmol viewer, directly in the notebook
23- - ** In-session calculations** — RHF and UHF via PySCF, running in your Python
24- kernel (no batch submission)
25- - ** Results** — total energy, HOMO-LUMO gap, convergence status, and a
26- side-by-side comparison table for multiple calculations
20+ - ** Molecule input** — paste XYZ coordinates, draw from a 20+ preset library,
21+ or search PubChem by name or SMILES
22+ - ** 3D visualization** — interactive py3Dmol or PlotlyMol viewer with a live
23+ backend toggle when both are installed; post-calculation structure rendered
24+ automatically in the results panel
25+ - ** In-session calculations** — RHF, UHF, 9 DFT functionals, MP2, and NMR
26+ shielding via PySCF, running in your Python kernel (no batch submission)
27+ - ** Implicit solvent** — PCM solvation (Water, Ethanol, THF, DMSO,
28+ Acetonitrile) via a single checkbox
29+ - ** Rich results** — total energy, HOMO-LUMO gap, Mulliken charges, dipole
30+ moment, thermochemistry (H, S, G at 298 K), IR spectrum chart (stick and
31+ Lorentzian-broadened), ¹H/¹³C NMR chemical shifts, orbital energy-level
32+ diagram, HOMO/LUMO isosurface (cube-file rendering with toggle for HOMO-1,
33+ HOMO, LUMO, LUMO+1), and a side-by-side comparison table for multiple
34+ calculations
35+ - ** Geometry optimization** — BFGS optimizer with step-by-step trajectory
36+ animation; vibrational frequency analysis with animated normal modes
2737- ** Results persistence** — every calculation is saved automatically to a
2838 timestamped directory; a built-in browser lets students reload past results
29- after a kernel restart
30- - ** Script export** — download a standalone ` .py ` file to run or study outside
31- the notebook
39+ after a kernel restart; the full ` pyscf.log ` is shown inline
40+ - ** Structure exports** — download XYZ, MOL/SDF, or PDB files alongside the
41+ saved results; script export for a standalone ` .py ` file
42+ - ** Timing calibration** — one-click benchmark suite populates the time
43+ estimator with real machine data so predictions are accurate from the first run
3244- ** Voilà app mode** — serve the notebook as a polished widget-only UI (no code
3345 visible) for classroom demos, with dark mode toggle and dedicated output log
3446
@@ -45,7 +57,7 @@ Built for classroom teaching at the
4557### Windows users: Apptainer container
4658
4759PySCF does not install on Windows natively. The
48- [ ` apptainer/quantui-local .def ` ] ( apptainer/quantui-local .def ) container bundles
60+ [ ` apptainer/quantui.def ` ] ( apptainer/quantui.def ) container bundles
4961the complete environment and runs anywhere Apptainer/Singularity is available.
5062See [ ` apptainer/README.md ` ] ( apptainer/README.md ) for build and run instructions.
5163
@@ -57,8 +69,8 @@ See [`apptainer/README.md`](apptainer/README.md) for build and run instructions.
5769
5870``` bash
5971# Create a dedicated environment
60- conda create -n quantui-local python=3.11
61- conda activate quantui-local
72+ conda create -n quantui python=3.11
73+ conda activate quantui
6274
6375# Install with PySCF and ASE
6476pip install -e " .[pyscf,ase,app]"
@@ -67,7 +79,7 @@ pip install -e ".[pyscf,ase,app]"
6779### Option B — pip only
6880
6981``` bash
70- python -m pip install quantui-local [pyscf,ase,app]
82+ python -m pip install quantui[pyscf,ase,app]
7183```
7284
7385### Option C — Apptainer container (Windows / reproducible deployment)
@@ -80,7 +92,7 @@ See [apptainer/README.md](apptainer/README.md).
8092
8193``` bash
8294# Activate your environment
83- conda activate quantui-local
95+ conda activate quantui
8496
8597# JupyterLab (full IDE — shows code)
8698jupyter lab notebooks/molecule_computations.ipynb
@@ -110,13 +122,37 @@ Five step-by-step notebooks in [`notebooks/tutorials/`](notebooks/tutorials/):
110122
111123## Supported calculations
112124
113- | Method | When to use |
125+ ### Methods
126+
127+ | Method | Type | Best for |
128+ | --- | --- | --- |
129+ | RHF | Hartree-Fock | Closed-shell molecules; baseline reference |
130+ | UHF | Hartree-Fock | Radicals and open-shell systems |
131+ | B3LYP | DFT hybrid | General organic chemistry (default DFT choice) |
132+ | PBE | DFT GGA | Large molecules; metals; when speed matters |
133+ | PBE0 | DFT hybrid | Charge-transfer, band gaps |
134+ | M06-2X | DFT meta-hybrid | Thermochemistry, barrier heights |
135+ | wB97X-D | DFT range-sep. + D3 | Non-covalent interactions, excited states |
136+ | CAM-B3LYP | DFT range-sep. | Charge-transfer UV-Vis, Rydberg states |
137+ | M06-L | DFT local meta-GGA | Large molecules; transition metals |
138+ | HSE06 | DFT screened hybrid | Band gaps, large molecules |
139+ | PBE-D3 | DFT GGA + dispersion | Van der Waals complexes, stacking |
140+ | MP2 | Post-HF | Accurate energetics for small molecules (O(N⁵)) |
141+
142+ ### Calculation types
143+
144+ | Type | Output |
114145| --- | --- |
115- | RHF | Closed-shell molecules — all electrons paired |
116- | UHF | Open-shell molecules — radicals or unpaired electrons |
146+ | Single Point | Energy, HOMO-LUMO gap, Mulliken charges, dipole moment |
147+ | Geometry Opt | Optimised structure, trajectory animation |
148+ | Frequency | Vibrational frequencies, ZPVE, IR intensities, thermochemistry (H/S/G at 298 K), animated normal modes, IR spectrum chart (stick / Lorentzian broadened) |
149+ | UV-Vis (TD-DFT) | Excitation energies, oscillator strengths, UV-Vis spectrum plot |
150+ | NMR Shielding | ¹H and ¹³C chemical shifts relative to TMS via GIAO; tabulated by element |
151+
152+ ### Basis sets
117153
118- ** Basis sets: ** STO-3G (fast, good for learning) → 6-31G (common research
119- choice) → cc-pVTZ (high accuracy)
154+ STO-3G (fast, good for learning) → 3-21G → 6-31G / 6-31G \* / 6-31G \*\* →
155+ cc-pVDZ / cc-pVTZ → def2-SVP / def2-TZVP
120156
121157---
122158
@@ -141,18 +177,27 @@ pytest -m "not network" \
141177
142178``` text
143179quantui/ Main package
180+ app.py QuantUIApp widget class (all tabs, UI logic)
144181 molecule.py Molecule input and validation
145- session_calc.py In-session PySCF runner
146- visualization_py3dmol.py 3D viewer
182+ session_calc.py In-session PySCF runner (RHF/UHF/DFT/MP2/PCM)
183+ freq_calc.py Vibrational frequency + thermochemistry analysis
184+ ir_plot.py IR spectrum chart (stick and Lorentzian broadened)
185+ tddft_calc.py TD-DFT UV-Vis excited-state calculations
186+ nmr_calc.py NMR shielding + ¹H/¹³C chemical shift prediction
187+ optimizer.py QM geometry optimization with trajectory
188+ visualization_py3dmol.py 3D viewer (py3Dmol + PlotlyMol backends)
147189 pubchem.py PubChem molecule search
148190 comparison.py Side-by-side result tables
191+ results_storage.py Timestamped result persistence
192+ calc_log.py Performance logging and time estimation
193+ benchmarks.py Timing calibration benchmark suite
194+ config.py Methods, basis sets, solvent/NMR options, presets
149195 ase_bridge.py ASE structure I/O
150- optimizer.py QM geometry optimization
151- ...
196+ preopt.py LJ force-field pre-optimization
152197notebooks/
153198 molecule_computations.ipynb Main student-facing interface
154- tutorials/ Step-by-step guided notebooks
155- tests/ pytest test suite (439 tests)
199+ tutorials/ Step-by-step guided notebooks (01–05)
200+ tests/ pytest test suite (575+ tests)
156201apptainer/ Container definition for reproducible deployment
157202local-setup/ Conda environment definition
158203pyproject.toml Package metadata and tool config
@@ -162,10 +207,10 @@ pyproject.toml Package metadata and tool config
162207
163208## Relationship to the cluster version
164209
165- QuantUI-local is a downstream port of the cluster-based
166- [ QuantUI] ( https://github.com/The-Schultz-Lab/QuantUI ) repository. All SLURM
210+ QuantUI (this repo) is a downstream port of the cluster-based
211+ [ QuantUI-cluster ] ( https://github.com/The-Schultz-Lab/QuantUI ) repository. All SLURM
167212infrastructure (job manager, job storage, batch templates) has been removed.
168- Bug fixes flow ` QuantUI → QuantUI-local ` , not the other way around.
213+ Bug fixes flow from the cluster repo into this one , not the other way around.
169214
170215---
171216
0 commit comments