Exemplo n.º 1
0
 def setUpClass(cls):
     """
     A method that is run before all unit tests in this class.
     """
     cls.maxDiff = None
     cls.ess_settings = {'gaussian': ['server1'], 'molpro': ['server2', 'server1'], 'qchem': ['server1']}
     cls.project_directory = os.path.join(arc_path, 'Projects', 'arc_project_for_testing_delete_after_usage3')
     cls.spc1 = ARCSpecies(label=str('methylamine'), smiles=str('CN'))
     cls.spc2 = ARCSpecies(label=str('C2H6'), smiles=str('CC'))
     cls.job1 = Job(project='project_test', ess_settings=cls.ess_settings, species_name='methylamine',
                    xyz='C 0.0 0.0 0.0', job_type='conformer', conformer=0, level_of_theory='b97-d3/6-311+g(d,p)',
                    multiplicity=1, project_directory=cls.project_directory, job_num=101)
     cls.job2 = Job(project='project_test', ess_settings=cls.ess_settings, species_name='methylamine',
                    xyz='C 0.0 0.0 0.0', job_type='conformer', conformer=1, level_of_theory='b97-d3/6-311+g(d,p)',
                    multiplicity=1, project_directory=cls.project_directory, job_num=102)
     cls.job3 = Job(project='project_test', ess_settings=cls.ess_settings, species_name='C2H6', xyz='C 0.0 0.0 0.0',
                    job_type='freq', level_of_theory='wb97x-d3/6-311+g(d,p)', multiplicity=1,
                    project_directory=cls.project_directory, software='qchem', job_num=103)
     cls.rmgdb = rmgdb.make_rmg_database_object()
     cls.job_types1 = {'conformers': True,
                       'opt': True,
                       'fine_grid': False,
                       'freq': True,
                       'sp': True,
                       '1d_rotors': False,
                       'orbitals': False,
                       'lennard_jones': False,
                       }
     cls.sched1 = Scheduler(project='project_test', ess_settings=cls.ess_settings, species_list=[cls.spc1, cls.spc2],
                            composite_method='', conformer_level=default_levels_of_theory['conformer'],
                            opt_level=default_levels_of_theory['opt'], freq_level=default_levels_of_theory['freq'],
                            sp_level=default_levels_of_theory['sp'], scan_level=default_levels_of_theory['scan'],
                            ts_guess_level=default_levels_of_theory['ts_guesses'], rmgdatabase=cls.rmgdb,
                            project_directory=cls.project_directory, testing=True, job_types=cls.job_types1,
                            orbitals_level=default_levels_of_theory['orbitals'], adaptive_levels=None)
Exemplo n.º 2
0
 def setUpClass(cls):
     """
     A method that is run before all unit tests in this class.
     """
     cls.maxDiff = None
     cls.rmgdb = rmgdb.make_rmg_database_object()
     rmgdb.load_families_only(cls.rmgdb)
     cls.rxn1 = ARCReaction(reactants=['CH4', 'OH'],
                            products=['CH3', 'H2O'])
     cls.rxn1.rmg_reaction = Reaction(reactants=[
         Species().fromSMILES(str('C')),
         Species().fromSMILES(str('[OH]'))
     ],
                                      products=[
                                          Species().fromSMILES(
                                              str('[CH3]')),
                                          Species().fromSMILES(str('O'))
                                      ])
     cls.rxn2 = ARCReaction(reactants=['C2H5', 'OH'],
                            products=['C2H4', 'H2O'])
     cls.rxn2.rmg_reaction = Reaction(reactants=[
         Species().fromSMILES(str('C[CH2]')),
         Species().fromSMILES(str('[OH]'))
     ],
                                      products=[
                                          Species().fromSMILES(str('C=C')),
                                          Species().fromSMILES(str('O'))
                                      ])
     cls.rxn3 = ARCReaction(reactants=['CH3CH2NH'], products=['CH2CH2NH2'])
     cls.rxn3.rmg_reaction = Reaction(
         reactants=[Species().fromSMILES(str('CC[NH]'))],
         products=[Species().fromSMILES(str('[CH2]CN'))])
