[ase-users] bug in read traj file
GENG SUN
gengsun at ucla.edu
Mon Nov 18 18:07:06 CET 2019
Dear ASE users,
I encounter a problem when read the traj file generated by two different
versions of python ase.
The struct.traj is generated by python-3.7.3 and ase-3.19.0b1 ( I don't
know why conda installed this version for me).
Then when I move the file "struct.traj" to another computer (which has
python3.6 and ase 3.18.1 installed), and try to read it by simply:
from ase.io import read
atoms=read("struct.traj")
The line complains that:
Traceback (most recent call last):
File "read_traj.py", line 2, in <module>
atoms=read("struct.traj")
File
"/home/gengsun/anaconda3/envs/py36/lib/python3.6/site-packages/ase/io/formats.py",
line 498, in read
parallel=parallel, **kwargs))
File
"/home/gengsun/anaconda3/envs/py36/lib/python3.6/site-packages/ase/io/formats.py",
line 556, in _iread
for dct in io.read(fd, *args, **kwargs):
File
"/home/gengsun/anaconda3/envs/py36/lib/python3.6/site-packages/ase/io/trajectory.py",
line 356, in read_traj
yield trj[i]
File
"/home/gengsun/anaconda3/envs/py36/lib/python3.6/site-packages/ase/io/trajectory.py",
line 256, in __getitem__
atoms = read_atoms(b)
File
"/home/gengsun/anaconda3/envs/py36/lib/python3.6/site-packages/ase/io/trajectory.py",
line 319, in read_atoms
for d in decode(constraints)],
File
"/home/gengsun/anaconda3/envs/py36/lib/python3.6/site-packages/ase/io/trajectory.py",
line 319, in <listcomp>
for d in decode(constraints)],
File
"/home/gengsun/anaconda3/envs/py36/lib/python3.6/site-packages/ase/constraints.py",
line 20, in dict2constraint
return globals()[dct['name']](**dct['kwargs'])
* File
"/home/gengsun/anaconda3/envs/py36/lib/python3.6/site-packages/ase/constraints.py",
line 138, in __init__ srt = np.sort(indices)*
File "<__array_function__ internals>", line 6, in sort
File
"/home/gengsun/anaconda3/envs/py36/lib/python3.6/site-packages/numpy/core/fromnumeric.py",
line 970, in sort
a.sort(axis=axis, kind=kind, order=order)
Then I print the "indices" before the line of "srt=np.sort(indices)"
and I found that the value of "indices" are:
{'__ndarray__': [array([120]), 'int64', array([ 0, 1, 2, 3, 4,
5, 6, 7, 8, 9, 10, 11, 17,
16, 15, 14, 13, 12, 18, 19, 20, 21, 22, 23, 35, 33,
32, 31, 30, 34, 28, 27, 26, 25, 29, 24, 47, 46, 45,
44, 43, 42, 41, 40, 39, 38, 37, 36, 58, 59, 57, 56,
55, 54, 49, 52, 51, 50, 48, 53, 60, 61, 62, 63, 64,
65, 70, 71, 69, 67, 66, 68, 82, 72, 73, 74, 75, 76,
77, 78, 79, 80, 81, 83, 89, 87, 88, 85, 84, 86, 97,
101, 99, 98, 96, 100, 94, 93, 92, 91, 90, 95, 113, 109,
112, 111, 110, 108, 102, 106, 105, 104, 103, 107, 118, 117, 119,
115, 114, 116])]}
It seems that "indices" here is a dictionary rather than a numpy array.
I wonder how to fix this problem?
Since I already have quite a lot of data from the ase 3.19.0b1, hence I
would like to find a method to make them compatible.
Thanks so much.
Best,
Geng
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.fysik.dtu.dk/pipermail/ase-users/attachments/20191118/0239562e/attachment-0001.html>
More information about the ase-users
mailing list