GithubHelp home page GithubHelp logo

reactionmechanismgenerator / rmg-java Goto Github PK

View Code? Open in Web Editor NEW
29.0 18.0 36.0 23.78 MB

The Java version of RMG: Reaction Mechanism Generator

Home Page: http://rmg.sourceforge.net/

License: MIT License

Makefile 0.43% Shell 0.02% Python 5.98% MATLAB 0.13% Fortran 44.47% Java 48.58% Groff 0.01% HTML 0.15% CSS 0.15% Batchfile 0.10%

rmg-java's Introduction

RMG-Java - Reaction Mechanism Generator

Notice

This is the Java version of RMG. It is no longer actively developed. We recommend instead using the latest version of RMG written in Python, which can be found here: http://reactionmechanismgenerator.github.io

Description

https://github.com/GreenGroup/RMG-Java/raw/master/web/source/_static/rmg_logo.png

RMG (Java version) is an automatic chemical reaction mechanism generator that constructs kinetic models composed of elementary chemical reaction steps using a general understanding of how molecules react.

The easiest way to get started on Windows is to download the complete installer package from over at http://rmg.sourceforge.net/, and read the documentation that's also hosted there. If you want to use the cutting-edge development version that is hosted here at GitHub, then you'll have to compile it yourself.

Compiling from source

Windows

You will need the Java Development Kit (JDK), the BLAS and LAPACK libraries, and Apache ant. You will also need a Fortran compiler, such as g95 or gfortran from MinGW.

Once you've cloned the repository, you must set the RMG environment variable to the location of your checked out copy. We recommend a path like C:\RMG, with no spaces and outside of any folders Windows places administrative restrictions on (e.g. C:\Program Files). You may also need to set environment variables for Java and ant. Once this is done, simply run the make.bat file in the top-level directory to build the Fortran codes, then ant jar from a command prompt to build the Java code.

More information is available in the documentation.

Linux

You will need the Java Development Kit (JDK), the BLAS and LAPACK libraries, GNU make, Apache ant, and a Fortran compiler (e.g. gfortran). Many popular Linux distributions either come with these already installed or provide them in their regular software package repositories.

The quick-start instructions in full:

$ git clone git://github.com/GreenGroup/RMG-Java.git
$ cd RMG-Java
$ make
$ make test
$ echo "export RMG=`pwd`" >> ~/.bashrc

For more, refer to the documentation.

Mac

You will need the Java compiler, Apache ant, and GNU Make, but these are all provided by MacOS. If you're missing these developer tools you can download them from Apple. You will also need a Fortran compiler. We recommend gfortran, but g95 can be used if you add the option F90=g95 to the make command. On MacOS X 10.6 (Snow Leopard) the gfortran compiler flags can be optimized with the make option MACOS=true. One nice way to get gfortran is to install homebrew then then type brew install gfortran.

The quick-start instructions in full:

$ git clone git://github.com/GreenGroup/RMG-Java.git
$ cd RMG-Java
$ make MACOS=true
$ make test
$ echo "export RMG=`pwd`" >> ~/.bashrc

For more, refer to the documentation.

rmg-java's People

Contributors

agvandeputte avatar ajalan avatar calebclass avatar cfgold avatar connie avatar enochd avatar faribas avatar gmagoon avatar jdmo avatar jwallen avatar keceli avatar mrharper avatar mschnoor avatar nickvandewiele avatar nyee avatar ramanan avatar rmgdev avatar rwest avatar sean-v8 avatar shamelmerchant avatar stijnvranckx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rmg-java's Issues

O2 is ambiguous

When building an oxidation model, should I use

(2) O2 5 (mol/cm3)
1 O 0 {2,D}
2 O 0 {1,D}

or

(2) O2 5 (mol/cm3)
1 O 1 {2,S}
2 O 1 {1,S}

and how do they behave differently?

I think there are probably a whole host of issues here...

  • matching reaction templates (H_abstraction vs. [reverse of] Disproportionation_O2d)
  • matching primary reaction libraries
  • matching primary thermo
  • seed mechanism definitions

At very least we should add stuff to the manual to guide the user through these issues.

Kinetics may not be taken from PrimaryReactionLibrary (aka PrimaryKineticsLibrary) for reactants/products with resonant structures

Background:
There are two ways of representing the ketenyl radical HCCO. The two resonance forms are:

ResonanceFormA
1 C 1 {2,D}
2 C 0 {1,D} {3,D}
3 O 0 {2,D}

and

ResonanceFormB
1 C 0 {2,T}
2 C 0 {1,T} {3,S}
3 O 1 {2,S}

