oversetFvPatchField.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 OpenCFD 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::oversetFvPatchField
28 
29 Group
30  grpCoupledBoundaryConditions
31 
32 Description
33  Boundary condition for use on overset patches. To be run in combination
34  with special dynamicFvMesh type that inserts interpolation into the matrix.
35 
36 SourceFiles
37  oversetFvPatchField.C
38 
39 \*---------------------------------------------------------------------------*/
40 
41 #ifndef oversetFvPatchField_H
42 #define oversetFvPatchField_H
43 
44 #include "oversetFvPatch.H"
46 
47 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
48 
49 namespace Foam
50 {
51 
52 /*---------------------------------------------------------------------------*\
53  Class oversetFvPatchField Declaration
54 \*---------------------------------------------------------------------------*/
55 
56 template<class Type>
58 :
59  public zeroGradientFvPatchField<Type>
60 {
61 protected:
62 
63  // Protected data
64 
65  //- Local reference cast into the overset patch
67 
68  //- Master patch ID
69  mutable label masterPatchID_;
70 
71 
72 public:
73 
74  //- Runtime type information
75  TypeName(oversetFvPatch::typeName_());
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  );
94 
95  //- Construct by mapping given oversetFvPatchField onto a new patch
97  (
99  const fvPatch&,
101  const fvPatchFieldMapper&
102  );
103 
104  //- Construct as copy
106 
107  //- Construct and return a clone
108  virtual tmp<fvPatchField<Type>> clone() const
109  {
110  return tmp<fvPatchField<Type>>
111  (
112  new oversetFvPatchField<Type>(*this)
113  );
114  }
115 
116  //- Construct as copy setting internal field reference
118  (
121  );
122 
123  //- Construct and return a clone setting internal field reference
125  (
127  ) const
128  {
129  return tmp<fvPatchField<Type>>
130  (
131  new oversetFvPatchField<Type>(*this, iF)
132  );
133  }
134 
135 
136  // Member functions
137 
138  // Evaluation functions
139 
140  //- Initialise the evaluation of the patch field
141  virtual void initEvaluate(const Pstream::commsTypes commsType);
142 
143  // I-O
144 
145  //- Write
146  virtual void write(Ostream& os) const;
147 };
148 
149 
150 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
151 
152 } // End namespace Foam
153 
154 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
155 
156 #ifdef NoRepository
157 # include "oversetFvPatchField.C"
158 #endif
159 
160 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
161 
162 #endif
163 
164 // ************************************************************************* //
Foam::oversetFvPatchField::masterPatchID_
label masterPatchID_
Master patch ID.
Definition: oversetFvPatchField.H:68
Foam::oversetFvPatchField::TypeName
TypeName(oversetFvPatch::typeName_())
Runtime type information.
Foam::tmp
A class for managing temporary objects.
Definition: PtrList.H:59
zeroGradientFvPatchField.H
Foam::oversetFvPatchField::oversetFvPatchField
oversetFvPatchField(const fvPatch &, const DimensionedField< Type, volMesh > &)
Construct from patch and internal field.
Definition: oversetFvPatchField.C:37
Foam::zeroGradientFvPatchField
This boundary condition applies a zero-gradient condition from the patch internal field onto the patc...
Definition: zeroGradientFvPatchField.H:64
Foam::oversetFvPatchField::write
virtual void write(Ostream &os) const
Write.
Definition: oversetFvPatchField.C:222
Foam::oversetFvPatchField::clone
virtual tmp< fvPatchField< Type > > clone() const
Construct and return a clone.
Definition: oversetFvPatchField.H:107
Foam::oversetFvPatchField::oversetPatch_
const oversetFvPatch & oversetPatch_
Local reference cast into the overset patch.
Definition: oversetFvPatchField.H:65
Foam::fvPatch
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:65
Foam::dictionary
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:121
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
oversetFvPatchField.C
Foam::UPstream::commsTypes
commsTypes
Types of communications.
Definition: UPstream.H:66
Foam::oversetFvPatch
Patch for indicating interpolated boundaries (in overset meshes).
Definition: oversetFvPatch.H:52
oversetFvPatch.H
Foam::oversetFvPatchField
Boundary condition for use on overset patches. To be run in combination with special dynamicFvMesh ty...
Definition: oversetFvPatchField.H:56
Foam::fvPatchFieldMapper
Foam::fvPatchFieldMapper.
Definition: fvPatchFieldMapper.H:47
Foam::Ostream
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Definition: Ostream.H:56
Foam::oversetFvPatchField::initEvaluate
virtual void initEvaluate(const Pstream::commsTypes commsType)
Initialise the evaluation of the patch field.
Definition: oversetFvPatchField.C:101
Foam::DimensionedField
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Definition: DimensionedField.H:54