Exemplo n.º 3
0
 def setUpClass(cls):
     """
     A method that is run before all unit tests in this class.
     """
     cls.rmgdb = rmgdb.make_rmg_database_object()
     rmgdb.load_rmg_database(rmgdb=cls.rmgdb)
Exemplo n.º 4
0
    def setUpClass(cls):
        """
        A method that is run before all unit tests in this class.
        """
        cls.maxDiff = None
        cls.ess_settings = {
            'gaussian': ['server1'],
            'molpro': ['server2', 'server1'],
            'qchem': ['server1']
        }
        cls.project_directory = os.path.join(
            arc_path, 'Projects',
            'arc_project_for_testing_delete_after_usage3')
        cls.spc1 = ARCSpecies(label='methylamine', smiles='CN')
        cls.spc2 = ARCSpecies(label='C2H6', smiles='CC')
        xyz1 = """C       1.11424367   -0.01231165   -0.11493630
C      -0.07257945   -0.17830906   -0.16010022
O      -1.38500471   -0.36381519   -0.20928090
H       2.16904830    0.12689206   -0.07152274
H      -1.82570782    0.42754384   -0.56130718"""
        cls.spc3 = ARCSpecies(label='CtripCO', smiles='C#CO', xyz=xyz1)
        xyz2 = {
            'symbols': ('C', ),
            'isotopes': (12, ),
            'coords': ((0.0, 0.0, 0.0), )
        }
        cls.job1 = Job(project='project_test',
                       ess_settings=cls.ess_settings,
                       species_name='methylamine',
                       xyz=xyz2,
                       job_type='conformer',
                       conformer=0,
                       level={
                           'method': 'b97-d3',
                           'basis': '6-311+g(d,p)'
                       },
                       multiplicity=1,
                       project_directory=cls.project_directory,
                       job_num=101)
        cls.job2 = Job(project='project_test',
                       ess_settings=cls.ess_settings,
                       species_name='methylamine',
                       xyz=xyz2,
                       job_type='conformer',
                       conformer=1,
                       level={
                           'method': 'b97-d3',
                           'basis': '6-311+g(d,p)'
                       },
                       multiplicity=1,
                       project_directory=cls.project_directory,
                       job_num=102)
        cls.job3 = Job(project='project_test',
                       ess_settings=cls.ess_settings,
                       species_name='C2H6',
                       xyz=xyz2,
                       job_type='freq',
                       level={
                           'method': 'wb97x-d3',
                           'basis': '6-311+g(d,p)'
                       },
                       multiplicity=1,
                       project_directory=cls.project_directory,
                       software='qchem',
                       job_num=103)
        cls.rmg_database = rmgdb.make_rmg_database_object()
        cls.job_types1 = {
            'conformers': True,
            'opt': True,
            'fine_grid': False,
            'freq': True,
            'sp': True,
            'rotors': False,
            'orbitals': False,
            'lennard_jones': False,
        }
        cls.sched1 = Scheduler(
            project='project_test',
            ess_settings=cls.ess_settings,
            species_list=[cls.spc1, cls.spc2, cls.spc3],
            composite_method=None,
            conformer_level=Level(repr=default_levels_of_theory['conformer']),
            opt_level=Level(repr=default_levels_of_theory['opt']),
            freq_level=Level(repr=default_levels_of_theory['freq']),
            sp_level=Level(repr=default_levels_of_theory['sp']),
            scan_level=Level(repr=default_levels_of_theory['scan']),
            ts_guess_level=Level(repr=default_levels_of_theory['ts_guesses']),
            rmg_database=cls.rmg_database,
            project_directory=cls.project_directory,
            testing=True,
            job_types=cls.job_types1,
            orbitals_level=default_levels_of_theory['orbitals'],
            adaptive_levels=None,
        )
