polynomialSolidTransportI.H
Go to the documentation of this file.
1/*---------------------------------------------------------------------------*\
2 ========= |
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4 \\ / O peration |
5 \\ / A nd | www.openfoam.com
6 \\/ M anipulation |
7-------------------------------------------------------------------------------
8 Copyright (C) 2013-2017 OpenFOAM Foundation
9-------------------------------------------------------------------------------
10License
11 This file is part of OpenFOAM.
12
13 OpenFOAM is free software: you can redistribute it and/or modify it
14 under the terms of the GNU General Public License as published by
15 the Free Software Foundation, either version 3 of the License, or
16 (at your option) any later version.
17
18 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21 for more details.
22
23 You should have received a copy of the GNU General Public License
24 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25
26\*---------------------------------------------------------------------------*/
27
28#include "specie.H"
29
30// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
31
32template<class Thermo, int PolySize>
35(
36 const Thermo& t,
37 const Polynomial<PolySize>& kappaCoeffs
38)
39:
40 Thermo(t),
41 kappaCoeffs_(kappaCoeffs)
42{}
43
44
45template<class Thermo, int PolySize>
48(
49 const word& name,
51)
52:
53 Thermo(name, pt),
54 kappaCoeffs_(pt.kappaCoeffs_)
55{}
56
57
58template<class Thermo, int PolySize>
61{
63}
64
65
66template<class Thermo, int PolySize>
69{
71}
72
73
74// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
75
76template<class Thermo, int PolySize>
78(
79 const scalar p,
80 const scalar T
81) const
82{
84 return 0;
85}
86
87
88template<class Thermo, int PolySize>
90(
91 const scalar p,
92 const scalar T
93) const
94{
95 return kappaCoeffs_.value(T);
96}
97
98
99template<class Thermo, int PolySize>
101(
102 const scalar p,
103 const scalar T
104) const
105{
106 const scalar kappa(kappaCoeffs_.value(T));
107 return vector(kappa, kappa, kappa);
108}
109
110
111template<class Thermo, int PolySize>
113(
114 const scalar p, const scalar T
115) const
116{
117 return kappa(p, T)/this->Cp(p, T);
118}
119
120
121// * * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * //
122
123template<class Thermo, int PolySize>
125(
127)
128{
129 scalar Y1 = this->Y();
130
131 Thermo::operator+=(pt);
132
133 Y1 /= this->Y();
134 scalar Y2 = pt.Y()/this->Y();
135
136 kappaCoeffs_ = Y1*kappaCoeffs_ + Y2*pt.kappaCoeffs_;
137}
138
139
140template<class Thermo, int PolySize>
142(
143 const scalar s
144)
145{
146 Thermo::operator*=(s);
147}
148
149
150// * * * * * * * * * * * * * * * Friend Operators * * * * * * * * * * * * * //
151
152template<class Thermo, int PolySize>
154(
157)
158{
159 Thermo t
160 (
161 static_cast<const Thermo&>(pt1) + static_cast<const Thermo&>(pt2)
162 );
163
164 scalar Y1 = pt1.Y()/t.Y();
165 scalar Y2 = pt2.Y()/t.Y();
166
168 (
169 t,
170 Y1*pt1.kappaCoeffs_ + Y2*pt2.kappaCoeffs_
171 );
172}
173
174
175template<class Thermo, int PolySize>
177(
178 const scalar s,
179 const polynomialSolidTransport<Thermo, PolySize>& pt
180)
181{
182 return polynomialSolidTransport<Thermo, PolySize>
183 (
184 s*static_cast<const Thermo&>(pt),
185 pt.kappaCoeffs_
186 );
187}
188
189
190// ************************************************************************* //
static autoPtr< Time > New()
Construct (dummy) Time - no functionObjects or libraries.
Definition: Time.C:717
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Definition: autoPtr.H:66
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:126
const Type & value() const
Return const reference to value.
virtual tmp< volVectorField > Kappa() const
Anisotropic thermal conductivity [W/m/K].
Transport package using polynomial functions for solid kappa.
autoPtr< polynomialSolidTransport > clone() const
Construct and return a clone.
scalar alphah(const scalar p, const scalar T) const
Thermal diffusivity of enthalpy [kg/ms].
A class for handling words, derived from Foam::string.
Definition: word.H:68
volScalarField & p
PtrList< volScalarField > & Y
const volScalarField & T
const volScalarField & Cp
Definition: EEqn.H:7
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
Definition: error.H:517
gmvFile<< "tracers "<< particles.size()<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().x()<< " ";}gmvFile<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().y()<< " ";}gmvFile<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().z()<< " ";}gmvFile<< nl;forAll(lagrangianScalarNames, i){ word name=lagrangianScalarNames[i];IOField< scalar > s(IOobject(name, runTime.timeName(), cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE))
const dimensionedScalar kappa
Coulomb constant: default SI units: [N.m2/C2].
const dimensionedScalar mu
Atomic mass unit.
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh > > &tdf1, const word &name, const dimensionSet &dimensions)
Global function forwards to reuseTmpDimensionedField::New.
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for INVALID.
Definition: exprTraits.C:59
Vector< scalar > vector
Definition: vector.H:61
dictionary dict