MarshakRadiationFixedTemperatureFvPatchScalarField.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) 2011-2016 OpenFOAM Foundation
9 -------------------------------------------------------------------------------
10 License
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 Class
27  Foam::MarshakRadiationFixedTemperatureFvPatchScalarField
28 
29 Group
30  grpThermoBoundaryConditions
31 
32 Description
33  A 'mixed' boundary condition that implements a Marshak condition for the
34  incident radiation field (usually written as G)
35 
36  The radiation temperature field across the patch is supplied by the user
37  using the \c Trad entry.
38 
39 Usage
40  \table
41  Property | Description | Required | Default value
42  T | temperature field name | no | T
43  \endtable
44 
45  Example of the boundary condition specification:
46  \verbatim
47  <patchName>
48  {
49  type MarshakRadiationFixedTemperature;
50  Trad uniform 1000; // radiation temperature field
51  value uniform 0; // place holder
52  }
53  \endverbatim
54 
55 See also
56  Foam::radiationCoupledBase
57  Foam::mixedFvPatchField
58 
59 SourceFiles
60  MarshakRadiationFixedTemperatureFvPatchScalarField.C
61 
62 \*---------------------------------------------------------------------------*/
63 
64 #ifndef MarshakRadiationFixedTemperatureFvPatchScalarField_H
65 #define MarshakRadiationFixedTemperatureFvPatchScalarField_H
66 
67 #include "mixedFvPatchFields.H"
68 
69 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
70 
71 namespace Foam
72 {
73 namespace radiation
74 {
75 /*---------------------------------------------------------------------------*\
76  Class MarshakRadiationFixedTemperatureFvPatchScalarField Declaration
77 \*---------------------------------------------------------------------------*/
78 
79 class MarshakRadiationFixedTemperatureFvPatchScalarField
80 :
81  public mixedFvPatchScalarField
82  //public radiationCoupledBase
83 {
84 
85  // Private data
86 
87  //- Radiation temperature field
88  scalarField Trad_;
89 
90 
91 public:
92 
93  //- Runtime type information
94  TypeName("MarshakRadiationFixedTemperature");
95 
96 
97  // Constructors
98 
99  //- Construct from patch and internal field
101  (
102  const fvPatch&,
104  );
105 
106  //- Construct from patch, internal field and dictionary
108  (
109  const fvPatch&,
111  const dictionary&
112  );
113 
114  //- Construct by mapping given MarshakRadiationFvPatchField onto a new
115  // patch
117  (
119  const fvPatch&,
121  const fvPatchFieldMapper&
122  );
123 
124  //- Construct as copy
126  (
128  );
129 
130  //- Construct as copy setting internal field reference
132  (
135  );
136 
137  //- Return a clone
138  virtual tmp<fvPatchField<scalar>> clone() const
139  {
140  return fvPatchField<scalar>::Clone(*this);
141  }
142 
143  //- Clone with an internal field reference
145  (
147  ) const
148  {
149  return fvPatchField<scalar>::Clone(*this, iF);
150  }
151 
152 
153  // Member functions
154 
155  // Access
156 
157  //- Return the radiation temperature
158  const scalarField& Trad() const
159  {
160  return Trad_;
161  }
162 
163  //- Return reference to the radiation temperature to allow
164  // adjustment
165  scalarField& Trad()
166  {
167  return Trad_;
168  }
170 
171  // Mapping functions
172 
173  //- Map (and resize as needed) from self given a mapping object
174  virtual void autoMap
175  (
176  const fvPatchFieldMapper&
177  );
178 
179  //- Reverse map the given fvPatchField onto this fvPatchField
180  virtual void rmap
181  (
182  const fvPatchScalarField&,
183  const labelList&
184  );
185 
186 
187  // Evaluation functions
188 
189  //- Update the coefficients associated with the patch field
190  virtual void updateCoeffs();
191 
192 
193  // I-O
195  //- Write
196  virtual void write(Ostream&) const;
197 };
198 
199 
200 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
201 
202 } // End namespace radiation
203 } // End namespace Foam
204 
205 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
206 
207 #endif
208 
209 // ************************************************************************* //
A list of keyword definitions, which are a keyword followed by a number of values (eg...
Definition: dictionary.H:129
virtual void autoMap(const fvPatchFieldMapper &)
Map (and resize as needed) from self given a mapping object.
virtual void rmap(const fvPatchScalarField &, const labelList &)
Reverse map the given fvPatchField onto this fvPatchField.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:70
MarshakRadiationFixedTemperatureFvPatchScalarField(const fvPatch &, const DimensionedField< scalar, volMesh > &)
Construct from patch and internal field.
static tmp< fvPatchField< Type > > Clone(const DerivedPatchField &pf, Args &&... args)
Clone a patch field, optionally with internal field reference etc.
Definition: fvPatchField.H:597
A FieldMapper for finite-volume patch fields.
TypeName("MarshakRadiationFixedTemperature")
Runtime type information.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
Definition: Ostream.H:56
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
A class for managing temporary objects.
Definition: HashPtrTable.H:50
autoPtr< radiation::radiationModel > radiation(radiation::radiationModel::New(T))
Namespace for OpenFOAM.