예제 #1
0
    def setUp(self):
        tasks = [
            NwTask.dft_task(mol,
                            operation="optimize",
                            xc="b3lyp",
                            basis_set="6-31++G*"),
            NwTask.dft_task(mol,
                            operation="freq",
                            xc="b3lyp",
                            basis_set="6-31++G*"),
            NwTask.dft_task(mol,
                            operation="energy",
                            xc="b3lyp",
                            basis_set="6-311++G**"),
            NwTask.dft_task(mol,
                            charge=mol.charge + 1,
                            operation="energy",
                            xc="b3lyp",
                            basis_set="6-311++G**"),
            NwTask.dft_task(mol,
                            charge=mol.charge - 1,
                            operation="energy",
                            xc="b3lyp",
                            basis_set="6-311++G**")
        ]

        self.nwi = NwInput(mol,
                           tasks,
                           geometry_options=["units", "angstroms", "noautoz"],
                           memory_options="total 1000 mb")
        self.nwi_symm = NwInput(
            mol,
            tasks,
            geometry_options=["units", "angstroms", "noautoz"],
            symmetry_options=["c1"])
예제 #2
0
 def setUp(self):
     self.task = NwTask(0,
                        1,
                        basis_set={"H": "6-31g"},
                        theory="dft",
                        theory_directives={"xc": "b3lyp"})
     self.task_cosmo = NwTask(0,
                              1,
                              basis_set={"H": "6-31g"},
                              theory="dft",
                              theory_directives={"xc": "b3lyp"},
                              alternate_directives={'cosmo': "cosmo"})
     self.task_esp = NwTask(0, 1, basis_set={"H": "6-31g"}, theory="esp")
예제 #3
0
 def setUp(self):
     tasks = [
         NwTask.dft_task(mol, operation="optimize", xc="b3lyp",
                         basis_set="6-31++G*"),
         NwTask.dft_task(mol, operation="freq", xc="b3lyp",
                         basis_set="6-31++G*"),
         NwTask.dft_task(mol, operation="energy", xc="b3lyp",
                         basis_set="6-311++G**"),
         NwTask.dft_task(mol, charge=mol.charge + 1, operation="energy",
                         xc="b3lyp", basis_set="6-311++G**"),
         NwTask.dft_task(mol, charge=mol.charge - 1, operation="energy",
                         xc="b3lyp", basis_set="6-311++G**")
     ]
     self.nwi = NwInput(mol, tasks)
예제 #4
0
 def setUp(self):
     tasks = [
         NwTask.dft_task(mol, operation="optimize", xc="b3lyp",
                         basis_set="6-31++G*"),
         NwTask.dft_task(mol, operation="freq", xc="b3lyp",
                         basis_set="6-31++G*"),
         NwTask.dft_task(mol, operation="energy", xc="b3lyp",
                         basis_set="6-311++G**"),
         NwTask.dft_task(mol, charge=mol.charge + 1, operation="energy",
                         xc="b3lyp", basis_set="6-311++G**"),
         NwTask.dft_task(mol, charge=mol.charge - 1, operation="energy",
                         xc="b3lyp", basis_set="6-311++G**")
     ]
     self.nwi = NwInput(mol, tasks,
                        geometry_options=["units", "angstroms", "noautoz"])
예제 #5
0
    def test_dft_cosmo_task(self):
        task = NwTask.dft_task(
            mol,
            charge=mol.charge,
            operation="energy",
            xc="b3lyp",
            basis_set="6-311++G**",
            alternate_directives={'cosmo': {
                "dielec": 78.0
            }})
        ans = """title "H4C1 dft energy"
charge 0
basis
 C library "6-311++G**"
 H library "6-311++G**"
end
dft
 mult 1
 xc b3lyp
end
cosmo
 dielec 78.0
end
task dft energy"""
        self.assertEqual(str(task), ans)
예제 #6
0
 def setUp(self):
     self.task = NwTask(0, 1, basis_set={"H": "6-31g"}, theory="dft",
                        theory_directives={"xc": "b3lyp"})
     self.task_cosmo = NwTask(0, 1, basis_set={"H": "6-31g"}, theory="dft",
                              theory_directives={"xc": "b3lyp"},
                              alternate_directives={'cosmo': "cosmo"})
     self.task_esp = NwTask(0, 1, basis_set={"H": "6-31g"}, theory="esp")
예제 #7
0
    def test_esp_task(self):
        task = NwTask.esp_task(mol, charge=mol.charge, operation="",
                               basis_set="6-311++G**")
        ans = """title "H4C1 esp "
charge 0
basis
 H library "6-311++G**"
 C library "6-311++G**"
end

task esp """
        self.assertEqual(str(task), ans)
