1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
5 \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
7 -------------------------------------------------------------------------------
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
13 the Free Software Foundation, either version 3 of the License, or
14 (at your 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
21 You should have received a copy of the GNU General Public License
22 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
24 \*---------------------------------------------------------------------------*/
26 #include "dimensionSet.H"
27 #include "IOstreams.H"
29 // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
31 Foam::dimensionSet::dimensionSet(Istream& is)
37 // * * * * * * * * * * * * * * * IOstream Operators * * * * * * * * * * * * //
39 Foam::Istream& Foam::operator>>(Istream& is, dimensionSet& dset)
41 // Read begining of dimensionSet
42 if (token(is) != token::BEGIN_SQR)
44 Info<< "expected a " << token::BEGIN_SQR << " in dimensionSet"
45 << endl << "in stream " << is.info() << endl;
48 // Read first five dimensions
49 for (int Dimension=0; Dimension<dimensionSet::CURRENT; Dimension++)
51 is >> dset.exponents_[Dimension];
57 // If next token is another number
58 // read last two dimensions
59 // and then read another token for the end of the dimensionSet
60 if (nextToken.isNumber())
62 dset.exponents_[dimensionSet::CURRENT] = nextToken.number();
63 is >> dset.exponents_[dimensionSet::LUMINOUS_INTENSITY];
68 dset.exponents_[dimensionSet::CURRENT] = 0;
69 dset.exponents_[dimensionSet::LUMINOUS_INTENSITY] = 0;
72 // Check end of dimensionSet
73 if (nextToken != token::END_SQR)
75 Info<< "expected a " << token::END_SQR << " in dimensionSet"
76 << endl << "in stream " << is.info() << endl;
79 // Check state of Istream
80 is.check("Istream& operator>>(Istream&, dimensionSet&)");
86 Foam::Ostream& Foam::operator<<(Ostream& os, const dimensionSet& dset)
88 os << token::BEGIN_SQR;
90 for (int Dimension=0; Dimension<dimensionSet::nDimensions-1; Dimension++)
92 os << dset.exponents_[Dimension] << token::SPACE;
94 os << dset.exponents_[dimensionSet::nDimensions-1] << token::END_SQR;
96 // Check state of Ostream
97 os.check("Ostream& operator<<(Ostream&, const dimensionSet&)");
103 // ************************************************************************* //