Boussinesq.C
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
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.
15 
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.
20 
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/>.
23 
24 \*---------------------------------------------------------------------------*/
25 
26 #include "Boussinesq.H"
27 #include "IOstreams.H"
28 
29 // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
30 
31 template<class Specie>
33 :
34  Specie(is),
35  rho0_(readScalar(is)),
36  T0_(readScalar(is)),
37  beta_(readScalar(is))
38 {
39  is.check
40  (
41  "Boussinesq<Specie>::"
42  "Boussinesq(Istream& is)"
43  );
44 }
45 
46 
47 template<class Specie>
49 (
50  const dictionary& dict
51 )
52 :
53  Specie(dict),
54  rho0_(readScalar(dict.subDict("equationOfState").lookup("rho0"))),
55  T0_(readScalar(dict.subDict("equationOfState").lookup("T0"))),
56  beta_(readScalar(dict.subDict("equationOfState").lookup("beta")))
57 {}
58 
59 
60 // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
61 
62 template<class Specie>
64 {
65  Specie::write(os);
66  dictionary dict("equationOfState");
67  dict.add("rho0", rho0_);
68  dict.add("T0", T0_);
69  dict.add("beta", beta_);
70 
71  os << indent << dict.dictName() << dict;
72 }
73 
74 
75 // * * * * * * * * * * * * * * * Ostream Operator * * * * * * * * * * * * * //
76 
77 template<class Specie>
78 Foam::Ostream& Foam::operator<<
79 (
80  Ostream& os,
81  const Boussinesq<Specie>& b
82 )
83 {
84  os << static_cast<const Specie&>(b)
85  << token::SPACE << b.rho0_
86  << token::SPACE << b.T0_
87  << token::SPACE << b.beta_;
88 
89  os.check
90  (
91  "Ostream& operator<<"
92  "(Ostream& os, const Boussinesq<Specie>& st)"
93  );
94  return os;
95 }
96 
97 
98 // ************************************************************************* //
Foam::dictionaryName::dictName
const word dictName() const
Return the local dictionary name (final part of scoped name)
Definition: dictionary.H:115
IOstreams.H
Useful combination of include files which define Sin, Sout and Serr and the use of IO streams general...
Foam::Boussinesq::write
void write(Ostream &os) const
Write to Ostream.
Definition: Boussinesq.C:63
Foam::Boussinesq::Boussinesq
Boussinesq(const Specie &sp, const scalar rho0, const scalar T0, const scalar beta)
Construct from components.
Definition: BoussinesqI.H:33
Foam::dictionary::lookup
ITstream & lookup(const word &, bool recursive=false, bool patternMatch=true) const
Find and return an entry data stream.
Definition: dictionary.C:449
Foam::Boussinesq
Incompressible gas equation of state using the Boussinesq approximation for the density as a function...
Definition: Boussinesq.H:52
Foam::constant::physicoChemical::b
const dimensionedScalar b
Wien displacement law constant: default SI units: [m.K].
Definition: createFields.H:28
dict
dictionary dict
Definition: searchingEngine.H:14
Foam::dictionary
A list of keyword definitions, which are a keyword followed by any number of values (e....
Definition: dictionary.H:137
Foam::indent
Ostream & indent(Ostream &os)
Indent stream.
Definition: Ostream.H:221
readScalar
#define readScalar
Definition: doubleScalar.C:38
Foam::readScalar
bool readScalar(const char *buf, doubleScalar &s)
Read whole of buf as a scalar. Return true if succesful.
Definition: doubleScalar.H:63
Boussinesq.H
Foam::Ostream
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Definition: Ostream.H:53
Foam::dictionary::subDict
const dictionary & subDict(const word &) const
Find and return a sub-dictionary.
Definition: dictionary.C:631
write
Tcoeff write()
Foam::dictionary::add
bool add(entry *, bool mergeEntry=false)
Add a new entry.
Definition: dictionary.C:729
Foam::token::SPACE
@ SPACE
Definition: token.H:95