예제 #1
0
 def test_smd_write(self):
     test_molecule = QCInput.from_file(os.path.join(test_dir, "new_qchem_files/pcm.qin")).molecule
     dict_set = QChemDictSet(
         molecule=test_molecule,
         job_type="opt",
         basis_set="6-31g*",
         scf_algorithm="diis",
         dft_rung=5,
         smd_solvent="water",
         max_scf_cycles=35,
     )
     dict_set.write("mol.qin")
     test_dict = QCInput.from_file("mol.qin").as_dict()
     rem = {
         "job_type": "opt",
         "basis": "6-31G*",
         "max_scf_cycles": "35",
         "method": "wb97mv",
         "geom_opt_max_cycles": "200",
         "gen_scfman": "true",
         "scf_algorithm": "diis",
         "xc_grid": "3",
         "solvent_method": "smd",
         "ideriv": "1",
         "symmetry": "false",
         "sym_ignore": "true",
         "resp_charges": "true",
     }
     qc_input = QCInput(molecule=test_molecule, rem=rem, smx={"solvent": "water"})
     for k, v in qc_input.as_dict().items():
         self.assertEqual(v, test_dict[k])
     os.remove("mol.qin")
예제 #2
0
 def test_pcm_init(self):
     test_molecule = QCInput.from_file(os.path.join(test_dir, "new_qchem_files/pcm.qin")).molecule
     test_FreqSet = FreqSet(molecule=test_molecule, pcm_dielectric=10.0)
     self.assertEqual(
         test_FreqSet.rem,
         {
             "job_type": "freq",
             "gen_scfman": "true",
             "basis": "def2-tzvppd",
             "max_scf_cycles": "200",
             "method": "wb97xd",
             "scf_algorithm": "diis",
             "xc_grid": "3",
             "solvent_method": "pcm",
             "symmetry": "false",
             "sym_ignore": "true",
             "resp_charges": "true",
         },
     )
     self.assertEqual(
         test_FreqSet.pcm,
         {
             "heavypoints": "194",
             "hpoints": "194",
             "radii": "uff",
             "theory": "cpcm",
             "vdwscale": "1.1",
         },
     )
     self.assertEqual(test_FreqSet.solvent, {"dielectric": 10.0})
     self.assertEqual(test_FreqSet.molecule, test_molecule)
예제 #3
0
 def test_smd_init(self):
     test_molecule = QCInput.from_file(os.path.join(test_dir, "new_qchem_files/pes_scan.qin")).molecule
     test_pes_scan = PESScanSet(
         molecule=test_molecule, smd_solvent="water", scan_variables={"stre": ["3 6 1.5 1.9 0.01"]}
     )
     self.assertEqual(
         test_pes_scan.rem,
         {
             "job_type": "pes_scan",
             "gen_scfman": "true",
             "basis": "def2-tzvppd",
             "max_scf_cycles": "200",
             "geom_opt_max_cycles": "200",
             "method": "wb97xd",
             "scf_algorithm": "diis",
             "xc_grid": "3",
             "solvent_method": "smd",
             "ideriv": "1",
             "resp_charges": "true",
             "sym_ignore": "true",
             "symmetry": "false",
         },
     )
     self.assertEqual(test_pes_scan.smx, {"solvent": "water"})
     self.assertEqual(test_pes_scan.scan, {"stre": ["3 6 1.5 1.9 0.01"]})
     self.assertEqual(test_pes_scan.molecule, test_molecule)
