Single-point energy & forces
Computes the total energy and the per-atom forces at the current geometry, with no optimization or dynamics. This is the fastest calculation type and the natural first step for any new structure — use it to sanity-check a structure before committing to a longer optimization or MD run.
Geometry optimization
Relaxes atomic positions to a nearby local minimum by iteratively moving atoms in the direction of the forces until the maximum force component drops below a threshold, fmax.
| Parameter | Default | Notes |
|---|---|---|
| Optimizer | BFGS | Fixed — BFGS is the only optimizer, and it is not selectable. If it struggles to converge, loosen fmax, raise maxOptSteps, or start from a cleaner geometry. |
fmax (eV/Å) | 0.05 | 0.01 for production results; 0.005 if the relaxed geometry will be handed to an external vibrational analysis. |
maxOptSteps | 500 | Always set a limit to prevent an infinite loop; increase for large or difficult-to-converge systems. |
Only atomic positions are optimized — cell optimization is not yet supported. Watch the RMS force during optimization: it should decrease monotonically as the structure approaches a minimum.
Molecular dynamics
Propagates a trajectory over time under one of three ensembles. Initial velocities are always drawn from a Maxwell–Boltzmann distribution at the target temperature.
| Ensemble | Thermostat / barostat | Requires |
|---|---|---|
| NVE | None (microcanonical) | Any system. Total energy (potential + kinetic) should stay conserved; potential energy alone should not, and does not. |
| NVT | Langevin thermostat (friction parameter) | Target temperature (K). The thermostat exchanges energy with a heat bath, so temperature fluctuates around the target rather than holding fixed, and total energy is not conserved. |
| NPT | Barostat | Temperature (K), pressure (GPa), and a periodic system with a defined cell. |
- Timestep: typically 0.5–2.0 fs; use a smaller timestep for systems containing light elements such as hydrogen.
- Steps: total number of MD steps to run.
- Temperature (K): the target for the initial Maxwell–Boltzmann velocity distribution and for the NVT/NPT thermostat.
- Langevin friction: controls how strongly the NVT thermostat couples the system to the target temperature.
- Pressure (GPa): the NPT target pressure, entered in GPa and converted internally — see Units & conventions.
- Random seed: MD has two stochastic sources — the initial Maxwell–Boltzmann velocities and the Langevin random forces. Both are driven by a single seed, which defaults to
42, so a run is reproducible bit-for-bit. The seed used is recorded in the result message and parameters, so a shared trajectory can always be re-run exactly. Change it to generate independent replicas of the same system. - What a trajectory records: potential energy, kinetic energy, total energy and the instantaneous temperature at every frame. The Energy tab plots total energy and potential energy as separate, named series, so the NVE claim above is one you can check on the chart rather than take on trust; the Summary tab reports the total-energy drift over the run and the mean temperature against your target.
Phonon spectrum — planned
Phonon spectrum calculation is on the roadmap but not yet supported in SimpleAtom. For now, vibrational analysis must be performed on a fully converged geometry using an external workflow.D3 dispersion correction
Adds Grimme’s semi-empirical DFT-D3 van der Waals correction on top of MACE-MP-0 predictions. It matters for layered materials, molecular adsorption, and molecular crystals where dispersion forces are significant.
D3 is MACE-MP-0 only
D3 dispersion is only meaningful for MACE-MP-0. MACE-OFF is trained on ωB97M-D3BJ reference data, which already includes dispersion — enabling D3 on top of it double-counts the correction. SimpleAtom disables the D3 toggle automatically when MACE-OFF is selected.Precision
Precision is the default_dtype handed to MACE. The default setting is Auto, which applies upstream MACE’s own choice rather than a SimpleAtom opinion:
- float32 — faster, less accurate. Upstream recommends it for molecular dynamics.
- float64 — slower, more accurate. Upstream recommends it for geometry optimization, and
mace_off()defaults to it for the whole MACE-OFF family.
Both mace_mp() and mace_off() print this guidance at construction time, on every run: float32 … faster but less accurate. Recommended for MD. Use float64 for geometry optimization. Auto follows it: float64 for MACE-OFF and for geometry optimization, float32 otherwise.
An explicit choice is honoured, and reported
Picking float32 or float64 explicitly overrides Auto — upstream honours whateverdefault_dtype it is handed, and so does SimpleAtom. When the choice lands below upstream’s recommendation, the result carries a warning saying so. A custom.model checkpoint is a special case: it keeps the dtype it was saved in, because MACE adopts the checkpoint’s own dtype when no default_dtype is passed. Either way, the precision shown in a result is the dtype the loaded model was actually running in, read back off the model — not the dtype that was requested.Device
Calculations run on cpu by default. If a CUDA GPU is available it can significantly speed up larger systems or longer MD trajectories; SimpleAtom falls back to CPU automatically if CUDA is unavailable or runs out of memory.
Web UI → MACE parameter mapping
Under the hood, SimpleAtom drives the same MACECalculator and mace_mp() / mace_off() factory functions you would use from a Python script. The web parameters map directly onto that API:
| Web UI parameter | Maps to | Notes |
|---|---|---|
| Model Type | mace_mp() / mace_off() / custom upload | Selects the foundation model or a user checkpoint. |
| Model Size | model argument | "small", "medium", "large". |
| Precision | default_dtype | "float32" or "float64". Auto passes no default_dtype, so upstream’s own default applies. |
| Device | device | "cpu" or "cuda". |
| D3 Dispersion | dispersion | On/off toggle; MACE-MP-0 only. |
| Custom Model Upload | model_paths | User-supplied .model checkpoint file. |
Lower-level parameters — compile_mode, enable_cueq, charges_key, info_keys, and the unit-conversion factors — are handled automatically by the backend and are not exposed in the UI, since they require no configuration for standard workflows.