calculatedFvPatchField.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-------------------------------------------------------------------------------
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
26Class
27 Foam::calculatedFvPatchField
28
29Group
30 grpGenericBoundaryConditions
31
32Description
33 This boundary condition is not designed to be evaluated; it is assmued
34 that the value is assigned via field assignment, and not via a call to
35 e.g. \c updateCoeffs or \c evaluate.
36
37Usage
38 Example of the boundary condition specification:
39 \verbatim
40 <patchName>
41 {
42 type calculated;
43 value uniform (0 0 0); // Required value entry
44 }
45 \endverbatim
46
47SourceFiles
48 calculatedFvPatchField.C
49
50\*---------------------------------------------------------------------------*/
51
52#ifndef calculatedFvPatchField_H
53#define calculatedFvPatchField_H
54
55#include "fvPatchField.H"
56
57// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
58
59namespace Foam
60{
61
62/*---------------------------------------------------------------------------*\
63 Class calculatedFvPatchField Declaration
64\*---------------------------------------------------------------------------*/
65
66template<class Type>
68:
69 public fvPatchField<Type>
70{
71
72public:
73
74 //- Runtime type information
75 TypeName("calculated");
76
77
78 // Constructors
79
80 //- Construct from patch and internal field
82 (
83 const fvPatch&,
85 );
86
87 //- Construct from patch, internal field and dictionary
89 (
90 const fvPatch&,
92 const dictionary&,
93 const bool valueRequired=true
94 );
95
96 //- Construct by mapping given patchField<Type> onto a new patch
98 (
100 const fvPatch&,
102 const fvPatchFieldMapper&
103 );
104
105 //- Construct as copy
107 (
109 );
110
111 //- Construct and return a clone
112 virtual tmp<fvPatchField<Type>> clone() const
113 {
115 (
117 );
118 }
119
120 //- Construct as copy setting internal field reference
122 (
125 );
126
127 //- Construct and return a clone setting internal field reference
129 (
131 ) const
132 {
134 (
135 new calculatedFvPatchField<Type>(*this, iF)
136 );
137 }
138
139
140 // Member functions
141
142 // Attributes
143
144 //- Return true if this patch field fixes a value.
145 // Needed to check if a level has to be specified while solving
146 // Poissons equations.
147 virtual bool fixesValue() const
148 {
149 return true;
150 }
151
152
153 // Evaluation functions
154
155 //- Return the matrix diagonal coefficients corresponding to the
156 // evaluation of the value of this patchField with given weights
158 (
159 const tmp<scalarField>&
160 ) const;
161
162 //- Return the matrix source coefficients corresponding to the
163 // evaluation of the value of this patchField with given weights
165 (
166 const tmp<scalarField>&
167 ) const;
168
169 //- Return the matrix diagonal coefficients corresponding to the
170 // evaluation of the gradient of this patchField
172
173 //- Return the matrix source coefficients corresponding to the
174 // evaluation of the gradient of this patchField
176
177
178 //- Write
179 virtual void write(Ostream&) const;
180};
181
182
183// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
184
185} // End namespace Foam
186
187// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
188
189#ifdef NoRepository
190 #include "calculatedFvPatchField.C"
191#endif
192
193// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
194
195#endif
196
197// ************************************************************************* //
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:62
This boundary condition is not designed to be evaluated; it is assmued that the value is assigned via...
virtual bool fixesValue() const
Return true if this patch field fixes a value.
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.
virtual tmp< fvPatchField< Type > > clone() const
Construct and return a clone.
TypeName("calculated")
Runtime type information.
virtual tmp< fvPatchField< Type > > clone(const DimensionedField< Type, volMesh > &iF) const
Construct and return a clone setting internal field reference.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:126
A FieldMapper for finite-volume patch fields.
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
Definition: fvPatchField.H:82
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:71
A class for managing temporary objects.
Definition: tmp.H:65
Namespace for OpenFOAM.
runTime write()
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.
Definition: typeInfo.H:73