basicSymmetryFaPatchField.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::basicSymmetryFaPatchField
28 
29 Description
30  A symmetry patch
31 
32 Author
33  Zeljko Tukovic, FMENA
34  Hrvoje Jasak, Wikki Ltd.
35 
36 SourceFiles
37  basicSymmetryFaPatchField.C
38 
39 \*---------------------------------------------------------------------------*/
40 
41 #ifndef basicSymmetryFaPatchField_H
42 #define basicSymmetryFaPatchField_H
43 
44 #include "transformFaPatchField.H"
45 #include "symmetryFaPatch.H"
46 
47 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
48 
49 namespace Foam
50 {
51 
52 /*---------------------------------------------------------------------------*\
53  Class basicSymmetryFaPatchField Declaration
54 \*---------------------------------------------------------------------------*/
55 
56 template<class Type>
58 :
59  public transformFaPatchField<Type>
60 {
61 
62 public:
63 
64  // Constructors
65 
66  //- Construct from patch and internal field
68  (
69  const faPatch&,
71  );
72 
73  //- Construct from patch, internal field and dictionary
74  // The "value" entry: NO_READ
76  (
77  const faPatch&,
79  const dictionary&
80  );
81 
82  //- Construct by mapping given basicSymmetryFaPatchField
83  //- onto a new patch
85  (
87  const faPatch&,
89  const faPatchFieldMapper&
90  );
91 
92  //- Construct as copy
94  (
96  );
97 
98  //- Construct as copy setting internal field reference
100  (
103  );
104 
105  //- Return clone
106  virtual tmp<faPatchField<Type>> clone() const
107  {
108  return faPatchField<Type>::Clone(*this);
109  }
110 
111  //- Clone with an internal field reference
113  (
115  ) const
116  {
117  return faPatchField<Type>::Clone(*this, iF);
118  }
119 
120 
121  // Member Functions
122 
123  // Evaluation functions
124 
125  //- Return gradient at boundary
126  virtual tmp<Field<Type>> snGrad() const;
127 
128  //- Evaluate the patch field
129  // Default argument needed to allow call in constructors
130  // HJ, 30/Jun/2009
131  virtual void evaluate
132  (
134  );
135 
136  //- Return face-gradient transform diagonal
137  virtual tmp<Field<Type>> snGradTransformDiag() const;
138 
139 
140  // Member Operators
141 
142  //- Inherit assignment operators
144 };
145 
146 
147 // * * * * * * * * * * * Template Specialisations * * * * * * * * * * * * * //
148 
149 template<>
151 
152 template<>
154 (
155  const Pstream::commsTypes commsType
156 );
157 
158 
159 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
160 
161 } // End namespace Foam
162 
163 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
164 
165 #ifdef NoRepository
166  #include "basicSymmetryFaPatchField.C"
167 #endif
168 
169 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
170 
171 #endif
172 
173 // ************************************************************************* //
virtual tmp< faPatchField< Type > > clone() const
Return clone.
commsTypes
Communications types.
Definition: UPstream.H:77
A list of keyword definitions, which are a keyword followed by a number of values (eg...
Definition: dictionary.H:129
virtual tmp< Field< Type > > snGradTransformDiag() const
Return face-gradient transform diagonal.
virtual void evaluate(const Pstream::commsTypes commsType=Pstream::commsTypes::buffered)
Evaluate the patch field.
static tmp< faPatchField< Type > > Clone(const DerivedPatchField &pf)
Clone a patch field with its own internal field reference.
Definition: faPatchField.H:513
Finite area patch class. Used for 2-D non-Euclidian finite area method.
Definition: faPatch.H:72
basicSymmetryFaPatchField(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
"buffered" : (MPI_Bsend, MPI_Recv)
A FieldMapper for finite-area patch fields.
Namespace for OpenFOAM.
virtual tmp< Field< Type > > snGrad() const
Return gradient at boundary.