def fill_LJ(self): """ Fills the LJ_radius, LJ_depth arrays and LJ_types dictionary with data from LENNARD_JONES_ACOEF and LENNARD_JONES_BCOEF sections of the prmtop files, by undoing the canonical combining rules. """ AmberParm.fill_LJ(self) acoef = self.parm_data['LENNARD_JONES_14_ACOEF'] bcoef = self.parm_data['LENNARD_JONES_14_BCOEF'] ntypes = self.pointers['NTYPES'] self.LJ_14_radius = [] # empty LJ_radii so it can be re-filled self.LJ_14_depth = [] # empty LJ_depths so it can be re-filled one_sixth = 1.0 / 6.0 # we need to raise some numbers to the 1/6th power for i in range(ntypes): lj_index = self.parm_data["NONBONDED_PARM_INDEX"][ntypes * i + i] - 1 if acoef[lj_index] < 1.0e-6: self.LJ_14_radius.append(0) self.LJ_14_depth.append(0) else: factor = 2 * acoef[lj_index] / bcoef[lj_index] self.LJ_14_radius.append(pow(factor, one_sixth) * 0.5) self.LJ_14_depth.append(bcoef[lj_index] / 2 / factor)
def fill_LJ(self): """ Fills the LJ_radius, LJ_depth arrays and LJ_types dictionary with data from LENNARD_JONES_ACOEF and LENNARD_JONES_BCOEF sections of the prmtop files, by undoing the canonical combining rules. """ AmberParm.fill_LJ(self) acoef = self.parm_data['LENNARD_JONES_14_ACOEF'] bcoef = self.parm_data['LENNARD_JONES_14_BCOEF'] ntypes = self.pointers['NTYPES'] self.LJ_14_radius = [] # empty LJ_radii so it can be re-filled self.LJ_14_depth = [] # empty LJ_depths so it can be re-filled one_sixth = 1.0 / 6.0 # we need to raise some numbers to the 1/6th power for i in range(ntypes): lj_index = self.parm_data["NONBONDED_PARM_INDEX"][ntypes*i+i] - 1 if acoef[lj_index] < 1.0e-6: self.LJ_14_radius.append(0) self.LJ_14_depth.append(0) else: factor = 2 * acoef[lj_index] / bcoef[lj_index] self.LJ_14_radius.append(pow(factor, one_sixth) * 0.5) self.LJ_14_depth.append(bcoef[lj_index] / 2 / factor)