Problem:
I made a PrimaryReactionLibrary with the following reaction:
H + HCCO = CH2CO 1.51E14 0.0 0.0 0.0 0.0 0.0
The reaction should be generated by RMG's templates (in particular, R-recombination or its reverse, bond dissociation.) However, these kinetics weren't being used by RMG, which was instead using its database estimates. It appears that this is related to the multiple resonance forms for HCCO. In particular, it seems that the function isSpeciesListEquivalentToChemGraphListAsGraphs() is not correctly recognizing the two resonance forms as being equivalent (see calls at http://github.com/GreenGroup/RMG-Java/blob/165e221bcc1e07195d2ca12a7145e0a25a188c2c/source/RMG/jing/rxn/ReactionTemplate.java#L621 and http://github.com/GreenGroup/RMG-Java/blob/165e221bcc1e07195d2ca12a7145e0a25a188c2c/source/RMG/jing/rxn/ReactionTemplate.java#L624 ).

I'm not immediately sure what the best way to fix this would be...maybe some sort of additional iteration over resonance isomer chemgraphs in the method isSpeciesListEquivalentToChemGraphListAsGraphs() ?

Thanks to Shamel for identifying the underlying issue here.

Workaround:
My temporary workaround for this issue was to place ResonanceFormB in the ForbiddenStructures.txt. (I also needed to change the Dictionary.txt definition for s00003017 (HCCO) in the GRI-Mech3.0 PrimaryThermoLibrary from ResonanceFormB to ResonanceFormA in order to get the thermo correctly read from the PrimaryThermoLibrary.)

Another issue I came across in looking at this (maybe a separate bug?):
Debug mode suggests that although both forward and reverse reactions (H + HCCO -> CH2CO and CH2CO -> H + HCCO) are generated in the process of reading in the PrimaryReactionLibrary, the two reactions are given the same (forward) kinetics, at least as of this point in the code: http://github.com/GreenGroup/RMG-Java/blob/165e221bcc1e07195d2ca12a7145e0a25a188c2c/source/RMG/jing/rxnSys/ReactionModelGenerator.java#L4352 . Maybe this is corrected later, however?

RMG aborts when InChI generation fails.

Seyed alerted MRH of the following:

When the construction of an InChI would fail (for any reason), RMG would print the message below to the user and terminate the simulation. The problem mainly exists for Linux, but can also occur on Windows.

  1. If the InChI generation does fail, RMG should just state so and continue with the simulation (especially since the InChIs are only important in the RMG post-processing).

  2. In general, generating InChIs on Linux (through RMG) does not happen. It would be nice if Windows, Linux, Mac users could all enjoy the InChI.

MRH will work on point 1 immediately.
Point 2 has been filed as Issue #13

Error reading species.txt file: java.io.FileNotFoundException: InChI/species.txt (No such file or directory)
Exception in thread "main" java.lang.NullPointerException
    at java.io.Reader.<init>(Reader.java:61)
    at java.io.BufferedReader.<init>(BufferedReader.java:76)
    at java.io.BufferedReader.<init>(BufferedReader.java:91)
    at jing.chem.Species.generateInChI(Species.java:1235)
    at jing.chem.ChemGraph.generateInChI(ChemGraph.java:1153)
    at jing.chem.ChemGraph.getInChI(ChemGraph.java:1413)
    at jing.chem.Species.<init>(Species.java:126)
    at jing.chem.Species.make(Species.java:843)
    at jing.rxn.ReactionTemplate.reactOneReactant(ReactionTemplate.java:919)
    at jing.rxn.ReactionTemplate.reactOneReactant(ReactionTemplate.java:842)
    at jing.rxn.TemplateReactionGenerator.react(TemplateReactionGenerator.java:337)
    at jing.rxnSys.ReactionModelGenerator.initializeCoreEdgeModel(ReactionModelGenerator.java:3804)
    at jing.rxnSys.ReactionModelGenerator.initializeCoreEdgeReactionModel(ReactionModelGenerator.java:3983)
    at jing.rxnSys.ReactionModelGenerator.modelGeneration(ReactionModelGenerator.java:1421)
    at RMG.main(RMG.java:58)

Batch files for Windows users

A sequence of .bat files or similar for launching the GUI, RMG, PopulateReactions, etc. would be nice for Windows users to double-click to save typing all that:
java --classpath "%rmg%"/bin/RMG.jar etc. etc.
junk. I guess some executable shell scripts for linux users would be handy too.

Save intermediate chemkin files

It would be nice to have chemkin files saved at each enlargement step. A common (and wise) thing to do with RMG is keep expanding until adding another species to the core doesn't effect the system behaviour (eg. ignition delay in a shock tube, or whatever) that you are most interested in. This requires chemkin files for each step. We make them all anyway, but currently over-write them. How about we shove each in a separate numbered subfolder?

Frequency Estimation should not be allowed if Pressure Dependence is off (RMG and GUI)

I think that if RMG encounters a condition file like this:
SpectroscopicDataEstimator: FrequencyGroups
PressureDependence: off
then it should stop and suggest that SpectroscopicDataEstimator is turned off.
The data generated by the frequency group estimation is not logged or saved anywhere,
so does nobody any good if it is not used in a pressure dependent calculation.

Perhaps the GUI could impose this also.

Rotor counting inaccurate for certain species with triple bonds

RMG will incorrectly count rotors for certain species with triple bonds, which will affect the accuracy of Cp,Inf used in Wilhoit polynomial fitting. Examples include:

  1. species where "internal" bond rotation corresponds to rotation of the entire molecule: e.g. CH3CCH (should be 0 rotors, but RMG will count the H3C-C rotor)
  2. species with "degenerate" internal rotations: e.g. dimethylacetylene: CH3CCCH3 (should be 1 rotor, but RMG will count both H3C-C rotors)

Relevant section of code is ChemGraph's calculateInternalRotor().

Tabs and Sections could have better names in GUI

For example, the "Thermochem Libraries" tab contains settings relating to reaction and transport libraries, and the "pruning options" section contains ODE solver time step settings. I expect there are alternative names that would make it easier for a new user to find their way without reading a manual.

Pruning: pruned a species but not its pdep non-included net reaction

Log reports

Edge species CH3O2J(90) has a maximum flux ratio (3.082282772344792E-19) that is lower than edge inclusion threshhold and the species will be pruned from the edge.

but the following reactions were still in the pdepnetworks.txt restart file.

CH3OO(23) --> CH3O2J(90)
CH3O2J(90) --> CH3OO(23)
CH3O2J(90) --> O2(2) + CH3(14)
O2(2) + CH3(14) --> CH3O2J(90)
CH3O2J(90) --> CH2O2JJ(89) + H(3)
CH2O2JJ(89) + H(3) --> CH3O2J(90)
CH3O2J(90) --> CH3O(18) + O(4)
CH3O(18) + O(4) --> CH3O2J(90)
CH3O2J(90) --> CH2O(20) + OH(5)
CH2O(20) + OH(5) --> CH3O2J(90)

as a result, the job could not be restarted, because we didn't have chemgraphs for all the species in the pdep networks.

GATPFit temperature range for NASA polynomials is misleading

Although GATPFit reads in minimum and maximum temperatures written by the Java code (see http://github.com/GreenGroup/RMG-Java/blob/793f47e4c73e4044b315fe36065eb989ed6c160c/source/GATPFit/lsfp.f#L137), it doesn't use these values anywhere except for printing out the output (in particular, the CHEMKIN thermo string).
With current values, this means that although the NASA polynomials are fit using 11 points between 1K and 298K and 90 points between 298K and 6000K (sampled from the Wilhoit fit; see http://github.com/GreenGroup/RMG-Java/blob/793f47e4c73e4044b315fe36065eb989ed6c160c/source/GATPFit/lsfp.f#L200) the polynomials are only specified to be valid from 300K to 5000K (see http://github.com/GreenGroup/RMG-Java/blob/793f47e4c73e4044b315fe36065eb989ed6c160c/source/RMG/jing/chem/GATPFit.java#L113).

InChI not working easily on Linux / Mac / etc.

From Seyed, in issue #12

  1. In general, generating InChIs on Linux (through RMG) does not happen. It would be nice if Windows, Linux, Mac users could all enjoy the InChI.

Could we make it easier to get InChI up and running on all OS's?
Perhaps distribute a version of it that is known to work? (are there license issues?)

Problem with RMG handling duplicate reactions in a Primary Reaction Library

Yushi Suzuki ran a RMG simulation with the Glarborg/C3 mechanism as a primary reaction library. Some of the reactions in the Glarborg/C3 mechanism are labeled as duplicates. Looking at the chem.inp file generated, Yushi could not find the duplicate reactions (one instance of the reaction would be present, with the kinetics from the first one found in the Glarborg/C3 mechanism).

Problem: MRH did some debugging and found that RMG was reading in the duplicate kinetics from the PRL. The problem was when RMG created this reaction and tried to find/estimate the kinetics. RMG created the reaction, recognized its structure was present in a PRL, and grabbed the correct "kinetics". However, there is no code present to also grab the "additionalKinetics".

Possible solutions:

  1. Make a grabAdditionalKinetics() method (though this doesn't address the underlying issue)

  2. Restructure a reaction's "kinetics" to be a vector of Kinetics (rather than "kinetics" and "additionalKinetics"). This would also help with a problem CFG noticed when using some of the Glarborg mechanisms, i.e. that some reactions would have three kinetic rates associated with them (RMG cannot handle more than 2 kinetic rates per reaction).

  3. Rather than assigning multiple kinetic rates for a given reaction, label each a distinct reaction (MRH had discussion w/JWA on this matter). Problems: How to realize they are distinct (not good enough to use just reactants/products, sometimes reaction family isn't specific enough, etc.)

MRH will (for now) explore option 2.

Pruning with pressure-dependence

There is an issue with pruning in pressure-dependent cases. (Others can explain more accurately and in better detail than I can.) Therefore, the combination of pruning and pressure-dependence options should not be relied upon for producing mechanisms.

Discontinuity in NASA polynomials

I computed Delta H_{rxn}(T) for CH3 + C2H5 -> CH4 + C2H4JJ. This Delta H has a discontinuity at ~1000 K, and it is ~ 0.5 kcal/mol (so not huge, but also not insignificant).

It is my understanding the the NASA coefficients are determined in GATPfit, which first uses a Wilhoit polynomial to compute Cp(T), then fits the NASA coefficients to these computed values. GATPfit includes a constraint that the polynomial be smooth at the intermediate temperature. However, if a large number of Cp(T) are reported, then the smoothness constraints are not necessarily met.

To improve the smoothness, the three constraints need to be weighted. If they already are being weighted, then the weighting factor needs to be increased.

GUI does not have "DecreaseGrainSize" option

A new field named "DecreaseGrainSize" has been created; however, the GUI cannot read/write this new field.

MRH will address this issue, along with the pruning options, before the 3.2 release.

Primary Reaction (as opposed to kinetics) Library

The thing currently called a "Primary Reaction Library" is in fact a primary kinetics library (PKL): once RMG creates a reaction using its templates, we check the PKL to get the rate (if it exists).

What would be useful is actually a Primary Reaction Library (PRL): In the 'generate reactions' step, before running through reaction families and applying templates to the given molecule(s) we would first check them against reactants/products of reactions in the PRL. This way the PRL could contain reactions that are not created by a template. Currently the only way to include such reactions is to add them to the seed mechanism, which forces them to be in the core even if they're irrelevant.

Stijn Vranckx's questions from RWTH-Aachen

Tasks

  1. reply to Stijn
  2. improve documentation so other people don't have to ask
  3. make sure all our random URLs like http://github.com/rwest/RMG-Java guide people rapidly to the best available documentation

Who wants to do what?

Dear RMG developers,

I’ve this week installed RMG in order to generate detailed kinetic mechanisms of combustion processes in the future. I’ve recently joined as a postdoc the group of prof. Fernandes at the RWTH Aachen University.
After the installation and reading the manual, I think RMG is running as it should on my PC.
A few questions/problems I didn’t find a solution for yet. I wonder if it is possible to contact you via email for some advice on solving problems related to RMG?

Information concerning my installation:
RMG installed using the windows installer on a Windows 7 PC
Further installed: JAVA, InChI, GNUmake
Making condition files using the GUI works, running RMG on them as well; InChI generations works as well.
When I run RMG on the condition file of the HDEP example, I get the same output. I thus expect that my installation is fully successful.

Problem1: Using DASPK as dynamic solver.
When I select DASPK as dynamic solver, RMG reports that \ODESolver\daspkAUTO.exe is missing. This is indeed the case. When I install DASPK separately, the file is not included either. Should I somehow recompile this file using GNUmake (I don’t know exactly how to do this), or is there another way to get it? I’ve read the info on http://github.com/rwest/RMG-Java but it is still not clear to me.

Problem 2:
For some condition files I’ve made, running RMG on them results in the information: “Warning: Adjusted Activation energy of reaction X from Y to 0 kcal/mol for FAME calculation”, for a lot of reactions. This doesn’t look too good to me, or is this not unexpected during a mechanism generation? I don’t see why the activation energy is changed to 0 if another value is available.

Finally I would like to thank you for making RMG freely available and I hope to be able to use it to start generating kinetic models (as you probably notice from this email, I’m not really a computer wizard, but I have the impression RMG is reasonably user friendly).

with friendly greetings,
Stijn Vranckx,
Shock Wave Laboratory,
RWTH-Aachen University
Schurzelterstr. 35
52074 Aachen Germany
email: removed in case of spam

pdep comments sometimes span 2 lines (and include a line break) in chemkin file

eg.
SPC(316)(+m)=SPC(317)(+m) 1.0E0 0.0 0.0 !High-P Limit Reverse: intra_H_migration estimate: (Average:)Others-R2H_S Y_rad_out XH_out
High-P Limit Reverse: intra_H_migration estimate: (Average:)Others-R2H_S Cd_rad_out_double Cs_H_out
TCHEB / 500.0 2000.0 / PCHEB / 0.9869232667160128 98.69232667160128 /
CHEB / 4 4 /
CHEB / -9.9968000e+00 4.6977000e-02 -1.9619000e-02 2.1992000e-03 /
CHEB / 1.1986000e+00 9.8702000e-01 3.4139000e-02 -4.6206000e-04 /
CHEB / -4.8090000e+00 -3.4852000e-01 4.9913000e-02 4.2522000e-03 /
CHEB / -1.2451000e+00 -3.9287000e-01 -2.0803000e-02 5.1842000e-03 /

this breaks the chemkin parser

Species pruning

A species pruning option similar to the one implemented in RMG-Py is desired to mitigate memory issues.

Annoying solvation database error warnings when running without solvation

These errors should eventually be fixed, but a priority is to stop them appearing at the top of log files when we are not even using solvation. They will cause concern among users who read log files, and then make them blind to warnings and errors which may actually matter.

How about we don't read the Abraham or UNIFAC databases if solvation is off?

Reading Abraham solvation groups
Error in database: Css(OssH)-Css(OssH) is not actually a child of CssH2
Error in database: Css(OssH)-Css(OssH) is not actually a child of CssH
Error in database: Css(OssH)-Css(OssH) is not actually a child of Css-noH
Error in database: Oss(CdsOd) is not actually a child of CdsH
Error in database: Cds(Od)Cds=CdsCds(Od) is not actually a child of CdsH
Error in database: Cds*(Od)Cds=CdsCds(Od) is not actually a child of CdsH
Error in database: Oss(CdsOd) is not actually a child of Cds-noH
Error in database: Cds(Od)OssH is not actually a child of Cds-noH
Error in database: Cds(Od)Cds=CdsCds(Od) is not actually a child of Cds-noH
Error in database: Cds*(Od)Cds=CdsCds(Od) is not actually a child of Cds-noH
Reading UNIFAC solvation groups
Error in database: CH2CO is not actually a child of CH2O
Error in database: CH2C*OO is not actually a child of Css-noH
Error in database: CH3C*O is not actually a child of CHO
Error in database: CH2C*O is not actually a child of CHO
Error in database: O=COC=O is not actually a child of CHO
Error in database: CH3COO* is not actually a child of COO*H
Error in database: CH2COO* is not actually a child of COO*H
Error in database: OssH is not actually a child of CH2O*
Error in database: CH3CO* is not actually a child of CHO*
Error in database: CH2CO* is not actually a child of CHO*
Error in database: ACH is not actually a child of Od
Error in database: ACCH3 is not actually a child of Od
Error in database: ACCH2 is not actually a child of Od
Error in database: ACCH is not actually a child of Od
Error in database: ACOH is not actually a child of Od

FAME returns no information

With this input file http://gist.github.com/335169
FAME just prints the debug information then quits.
When run standalone, it reports
"One ore more rate coefficients not properly estimated."
but this is not reported when run in RMG (but that's another issue!).
The RMG log ends like this:

PDepNetwork #161 (C3H4OJJ): 3 included and 3 nonincluded net reactions.
PDepNetwork #162 (C3H4OJJ): 1 included and 2 nonincluded net reactions.
PDepNetwork #163 (C3H3O2J): 1 included and 2 nonincluded net reactions.
java.lang.NullPointerException
    at jing.rxn.FastMasterEqn.runPDepCalculation(FastMasterEqn.java:274)
    at jing.rxnSys.ReactionSystem.initializePDepNetwork(ReactionSystem.java:544)
    at jing.rxnSys.ReactionModelGenerator.modelGeneration(ReactionModelGenerator.java:1463)
    at RMG.main(RMG.java:57)
null
Troublesome FAME input saved to ./fame/164_input.txt
Troublesome FAME result saved to ./fame/164_output.txt
Error running FAME.

(This is the problem Seyed was having yesterday - I'm just putting it on the issue tracker so it doesn't get lost as quickly.)

Exception in thread "main" jing.rxnSys.NegativeConcentrationException

From: Stijn Vranckx
a) Goal: generate a mechanism for n-butanol combustion with pressure dependent rate-coefficients activated, thus condition file with nC4H9OH, O2, N2 (equivalence ratio 1) and pressure dependence active (either Reservoir state or modified strong collision). This gives however an error:

Exception in thread "main" jing.rxnSys.NegativeConcentrationException: species C
4H9OJ has negative conc: -2.2047046154114028E-18
   at jing.rxnSys.JDAS.generateSpeciesStatus(Unknown Source)
   at jing.rxnSys.JDASSL.solve(Unknown Source)
   at jing.rxnSys.ReactionSystem.solveReactionSystem(Unknown Source)
   at jing.rxnSys.ReactionModelGenerator.modelGeneration(Unknown Source)
   at RMG.main(Unknown Source)

I don’t see what is the cause of this?

Adjusted Activation energy to 0 introduces change in rate coefficient k.

In order to run the eigenvalue method for pdep networks in Fame, we have to get rid of negative activation energies. At the moment we just set them to zero. This is reported in the log with:

Warning: Adjusted Activation energy of reaction X from Y to 0 kcal/mol for FAME calculation

When the Ea was not very negative, setting it to 0 and leaving the A is not too bad. When Ea is significantly negative, however, setting it to 0 introduces a significant change in k, which we could (and should) counteract with a change in A.

i.e. starting with
A0; n0; Ea0 (Ea0<0)
translate that to
A1 = A0 exp(-Ea0/RT')
n1 = n0
Ea1 = 0
where T' is some special reference T, perhaps fixed at 1000 K, or perhaps the T of the simulation?

We would then have a zero Ea, for the eigenvalue method in Fame, but the k would be similar to what we started with.

Error: Unable to touch file “Frankie/rho_input”.

From: Stijn Vranckx
Problem 3:

When running RMG on my Windows 7 machine, for all condition.txt files in which Pressure-dependent rate-coefficients are activated (for example also for 1,3HXD + CH4 + H2 mechanism), when I try either modified strong collision or reservoir state, using either PDepArrhenius, Chebyshev, or Rate; I always get the following error message, after about 10 minutes of mechanism generation:

Error: Unable to touch file “Frankie/rho_input”.

This error does not occur if pressure dependence is off.
RMG does generate all other files and folders in the folder where the condition file is located. So, it doesn’t look like it is a problem that my system doesn’t allow RMG to create the rho_input file.

If I modify the condition.txt file so pressure dependence is off, then the mechanism is generated correctly.

If I run a condition.txt file, with pressure dependence activated, on my Windows XP machine, it works fine.

Do you have any suggestion what might be the problem?

Fame hangs on first network

I'm running a standard hexadiene case, fame takes a verrrrrry long time (and then I kill it) on the first network it encounters.
Fame input files at http://drop.io/earlssh
This is on my mac, and can be reproduced by
make clean
make
make test

big revision in the thermo of RC(O)OOH and RC(O)OO

There is a big revision in the thermo of RC(O)OOH and RC(O)OO.
See attached papers. These species are very important in oxidation of aldehydes e.g. butanal, acrolein, benzaldehyde.
I think this is likely to affect your models; or even if you are using the correct thermo now probably you should cite these new papers in support of your values.

Someone please correct the group values in RMG, most importantly add a new HBI value for RC(O)OO-H, but also double check that RC(O)OOH is computed correctly (including the effect of the intramolecular H-bond).

http://dx.doi.org/10.1255/ejms.1055

http://dx.doi.org/10.1021/jp907569w

Presumably this needs to go somewhere in RMG_database/thermo_groups/Radical_Library.txt

Primary Reaction Library cannot contain trimolecular reactions

This is on the PrimaryRxnLibrary branch (based on Shamel's work).

Using Glarborg/C3 as a reaction library I get

Exception in thread "main" jing.rxn.InvalidReactantNumberException
at jing.rxn.Reaction.checkRateRange(Reaction.java:472)
at jing.rxn.Reaction.repOk(Reaction.java:1181)
at jing.rxn.ReactionLibrary.repOk(ReactionLibrary.java:533)
at jing.rxn.LibraryReactionGenerator.react(LibraryReactionGenerator.java:144)
at jing.rxnSys.ReactionModelGenerator.initializeCoreEdgeModel(ReactionModelGenerator.java:3811)
at jing.rxnSys.ReactionModelGenerator.initializeCoreEdgeReactionModel(ReactionModelGenerator.java:4162)
at jing.rxnSys.ReactionModelGenerator.modelGeneration(ReactionModelGenerator.java:1274)
at RMG.main(RMG.java:57)

Reaction class checks that rates constants do not exceed these arbitrary and stupidly high values:
protected static double BIMOLECULAR_RATE_UPPER = 1.0E100; //## attribute BIMOLECULAR_RATE_UPPER
protected static double UNIMOLECULAR_RATE_UPPER = 1.0E100; //## attribute UNIMOLECULAR_RATE_UPPER

but there is no TRIMOLECULAR_RATE_UPPER so it throws an InvalidReactantNumberException() for trimolecular reactions.

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

From: Stijn Vranckx
Problem 2:

Since the mechanism generation for nC4H9OH, O2, N2, doesn’t finish successful when pressure dependent rate-coefficients are used; I tried to generate a mechanism where I don’t include pressure dependence of rate coefficients (Pressure Dependence: off).
This seems to run fine until:

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
   at java.util.Arrays.copyOf(Unknown Source)
   at java.lang.AbstractStringBuilder.expandCapacity(Unknown Source)
   at java.lang.AbstractStringBuilder.append(Unknown Source)
   at java.lang.StringBuilder.append(Unknown Source)
   at jing.rxnSys.JDAS.getConcentractionFlags(Unknown Source)
   at jing.rxnSys.JDASSL.solve(Unknown Source)
   at jing.rxnSys.ReactionSystem.solveReactionSystem(Unknown Source)
   at jing.rxnSys.ReactionModelGenerator.modelGeneration(Unknown Source)
   at RMG.main(Unknown Source)

Given the fact that I run out of memory, I change the command to launch RMG to

java –Xmx1600m -jar "%rmg%"\software\rmg\RMG.jar condition.txt

1600 megabytes of memory is the maximum when using Windows XP, the mechanism generation still ran out off memory when the core reaches 3470 reactions and 183 species and 300362 reactions and 64483 species in the model edge.

How can one solve this kind of problem?

Next I tried to run under Windows 7 in stead off Windows XP (other computer). When using Windows 7, it is possible to further increase the memory available for JAVA.

jing.rxn.RateConstantNotFoundException

Yushi Suzuki was running a RMG job and received the titled exception, followed by RMG terminating the simulation. He and Greg Magoon determined the exception was thrown when RMG attempted to react the following species with the core:

1 C 0 {2,D}
2 C 0 {1,D} {3,S} {7,S}
3 C 0 {2,S} {4,D}
4 C 0 {3,D} {5,S}
5 C 0 {4,S} {6,S} {8,D}
6 C 1 {5,S} {7,S} {8,S}
7 C 0 {6,S} {2,S} {9,D}
8 C 0 {5,D} {6,S}
9 O 0 {7,D}

Here's the InChI: InChI=1/C8H5O/c1-5-2-3-6-4-7(6)8(5)9/h2-4H,1H2

In particular, the exception was thrown when trying to react this species with the core, against the Diels_alder_addition reaction family. For Yushi's case, the reaction that caused the problem was the above radical + isobutylene --> following radical

1 C 0 {2,S} {20,S} {5,S} {6,S}
2 C 0 {1,S} {16,S} {3,S} {4,S}
3 C 0 {2,S} {7,S} {8,S} {9,S}
4 C 0 {2,S} {10,S} {11,S} {12,S}
5 H 0 {1,S}
6 H 0 {1,S}
7 H 0 {3,S}
8 H 0 {3,S}
9 H 0 {3,S}
10 H 0 {4,S}
11 H 0 {4,S}
12 H 0 {4,S}
13 C 1 {14,S} {22,S} {23,S}
14 C 0 {15,D} {19,S} {13,S}
15 C 0 {14,D} {16,S} {24,S}
16 C 0 {15,S} {17,S} {2,S} {25,S}
17 C 0 {16,S} {18,D} {20,S}
18 C 0 {17,D} {19,S} {20,S}
19 C 0 {21,D} {18,S} {14,S}
20 C 0 {17,S} {18,S} {1,S} {26,S}
21 O 0 {19,D}
22 H 0 {13,S}
23 H 0 {13,S}
24 H 0 {15,S}
25 H 0 {16,S}
26 H 0 {20,S}

Here's the InChI: InChI=1/C12H13O/c1-6-4-8-9-7(5-12(8,2)3)10(9)11(6)13/h4,7-8H,1,5H2,2-3H3

Greg and Mike determined that the exception was being thrown because RMG could not match the input radical against the "diene_out" node in the tree.

The general "diene_out" is a union of groups, one of which is:

diene_unsub_unsub_out
1 *3 Cd 0 {2,D}, {5,S}, {6,S}
2 *4 Cd 0 {1,D}, {3,S}
3 *5 Cd 0 {2,S}, {4,D}
4 *6 Cd 0 {3,D}, {7,S}, {8,S}
5 H 0 {1,S}
6 H 0 {1,S}
7 H 0 {4,S}
8 H 0 {4,S}

The problem arises in that the definition assumes *3 atom is bound to two atoms (not including *4, *5, or *6) and likewise, *6 atom is bound to two atoms (not including *3, *4, or *5). However, in this specific case, our *4 is bound to *6.

Temporary solution: Coming soon

NullPointerException error on Windows for the 1-3 hexadiene example

On commit 165e221 (the latest one I believe)
The same example runs fine on Mount, but it takes 13 hours.
On Windows, it encountered "NullPointerException", message as below
java.lang.NullPointerException
at jing.rxn.FastMasterEqn.runPDepCalculation(FastMasterEqn.java:315)
at jing.rxnSys.ReactionSystem.initializePDepNetwork(ReactionSystem.java:544)
at jing.rxnSys.ReactionModelGenerator.modelGeneration(ReactionModelGenerator.java:1416)
at RMG.main(RMG.java:57)
Troublesome FAME input saved to ./fame/405_input.txt
Troublesome FAME result saved to ./fame/405_output.txt
Falling back to modified strong collision mode for this network.

Restart strips all useful species names

When restarting a job I end up with something like

SPC(106)+SPC(6)=SPC(1037)+SPC(163)
SPC(106)+SPC(6)=SPC(1037)+SPC(164)
SPC(106)+SPC(6)=SPC(1037)+SPC(165)
SPC(106)+SPC(6)=SPC(1037)+SPC(166)
SPC(106)+SPC(6)=SPC(1037)+SPC(167)
SPC(106)+SPC(6)=SPC(1037)+SPC(168)
SPC(106)+SPC(6)=SPC(1037)+SPC(169)
SPC(106)+SPC(6)=SPC(1037)+SPC(170)
SPC(106)+SPC(6)=SPC(1037)+SPC(171)
SPC(106)+SPC(6)=SPC(1037)+SPC(172)
SPC(106)+SPC(6)=SPC(1037)+SPC(173)
SPC(106)+SPC(6)=SPC(1037)+SPC(174)
SPC(106)+SPC(6)=SPC(1037)+SPC(175)

Which makes it hard to see what's going on.
The original run, which this is a restart of, had sensible names.

Is there any way to avoid this?

chemkin file cannot be translated to cantera - missing a blank line

...
    CHO2J(21)
    CHO2J(22)
    CO3JJ(583)
END
*** BLANK LINE REQUIRED HERE ***

THERMO ALL
300.000 1000.000 5000.000
! The first four sets of polynomial coefficients (Ar, N2, Ne, He) are from
! THIRD MILLENIUM IDEAL GAS AND CONDENSED PHASE THERMOCHEMICAL DATABASE FOR
! COMBUSTION WITH UPDATES FROM ACTIVE THERMOCHENICAL TABLES
! Authors: Alexander Burcat and Branko Ruscic
!
...

Git hash in log file is inaccurate if not on master branch

The git hash reported in the top of the log file just tells you where the master branch was at the time the java code was compiled by Ant. There is no guarantee that you were on the master branch when you compiled the code, so you could have compiled anything! This will become increasingly probable as we use separate branches for development.

Currently it reads the hash from .git/refs/heads/master

What should happen:

  1. read from .git/HEAD
  2. if this says "ref: refs/heads/[branch]" then read the hash from .git/refs/heads/[branch] and perhaps report what the [branch] is
  3. if this says "[hash]" then use [hash]

Errors in thermo database: X is not actually a child of Y

There are many errors of the type:
Error in database: ___ is not actually a child of ____

Until commit 4d40223 these were reported as
Father FourMember Child 12methylenecyclobutane
Father six-inringonedouble Child 36dihydro2hpyran
Father six-inringonedouble Child Cyclohexene
Father six-oneside-twoindoubles-25 Child 14cyclohexadiene3methylene
Father six-oneside-twoindoubles-24 Child 13cyclohexadiene5methylene
Father six-oneside-twoindoubles-24 Child 24cyclohexadienone
Father six-twoin14-twoout Child pbenzoquinone
Father ketene Child biketene
Father CssH2 Child Css(OssH)-Css(OssH)
Father CssH Child Css(OssH)-Css(OssH)
Father Css-noH Child Css(OssH)-Css(OssH)
Father CdsH Child Oss(CdsOd)
Father CdsH Child Cds(Od)Cds=CdsCds(Od)
Father CdsH Child Cds_(Od)Cds=CdsCds(Od)
Father Cds-noH Child Oss(CdsOd)
Father Cds-noH Child Cds(Od)OssH
Father Cds-noH Child Cds(Od)Cds=CdsCds(Od)
Father Cds-noH Child Cds_(Od)Cds=CdsCds(Od)
Father CH2O Child CH2CO
Father Css-noH Child CH2C_OO
Father CHO Child CH3C_O
Father CHO Child CH2C_O
Father CHO Child O=COC=O
Father COO_H Child CH3COO*
Father COO_H Child CH2COO_
Father CH2O* Child OssH
Father CHO* Child CH3CO*
Father CHO* Child CH2CO*
Father Od Child ACH
Father Od Child ACCH3
Father Od Child ACCH2
Father Od Child ACCH
Father Od Child ACOH

Each of these messages means something like "according to your dictionary definitions, Cyclohexene is not actually a child of six-inringonedouble, which means it will not match any structures and will not be used in estimating thermo". This interpretation can be confirmed by running the thermo data estimator on cyclohexene.

The cyclohexene example can be fixed by moving the asterisked atom in the cyclohexene definition to match the position of the asterisked atom in the parent node six-inringonedouble.

Probably the other errors can be fixed also, or should at least be investigated.

Attempts to read "Reaction Library" from kinetics_libraries/ path.

RMG reports this in the log file:

Reading reaction library from /Users/rwest/XCodeProjects/RMGjava/databases/RMG_database/kinetics_libraries
Can't read reaction library files!
/Users/rwest/XCodeProjects/RMGjava/databases/RMG_database/kinetics_libraries/Dictionary.txt

The offending code is in jing/rxn/ReactionLibrary.java (but is called from elsewhere)
unlike the Primary Reaction Library code which is in jing/rxnSys/PrimaryReactionLibrary.java
Currently the code is clearly not functional, as it's trying to read from files that don't exist.

My guess is that this is supposed to be the Primary Reaction Library (as opposed to Primary Kinetics Library) that is described in issue #4.
In the mean time, should we stop trying to call the code so we don't alarm users who read the log file?

GUI does not have pruning options.

The GUI does not know about pruning options.
This should initially be added on the pruning branch (and perhaps the exact syntax of the condition file should be finalized first).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.