예제 #8
0
    def test_dft_task(self):
        task = NwTask.dft_task(mol, charge=1, operation="energy")
        ans = """title "H4C1 dft energy"
charge 1
basis
 H library "6-31g"
 C library "6-31g"
end
dft
 xc b3lyp
 mult 2
end
task dft energy"""
        self.assertEqual(str(task), ans)
예제 #9
0
    def test_dft_task(self):
        task = NwTask.dft_task(mol, charge=1, operation="energy")
        ans = """title "H4C1 dft energy"
charge 1
basis
 C library "6-31g"
 H library "6-31g"
end
dft
 mult 2
 xc b3lyp
end
task dft energy"""
        self.assertEqual(str(task), ans)
예제 #10
0
    def test_esp_task(self):
        task = NwTask.esp_task(mol,
                               charge=mol.charge,
                               operation="",
                               basis_set="6-311++G**")
        ans = """title "H4C1 esp "
charge 0
basis
 C library "6-311++G**"
 H library "6-311++G**"
end

task esp """
        self.assertEqual(str(task), ans)
예제 #11
0
    def test_multi_bset(self):
        t = NwTask.from_molecule(
            mol, theory="dft", basis_set={"C": "6-311++G**",
                                          "H": "6-31++G**"},
            theory_directives={"xc": "b3lyp"})
        ans = """title "H4C1 dft optimize"
charge 0
basis
 H library "6-31++G**"
 C library "6-311++G**"
end
dft
 xc b3lyp
end
task dft optimize"""
        self.assertEqual(str(t), ans)
예제 #12
0
    def test_multi_bset(self):
        t = NwTask.from_molecule(mol,
                                 theory="dft",
                                 basis_set={
                                     "C": "6-311++G**",
                                     "H": "6-31++G**"
                                 },
                                 theory_directives={"xc": "b3lyp"})
        ans = """title "H4C1 dft optimize"
charge 0
basis
 C library "6-311++G**"
 H library "6-31++G**"
end
dft
 xc b3lyp
end
task dft optimize"""
        self.assertEqual(str(t), ans)
예제 #13
0
    def test_dft_cosmo_task(self):
        task = NwTask.dft_task(
            mol, charge=mol.charge, operation="energy",
            xc="b3lyp", basis_set="6-311++G**",
            alternate_directives={'cosmo': {"dielec": 78.0}})
        ans = """title "H4C1 dft energy"
charge 0
basis
 H library "6-311++G**"
 C library "6-311++G**"
end
dft
 xc b3lyp
 mult 1
end
cosmo
 dielec 78.0
end
task dft energy"""
        self.assertEqual(str(task), ans)
예제 #14
0
class NwTaskTest(unittest.TestCase):

    def setUp(self):
        self.task = NwTask(0, 1, basis_set={"H": "6-31g"}, theory="dft",
                           theory_directives={"xc": "b3lyp"})
        self.task_cosmo = NwTask(0, 1, basis_set={"H": "6-31g"}, theory="dft",
                                 theory_directives={"xc": "b3lyp"},
                                 alternate_directives={'cosmo': "cosmo"})
        self.task_esp = NwTask(0, 1, basis_set={"H": "6-31g"}, theory="esp")

    def test_multi_bset(self):
        t = NwTask.from_molecule(
            mol, theory="dft", basis_set={"C": "6-311++G**",
                                          "H": "6-31++G**"},
            theory_directives={"xc": "b3lyp"})
        ans = """title "H4C1 dft optimize"
charge 0
basis
 C library "6-311++G**"
 H library "6-31++G**"
end
dft
 xc b3lyp
end
task dft optimize"""
        self.assertEqual(str(t), ans)

    def test_str_and_from_string(self):

        ans = """title "dft optimize"
charge 0
basis
 H library "6-31g"
end
dft
 xc b3lyp
end
task dft optimize"""
        self.assertEqual(str(self.task), ans)

    def test_to_from_dict(self):
        d = self.task.as_dict()
        t = NwTask.from_dict(d)
        self.assertIsInstance(t, NwTask)

    def test_init(self):
        self.assertRaises(NwInputError, NwTask, 0, 1, {"H": "6-31g"},
                          theory="bad")
        self.assertRaises(NwInputError, NwTask, 0, 1, {"H": "6-31g"},
                          operation="bad")

    def test_dft_task(self):
        task = NwTask.dft_task(mol, charge=1, operation="energy")
        ans = """title "H4C1 dft energy"
charge 1
basis
 C library "6-31g"
 H library "6-31g"
end
dft
 mult 2
 xc b3lyp
end
task dft energy"""
        self.assertEqual(str(task), ans)

    def test_dft_cosmo_task(self):
        task = NwTask.dft_task(
            mol, charge=mol.charge, operation="energy",
            xc="b3lyp", basis_set="6-311++G**",
            alternate_directives={'cosmo': {"dielec": 78.0}})
        ans = """title "H4C1 dft energy"
charge 0
basis
 C library "6-311++G**"
 H library "6-311++G**"
end
dft
 mult 1
 xc b3lyp
end
cosmo
 dielec 78.0
end
task dft energy"""
        self.assertEqual(str(task), ans)

    def test_esp_task(self):
        task = NwTask.esp_task(mol, charge=mol.charge, operation="",
                               basis_set="6-311++G**")
        ans = """title "H4C1 esp "
charge 0
basis
 C library "6-311++G**"
 H library "6-311++G**"
end

task esp """
        self.assertEqual(str(task), ans)
