Closed VerySpeedyPhoton closed 7 months ago
It is not true that MatGL does not support PbC. In all instances, the potentials were trained on crystals with PBC and that is the predominant use case. I am more puzzled why you'd think having atoms staying within the lattice parameter is a sign of PBC. By definition, periodic boundary means that a coordinate of (1000, 1000, 1000) is equivalent to (0,0,0) if the lattice constant is 1.
Hi @VerySpeedyPhoton, thank you very much for your questions. If you have already had a look at the log file and visualized the MD trajectory using ase-gui. There is no problem for MatGL to recognize the periodic systems. In other words, the way you convert ASE trajectory into other formats cause the problem. I suggest you read the ASE documentation carefully to understand how to convert the ASE MD trajectory into some formats, which can visualize periodic systems properly. In my opinion, xyz format is not appropriate for visualizing periodic systems since they don't support periodic boundary condition and you should try other formats instead like extended xyz or vasp format.
I would like to use MatGL on a system with periodic boundary conditions, but have been unable to figure out how to do this. The issue is that even when periodic boundaries are specified in the system definitions, MatGL doesn't seem to recognize them.
To illustrate the issue, here are two python scripts that simulate 4 atoms of copper at 2400K. One uses the standard ASE package (with the EMT potential); one uses MatGL.
(1) ASE script: (produces a .traj file)
(2) MatGL script: (produces .traj and .log files)
Also, to convert one of the .traj files to human-readable format, here is a little script: (produces .xyz trajectory file)
Looking at the .xyz files, you'll notice that in the basic ASE simulation, none of the atom positions are larger than the specified lattice constant (3.61 Angstroms). This is as expected with periodic boundary conditions. However, in the MatGL simulation, the atom positions readily exceed the lattice constant value, and the atoms appear to drift through space.
For example, here are excerpts of the last recorded frame from the .xyz trajectory files: (1) ASE trajectory excerpt
(2) MatGL trajectory excerpt
Do you have any recommendations for how to resolve this issue? How should one go about implementing periodic boundary conditions in a molecular dynamics simulation that leverages MatGL? Please advise, thank you.