Esempio n. 1
0
 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)
Esempio n. 2
0
 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)
Esempio n. 3
0
 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)
Esempio n. 4
0
    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)
Esempio n. 5
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")
        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]]
Esempio n. 6
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)