예제 #4
0
 def test_pcm_init(self):
     test_molecule = QCInput.from_file(os.path.join(test_dir, "new_qchem_files/pes_scan.qin")).molecule
     test_pes_scan = PESScanSet(
         molecule=test_molecule, pcm_dielectric=10.0, scan_variables={"stre": ["3 6 1.5 1.9 0.01"]}
     )
     self.assertEqual(
         test_pes_scan.rem,
         {
             "job_type": "pes_scan",
             "gen_scfman": "true",
             "basis": "def2-tzvppd",
             "max_scf_cycles": "200",
             "geom_opt_max_cycles": "200",
             "method": "wb97xd",
             "scf_algorithm": "diis",
             "xc_grid": "3",
             "solvent_method": "pcm",
             "resp_charges": "true",
             "sym_ignore": "true",
             "symmetry": "false",
         },
     )
     self.assertEqual(
         test_pes_scan.pcm,
         {"heavypoints": "194", "hpoints": "194", "radii": "uff", "theory": "cpcm", "vdwscale": "1.1"},
     )
     self.assertEqual(test_pes_scan.solvent, {"dielectric": 10.0})
     self.assertEqual(test_pes_scan.scan, {"stre": ["3 6 1.5 1.9 0.01"]})
     self.assertEqual(test_pes_scan.molecule, test_molecule)
예제 #5
0
 def test_plots_init(self):
     test_molecule = QCInput.from_file(os.path.join(test_dir, "new_qchem_files/pcm.qin")).molecule
     test_SPSet = SinglePointSet(molecule=test_molecule, smd_solvent="water", plot_cubes=True)
     self.assertEqual(
         test_SPSet.rem,
         {
             "job_type": "sp",
             "gen_scfman": "true",
             "basis": "def2-tzvppd",
             "max_scf_cycles": "200",
             "method": "wb97xd",
             "scf_algorithm": "diis",
             "xc_grid": "3",
             "solvent_method": "smd",
             "ideriv": "1",
             "symmetry": "false",
             "sym_ignore": "true",
             "resp_charges": "true",
             "plots": "true",
             "make_cube_files": "true",
         },
     )
     self.assertEqual(test_SPSet.plots, {"grid_spacing": "0.05", "total_density": "0"})
     self.assertEqual(test_SPSet.smx, {"solvent": "water"})
     self.assertEqual(test_SPSet.molecule, test_molecule)
예제 #6
0
 def test_init(self):
     test_molecule = QCInput.from_file(os.path.join(test_dir, "new_qchem_files/pcm.qin")).molecule
     test_DictSet = QChemDictSet(
         molecule=test_molecule,
         job_type="opt",
         basis_set="6-31G*",
         scf_algorithm="diis",
     )
     self.assertEqual(
         test_DictSet.rem,
         {
             "job_type": "opt",
             "gen_scfman": "true",
             "basis": "6-31g*",
             "max_scf_cycles": "200",
             "method": "wb97xv",
             "scf_algorithm": "diis",
             "xc_grid": "3",
             "geom_opt_max_cycles": "200",
             "symmetry": "false",
             "sym_ignore": "true",
             "resp_charges": "true",
         },
     )
     self.assertEqual(test_DictSet.pcm, {})
     self.assertEqual(test_DictSet.solvent, {})
     self.assertEqual(test_DictSet.smx, {})
     self.assertEqual(test_DictSet.molecule, test_molecule)
예제 #7
0
 def test_overwrite_input(self):
     test_molecule = QCInput.from_file(os.path.join(test_dir, "new_qchem_files/pcm.qin")).molecule
     overwrite_inputs = {
         "rem": {
             "method": "b3lyp",
             "basis": "6-31g*",
             "thresh": 10,
             "xc_grid": "000150000302",
         }
     }
     test_OptSet = OptSet(molecule=test_molecule, overwrite_inputs=overwrite_inputs)
     act_rem = {
         "job_type": "opt",
         "gen_scfman": "true",
         "basis": "6-31g*",
         "max_scf_cycles": "200",
         "method": "b3lyp",
         "scf_algorithm": "diis",
         "xc_grid": "000150000302",
         "geom_opt_max_cycles": "200",
         "thresh": 10,
         "symmetry": "false",
         "sym_ignore": "true",
         "resp_charges": "true",
     }
     self.assertDictEqual(act_rem, test_OptSet.rem)
