diff --git a/c/real_to_reciprocal.c b/c/real_to_reciprocal.c index 29f9212b..b4eb7b86 100644 --- a/c/real_to_reciprocal.c +++ b/c/real_to_reciprocal.c @@ -80,8 +80,8 @@ void r2r_real_to_reciprocal(lapack_complex_double *fc3_reciprocal, const AtomTriplets *atom_triplets, const long openmp_per_triplets) { long i, j, num_band, num_patom, num_satom, adrs_vec; - lapack_complex_double *pre_phase_factors, *phase_factor0, *phase_factor1, - *phase_factor2; + lapack_complex_double *pre_phase_factors, *phase_factors, *phase_factor0, + *phase_factor1, *phase_factor2; num_patom = atom_triplets->multi_dims[1]; num_satom = atom_triplets->multi_dims[0]; @@ -92,12 +92,11 @@ void r2r_real_to_reciprocal(lapack_complex_double *fc3_reciprocal, pre_phase_factors[i] = get_pre_phase_factor(i, q_vecs, atom_triplets); } - phase_factor0 = (lapack_complex_double *)malloc( - sizeof(lapack_complex_double) * num_patom * num_satom); - phase_factor1 = (lapack_complex_double *)malloc( - sizeof(lapack_complex_double) * num_patom * num_satom); - phase_factor2 = (lapack_complex_double *)malloc( - sizeof(lapack_complex_double) * num_patom * num_satom); + phase_factors = (lapack_complex_double *)malloc( + sizeof(lapack_complex_double) * 3 * num_patom * num_satom); + phase_factor0 = phase_factors; + phase_factor1 = phase_factors + num_patom * num_satom; + phase_factor2 = phase_factors + 2 * num_patom * num_satom; for (i = 0; i < num_patom; i++) { for (j = 0; j < num_satom; j++) { adrs_vec = j * atom_triplets->multi_dims[1] + i; @@ -132,11 +131,10 @@ void r2r_real_to_reciprocal(lapack_complex_double *fc3_reciprocal, free(pre_phase_factors); pre_phase_factors = NULL; - free(phase_factor0); + free(phase_factors); + phase_factors = NULL; + phase_factor0 = NULL; phase_factor1 = NULL; - free(phase_factor1); - phase_factor1 = NULL; - free(phase_factor2); phase_factor2 = NULL; } diff --git a/phono3py/phonon3/interaction.py b/phono3py/phonon3/interaction.py index 6bf486f7..443ad335 100644 --- a/phono3py/phonon3/interaction.py +++ b/phono3py/phonon3/interaction.py @@ -304,7 +304,7 @@ def primitive_symmetry(self) -> Symmetry: def get_triplets_at_q( self, - ) -> tuple(np.ndarray, np.ndarray, np.ndarray, np.ndarray): + ) -> tuple[np.ndarray, np.ndarray, np.ndarray, np.ndarray]: """Return grid point triplets information. triplets_at_q is in BZ-grid. @@ -414,7 +414,7 @@ def get_zero_value_positions(self): ) return self.zero_value_positions - def get_phonons(self) -> tuple(np.ndarray, np.ndarray, np.ndarray): + def get_phonons(self) -> tuple[np.ndarray, np.ndarray, np.ndarray]: """Return phonons on grid. Returns @@ -538,7 +538,7 @@ def get_averaged_interaction(self): def get_primitive_and_supercell_correspondence( self, - ) -> tuple(np.ndarray, np.ndarray, np.ndarray, np.ndarray, np.ndarray): + ) -> tuple[np.ndarray, np.ndarray, np.ndarray, np.ndarray, np.ndarray]: """Return atomic pair information.""" return (self._svecs, self._multi, self._p2s, self._s2p, self._masses)