public static String writeGridOfRateCoeffs(ReactionModel p_reactionModel) { StringBuilder result = new StringBuilder(); LinkedList pDepList = new LinkedList(); CoreEdgeReactionModel cerm = (CoreEdgeReactionModel) p_reactionModel; for (Iterator iter = PDepNetwork.getNetworks().iterator(); iter.hasNext(); ) { PDepNetwork pdn = (PDepNetwork) iter.next(); for (ListIterator pdniter = pdn.getNetReactions().listIterator(); pdniter.hasNext(); ) { PDepReaction rxn = (PDepReaction) pdniter.next(); if (cerm.categorizeReaction(rxn) != 1) continue; // check if this reaction is not already in the list and also check if this reaction has a // reverse reaction // which is already present in the list. if (rxn.getReverseReaction() == null) rxn.generateReverseReaction(); if (!rxn.reactantEqualsProduct() && !pDepList.contains(rxn) && !pDepList.contains(rxn.getReverseReaction())) { pDepList.add(rxn); } } } Temperature[] tempsUsedInFame = PDepRateConstant.getTemperatures(); int numTemps = tempsUsedInFame.length; Pressure[] pressUsedInFame = PDepRateConstant.getPressures(); int numPress = pressUsedInFame.length; for (int i = 0; i < numTemps; i++) { for (int j = 0; j < numPress; j++) { result.append( "T=" + tempsUsedInFame[i].getK() + "K,P=" + pressUsedInFame[j].getBar() + "bar\t"); } result.append("\n"); } result.append("\n"); for (Iterator iter = pDepList.iterator(); iter.hasNext(); ) { PDepReaction r = (PDepReaction) iter.next(); result.append(r.toString() + "\n"); double[][] rates = new double[numTemps][numPress]; rates = r.getPDepRate().getRateConstants(); for (int i = 0; i < numTemps; i++) { for (int j = 0; j < numPress; j++) { result.append(rates[i][j] + "\t"); } result.append("\n"); } result.append("\n"); } return result.toString(); }