support that cmdargs is used multiple times and may be bytearrays directly
This commit is contained in:
@ -376,12 +376,16 @@ class lammps(object):
|
|||||||
narg = 0
|
narg = 0
|
||||||
cargs = None
|
cargs = None
|
||||||
if cmdargs is not None:
|
if cmdargs is not None:
|
||||||
cmdargs.insert(0,"lammps")
|
myargs = ["lammps".encode()]
|
||||||
narg = len(cmdargs)
|
narg = len(cmdargs) + 1
|
||||||
for i in range(narg):
|
for arg in cmdargs:
|
||||||
if type(cmdargs[i]) is str:
|
if type(arg) is str:
|
||||||
cmdargs[i] = cmdargs[i].encode()
|
myargs.append(arg.encode())
|
||||||
cargs = (c_char_p*(narg+1))(*cmdargs)
|
elif type(arg) is bytes:
|
||||||
|
myargs.append(arg)
|
||||||
|
else:
|
||||||
|
raise TypeError('Unsupported cmdargs type ', type(arg))
|
||||||
|
cargs = (c_char_p*(narg+1))(*myargs)
|
||||||
cargs[narg] = None
|
cargs[narg] = None
|
||||||
self.lib.lammps_open.argtypes = [c_int, c_char_p*(narg+1), MPI_Comm, c_void_p]
|
self.lib.lammps_open.argtypes = [c_int, c_char_p*(narg+1), MPI_Comm, c_void_p]
|
||||||
else:
|
else:
|
||||||
@ -397,12 +401,16 @@ class lammps(object):
|
|||||||
self.comm = self.MPI.COMM_WORLD
|
self.comm = self.MPI.COMM_WORLD
|
||||||
self.opened = 1
|
self.opened = 1
|
||||||
if cmdargs is not None:
|
if cmdargs is not None:
|
||||||
cmdargs.insert(0,"lammps")
|
myargs = ["lammps".encode()]
|
||||||
narg = len(cmdargs)
|
narg = len(cmdargs) + 1
|
||||||
for i in range(narg):
|
for arg in cmdargs:
|
||||||
if type(cmdargs[i]) is str:
|
if type(arg) is str:
|
||||||
cmdargs[i] = cmdargs[i].encode()
|
myargs.append(arg.encode())
|
||||||
cargs = (c_char_p*(narg+1))(*cmdargs)
|
elif type(arg) is bytes:
|
||||||
|
myargs.append(arg)
|
||||||
|
else:
|
||||||
|
raise TypeError('Unsupported cmdargs type ', type(arg))
|
||||||
|
cargs = (c_char_p*(narg+1))(*myargs)
|
||||||
cargs[narg] = None
|
cargs[narg] = None
|
||||||
self.lib.lammps_open_no_mpi.argtypes = [c_int, c_char_p*(narg+1), c_void_p]
|
self.lib.lammps_open_no_mpi.argtypes = [c_int, c_char_p*(narg+1), c_void_p]
|
||||||
self.lmp = c_void_p(self.lib.lammps_open_no_mpi(narg,cargs,None))
|
self.lmp = c_void_p(self.lib.lammps_open_no_mpi(narg,cargs,None))
|
||||||
|
|||||||
Reference in New Issue
Block a user