def calc_dqdk(self, mol, atoms, par): phi = torsion(atoms[0].coord, atoms[1].coord, atoms[2].coord, atoms[3].coord) d1, d2, d3, d4 = cos(phi), cos(2*phi), cos(3*phi), cos(4*phi) return (d1, d2, d3, d4, 0.0, 0.0, 0.0, 0.0), \ (-d1, -d2, -d3, -d4, 0.0, 0.0, 0.0, 0.0), \ (0.0, 0.0, 0.0, 0.0, -d1, -d2, -d3, -d4), \ (0.0, 0.0, 0.0, 0.0, d1, d2, d3, d4),
def calc_charge(self, mol, atoms, par): phi = torsion(atoms[0].coord, atoms[1].coord, atoms[2].coord, atoms[3].coord) delta1 = par[0] * cos(phi) + par[1] * cos(phi*2) + par[2] * cos(phi*3) + par[3]*cos(phi*4) delta2 = par[4] * cos(phi) + par[5] * cos(phi*2) + par[6] * cos(phi*3) + par[7]*cos(phi*4) return delta1, -delta1, -delta2, delta2,
def calc_charge(self, mol, atoms, par): phi = torsion(atoms[0].coord, atoms[1].coord, atoms[2].coord, atoms[3].coord) delta = par[0] * cos(phi) + par[1] * cos(phi*2) + par[2] * cos(phi*3) + par[3]*cos(phi*4) return delta, 0.0, 0.0, -delta,