예제 #8
0
 def test_smd_init(self):
     test_molecule = QCInput.from_file(
         os.path.join(test_dir, "new_qchem_files/pcm.qin")).molecule
     test_FreqSet = FreqSet(molecule=test_molecule, smd_solvent="water")
     self.assertEqual(
         test_FreqSet.rem,
         {
             "job_type": "freq",
             "gen_scfman": "true",
             "basis": "def2-tzvppd",
             "max_scf_cycles": "100",
             "method": "wb97xd",
             "scf_algorithm": "diis",
             "xc_grid": "3",
             "thresh": "14",
             "s2thresh": "16",
             "solvent_method": "smd",
             "ideriv": "1",
             "symmetry": "false",
             "sym_ignore": "true",
             "resp_charges": "true",
         },
     )
     self.assertEqual(test_FreqSet.smx, {"solvent": "water"})
     self.assertEqual(test_FreqSet.molecule, test_molecule)
예제 #9
0
 def test_init(self):
     test_molecule = QCInput.from_file(
         os.path.join(test_dir, "new_qchem_files/pcm.qin")).molecule
     test_TSSet = TransitionStateSet(molecule=test_molecule)
     self.assertEqual(
         test_TSSet.rem,
         {
             "job_type": "ts",
             "gen_scfman": "true",
             "basis": "def2-tzvppd",
             "max_scf_cycles": "100",
             "method": "wb97xd",
             "scf_algorithm": "diis",
             "xc_grid": "3",
             "thresh": "14",
             "s2thresh": "16",
             "geom_opt_max_cycles": "200",
             "resp_charges": "true",
             "sym_ignore": "true",
             "symmetry": "false",
         },
     )
     self.assertEqual(test_TSSet.pcm, {})
     self.assertEqual(test_TSSet.solvent, {})
     self.assertEqual(test_TSSet.smx, {})
     self.assertEqual(test_TSSet.molecule, test_molecule)
예제 #10
0
 def test_overwrite_opt_input(self):
     test_molecule = QCInput.from_file(
         os.path.join(test_dir, "new_qchem_files/pcm.qin")).molecule
     overwrite_inputs = {"opt": {"FIXED": ["1 XYZ", "2 XY"]}}
     test_OptSet = OptSet(molecule=test_molecule,
                          overwrite_inputs=overwrite_inputs)
     act_opt = {"fixed": ["1 XYZ", "2 XY"]}
     self.assertDictEqual(act_opt, test_OptSet.opt)
예제 #11
0
 def test_pcm_write(self):
     test_molecule = QCInput.from_file(
         os.path.join(test_dir, "new_qchem_files/pcm.qin")).molecule
     dict_set = QChemDictSet(
         molecule=test_molecule,
         job_type="opt",
         basis_set="6-31g*",
         scf_algorithm="diis",
         dft_rung=5,
         pcm_dielectric=10.0,
         max_scf_cycles=35,
     )
     dict_set.write("mol.qin")
     test_dict = QCInput.from_file("mol.qin").as_dict()
     rem = {
         "job_type": "opt",
         "basis": "6-31G*",
         "max_scf_cycles": "35",
         "method": "wb97mv",
         "geom_opt_max_cycles": "200",
         "gen_scfman": "true",
         "scf_algorithm": "diis",
         "xc_grid": "3",
         "thresh": "14",
         "s2thresh": "16",
         "solvent_method": "pcm",
         "symmetry": "false",
         "sym_ignore": "true",
         "resp_charges": "true",
     }
     pcm = {
         "heavypoints": "194",
         "hpoints": "194",
         "radii": "uff",
         "theory": "cpcm",
         "vdwscale": "1.1",
     }
     qc_input = QCInput(molecule=test_molecule,
                        rem=rem,
                        pcm=pcm,
                        solvent={"dielectric": "10.0"})
     for k, v in qc_input.as_dict().items():
         self.assertEqual(v, test_dict[k])
     os.remove("mol.qin")
예제 #12
0
    def test_double_solvation(self):
        test_molecule = QCInput.from_file(os.path.join(test_dir, "new_qchem_files/pcm.qin")).molecule
        raised_error = False
        dict_set = None
        try:
            dict_set = QChemDictSet(
                molecule=test_molecule,
                job_type="opt",
                basis_set="6-31g*",
                scf_algorithm="diis",
                dft_rung=1,
                pcm_dielectric=10.0,
                smd_solvent="water",
                max_scf_cycles=35,
            )
        except ValueError:
            raised_error = True

        self.assertTrue(raised_error)
        self.assertEqual(dict_set, None)
