def dRdn(p,theta): px,py,pz = p dRij = num.zeros([3,3,3]) def perm_loop1(i1,i2,i3,n): ret = 0 for i in range(3): for j in range(3): ret+=perm(i1,i,i3)*perm(i,i2,j)*n[j] return ret def perm_loop2(i1,i2,i3,n): ret = 0 for i in range(3): for j in range(3): ret+=perm(i1,i,j)*n[j]*perm(i,i2,i3) return ret for i in range(3): for m in range(3): for l in range(3): dRij[i,m,l]=-perm(i,m,l)*sin(theta) + (perm_loop1(i,m,l,p) + perm_loop2(i,m,l,p))*(1-cos(theta)) return dRij
def perm_loop2(i1,i2,i3,n): ret = 0 for i in range(3): for j in range(3): ret+=perm(i1,i,j)*n[j]*perm(i,i2,i3) return ret