예제 #15
0
 def test_to_from_dict(self):
     d = self.task.as_dict()
     t = NwTask.from_dict(d)
     self.assertIsInstance(t, NwTask)
예제 #16
0
class NwTaskTest(unittest.TestCase):
    def setUp(self):
        self.task = NwTask(0,
                           1,
                           basis_set={"H": "6-31g"},
                           theory="dft",
                           theory_directives={"xc": "b3lyp"})
        self.task_cosmo = NwTask(0,
                                 1,
                                 basis_set={"H": "6-31g"},
                                 theory="dft",
                                 theory_directives={"xc": "b3lyp"},
                                 alternate_directives={'cosmo': "cosmo"})
        self.task_esp = NwTask(0, 1, basis_set={"H": "6-31g"}, theory="esp")

    def test_multi_bset(self):
        t = NwTask.from_molecule(mol,
                                 theory="dft",
                                 basis_set={
                                     "C": "6-311++G**",
                                     "H": "6-31++G**"
                                 },
                                 theory_directives={"xc": "b3lyp"})
        ans = """title "H4C1 dft optimize"
charge 0
basis
 C library "6-311++G**"
 H library "6-31++G**"
end
dft
 xc b3lyp
end
task dft optimize"""
        self.assertEqual(str(t), ans)

    def test_str_and_from_string(self):

        ans = """title "dft optimize"
charge 0
basis
 H library "6-31g"
end
dft
 xc b3lyp
end
task dft optimize"""
        self.assertEqual(str(self.task), ans)

    def test_to_from_dict(self):
        d = self.task.as_dict()
        t = NwTask.from_dict(d)
        self.assertIsInstance(t, NwTask)

    def test_init(self):
        self.assertRaises(NwInputError,
                          NwTask,
                          0,
                          1, {"H": "6-31g"},
                          theory="bad")
        self.assertRaises(NwInputError,
                          NwTask,
                          0,
                          1, {"H": "6-31g"},
                          operation="bad")

    def test_dft_task(self):
        task = NwTask.dft_task(mol, charge=1, operation="energy")
        ans = """title "H4C1 dft energy"
charge 1
basis
 C library "6-31g"
 H library "6-31g"
end
dft
 mult 2
 xc b3lyp
end
task dft energy"""
        self.assertEqual(str(task), ans)

    def test_dft_cosmo_task(self):
        task = NwTask.dft_task(
            mol,
            charge=mol.charge,
            operation="energy",
            xc="b3lyp",
            basis_set="6-311++G**",
            alternate_directives={'cosmo': {
                "dielec": 78.0
            }})
        ans = """title "H4C1 dft energy"
charge 0
basis
 C library "6-311++G**"
 H library "6-311++G**"
end
dft
 mult 1
 xc b3lyp
end
cosmo
 dielec 78.0
end
task dft energy"""
        self.assertEqual(str(task), ans)

    def test_esp_task(self):
        task = NwTask.esp_task(mol,
                               charge=mol.charge,
                               operation="",
                               basis_set="6-311++G**")
        ans = """title "H4C1 esp "
charge 0
basis
 C library "6-311++G**"
 H library "6-311++G**"
end

task esp """
        self.assertEqual(str(task), ans)
예제 #17
0
 def test_to_from_dict(self):
     d = self.task.to_dict
     t = NwTask.from_dict(d)
     self.assertIsInstance(t, NwTask)