Bug fix of fc4 calculation of C implementation

This commit is contained in:
Atsushi Togo 2013-07-26 18:41:48 +09:00
parent 082f465c48
commit 03095b91e3
2 changed files with 8 additions and 8 deletions

View File

@ -428,13 +428,13 @@ def _solve_fc4(fc4,
i, j, k, delta_fc3s, rot_map_syms, site_sym_cart)
).reshape(3, 3, 3, 3)
def _rotate_delta_fc3s(i, j, k, fc3s, rot_map_syms, site_sym_cart):
rotated_fc3s = np.zeros((len(fc3s), len(site_sym_cart), 3, 3, 3),
def _rotate_delta_fc3s(i, j, k, delta_fc3s, rot_map_syms, site_sym_cart):
rotated_fc3s = np.zeros((len(delta_fc3s), len(site_sym_cart), 3, 3, 3),
dtype='double')
try:
import anharmonic._phono3py as phono3c
phono3c.rotate_delta_fc3s(rotated_fc3s,
fc3s,
delta_fc3s,
rot_map_syms,
site_sym_cart,
i,
@ -443,7 +443,7 @@ def _rotate_delta_fc3s(i, j, k, fc3s, rot_map_syms, site_sym_cart):
return np.reshape(rotated_fc3s, (-1, 27))
except ImportError:
print "Copying delta fc3s at (%d, %d, %d)" % (i + 1, j + 1, k + 1)
for l, fc3 in enumerate(fc3s):
for l, fc3 in enumerate(delta_fc3s):
for m, (sym, map_sym) in enumerate(zip(site_sym_cart,
rot_map_syms)):
fc3_rot = fc3[map_sym[i], map_sym[j], map_sym[k]]

View File

@ -693,13 +693,13 @@ static int rotate_delta_fc3s(double *rotated_delta_fc3s,
rot_tensor = rotated_delta_fc3s + i * num_rot * 27 + j * 27;
tensor3_roation(rot_tensor,
delta_fc3s +
i * num_rot * num_atom * num_atom * num_atom * 27,
i * num_atom * num_atom * num_atom * 27,
atom1,
atom2,
atom3,
rot_map_syms[atom1],
rot_map_syms[atom2],
rot_map_syms[atom3],
rot_map_syms[num_atom * j + atom1],
rot_map_syms[num_atom * j + atom2],
rot_map_syms[num_atom * j + atom3],
num_atom,
site_sym_cart + j * 9);
}