Merge branch 'master' of /home/dm4/OpenFOAM/OpenFOAM-dev

This commit is contained in:
mattijs
2013-01-15 12:52:15 +00:00
6 changed files with 132 additions and 55 deletions

View File

@ -137,8 +137,82 @@ gasSpecies() const
template<class ReactionThermo>
void Foam::solidReaction<ReactionThermo>::write(Ostream& os) const
{
Reaction<ReactionThermo>::write(os);
OStringStream reaction;
os.writeKeyword("reaction") << solidReactionStr(reaction)
<< token::END_STATEMENT << nl;
}
template<class ReactionThermo>
Foam::string Foam::solidReaction<ReactionThermo>::solidReactionStr
(
OStringStream& reaction
) const
{
this->reactionStrLeft(reaction);
reaction << " + ";
solidReactionStrLeft(reaction);
reaction << " = ";
this->reactionStrRight(reaction);
reaction << " + ";
solidReactionStrRight(reaction);
return reaction.str();
}
template<class ReactionThermo>
void Foam::solidReaction<ReactionThermo>::solidReactionStrLeft
(
OStringStream& reaction
) const
{
for (label i = 0; i < glhs().size(); ++i)
{
reaction << " + ";
if (i > 0)
{
reaction << " + ";
}
if (mag(glhs()[i].stoichCoeff - 1) > SMALL)
{
reaction << glhs()[i].stoichCoeff;
}
reaction << gasSpecies()[glhs()[i].index];
if (mag(glhs()[i].exponent - glhs()[i].stoichCoeff) > SMALL)
{
reaction << "^" << glhs()[i].exponent;
}
}
}
template<class ReactionThermo>
void Foam::solidReaction<ReactionThermo>::solidReactionStrRight
(
OStringStream& reaction
) const
{
for (label i = 0; i < grhs().size(); ++i)
{
reaction << " + ";
if (i > 0)
{
reaction << " + ";
}
if (mag(grhs()[i].stoichCoeff - 1) > SMALL)
{
reaction << grhs()[i].stoichCoeff;
}
reaction << gasSpecies()[grhs()[i].index];
if (mag(grhs()[i].exponent - grhs()[i].stoichCoeff) > SMALL)
{
reaction << "^" << grhs()[i].exponent;
}
}
}
// ************************************************************************* //

View File

@ -81,6 +81,15 @@ private:
// Private Member Functions
//- Return string representation of reaction
string solidReactionStr(OStringStream&) const;
//- Return string representation of the left of the reaction
void solidReactionStrLeft(OStringStream&) const;
//- Return string representation of the right of the reaction
void solidReactionStrRight(OStringStream&) const;
//- Disallow default bitwise assignment
void operator=(const solidReaction&);

View File

@ -39,7 +39,8 @@ inline Ostream& operator<<
const solidReaction<ReactionThermo>& r
)
{
r.write(os);
OStringStream reaction;
os << r.solidReactionStr(reaction)<< token::END_STATEMENT <<nl;
return os;
}

View File

@ -31,21 +31,14 @@ License
template<class ReactionThermo>
Foam::label Foam::Reaction<ReactionThermo>::nUnNamedReactions = 0;
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
// * * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * //
template<class ReactionThermo>
Foam::label Foam::Reaction<ReactionThermo>::getNewReactionID()
void Foam::Reaction<ReactionThermo>::reactionStrLeft
(
OStringStream& reaction
) const
{
return nUnNamedReactions++;
}
template<class ReactionThermo>
Foam::string Foam::Reaction<ReactionThermo>::reactionStr() const
{
OStringStream reaction;
for (label i = 0; i < lhs_.size(); ++i)
{
if (i > 0)
@ -62,28 +55,15 @@ Foam::string Foam::Reaction<ReactionThermo>::reactionStr() const
reaction << "^" << lhs_[i].exponent;
}
}
}
for (label i = 0; i < glhs().size(); ++i)
{
reaction << " + ";
if (i > 0)
{
reaction << " + ";
}
if (mag(glhs()[i].stoichCoeff - 1) > SMALL)
{
reaction << glhs()[i].stoichCoeff;
}
reaction << gasSpecies()[glhs()[i].index];
if (mag(glhs()[i].exponent - glhs()[i].stoichCoeff) > SMALL)
{
reaction << "^" << glhs()[i].exponent;
}
}
reaction << " = ";
template<class ReactionThermo>
void Foam::Reaction<ReactionThermo>::reactionStrRight
(
OStringStream& reaction
) const
{
for (label i = 0; i < rhs_.size(); ++i)
{
if (i > 0)
@ -100,26 +80,27 @@ Foam::string Foam::Reaction<ReactionThermo>::reactionStr() const
reaction << "^" << rhs_[i].exponent;
}
}
}
for (label i = 0; i < grhs().size(); ++i)
{
reaction << " + ";
if (i > 0)
{
reaction << " + ";
}
if (mag(grhs()[i].stoichCoeff - 1) > SMALL)
{
reaction << grhs()[i].stoichCoeff;
}
reaction << gasSpecies()[grhs()[i].index];
if (mag(grhs()[i].exponent - grhs()[i].stoichCoeff) > SMALL)
{
reaction << "^" << grhs()[i].exponent;
}
}
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
template<class ReactionThermo>
Foam::label Foam::Reaction<ReactionThermo>::getNewReactionID()
{
return nUnNamedReactions++;
}
template<class ReactionThermo>
Foam::string Foam::Reaction<ReactionThermo>::reactionStr
(
OStringStream& reaction
) const
{
reactionStrLeft(reaction);
reaction << " = ";
reactionStrRight(reaction);
return reaction.str();
}
@ -464,7 +445,9 @@ Foam::Reaction<ReactionThermo>::New
template<class ReactionThermo>
void Foam::Reaction<ReactionThermo>::write(Ostream& os) const
{
os.writeKeyword("reaction") << reactionStr() << token::END_STATEMENT << nl;
OStringStream reaction;
os.writeKeyword("reaction") << reactionStr(reaction)
<< token::END_STATEMENT << nl;
}

View File

@ -66,6 +66,16 @@ class Reaction
:
public ReactionThermo
{
protected:
// Protected member functions
//- Return string representation of the left of the reaction
void reactionStrLeft(OStringStream& reaction) const;
//- Return string representation of the right of the reaction
void reactionStrRight(OStringStream& reaction) const;
public:
@ -134,7 +144,7 @@ private:
// Private Member Functions
//- Return string representation of reaction
string reactionStr() const;
string reactionStr(OStringStream& reaction) const;
//- Construct reaction thermo
void setThermo(const HashPtrTable<ReactionThermo>& thermoDatabase);

View File

@ -67,8 +67,8 @@ Reaction<ReactionThermo>::rhs() const
template<class ReactionThermo>
inline Ostream& operator<<(Ostream& os, const Reaction<ReactionThermo>& r)
{
os << r.reactionStr()<< token::END_STATEMENT <<nl;
OStringStream reaction;
os << r.reactionStr(reaction)<< token::END_STATEMENT <<nl;
return os;
}