예제 #13
0
 def test_init(self):
     test_molecule = QCInput.from_file(os.path.join(test_dir, "new_qchem_files/pcm.qin")).molecule
     test_SPSet = SinglePointSet(molecule=test_molecule)
     self.assertEqual(
         test_SPSet.rem,
         {
             "job_type": "sp",
             "gen_scfman": "true",
             "basis": "def2-tzvppd",
             "max_scf_cycles": "200",
             "method": "wb97xd",
             "scf_algorithm": "diis",
             "xc_grid": "3",
             "symmetry": "false",
             "sym_ignore": "true",
             "resp_charges": "true",
         },
     )
     self.assertEqual(test_SPSet.pcm, {})
     self.assertEqual(test_SPSet.solvent, {})
     self.assertEqual(test_SPSet.molecule, test_molecule)
예제 #14
0
 def test_nbo_init(self):
     test_molecule = QCInput.from_file(os.path.join(test_dir, "new_qchem_files/pcm.qin")).molecule
     test_OptSet = OptSet(molecule=test_molecule, nbo_params={})
     self.assertEqual(
         test_OptSet.rem,
         {
             "job_type": "opt",
             "gen_scfman": "true",
             "geom_opt_max_cycles": "200",
             "basis": "def2-tzvppd",
             "max_scf_cycles": "200",
             "method": "wb97xd",
             "scf_algorithm": "diis",
             "xc_grid": "3",
             "symmetry": "false",
             "sym_ignore": "true",
             "resp_charges": "true",
             "nbo": "true",
         },
     )
     self.assertEqual(test_OptSet.nbo, {})
     self.assertEqual(test_OptSet.molecule, test_molecule)
예제 #15
0
    def test_full_init(self):
        test_molecule = QCInput.from_file(os.path.join(test_dir, "new_qchem_files/pcm.qin")).molecule

        test_DictSet = QChemDictSet(
            molecule=test_molecule,
            job_type="opt",
            basis_set="6-31g*",
            scf_algorithm="diis",
            dft_rung=1,
            pcm_dielectric=10.0,
            max_scf_cycles=35,
        )
        self.assertEqual(
            test_DictSet.rem,
            {
                "job_type": "opt",
                "gen_scfman": "true",
                "basis": "6-31g*",
                "max_scf_cycles": "35",
                "method": "b3lyp",
                "geom_opt_max_cycles": "200",
                "scf_algorithm": "diis",
                "xc_grid": "3",
                "solvent_method": "pcm",
                "symmetry": "false",
                "sym_ignore": "true",
                "resp_charges": "true",
            },
        )
        self.assertEqual(
            test_DictSet.pcm,
            {
                "heavypoints": "194",
                "hpoints": "194",
                "radii": "uff",
                "theory": "cpcm",
                "vdwscale": "1.1",
            },
        )
        self.assertEqual(test_DictSet.solvent, {"dielectric": 10.0})
        self.assertEqual(test_DictSet.molecule, test_molecule)

        test_DictSet = QChemDictSet(
            molecule=test_molecule,
            job_type="opt",
            basis_set="6-31g*",
            scf_algorithm="diis",
            dft_rung=1,
            smd_solvent="water",
            max_scf_cycles=35,
        )
        self.assertEqual(
            test_DictSet.rem,
            {
                "job_type": "opt",
                "gen_scfman": "true",
                "basis": "6-31g*",
                "max_scf_cycles": "35",
                "method": "b3lyp",
                "geom_opt_max_cycles": "200",
                "scf_algorithm": "diis",
                "xc_grid": "3",
                "solvent_method": "smd",
                "ideriv": "1",
                "symmetry": "false",
                "sym_ignore": "true",
                "resp_charges": "true",
            },
        )
        self.assertEqual(test_DictSet.smx, {"solvent": "water"})