pair_style deepmd/kk does not populate global virial / thermo pressure for a DPA4 pt_expt model
I maintainer di solito rispondono entro 4 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 68/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Ambito
- backend, machine-learning
Direzione di ricerca
Inizia in source/lmp/pair_deepmd_kokkos.cpp e confronta la sua condizione di riduzione del virial globale con source/lmp/pair_deepmd.cpp, concentrandoti su vflag_global rispetto a vflag. Esegui l’input minimo di quarzo allegato con il modello convertito e confronta pair_style deepmd/kk con pair_style deepmd. Il lavoro è completato quando thermo Press, Pxx, Pyy e Pzz includono il virial non nullo e concordano con il virial per atomo e con i risultati non-Kokkos.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Bug summary
When using a converted DPA4 pt_expt model with LAMMPS, pair_style deepmd/kk produces correct per-atom virials but fails to populate the global virial used by LAMMPS thermo pressure. As a result, Press, Pxx, Pyy, and Pzz contain only the kinetic contribution; at zero velocity they are exactly zero.
The same structure and model work correctly with the non-Kokkos path, pair_style deepmd.
This is important for NPT simulations: the barostat receives an incorrect pressure signal, which can cause unphysical cell evolution.
DeePMD-kit Version
Source checkout at commit 14a71f13
Backend and its version
PyTorch 2.11.0+cu126 (CUDA 12.6)
How did you download the software?
Built from source
Input Files, Running Commands, Error Log, etc.
Environment
-
LAMMPS:
patch_4Jul2026(LAMMPS (4 Jul 2026)) -
GPU: NVIDIA A40
-
CUDA: 12.6
-
DeePMD-kit was built from source at commit
14a71f13. -
The DPA4 model was converted with:
dp convert-backend --atomic-virial DPA4-Pro-MPtrj.pt DPA4-Pro-converted.pt2
Minimal test
The same relaxed alpha-quartz SiO2 structure was evaluated with zero velocities and run 0.
Input:
read_data quartz_dpa_relaxed.lmp
mass 1 28.0855
mass 2 15.9994
pair_style deepmd/kk DPA4-Pro-converted.pt2
pair_coeff * * Si O
compute stress all centroid/stress/atom NULL virial
thermo_style custom step temp press pxx pyy pzz
run 0
Observed behavior
With pair_style deepmd/kk, thermo output is exactly zero at zero velocity:
Press = 0
Pxx = 0
Pyy = 0
Pzz = 0
However, compute centroid/stress/atom returns nonzero per-atom virials. Their sum agrees with an independent ASE stress calculation within approximately 0.1%.
For the same structure and converted model, replacing only:
pair_style deepmd/kk DPA4-Pro-converted.pt2
with:
pair_style deepmd DPA4-Pro-converted.pt2
produces nonzero thermo pressure/stress consistent with both ASE and the summed per-atom virial.
Therefore, the issue appears specific to the Kokkos path.
Steps to Reproduce
- Convert a DPA4-Pro-MPtrj checkpoint to pt_expt format with:
dp convert-backend --atomic-virial DPA4-Pro-MPtrj.pt DPA4-Pro-converted.pt2 - Build LAMMPS with Kokkos/CUDA support against this DeePMD-kit checkout.
- Run the input below (relaxed alpha-quartz SiO2, 72 atoms) with
pair_style deepmd/kk, using:
lmp -k on g 1 -sf kk -pk kokkos newton on neigh half -in in.lammps - Observe that thermo Press/Pxx/Pyy/Pzz are exactly zero, while
compute centroid/stress/atom still gives correct nonzero per-atom
virials (summed, they agree with an independent ASE calculation
within ~0.1%). - Repeat step 3 with pair_style deepmd (no /kk) instead, changing
nothing else. Thermo pressure/stress becomes correct and nonzero.
Further Information, Files, and Links
Source-level observation:
source/lmp/pair_deepmd.cppperforms the explicit global-virial reduction underif (vflag).source/lmp/pair_deepmd_kokkos.cppperforms the corresponding reduction underif (vflag_global).
In the failing reproduction,vflagis nonzero (10when the per-atom virial compute is requested), whereasvflag_global = 0. Therefore, the explicit Kokkos reduction is skipped. The per-atom virial buffer is nevertheless nonzero and agrees with the non-Kokkos result; the LAMMPS globalvirial[]/ thermo pressure remains zero.
I have attached a zip archive containing the minimal structure, the two LAMMPS input files, the two comparison logs, and a README. The converted model is not included because it is large; it can be regenerated from the DPA4-Pro-MPtrj checkpoint using the conversion command given above.
TheDEBUG_VFLAGlines in the attached logs were added locally for diagnosis and are not part of the upstream DeePMD-kit output.
- Lingua principale
- Python
- Stelle
- 2.1k
- Fork
- 659
- Merge medio
- 5g 1h
- PR unite (30g)
- 8
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di deepmodeling/deepmd-kit
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 73/100
deepmodeling/deepmd-kit#6086 ·
I maintainer di solito rispondono entro 4 giorni
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
deepmodeling/deepmd-kit#6038 · 2 commenti ·
I maintainer di solito rispondono entro 4 giorni
-
Docs enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
deepmodeling/deepmd-kit#5766 · 1 commento ·
I maintainer di solito rispondono entro 4 giorni
-
[Code scan] Freeze Paddle DPA3 parameters with stop_gradientForse già presa @njzjz l’ha presa 97 giorni fa. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
deepmodeling/deepmd-kit#5686 · 1 commento ·
I maintainer di solito rispondono entro 4 giorni
-
branch: master lang: py todo comment type: todo
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
deepmodeling/deepmd-kit#5480 ·
I maintainer di solito rispondono entro 4 giorni
Tutte le issue di deepmodeling/deepmd-kit
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 90/100
SublimeText/AdvancedNewFile#211 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 73/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
Imbad0202/academic-research-skills#987 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
-
Pull-through from gcr.io returns 500 when pulling using podman/buildahForse già presa Una pull request collegata a questa issue è aperta o già unita. ApertaIssue Triage-Needed
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
pulp/pulp_container#2581 ·
I maintainer di solito rispondono entro 1 giorno