FreeFOAM The Cross-Platform CFD Toolkit
Hosted by SourceForge:
Get FreeFOAM at SourceForge.net.
            Fast, secure and Free Open Source software downloads

hPolynomialThermo.C

Go to the documentation of this file.
00001 /*---------------------------------------------------------------------------*\
00002   =========                 |
00003   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
00004    \\    /   O peration     |
00005     \\  /    A nd           | Copyright (C) 2008-2010 OpenCFD Ltd.
00006      \\/     M anipulation  |
00007 -------------------------------------------------------------------------------
00008 License
00009     This file is part of OpenFOAM.
00010 
00011     OpenFOAM is free software: you can redistribute it and/or modify it
00012     under the terms of the GNU General Public License as published by
00013     the Free Software Foundation, either version 3 of the License, or
00014     (at your option) any later version.
00015 
00016     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
00017     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00018     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
00019     for more details.
00020 
00021     You should have received a copy of the GNU General Public License
00022     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
00023 
00024 \*---------------------------------------------------------------------------*/
00025 
00026 #include "hPolynomialThermo.H"
00027 #include <OpenFOAM/IOstreams.H>
00028 
00029 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
00030 
00031 template<class EquationOfState, int PolySize>
00032 Foam::hPolynomialThermo<EquationOfState, PolySize>::hPolynomialThermo
00033 (
00034     Istream& is
00035 )
00036 :
00037     EquationOfState(is),
00038     Hf_(readScalar(is)),
00039     Sf_(readScalar(is)),
00040     CpPolynomial_("CpPolynomial", is),
00041     hPolynomial_(),
00042     sPolynomial_()
00043 {
00044     Hf_ *= this->W();
00045     Sf_ *= this->W();
00046     CpPolynomial_ *= this->W();
00047 
00048     hPolynomial_ = CpPolynomial_.integrate();
00049     sPolynomial_ = CpPolynomial_.integrateMinus1();
00050 
00051     // Offset h poly so that it is relative to the enthalpy at Tstd
00052     hPolynomial_[0] += Hf_ - hPolynomial_.evaluate(specie::Tstd);
00053 
00054     // Offset s poly so that it is relative to the entropy at Tstd
00055     sPolynomial_[0] += Sf_ - sPolynomial_.evaluate(specie::Tstd);
00056 }
00057 
00058 
00059 // * * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * //
00060 
00061 template<class EquationOfState, int PolySize>
00062 Foam::Ostream& Foam::operator<<
00063 (
00064     Ostream& os,
00065     const hPolynomialThermo<EquationOfState, PolySize>& pt
00066 )
00067 {
00068     os  << static_cast<const EquationOfState&>(pt) << tab
00069         << pt.Hf_/pt.W() << tab
00070         << pt.Sf_ << tab
00071         << "CpPolynomial" << tab << pt.CpPolynomial_/pt.W();
00072 
00073     os.check
00074     (
00075         "operator<<"
00076         "("
00077             "Ostream&, "
00078             "const hPolynomialThermo<EquationOfState, PolySize>&"
00079         ")"
00080     );
00081 
00082     return os;
00083 }
00084 
00085 
00086 // ************************ vim: set sw=4 sts=4 et: ************************ //
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines