def jobFixedBondOpt(self): self.rem.jobtype("opt") self.con_arr = qc._unsupported_array("opt") self.con_arr.add_line("CONSTRAINT") for constr in self.bond_cons: #need to implement this to read these from file if we used this for other systems self.con_arr.add_line("stre %i %i %f" % (constr[0], constr[1], constr[2])) self.con_arr.add_line("ENDCONSTRAINT") self.job_arr_list.append(self.con_arr)
def jobCube(self): self.jobSp() self.rem.add("make_cube_files", "true") self.plot_arr = qc._unsupported_array("plots") self.plot_arr.add_line("Grid information comment") self.plot_arr.add_line("200 -10.0 10.0") self.plot_arr.add_line("200 -10.0 10.0") self.plot_arr.add_line("200 -10.0 10.0") self.plot_arr.add_line("1 0 0 0") self.plot_arr.add_line("1") self.job_arr_list.append(self.plot_arr)
def jobConstrainedOpt(self): self.rem.jobtype("opt") self.con_arr = qc._unsupported_array("opt") self.con_arr.add_line("FIXED") for i, atom in enumerate(self.out.list_of_atoms): if atom[0] in self.free_atom: continue else: self.con_arr.add_line(str(i + 1) + " XYZ") self.con_arr.add_line("ENDFIXED") self.job_arr_list.append(self.con_arr)
def addSolvent(self): self.rem.solvent_method('PCM') self.pcm_arr = qc._unsupported_array("pcm") self.pcm_arr.add_line("theory cpcm") self.pcm_arr.add_line("method swig") self.pcm_arr.add_line("solver inversion") self.pcm_arr.add_line("heavypoints 194") self.pcm_arr.add_line("hpoints 194") self.pcm_arr.add_line("radii bondi") self.pcm_arr.add_line("vdwscale 1.2") self.sol_arr = qc._unsupported_array("solvent") self.sol_arr.add_line("dielectric 78.39") self.vdw_arr = qc._unsupported_array("van_der_waals") self.vdw_arr.add_line("1") """Source: http://periodictable.com/Properties/A/VanDerWaalsRadius.v.html""" #self.vdw_arr.add_line("24 1.97") #self.vdw_arr.add_line("25 1.96") #self.vdw_arr.add_line("26 1.96") #self.vdw_arr.add_line("27 1.95") #self.vdw_arr.add_line("28 1.63") #self.vdw_arr.add_line("29 1.40") #self.vdw_arr.add_line("30 1.39") """Source: https://physlab.lums.edu.pk/images/f/f6/Franck_ref2.pdf0""Source: http://periodictable.com/Properties/A/VanDerWaalsRadius.v.html""" self.vdw_arr.add_line("24 1.97") self.vdw_arr.add_line("25 1.96") self.vdw_arr.add_line("26 1.96") self.vdw_arr.add_line("27 1.95") self.vdw_arr.add_line("28 1.94") self.vdw_arr.add_line("29 2.00") self.vdw_arr.add_line("30 2.02") self.job_arr_list.append(self.pcm_arr) self.job_arr_list.append(self.sol_arr) self.job_arr_list.append(self.vdw_arr)
def jobCdft(self): self.rem.add('CDFT', 'True') self.rem.add('SCF_PRINT', 'True') self.cdft_arr = qc._unsupported_array("cdft") self.cdft_arr.add_line("1") O2_indices = self.O2coord() #print("O2 indices:", O2_indices) self.cdft_arr.add_line("1 %s %s s" % (O2_indices[0] + 1, O2_indices[1] + 1)) # error if O2coord() returns None self.job_arr_list.append(self.cdft_arr) atoms = copy.copy(self.out.list_of_atoms) first_two = [atoms[0][0], atoms[1][0]] last_two = [atoms[-2][0], atoms[-1][0]]
def jobCdft(self): self.rem.add('CDFT', 'True') self.rem.add('SCF_PRINT', 'True') self.cdft_arr = qc._unsupported_array("cdft") self.cdft_arr.add_line("1") self.cdft_arr.add_line("1 1 2 s") self.job_arr_list.append(self.cdft_arr) atoms = copy.copy(self.out.list_of_atoms) first_two = [atoms[0][0], atoms[1][0]] last_two = [atoms[-2][0], atoms[-1][0]] if first_two != ['O', 'O'] and last_two == ['O', 'O']: atoms.insert(0, atoms.pop()) atoms.insert(0, atoms.pop()) xyz = qc.cartesian(atom_list=atoms) self.mol = qc.mol_array(xyz) self.mol.charge(self.charge) self.mol.multiplicity(self.mult)