Exemplo n.º 5
0
    def test_append_conformers(self):
        """Test that ARC correctly parses its own conformer files"""
        ess_settings = {'gaussian': 'server1', 'molpro': 'server2', 'qchem': 'server1'}
        project_directory = os.path.join(arc_path, 'Projects', 'arc_project_for_testing_delete_after_usage4')
        spc1 = ARCSpecies(label=str('vinoxy'), smiles=str('C=C[O]'))
        rmgdb = make_rmg_database_object()
        job_types1 = {'conformers': True,
                      'opt': True,
                      'fine_grid': False,
                      'freq': True,
                      'sp': True,
                      '1d_rotors': False,
                      'orbitals': False,
                      'lennard_jones': False,
                      }
        sched1 = Scheduler(project='project_test', ess_settings=ess_settings, species_list=[spc1],
                           composite_method='', conformer_level=default_levels_of_theory['conformer'],
                           opt_level=default_levels_of_theory['opt'], freq_level=default_levels_of_theory['freq'],
                           sp_level=default_levels_of_theory['sp'], scan_level=default_levels_of_theory['scan'],
                           ts_guess_level=default_levels_of_theory['ts_guesses'], rmgdatabase=rmgdb,
                           project_directory=project_directory, testing=True, job_types=job_types1,
                           orbitals_level=default_levels_of_theory['orbitals'], adaptive_levels=None)
        xyzs = ["""O       1.09068700    0.26516800   -0.16706300
C       2.92204100   -1.18335700   -0.38884900
C       2.27655500   -0.00373900    0.08543500
H       2.36544800   -1.88781000   -0.99914600
H       3.96112000   -1.38854500   -0.14958800
H       2.87813500    0.68828400    0.70399400
""",
                """O       1.19396100   -0.06003700    0.03890100
C       3.18797000    0.77061300   -0.87352700
C       2.43591200   -0.04439300    0.02171600
H       4.27370000    0.76090200   -0.86286100
H       2.66641700    1.41155700   -1.57757300
H       3.00398000   -0.68336800    0.72359800
""",
                """O       1.35241100   -1.02956000   -0.24056200
C      -0.72084300    0.01308200    0.09573000
C       0.69217700    0.01185100   -0.09044300
H      -1.25803800   -0.93018100    0.10926800
H      -1.26861200    0.94177100    0.22420100
H       1.20290400    0.99303700   -0.09819400
""",
                """O      -1.40102900   -0.98575100   -0.11588500
C       0.72457000   -0.01076700    0.06448800
C      -0.69494600    0.03450000   -0.06206300
H       1.22539000   -0.97248000    0.11741200
H       1.31277400    0.90087100    0.10878400
H      -1.16675800    1.03362600   -0.11273700
"""]
        energies = [0, 5, 5, 5]  # J/mol

        save_conformers_file(project_directory=project_directory, label='vinoxy', xyzs=xyzs, level_of_theory='level1',
                             multiplicity=2, charge=0)
        self.assertTrue(os.path.isfile(os.path.join(project_directory, 'output', 'Species', 'vinoxy', 'geometry',
                                                    'conformers', 'conformers_before_optimization.txt')))

        save_conformers_file(project_directory=project_directory, label='vinoxy', xyzs=xyzs, level_of_theory='level1',
                             multiplicity=2, charge=0, energies=energies)
        self.assertTrue(os.path.isfile(os.path.join(project_directory, 'output', 'Species', 'vinoxy', 'geometry',
                                                    'conformers', 'conformers_after_optimization.txt')))

        spc2 = ARCSpecies(label=str('vinoxy'), smiles=str('C=C[O]'), xyz=os.path.join(
            project_directory, 'output', 'Species', 'vinoxy', 'geometry', 'conformers',
            'conformers_before_optimization.txt'))

        spc3 = ARCSpecies(label=str('vinoxy'), smiles=str('C=C[O]'), xyz=os.path.join(
            project_directory, 'output', 'Species', 'vinoxy', 'geometry', 'conformers',
            'conformers_after_optimization.txt'))

        self.assertEqual(spc2.conformers[2], xyzs[2])
        self.assertEqual(spc3.conformers[2], xyzs[2])
        self.assertEqual(spc3.conformer_energies[2], energies[2])