Пример #1
0
	def testIntraHmigration(self):
		"""An intra-H migration reaction"""
		self.loadDatabase(only_families=['intra_H_migration'])
		structure1 = Structure()
		structure1.fromSMILES("[CH](CCCc1ccccc1)CCCCCC")
		species1 = makeNewSpecies(structure1)

		structure2 = Structure()
		structure2.fromSMILES("C(CCCC[CH]c1ccccc1)CCCC")
		species2 = makeNewSpecies(structure2)
			
		# wipe the reaction list
		reaction.reactionList=[]

		rxns = reaction.kineticsDatabase.getReactions([species1])
		#for rxn in rxns:
		#	print 'Reaction family:',rxn.family
		#	print 'Reaction:',rxn
		#	print 'Kinetics:',rxn.kinetics
		#	print 'bestKinetics:',rxn.bestKinetics
		#	print
		
		all_products = []
		for rxn in rxns:
			self.assertEqual(rxn.family.label,'Intra H migration',"Was trying to test 'Intra H migration' but made a reaction from family %s"%rxn.family)
			self.assertEqual(len(rxn.reactants),1,"Reaction %s wasn't unimolecular"%rxn)
			all_products.extend(rxn.products)
		self.assertTrue(species2 in all_products, "None of the reactions made %s"%(species2))
Пример #2
0
	def testEthaneExtrusionFromEther(self):
		"""A reaction that was giving trouble in a diesel simulation"""
		self.loadDatabase(only_families=['1,3_Insertion_ROR'])
		structure1 = Structure()
		structure1.fromSMILES("c1c([CH]C(C=CCCCCCC)OOCc2c3ccccc3ccc2)cccc1")
		species1 = makeNewSpecies(structure1)
		
		structure2 = Structure()
		structure2.fromSMILES("c1ccc(c2ccccc12)COO")
		species2 = makeNewSpecies(structure2)
		
		structure3 = Structure()
		structure3.fromSMILES("c1cc(C=C[C]=CCCCCCC)ccc1")
		species3 = makeNewSpecies(structure3)
		
		# wipe the reaction list
		reaction.reactionList=[]
		#print "FORWARD"
		rxns = reaction.kineticsDatabase.getReactions([species2,species3])
		#for rxn in rxns:
		#	print 'Reaction family:',rxn.family
		#	print 'Reaction:',rxn
		#	print 'Kinetics:',rxn.kinetics
		#	print 'bestKinetics:',rxn.bestKinetics
		#	print
		self.assertEqual(len(rxns),18, "Was expecting to make 18 reactions for %s + %s"%(species2,species3))
			
		# wipe the reaction list
		reaction.reactionList=[]
		#print "REVERSE"
		rxns = reaction.kineticsDatabase.getReactions([species1])
		#for rxn in rxns:
		#	print 'Reaction family:',rxn.family
		#	print 'Reaction:',rxn
		#	print 'Kinetics:',rxn.kinetics
		#	print 'bestKinetics:',rxn.bestKinetics
		#	print
		self.assertEqual(len(rxns),1, "Was expecting to make 1 reaction for %s"%(species1))
		rxn = rxns[0]
		self.assertEqual(len(rxn.reactants),2,"Reaction wasn't bimolecular")
		self.assertTrue(species2 in rxn.reactants, "Didn't make %s"%species2)
		self.assertTrue(species3 in rxn.reactants, "Didn't make %s"%species3)