initial commit for version 1.5.x patch release
[OpenFOAM-1.5.x.git] / applications / test / readCHEMKINIII / readCHEMKINIII.C
blob8f944503f71c6733635d00bba4d45d86442eda01
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 1991-2008 OpenCFD Ltd.
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
9     This file is part of OpenFOAM.
11     OpenFOAM is free software; you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by the
13     Free Software Foundation; either version 2 of the License, or (at your
14     option) any later version.
16     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
19     for more details.
21     You should have received a copy of the GNU General Public License
22     along with OpenFOAM; if not, write to the Free Software Foundation,
23     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25 \*---------------------------------------------------------------------------*/
27 #include "chemkinReader.H"
28 #include "argList.H"
29 #include "IFstream.H"
30 #include "OFstream.H"
32 using namespace Foam;
34 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
35 // Main program:
37 int main(int argc, char *argv[])
39     argList::validArgs.clear();
40     argList::validArgs.append("CHEMKINIIIFile");
41     argList::validOptions.insert("thermo", "fileName");
42     argList args(argc, argv);
44     fileName thermoFileName = fileName::null;
45     if (args.options().found("thermo"))
46     {
47         thermoFileName = args.options()["thermo"];
48     }
50     fileName CHEMKINFileName(args.additionalArgs()[0]);
52     chemkinReader ck(CHEMKINFileName, thermoFileName);
54     //Info<< ck.isotopeAtomicWts() << endl;
55     //Info<< ck.specieNames() << endl;
56     //Info<< ck.speciePhase() << endl;
57     //Info<< ck.specieThermo() << endl;
58     //Info<< ck.reactions() << endl;
60     PtrList<chemkinReader::reaction> reactions = ck.reactions();
62     {
63         OFstream reactionStream("reactions");
64         reactionStream<< reactions << endl;
65     }
67     {
68         IFstream reactionStream("reactions");
70         label nReactions(readLabel(reactionStream));
71         reactionStream.readBeginList(args.executable().c_str());
73         PtrList<chemkinReader::reaction> testReactions(nReactions);
75         forAll (testReactions, i)
76         {
77             testReactions.set
78             (
79                 i,
80                 chemkinReader::reaction::New
81                 (
82                     ck.species(),
83                     ck.specieThermo(),
84                     reactionStream
85                 )
86             );
87         }
89         reactionStream.readEndList(args.executable().c_str());
91         Info<< testReactions << endl;
92     }
94     Info << "End\n" << endl;
96     return 0;
100 // ************************************************************************* //