libantioch/antioch — pull request #72 by SylvainPlessis (2014-07-15 18:26:05+00:00)
Title: Input parsing formats

Here is the chemkin parser in the new parsing design.
There are two/three levels in this design:
- the read_reaction_data, templated around a parser
- the parser itself,
- if needed, low-level methods for the parsers (tiny_xml for the xml parser, none needed for chemkin)

The global high-level method is somewhat clumsy, a little bit too much adapted to the xml parser, nothing really serious, but I keep an option to make it more elegant and standardize a bit more the parsers.
A noteworthy thing is that though it's not paranoid (yet), it already won't let a parser get away with a bad unit or bad representation, this is a good point for any parser wanted in the future, there is no need to know in details what's happening to have something that works cleanly.

The chemkin parser is not exhaustive, but it's fully operable with the file I have from combustion (added in the inputs for the test) and others I've seen Basically you'll have ``standard'' kinetics with it. I've finally choose the option to write it almost from scratch, please have a look at the *ascii_getline* method (src/utilities/include/antioch/string_utils.h). It's basically a *getline* method that deals with the different end-of-line a file can contain, and clearly the chemkin file I had started its life on Windows. This is something to be expected I guess. Anyway, I want at the very least an approval of this method before anything happens.

Also it lacks a little bit of documentation, stating for instance that no photochemistry is supported by the chemkin parser, that the weird SRI falloff is not supported either, stuffs like that we might want to deal with in the futur.