MarshakRadiationFixedTemperatureFvPatchScalarField.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration | Website: https://openfoam.org
5  \\ / A nd | Copyright (C) 2011-2023 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::MarshakRadiationFixedTemperatureFvPatchScalarField
26 
27 Description
28  A 'mixed' boundary condition that implements a Marshak condition for the
29  incident radiation field (usually written as G)
30 
31  The radiation temperature field across the patch is supplied by the user
32  using the \c Trad entry.
33 
34 Usage
35  \table
36  Property | Description | Required | Default value
37  T | temperature field name | no | T
38  \endtable
39 
40  Example of the boundary condition specification:
41  \verbatim
42  <patchName>
43  {
44  type MarshakRadiationFixedTemperature;
45  Trad uniform 1000; // radiation temperature field
46  value uniform 0; // place holder
47  }
48  \endverbatim
49 
50 See also
51  Foam::radiationCoupledBase
52  Foam::mixedFvPatchField
53 
54 SourceFiles
55  MarshakRadiationFixedTemperatureFvPatchScalarField.C
56 
57 \*---------------------------------------------------------------------------*/
58 
59 #ifndef MarshakRadiationFixedTemperatureFvPatchScalarField_H
60 #define MarshakRadiationFixedTemperatureFvPatchScalarField_H
61 
62 #include "mixedFvPatchFields.H"
63 #include "radiationCoupledBase.H"
64 
65 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
66 
67 namespace Foam
68 {
69 
70 /*---------------------------------------------------------------------------*\
71  Class MarshakRadiationFixedTemperatureFvPatchScalarField Declaration
72 \*---------------------------------------------------------------------------*/
73 
74 class MarshakRadiationFixedTemperatureFvPatchScalarField
75 :
76  public mixedFvPatchScalarField,
77  public radiationCoupledBase
78 {
79 
80  // Private Data
81 
82  //- Radiation temperature field
83  scalarField Trad_;
84 
85 
86 public:
87 
88  //- Runtime type information
89  TypeName("MarshakRadiationFixedTemperature");
90 
91 
92  // Constructors
93 
94  //- Construct from patch, internal field and dictionary
96  (
97  const fvPatch&,
99  const dictionary&
100  );
101 
102  //- Construct by mapping given MarshakRadiationFvPatchField onto a new
103  // patch
105  (
107  const fvPatch&,
109  const fvPatchFieldMapper&
110  );
111 
112  //- Disallow copy without setting internal field reference
114  (
116  ) = delete;
117 
118  //- Copy constructor setting internal field reference
120  (
123  );
124 
125  //- Construct and return a clone setting internal field reference
127  (
129  ) const
130  {
132  (
134  (
135  *this,
136  iF
137  )
138  );
139  }
140 
141 
142  // Member Functions
143 
144  // Access
145 
146  //- Return the radiation temperature
147  const scalarField& Trad() const
148  {
149  return Trad_;
150  }
151 
152  //- Return reference to the radiation temperature to allow
153  // adjustment
154  scalarField& Trad()
155  {
156  return Trad_;
157  }
158 
159 
160  // Mapping functions
161 
162  //- Map the given fvPatchField onto this fvPatchField
163  virtual void map
164  (
165  const fvPatchScalarField&,
166  const fvPatchFieldMapper&
167  );
168 
169  //- Reset the fvPatchField to the given fvPatchField
170  // Used for mesh to mesh mapping
171  virtual void reset(const fvPatchScalarField&);
172 
173 
174  // Evaluation functions
175 
176  //- Update the coefficients associated with the patch field
177  virtual void updateCoeffs();
178 
179 
180  // I-O
181 
182  //- Write
183  virtual void write(Ostream&) const;
184 };
185 
186 
187 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
188 
189 } // End namespace Foam
190 
191 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
192 
193 #endif
194 
195 // ************************************************************************* //
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
A 'mixed' boundary condition that implements a Marshak condition for the incident radiation field (us...
MarshakRadiationFixedTemperatureFvPatchScalarField(const fvPatch &, const DimensionedField< scalar, volMesh > &, const dictionary &)
Construct from patch, internal field and dictionary.
virtual void reset(const fvPatchScalarField &)
Reset the fvPatchField to the given fvPatchField.
virtual tmp< fvPatchScalarField > clone(const DimensionedField< scalar, volMesh > &iF) const
Construct and return a clone setting internal field reference.
TypeName("MarshakRadiationFixedTemperature")
Runtime type information.
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
virtual void map(const fvPatchScalarField &, const fvPatchFieldMapper &)
Map the given fvPatchField onto this fvPatchField.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Definition: Ostream.H:57
A list of keyword definitions, which are a keyword followed by any number of values (e....
Definition: dictionary.H:160
Foam::fvPatchFieldMapper.
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
Definition: fvPatchField.H:87
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:64
A class for managing temporary objects.
Definition: tmp.H:55
Namespace for OpenFOAM.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.