Ejemplo n.º 1
0
 private static Kinetics[] getReactionKinetics(Reaction r) {
   Kinetics[] allKinetics;
   if (r.isForward()) {
     allKinetics = r.getKinetics();
   } else if (r.isBackward()) {
     allKinetics = r.getFittedReverseKinetics();
   } else {
     allKinetics = r.getKinetics();
   }
   return allKinetics;
 }
Ejemplo n.º 2
0
 public static String writeOutputString(Reaction r, TemplateReactionGenerator rtLibrary) {
   String listOfReactions = "";
   Temperature stdtemp = new Temperature(298, "K");
   double Hrxn = r.calculateHrxn(stdtemp);
   // If r Reaction is from Reaction Library add it to list of reaction append its kinetics and
   // return
   String source = r.getKineticsSource(0);
   if (source == null) {
     // If source is null I am assuming that its not a Reaction from Reaction Library or Seed
     // Mechanism
     source = "TemplateReaction:";
   }
   StringTokenizer st = new StringTokenizer(source, ":");
   String reaction_type = st.nextToken();
   // Reactions from Reaction Libraries:
   if (reaction_type.equals("ReactionLibrary")) {
     // We will get the forward reaction
     if (r.isBackward()) {
       r = r.getReverseReaction();
       Hrxn = -Hrxn; // Reversing the heat of reaction
     }
     Kinetics[] allKinetics = getReactionKinetics(r);
     for (int numKinetics = 0; numKinetics < allKinetics.length; ++numKinetics) {
       listOfReactions +=
           r.toString() + "\t" + getFormattedKinetics(allKinetics[numKinetics], Hrxn);
       if (allKinetics.length != 1) listOfReactions += "\tDUP\n";
     }
     return listOfReactions;
   }
   // Reactions NOT from Reaction Libraries are from Templates:
   if (r.isForward()) {
     Kinetics[] allKinetics = r.getKinetics();
     for (int numKinetics = 0; numKinetics < allKinetics.length; ++numKinetics) {
       listOfReactions +=
           r.toString() + "\t" + getFormattedKinetics(allKinetics[numKinetics], Hrxn);
       if (allKinetics.length != 1) listOfReactions += "\tDUP\n";
     }
   } else if (r.isBackward()) {
     LinkedHashSet reverseReactions = new LinkedHashSet();
     Iterator iter2 = r.getStructure().getProducts();
     Species species1 = (Species) iter2.next();
     Species species2 = species1;
     while (iter2.hasNext()) species2 = (Species) iter2.next();
     String rxnFamilyName = "";
     if (r instanceof TemplateReaction) {
       rxnFamilyName = ((TemplateReaction) r.getReverseReaction()).getReactionTemplate().getName();
     }
     LinkedHashSet speciesHashSet = new LinkedHashSet();
     speciesHashSet.add(species1);
     reverseReactions = rtLibrary.react(speciesHashSet, species2, rxnFamilyName);
     for (Iterator iter3 = reverseReactions.iterator(); iter3.hasNext(); ) {
       Reaction currentRxn = (Reaction) iter3.next();
       if (currentRxn.getStructure() == r.getReverseReaction().getStructure()) {
         Kinetics[] allKinetics = currentRxn.getKinetics();
         for (int numKinetics = 0; numKinetics < allKinetics.length; ++numKinetics) {
           listOfReactions +=
               currentRxn.toString()
                   + "\t"
                   + getFormattedKinetics(allKinetics[numKinetics], -Hrxn);
           if (allKinetics.length != 1) listOfReactions += "\tDUP\n";
         }
       }
     }
   } else {
     Kinetics[] allKinetics = r.getKinetics();
     for (int numKinetics = 0; numKinetics < allKinetics.length; ++numKinetics) {
       listOfReactions +=
           r.toString() + "\t" + getFormattedKinetics(allKinetics[numKinetics], Hrxn);
       if (allKinetics.length != 1) listOfReactions += "\tDUP\n";
     }
   }
   return listOfReactions;
 }