2015-08-31 2 views
0

Je veux convertir pmma85compositedata.initeq à un fichier de données acceptable pour LAMMPS mais je fais face à cette erreur:TypeError: type d'opérande non pris en charge (s) pour -: 'str' et 'int'

import lmpsdata, copy 
data=lmpsdata.Lmpsdata('pmma85compositedata.initeq','full') 
polymer=lmpsdata.molecules(data,1,19,'atom') #'atom 
nanoparticle=lmpsdata.molecules(data,20,20,'atom') 
surface=lmpsdata.particlesurface(nanoparticle[0], 1.94, 8,'full') 

erreur :

polymer=lmpsdata.molecules(data,1,19,'atom') #'atom 
File "/home/marham/...../lmpsdata.py", line 1193, in molecules 
p=Pool(processors) 
File "/usr/lib/python2.7/multiprocessing/__init__.py", line 232, in Pool 
return Pool(processes, initializer, initargs, maxtasksperchild) 
File "/usr/lib/python2.7/multiprocessing/pool.py", line 159, in __init__ 
self._repopulate_pool() 
File "/usr/lib/python2.7/multiprocessing/pool.py", line 214, in  _repopulate_pool 
for i in range(self._processes - len(self._pool)): 
TypeError: unsupported operand type(s) for -: 'str' and 'int' 

Répondre

0

Regarder the source code pour la fonction lmpsdata.molecules(), il vous manque un paramètre: le nombre de processeurs dans la piscine. Essayez:

polymer = lmpsdata.molecules(data, 1, 19, 8, 'atom') 
nanoparticle = lmpsdata.molecules(data, 20, 20, 8, 'atom') 

... ou remplacer 8 avec however many processors vous avez à votre disposition.