turbulentTemperatureRadCoupledMixedFvPatchScalarField.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 | Copyright (C) 2011-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 Class
25  Foam::compressible::
26  turbulentTemperatureRadCoupledMixedFvPatchScalarField
27 
28 Description
29  Mixed boundary condition for temperature and radiation heat transfer
30  to be used for in multiregion cases. Optional thin thermal layer
31  resistances can be specified through thicknessLayers and kappaLayers
32  entries.
33 
34  The thermal conductivity, \c kappa, can either be retrieved from the
35  mesh database using the \c lookup option, or from a \c solidThermo
36  or \c fluidThermo thermophysical package.
37 
38  \heading Patch usage
39 
40  \table
41  Property | Description | Required | Default value
42  kappa | thermal conductivity option | yes |
43  kappaName | name of thermal conductivity field | no |
44  Tnbr | name of the field | no | T
45  QrNbr | name of the radiative flux in the nbr region | no | none
46  Qr | name of the radiative flux in this region | no | none
47  thicknessLayers | list of thicknesses per layer [m] | no |
48  kappaLayers | list of thermal conductivites per layer [W/m/K] | no |
49  \endtable
50 
51  Example of the boundary condition specification:
52  \verbatim
53  myPatch
54  {
55  type compressible::turbulentTemperatureRadCoupledMixed;
56  Tnbr T;
57  kappa lookup;
58  KappaName kappa;
59  QrNbr Qr; // or none. Name of Qr field on neighbour region
60  Qr Qr; // or none. Name of Qr field on local region
61  thicknessLayers (0.1 0.2 0.3 0.4);
62  kappaLayers (1 2 3 4)
63  value uniform 300;
64  }
65  \endverbatim
66 
67  Needs to be on underlying mapped(Wall)FvPatch.
68 
69  Note: kappa : heat conduction at patch. Gets supplied how to
70  lookup/calculate
71  kappa:
72  - 'lookup' : lookup volScalarField (or volSymmTensorField) with name
73  - 'fluidThermo' : use fluidThermo and compressible::RASmodel to calculate K
74  - 'solidThermo' : use solidThermo kappa()
75  - 'directionalSolidThermo' directionalKappa()
76 
77 SourceFiles
78  turbulentTemperatureRadCoupledMixedFvPatchScalarField.C
79 
80 \*---------------------------------------------------------------------------*/
81 
82 #ifndef turbulentTemperatureRadCoupledMixedFvPatchScalarField_H
83 #define turbulentTemperatureRadCoupledMixedFvPatchScalarField_H
84 
85 #include "mixedFvPatchFields.H"
86 #include "temperatureCoupledBase.H"
87 #include "scalarList.H"
88 
89 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
90 
91 namespace Foam
92 {
93 namespace compressible
94 {
95 
96 /*---------------------------------------------------------------------------*\
97  Class turbulentTemperatureRadCoupledMixedFvPatchScalarField Declaration
98 \*---------------------------------------------------------------------------*/
99 
100 class turbulentTemperatureRadCoupledMixedFvPatchScalarField
101 :
102  public mixedFvPatchScalarField,
103  public temperatureCoupledBase
104 {
105  // Private data
106 
107  //- Name of field on the neighbour region
108  const word TnbrName_;
109 
110  //- Name of the radiative heat flux in the neighbout region
111  const word QrNbrName_;
112 
113  //- Name of the radiative heat flux in local region
114  const word QrName_;
115 
116  //- Thickness of layers
117  scalarList thicknessLayers_;
118 
119  //- Conductivity of layers
120  scalarList kappaLayers_;
121 
122  //- Total contact resistance
123  scalar contactRes_;
124 
125 
126 public:
127 
128  //- Runtime type information
129  TypeName("compressible::turbulentTemperatureRadCoupledMixed");
130 
131 
132  // Constructors
133 
134  //- Construct from patch and internal field
136  (
137  const fvPatch&,
139  );
140 
141  //- Construct from patch, internal field and dictionary
143  (
144  const fvPatch&,
146  const dictionary&
147  );
148 
149  //- Construct by mapping given
150  // turbulentTemperatureCoupledBaffleMixedFvPatchScalarField onto a
151  // new patch
153  (
154  const
156  const fvPatch&,
158  const fvPatchFieldMapper&
159  );
160 
161  //- Construct and return a clone
162  virtual tmp<fvPatchScalarField> clone() const
163  {
165  (
167  (
168  *this
169  )
170  );
171  }
172 
173  //- Construct as copy setting internal field reference
175  (
178  );
179 
180  //- Construct and return a clone setting internal field reference
182  (
184  ) const
185  {
187  (
189  (
190  *this,
191  iF
192  )
193  );
194  }
195 
196 
197  // Member functions
198 
199  //- Update the coefficients associated with the patch field
200  virtual void updateCoeffs();
201 
202  //- Write
203  virtual void write(Ostream&) const;
204 };
205 
206 
207 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
208 
209 } // End namespace compressible
210 } // End namespace Foam
211 
212 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
213 
214 #endif
215 
216 // ************************************************************************* //
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
turbulentTemperatureRadCoupledMixedFvPatchScalarField(const fvPatch &, const DimensionedField< scalar, volMesh > &)
Construct from patch and internal field.
TypeName("compressible::turbulentTemperatureRadCoupledMixed")
Runtime type information.
Foam::fvPatchFieldMapper.
A list of keyword definitions, which are a keyword followed by any number of values (e...
Definition: dictionary.H:137
Namespace for OpenFOAM.
List< scalar > scalarList
A List of scalars.
Definition: scalarList.H:50
Mixed boundary condition for temperature and radiation heat transfer to be used for in multiregion ca...
bool compressible
Definition: pEqn.H:40
An Ostream is an abstract base class for all output systems (streams, files, token lists...
Definition: Ostream.H:53
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:61
A class for managing temporary objects.
Definition: PtrList.H:118