transformFaPatchField.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) 2016-2017 Wikki Ltd
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::transformFaPatchField
28 
29 Description
30 
31 Author
32  Zeljko Tukovic, FMENA
33  Hrvoje Jasak, Wikki Ltd.
34 
35 SourceFiles
36  transformFaPatchField.C
37 
38 \*---------------------------------------------------------------------------*/
39 
40 #ifndef transformFaPatchField_H
41 #define transformFaPatchField_H
42 
43 #include "faPatchField.H"
44 #include "areaFaMesh.H"
45 
46 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
47 
48 namespace Foam
49 {
50 
51 /*---------------------------------------------------------------------------*\
52  Class transformFaPatch Declaration
53 \*---------------------------------------------------------------------------*/
54 
55 template<class Type>
57 :
58  public faPatchField<Type>
59 {
60 
61 public:
62 
63  //- Runtime type information
64  TypeName("transform");
65 
66 
67  // Constructors
68 
69  //- Construct from patch and internal field
71  (
72  const faPatch&,
74  );
75 
76  //- Construct from patch, internal field and dictionary.
77  // The "value" entry: NO_READ
79  (
80  const faPatch&,
82  const dictionary&
83  );
84 
85  //- Construct by mapping the given transform patch field
86  //- onto a new patch
88  (
90  const faPatch&,
92  const faPatchFieldMapper&
93  );
94 
95  //- Construct as copy setting internal field reference
97  (
100  );
101 
102  //- Return clone
103  virtual tmp<faPatchField<Type>> clone() const = 0;
104 
105  //- Construct and return a clone setting internal field reference
107  (
109  ) const = 0;
110 
111 
112  // Member functions
113 
114  // Evaluation functions
115 
116  //- Return gradient at boundary
117  virtual tmp<Field<Type>> snGrad() const = 0;
118 
119  //- Return face-gradient transform diagonal
120  virtual tmp<Field<Type>> snGradTransformDiag() const = 0;
121 
122  //- Return the matrix diagonal coefficients corresponding to the
123  // evaluation of the value of this patchField with given weights
125  (
126  const tmp<scalarField>&
127  ) const;
128 
129  //- Return the matrix source coefficients corresponding to the
130  // evaluation of the value of this patchField with given weights
132  (
133  const tmp<scalarField>&
134  ) const;
135 
136  //- Return the matrix diagonal coefficients corresponding to the
137  // evaluation of the gradient of this patchField
138  virtual tmp<Field<Type>> gradientInternalCoeffs() const;
139 
140  //- Return the matrix source coefficients corresponding to the
141  // evaluation of the gradient of this patchField
142  virtual tmp<Field<Type>> gradientBoundaryCoeffs() const;
143 
144 
145  // Member operators
146 
147  virtual void operator=(const faPatchField<Type>&);
148 };
149 
150 
151 // * * * * * * * * * * * Template Specialisations * * * * * * * * * * * * * //
152 
153 template<>
155 
156 
157 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
158 
159 } // End namespace Foam
160 
161 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
162 
163 #ifdef NoRepository
164  #include "transformFaPatchField.C"
165 #endif
166 
167 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
168 
169 #endif
170 
171 // ************************************************************************* //
virtual tmp< Field< Type > > valueInternalCoeffs(const tmp< scalarField > &) const
Return the matrix diagonal coefficients corresponding to the.
A list of keyword definitions, which are a keyword followed by a number of values (eg...
Definition: dictionary.H:129
virtual tmp< Field< Type > > gradientBoundaryCoeffs() const
Return the matrix source coefficients corresponding to the.
faPatchField<Type> abstract base class. This class gives a fat-interface to all derived classes cover...
Definition: areaFieldsFwd.H:46
virtual tmp< faPatchField< Type > > clone() const =0
Return clone.
virtual tmp< Field< Type > > snGradTransformDiag() const =0
Return face-gradient transform diagonal.
virtual void operator=(const faPatchField< Type > &)
Finite area patch class. Used for 2-D non-Euclidian finite area method.
Definition: faPatch.H:72
TypeName("transform")
Runtime type information.
virtual tmp< Field< Type > > valueBoundaryCoeffs(const tmp< scalarField > &) const
Return the matrix source coefficients corresponding to the.
transformFaPatchField(const faPatch &, const DimensionedField< Type, areaMesh > &)
Construct from patch and internal field.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Author Zeljko Tukovic, FMENA Hrvoje Jasak, Wikki Ltd.
A class for managing temporary objects.
Definition: HashPtrTable.H:50
A FieldMapper for finite-area patch fields.
virtual tmp< Field< Type > > snGrad() const =0
Return gradient at boundary.
Namespace for OpenFOAM.
virtual tmp< Field< Type > > gradientInternalCoeffs() const
Return the matrix diagonal coefficients corresponding to the.