diff --git a/c/_phonopy.c b/c/_phonopy.c index e5aa7d8f..4fed141c 100644 --- a/c/_phonopy.c +++ b/c/_phonopy.c @@ -444,7 +444,6 @@ static PyObject * py_gsv_set_smallest_vectors(PyObject *self, PyObject *args) reduced_basis = (double(*)[3])PyArray_DATA(py_reduced_basis); trans_mat = (int(*)[3])PyArray_DATA(py_trans_mat); - gsv_set_smallest_vectors(smallest_vectors, multiplicity, pos_to, @@ -1295,16 +1294,14 @@ static PyObject * py_get_tetrahedra_frequenies(PyObject *self, PyObject *args) double* freq_tetras; size_t* grid_points; - int num_gp_in; int* mesh; int (*grid_address)[3]; size_t* gp_ir_index; int (*relative_grid_address)[3]; double* frequencies; - int num_band; int is_shift[3] = {0, 0, 0}; - size_t i, j, k, gp; + size_t i, j, k, gp, num_gp_in, num_band; int g_addr[3]; int address_double[3]; @@ -1321,13 +1318,13 @@ static PyObject * py_get_tetrahedra_frequenies(PyObject *self, PyObject *args) freq_tetras = (double*)PyArray_DATA(py_freq_tetras); grid_points = (size_t*)PyArray_DATA(py_grid_points); - num_gp_in = (int)PyArray_DIMS(py_grid_points)[0]; + num_gp_in = PyArray_DIMS(py_grid_points)[0]; mesh = (int*)PyArray_DATA(py_mesh); grid_address = (int(*)[3])PyArray_DATA(py_grid_address); gp_ir_index = (size_t*)PyArray_DATA(py_gp_ir_index); relative_grid_address = (int(*)[3])PyArray_DATA(py_relative_grid_address); frequencies = (double*)PyArray_DATA(py_frequencies); - num_band = (int)PyArray_DIMS(py_frequencies)[1]; + num_band = PyArray_DIMS(py_frequencies)[1]; for (i = 0; i < num_gp_in; i++) { #pragma omp parallel for private(k, g_addr, gp, address_double) @@ -1363,13 +1360,10 @@ static PyObject * py_tetrahedron_method_dos(PyObject *self, PyObject *args) double *dos; int* mesh; double* freq_points; - int num_freq_points; double* frequencies; double* coef; int (*grid_address)[3]; - size_t num_gp, num_ir_gp; - int num_coef; - int num_band; + size_t num_gp, num_ir_gp, num_band, num_freq_points, num_coef; size_t *grid_mapping_table; int (*relative_grid_address)[4][3]; @@ -1403,12 +1397,12 @@ static PyObject * py_tetrahedron_method_dos(PyObject *self, PyObject *args) dos = (double*)PyArray_DATA(py_dos); mesh = (int*)PyArray_DATA(py_mesh); freq_points = (double*)PyArray_DATA(py_freq_points); - num_freq_points = (int)PyArray_DIMS(py_freq_points)[0]; + num_freq_points = (size_t)PyArray_DIMS(py_freq_points)[0]; frequencies = (double*)PyArray_DATA(py_frequencies); num_ir_gp = (size_t)PyArray_DIMS(py_frequencies)[0]; - num_band = (int)PyArray_DIMS(py_frequencies)[1]; + num_band = (size_t)PyArray_DIMS(py_frequencies)[1]; coef = (double*)PyArray_DATA(py_coef); - num_coef = (int)PyArray_DIMS(py_coef)[1]; + num_coef = (size_t)PyArray_DIMS(py_coef)[1]; grid_address = (int(*)[3])PyArray_DATA(py_grid_address); num_gp = (size_t)PyArray_DIMS(py_grid_address)[0]; grid_mapping_table = (size_t*)PyArray_DATA(py_grid_mapping_table); diff --git a/c/kspclib/tetrahedron_method.c b/c/kspclib/tetrahedron_method.c index 4258adb4..3430a8df 100644 --- a/c/kspclib/tetrahedron_method.c +++ b/c/kspclib/tetrahedron_method.c @@ -403,7 +403,8 @@ thm_get_dense_neighboring_grid_points(size_t neighboring_grid_points[], const size_t bz_map[]) { int bzmesh[3], address_double[3], bz_address_double[3]; - size_t i, j, bz_gp, prod_bz_mesh; + int i; + size_t j, bz_gp, prod_bz_mesh; prod_bz_mesh = 1; for (i = 0; i < 3; i++) { diff --git a/phonopy/file_IO.py b/phonopy/file_IO.py index 06b77c93..2a2431dc 100644 --- a/phonopy/file_IO.py +++ b/phonopy/file_IO.py @@ -533,7 +533,13 @@ def get_cell_from_disp_yaml(dataset): data_key = None pos_key = None - positions = [x[pos_key] for x in dataset[data_key]] + try: + positions = [x[pos_key] for x in dataset[data_key]] + except KeyError: + msg = ("\"disp.yaml\" format is too old. " + "Please re-create it as \"phonopy_disp.yaml\" to contain " + "supercell crystal structure information.") + raise RuntimeError(msg) symbols = [x['symbol'] for x in dataset[data_key]] cell = PhonopyAtoms(cell=lattice, scaled_positions=positions, diff --git a/phonopy/interface/calculator.py b/phonopy/interface/calculator.py index 01224cb7..68017afb 100644 --- a/phonopy/interface/calculator.py +++ b/phonopy/interface/calculator.py @@ -345,16 +345,20 @@ def create_FORCE_SETS(interface_mode, print("NOTE:") print(" From phonopy v2.0, displacements are written into " "\"phonopy_disp.yaml\".") - print(" \"disp.yaml\" is still supported for reading, but is " - "deprecated.") + print(" \"disp.yaml\" is still supported for reading except for " + "Wien2k interface, ") + print(" but is deprecated.") print('') if force_sets_zero_mode: print("Forces in %s are subtracted from forces in all " "other files." % force_filenames[0]) if disp_filename == 'disp.yaml': - disp_dataset, supercell = parse_disp_yaml(filename=disp_filename, - return_cell=True) + if interface_mode == 'wein2k': + disp_dataset, supercell = parse_disp_yaml(filename=disp_filename, + return_cell=True) + else: + disp_dataset = parse_disp_yaml(filename=disp_filename) else: phpy = PhonopyYaml() phpy.read(disp_filename)