Changelog

All notable changes between v2.5.4 and v2.6.3.

v2.6.1 (2025-09-12)

  • Added — GPU NEP backend:

    • New optional GPU-accelerated NEP backend with Auto/CPU/GPU selection

    • GPU batch size control for better throughput vs memory usage

    • GPU acceleration added for polarizability and dipole calculations

  • Added — Data Management module:

    • Projects, versions (models), tags, notes, quick search, and open-folder

  • Added — Make Dataset cards:

    • Organic molecular rotation (TorsionGuard, PBC-aware) for conformer generation

  • Added — Display tools:

    • Energy baseline alignment and DFT-D3 integration

    • Edit Info to batch edit selected structure metadata

    • Export descriptors for selected structures

  • Changed — Compute & IO:

    • Rewrote NEP calculation invocation and refactored ResultData

    • Improved import: auto-detect deepmd directories; better nep.in handling

  • Performance:

    • Refactored Vispy rendering for large scenes; major drawing optimizations

    • Released GIL in native libs to improve responsiveness

  • Compatibility:

    • Support for older DeepMD/NPY formats

    • Updated CUDA runtime and packaging for GPU builds

  • Fixes:

    • Quick-entry/open behaviors corrected

    • Test interfaces updated and failing tests fixed

Notes:

  • GPU backend requires a compatible NVIDIA driver and CUDA 12 runtime. On systems without a working GPU stack or binary, the app falls back to CPU automatically.

v2.6.3 (2025-09-14)

Added

  • Importers

    • VASP OUTCAR: DFT POSITION/TOTAL-FORCE, kB stress → eV/Å^3, virial derivation; ignores ML blocks; cancel-safe.

    • VASP XDATCAR: cancel-safe, robust per-frame parsing.

    • LAMMPS dump/lammpstrj: triclinic/orthogonal, x/y/z or xs/ys/zs (and xu/yu/zu), optional fx/fy/fz.

      • If no element column, prompts for type→element list in UI.

      • Polygon selection runs on full data even when render decimates.

    • ASE trajectories

      • With ASE (.traj): ase.io.iread() → Structure (cell/species/pos/forces/pbc/stress/virial when available).

  • OrganicMolConfigPBCCard

    • Linus Pauling bond-order formula for bond detection, UI options for c (0.3) and BO threshold (0.2).

    • Exclude multiple bonds (order ≥ 2) from rotatable torsions; optional “Center molecule in non-PBC box”.

  • Documentation

    • New “Supported Formats” page; cross-links from “Data Import” sections.

Changed

  • Result loading

    • ResultData.load_structures() uses importer pipeline; from_path(…, structures=…) to reuse pre-parsed structures.

    • Registry uses lazy importlib and dotted factory paths; removes top-level custom-widget imports.

Fixed

  • VisPy picking accuracy: integer HiDPI coords, 7×7 pick patch, nearest valid pixel, hide overlays/diagonal/path during pick; fixes star marker offset.

  • GetStrMessageBox uses line edit correctly; lazy import avoids circular dependency.

Performance

  • Distance calculations: minimum-image + block processing; no 27-image allocation.

  • Bond checks via NeighborList; memory-lean get_mini_distance_info() aggregation.

Compatibility

  • NEP GPU backend self-test and runtime fallback to CPU on CUDA driver/runtime mismatch.