diff --git a/python/lammps/constants.py b/python/lammps/constants.py index 1d0d8adb78..3a66eac661 100644 --- a/python/lammps/constants.py +++ b/python/lammps/constants.py @@ -50,6 +50,8 @@ LMP_VAR_ATOM = 1 LMP_VAR_VECTOR = 2 LMP_VAR_STRING = 3 +# default buffer size for string buffers +LMP_BUFSIZE = 1024 # ------------------------------------------------------------------------- def get_ctypes_int(size): diff --git a/python/lammps/core.py b/python/lammps/core.py index f9e297e7f9..92e73adc1c 100644 --- a/python/lammps/core.py +++ b/python/lammps/core.py @@ -29,7 +29,7 @@ from lammps.constants import LAMMPS_AUTODETECT, LAMMPS_STRING, \ LMP_TYPE_SCALAR, LMP_TYPE_VECTOR, LMP_TYPE_ARRAY, \ LMP_SIZE_VECTOR, LMP_SIZE_ROWS, LMP_SIZE_COLS, \ LMP_VAR_EQUAL, LMP_VAR_ATOM, LMP_VAR_VECTOR, LMP_VAR_STRING, \ - get_ctypes_int + LMP_BUFSIZE, get_ctypes_int from lammps.data import NeighList @@ -347,6 +347,7 @@ class lammps(object): self.lib.lammps_get_last_error_message.argtypes = [c_void_p, c_char_p, c_int] self.lib.lammps_get_last_error_message.restype = c_int + self.lib.lammps_set_show_error.argtypes = [c_void_p, c_int] self.lib.lammps_extract_global.argtypes = [c_void_p, c_char_p] self.lib.lammps_extract_global_datatype.argtypes = [c_void_p, c_char_p] @@ -704,8 +705,8 @@ class lammps(object): :rtype: string """ - sb = create_string_buffer(512) - self.lib.lammps_get_os_info(sb,512) + sb = create_string_buffer(LMP_BUFSIZE) + self.lib.lammps_get_os_info(sb, LMP_BUFSIZE) return sb.value.decode() # ------------------------------------------------------------------------- @@ -734,8 +735,8 @@ class lammps(object): @property def _lammps_exception(self): - sb = create_string_buffer(100) - error_type = self.lib.lammps_get_last_error_message(self.lmp, sb, 100) + sb = create_string_buffer(LMP_BUFSIZE) + error_type = self.lib.lammps_get_last_error_message(self.lmp, sb, LMP_BUFSIZE) error_msg = sb.value.decode().strip() if error_type == 2: @@ -2319,8 +2320,9 @@ class lammps(object): :rtype: string """ - sb = create_string_buffer(8192) - self.lib.lammps_get_gpu_device_info(sb,8192) + BUFSIZE = 8192 + sb = create_string_buffer(BUFSIZE) + self.lib.lammps_get_gpu_device_info(sb, BUFSIZE) return sb.value.decode() # ------------------------------------------------------------------------- @@ -2337,9 +2339,9 @@ class lammps(object): if self._installed_packages is None: self._installed_packages = [] npackages = self.lib.lammps_config_package_count() - sb = create_string_buffer(100) + sb = create_string_buffer(LMP_BUFSIZE) for idx in range(npackages): - self.lib.lammps_config_package_name(idx, sb, 100) + self.lib.lammps_config_package_name(idx, sb, LMP_BUFSIZE) self._installed_packages.append(sb.value.decode()) return self._installed_packages @@ -2375,6 +2377,7 @@ class lammps(object): :return: list of style names in given category :rtype: list """ + BUFSIZE = 8192 if self._available_styles is None: self._available_styles = {} @@ -2382,10 +2385,10 @@ class lammps(object): self._available_styles[category] = [] with ExceptionCheck(self): nstyles = self.lib.lammps_style_count(self.lmp, category.encode()) - sb = create_string_buffer(100) + sb = create_string_buffer(BUFSIZE) for idx in range(nstyles): with ExceptionCheck(self): - self.lib.lammps_style_name(self.lmp, category.encode(), idx, sb, 100) + self.lib.lammps_style_name(self.lmp, category.encode(), idx, sb, BUFSIZE) self._available_styles[category].append(sb.value.decode()) return self._available_styles[category] @@ -2430,9 +2433,9 @@ class lammps(object): available_ids = [] if category in categories: num = self.lib.lammps_id_count(self.lmp, category.encode()) - sb = create_string_buffer(100) + sb = create_string_buffer(LMP_BUFSIZE) for idx in range(num): - self.lib.lammps_id_name(self.lmp, category.encode(), idx, sb, 100) + self.lib.lammps_id_name(self.lmp, category.encode(), idx, sb, LMP_BUFSIZE) available_ids.append(sb.value.decode()) return available_ids @@ -2452,10 +2455,10 @@ class lammps(object): available_plugins = [] num = self.lib.lammps_plugin_count(self.lmp) - sty = create_string_buffer(100) - nam = create_string_buffer(100) + sty = create_string_buffer(LMP_BUFSIZE) + nam = create_string_buffer(LMP_BUFSIZE) for idx in range(num): - self.lib.lammps_plugin_name(idx, sty, nam, 100) + self.lib.lammps_plugin_name(idx, sty, nam, LMP_BUFSIZE) available_plugins.append([sty.value.decode(), nam.value.decode()]) return available_plugins