def __loadOldReactions(self, path, species): """ Load an old-style reaction library from `path`. This algorithm can handle both the pressure-independent and pressure-dependent reaction files. If the pressure-dependent file is read, the extra pressure- dependent kinetics information is ignored unless the kinetics database is a seed mechanism. """ from rmgpy.chemkin import readReactionsBlock f = open(path, 'r') reactionList = readReactionsBlock(f, speciesDict=species) f.close() return reactionList
def testPDepJob(self): """ A general test for a PDep job in Arkane """ self.tst1 = Arkane() self.tst1.inputFile = self.input_file self.tst1.outputDirectory = self.directory self.tst1.verbose = logging.WARN self.tst1.plot = False self.tst1.jobList = [] self.tst1.jobList = self.tst1.loadInputFile(self.tst1.inputFile) self.tst1.execute() job = self.tst1.jobList[0] self.assertEquals(job.Tmin.value_si, 300.0) self.assertEquals(job.minimumGrainCount, 100) self.assertFalse(job.rmgmode) self.assertTrue(job.activeJRotor) self.assertEquals(job.network.pathReactions[0].label,'acetylperoxy <=> hydroperoxylvinoxy') self.assertAlmostEquals(job.network.pathReactions[0].transitionState.tunneling.E0_TS.value_si,-24267.2) self.assertAlmostEquals(job.network.pathReactions[0].transitionState.tunneling.frequency.value_si,-1679.04) self.assertEquals(len(job.network.netReactions[0].reactants[0].conformer.modes), 6) # self.assertEquals(self.tst1.frequencyScaleFactor, 0.947) # test that a network pdf was generated files = [f for f in os.listdir(self.directory) if os.path.isfile(os.path.join(self.directory, f))] self.assertTrue(any(f == 'network.pdf' for f in files)) # Test the generated network reaction dictionary = {'hydroperoxylvinoxy': Species().fromSMILES('[CH2]C(=O)OO'), 'acetylperoxy': Species().fromSMILES('CC(=O)O[O]')} with open(os.path.join(self.directory, 'chem.inp'), 'r') as chem: reaction_list = readReactionsBlock(chem, dictionary) rxn = reaction_list[0] self.assertIsInstance(rxn.kinetics, Chebyshev) self.assertAlmostEquals(rxn.kinetics.getRateCoefficient(1000.0, 1.0), 88.879056605) files = [f for f in os.listdir(os.path.join(self.directory, 'sensitivity', '')) if os.path.isfile(os.path.join(self.directory, 'sensitivity', f))] self.assertTrue(any('hydroperoxylvinoxy.pdf' in f for f in files)) with open(os.path.join(self.directory, 'sensitivity', 'network1.txt'), 'r') as f: lines = f.readlines() for line in lines: if '1000.0' in line: break sa_coeff = line.split()[-2] self.assertEquals(float(sa_coeff), -8.24e-6)