calculatedFvPatchField.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-2020 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::calculatedFvPatchField
26 
27 Description
28  This boundary condition is not designed to be evaluated; it is assumed
29  that the value is assigned via field assignment, and not via a call to
30  e.g. \c updateCoeffs or \c evaluate.
31 
32 Usage
33  Example of the boundary condition specification:
34  \verbatim
35  <patchName>
36  {
37  type calculated;
38  value uniform (0 0 0); // Required value entry
39  }
40  \endverbatim
41 
42 SourceFiles
43  calculatedFvPatchField.C
44 
45 \*---------------------------------------------------------------------------*/
46 
47 #ifndef calculatedFvPatchField_H
48 #define calculatedFvPatchField_H
49 
50 #include "fvPatchField.H"
51 
52 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
53 
54 namespace Foam
55 {
56 
57 /*---------------------------------------------------------------------------*\
58  Class calculatedFvPatchField Declaration
59 \*---------------------------------------------------------------------------*/
60 
61 template<class Type>
63 :
64  public fvPatchField<Type>
65 {
66 
67 public:
68 
69  //- Runtime type information
70  TypeName("calculated");
71 
72 
73  // Constructors
74 
75  //- Construct from patch and internal field
77  (
78  const fvPatch&,
80  );
81 
82  //- Construct from patch, internal field and dictionary
84  (
85  const fvPatch&,
87  const dictionary&,
88  const bool valueRequired=true
89  );
90 
91  //- Construct by mapping given patchField<Type> onto a new patch
93  (
95  const fvPatch&,
97  const fvPatchFieldMapper&,
98  const bool mappingRequired=true
99  );
100 
101  //- Disallow copy without setting internal field reference
103 
104  //- Copy constructor setting internal field reference
106  (
109  );
110 
111  //- Construct and return a clone setting internal field reference
113  (
115  ) const
116  {
117  return tmp<fvPatchField<Type>>
118  (
119  new calculatedFvPatchField<Type>(*this, iF)
120  );
121  }
122 
123 
124  // Member Functions
125 
126  // Evaluation functions
127 
128  //- Return the matrix diagonal coefficients corresponding to the
129  // evaluation of the value of this patchField with given weights
131  (
132  const tmp<scalarField>&
133  ) const;
134 
135  //- Return the matrix source coefficients corresponding to the
136  // evaluation of the value of this patchField with given weights
138  (
139  const tmp<scalarField>&
140  ) const;
141 
142  //- Return the matrix diagonal coefficients corresponding to the
143  // evaluation of the gradient of this patchField
145 
146  //- Return the matrix source coefficients corresponding to the
147  // evaluation of the gradient of this patchField
149 
150 
151  //- Write
152  virtual void write(Ostream&) const;
153 };
154 
155 
156 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
157 
158 } // End namespace Foam
159 
160 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
161 
162 #ifdef NoRepository
163  #include "calculatedFvPatchField.C"
164 #endif
165 
166 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
167 
168 #endif
169 
170 // ************************************************************************* //
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Definition: Ostream.H:57
This boundary condition is not designed to be evaluated; it is assumed that the value is assigned via...
calculatedFvPatchField(const fvPatch &, const DimensionedField< Type, volMesh > &)
Construct from patch and internal field.
virtual void write(Ostream &) const
Write.
tmp< Field< Type > > gradientInternalCoeffs() const
Return the matrix diagonal coefficients corresponding to the.
virtual tmp< Field< Type > > valueInternalCoeffs(const tmp< scalarField > &) const
Return the matrix diagonal coefficients corresponding to the.
tmp< Field< Type > > gradientBoundaryCoeffs() const
Return the matrix source coefficients corresponding to the.
virtual tmp< Field< Type > > valueBoundaryCoeffs(const tmp< scalarField > &) const
Return the matrix source coefficients corresponding to the.
TypeName("calculated")
Runtime type information.
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
tmp< fvPatchField< Type > > clone() const
Disallow clone without setting internal field reference.
Definition: fvPatchField.H:203
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.