예제 #1
1
  // ## operation writeChemkinSpecies(ReactionModel,SystemSnapshot)
  public static String writeChemkinSpecies(
      ReactionModel p_reactionModel, SystemSnapshot p_beginStatus) {
    // #[ operation writeChemkinSpecies(ReactionModel,SystemSnapshot)

    StringBuilder result = new StringBuilder();
    result.append("SPECIES\n");

    CoreEdgeReactionModel cerm = (CoreEdgeReactionModel) p_reactionModel;

    // write inert gas
    for (Iterator iter = p_beginStatus.getInertGas(); iter.hasNext(); ) {
      String name = (String) iter.next();
      result.append('\t' + name + '\n');
    }

    // write species
    for (Iterator iter = cerm.getSpecies(); iter.hasNext(); ) {
      Species spe = (Species) iter.next();
      result.append('\t' + spe.getChemkinName() + '\n');
    }

    result.append("END\n");

    return result.toString();

    // #]
  }
예제 #2
0
  // ## operation writeChemkinThermo(ReactionModel)
  public static String writeChemkinThermo(ReactionModel p_reactionModel) {
    // #[ operation writeChemkinThermo(ReactionModel)
    /*
     String thermoHeader = "! neon added by pey (20/6/04) - used thermo for Ar\n";
    thermoHeader += "Ne                120186Ne  1               G  0300.00   5000.00  1000.00      1\n";
    thermoHeader += " 0.02500000E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00    2\n";
    thermoHeader += "-0.07453750E+04 0.04366001E+02 0.02500000E+02 0.00000000E+00 0.00000000E+00    3\n";
    thermoHeader += " 0.00000000E+00 0.00000000E+00-0.07453750E+04 0.04366001E+02                   4\n";
    thermoHeader += "N2                121286N   2               G  0300.00   5000.00  1000.00      1\n";
    thermoHeader += " 0.02926640e+02 0.01487977e-01-0.05684761e-05 0.01009704e-08-0.06753351e-13    2\n";
    thermoHeader += "-0.09227977e+04 0.05980528e+02 0.03298677e+02 0.01408240e-01-0.03963222e-04    3\n";
    thermoHeader += " 0.05641515e-07-0.02444855e-10-0.01020900e+05 0.03950372e+02                   4\n";
    thermoHeader += "Ar                120186Ar  1               G  0300.00   5000.00  1000.00      1\n";
    thermoHeader += " 0.02500000e+02 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00    2\n";
    thermoHeader += "-0.07453750e+04 0.04366001e+02 0.02500000e+02 0.00000000e+00 0.00000000e+00    3\n";
    thermoHeader += " 0.00000000e+00 0.00000000e+00-0.07453750e+04 0.04366001e+02                   4\n";
         */
    // #]
    String thermoHeader =
        "! The first four sets of polynomial coefficients (Ar, N2, Ne, He) are from         \n";
    thermoHeader +=
        "! THIRD MILLENIUM IDEAL GAS AND CONDENSED PHASE THERMOCHEMICAL DATABASE FOR     \n";
    thermoHeader +=
        "! COMBUSTION WITH UPDATES FROM ACTIVE THERMOCHENICAL TABLES                     \n";
    thermoHeader +=
        "! Authors: Alexander Burcat and Branko Ruscic                                   \n";
    thermoHeader +=
        "!                                                                               \n";
    thermoHeader +=
        "! The rest of the species are estimated by RMG (http://rmg.mit.edu/)            \n";
    // thermoHeader += "! Ar HF298=0.  REF=C.E. Moore 'Atomic Energy Levels' NSRDS-NBS 35 (1971)
    // p.211  \n";
    // thermoHeader += "! NASA Glen (former Lewis) Research Center   (1988)
    //    \n";
    thermoHeader +=
        "Ar                L 6/88Ar  1               G   200.000  6000.000 1000.        1\n";
    thermoHeader +=
        " 0.25000000E+01 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00    2\n";
    thermoHeader +=
        "-0.74537500E+03 0.43796749E+01 0.25000000E+01 0.00000000E+00 0.00000000E+00    3\n";
    thermoHeader +=
        " 0.00000000E+00 0.00000000E+00-0.74537500E+03 0.43796749E+01                   4\n";
    // thermoHeader += "! N2  HF298= 0.0 KJ  REF=TSIV  Max Lst Sq Error Cp @ 6000 K 0.29%
    //    \n";
    thermoHeader +=
        "N2                G 8/02N   2               G   200.000  6000.000 1000.        1\n";
    thermoHeader +=
        " 2.95257637E+00 1.39690040E-03-4.92631603E-07 7.86010195E-11-4.60755204E-15    2\n";
    thermoHeader +=
        "-9.23948688E+02 5.87188762E+00 3.53100528E+00-1.23660988E-04-5.02999433E-07    3\n";
    thermoHeader +=
        " 2.43530612E-09-1.40881235E-12-1.04697628E+03 2.96747038E+00                   4\n";
    // thermoHeader += "!Ne    HF298= 0.0 KJ REF=McBride, Heimel, Ehlers & Gordon
    //    \n";
    // thermoHeader += "!                'Thermodynamic Properties to 6000 K...' NASA SP-3001
    // (1963)   \n";
    thermoHeader +=
        "Ne                L10/90Ne  1               G    200.0   6000.00  1000.0       1\n";
    thermoHeader +=
        " 0.25000000E 01 0.00000000E 00 0.00000000E 00 0.00000000E 00 0.00000000E 00    2\n";
    thermoHeader +=
        "-0.74537500E 03 0.33553227E 01 0.25000000E 01 0.00000000E 00 0.00000000E 00    3\n";
    thermoHeader +=
        " 0.00000000E 00 0.00000000E 00-0.74537498E 03 0.33553227E 01                   4\n";
    // thermoHeader += "7440-59-7
    //    \n";
    // thermoHeader += "He  HF298=0.0 KJ  REF=McBride, Heimel, Ehlers & Gordon "Thermodynamic
    // Properties\n";
    // thermoHeader += "to 6000K ..." NASA SP-3001 1963.
    //    \n";
    thermoHeader +=
        "He REF ELEMENT    L10/90HE 1.   0.   0.   0.G   200.000  6000.000  B   4.00260 1\n";
    thermoHeader +=
        " 2.50000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00    2\n";
    thermoHeader +=
        "-7.45375000E+02 9.28723974E-01 2.50000000E+00 0.00000000E+00 0.00000000E+00    3\n";
    thermoHeader +=
        " 0.00000000E+00 0.00000000E+00-7.45375000E+02 9.28723974E-01 0.00000000E+00    4\n\n";

    StringBuilder result = new StringBuilder();
    result.append("THERMO ALL\n");
    result.append("   300.000  1000.000  5000.000\n");
    result.append(thermoHeader);

    CoreEdgeReactionModel cerm = (CoreEdgeReactionModel) p_reactionModel;
    for (Iterator iter = cerm.getSpecies(); iter.hasNext(); ) {
      Species spe = (Species) iter.next();

      if (spe.getNasaThermoSource() != null) {
        result.append("!" + spe.getNasaThermoSource() + "\n");
      }
      result.append(spe.getNasaThermoData() + "\n");
    }
    result.append("END\n");

    // Added by Amrit for Richard's liquid phase chemkin code 05/21/2009
    result.append("\n");

    return result.toString();

    // #]
  }