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 // ************************************************************************* //
#define readScalar
Definition: doubleScalar.C:38
dictionary dict
Ostream & indent(Ostream &os)
Indent stream.
Definition: Ostream.H:223
Boussinesq(const Specie &sp, const scalar rho0, const scalar T0, const scalar beta)
Construct from components.
Definition: BoussinesqI.H:33
A list of keyword definitions, which are a keyword followed by any number of values (e...
Definition: dictionary.H:137
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
Definition: Istream.H:57
const word dictName() const
Return the local dictionary name (final part of scoped name)
Definition: dictionary.H:115
const dictionary & subDict(const word &) const
Find and return a sub-dictionary.
Definition: dictionary.C:633
virtual bool check(const char *operation) const
Check IOstream status for given operation.
Definition: IOstream.C:92
void write(Ostream &os) const
Write to Ostream.
Definition: Boussinesq.C:63
bool add(entry *, bool mergeEntry=false)
Add a new entry.
Definition: dictionary.C:737
Useful combination of include files which define Sin, Sout and Serr and the use of IO streams general...
const dimensionedScalar b
Wien displacement law constant: default SI units: [m.K].
Definition: createFields.H:27
bool readScalar(const char *buf, doubleScalar &s)
Read whole of buf as a scalar. Return true if succesful.
Definition: doubleScalar.H:63
An Ostream is an abstract base class for all output systems (streams, files, token lists...
Definition: Ostream.H:53
Incompressible gas equation of state using the Boussinesq approximation for the density as a function...
Definition: Boussinesq.H:52
runTime write()
ITstream & lookup(const word &, bool recursive=false, bool patternMatch=true) const
Find and return an entry data stream.
Definition: dictionary.C:451