cyclicRepeatAMIFvPatchField.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) 2018-2019 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::cyclicRepeatAMIFvPatchField
26 
27 Description
28  This boundary condition enforces an repeating condition between a pair of
29  boundaries, whereby communication between the patches is performed using
30  an arbitrary mesh interface (AMI) interpolation.
31 
32 Usage
33  Example of the boundary condition specification:
34  \verbatim
35  <patchName>
36  {
37  type cyclicRepeatAMI;
38  }
39  \endverbatim
40 
41 Note
42  The outer boundary of the patch pairs must be similar, i.e. if the owner
43  patch is transformed to the neighbour patch, the outer perimeter of each
44  patch should be identical (or very similar).
45 
46 See also
47  Foam::AMIInterpolation
48 
49 SourceFiles
50  cyclicRepeatAMIFvPatchField.C
51 
52 \*---------------------------------------------------------------------------*/
53 
54 #ifndef cyclicRepeatAMIFvPatchField_H
55 #define cyclicRepeatAMIFvPatchField_H
56 
57 #include "cyclicAMIFvPatchField.H"
58 #include "cyclicRepeatAMIFvPatch.H"
59 
60 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
61 
62 namespace Foam
63 {
64 
65 /*---------------------------------------------------------------------------*\
66  Class cyclicRepeatAMIFvPatchField Declaration
67 \*---------------------------------------------------------------------------*/
68 
69 template<class Type>
71 :
72  public cyclicAMIFvPatchField<Type>
73 {
74 public:
75 
76  //- Runtime type information
77  TypeName(cyclicRepeatAMIFvPatch::typeName_());
78 
79 
80  // Constructors
81 
82  //- Inherit parent constructors
84 
85  //- Construct and return a clone
86  virtual tmp<fvPatchField<Type>> clone() const
87  {
89  (
91  );
92  }
93 
94  //- Construct and return a clone setting internal field reference
96  (
98  ) const
99  {
100  return tmp<fvPatchField<Type>>
101  (
102  new cyclicRepeatAMIFvPatchField<Type>(*this, iF)
103  );
104  }
105 };
106 
107 
108 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
109 
110 } // End namespace Foam
111 
112 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
113 
114 #endif
115 
116 // ************************************************************************* //
This boundary condition enforces an repeating condition between a pair of boundaries, whereby communication between the patches is performed using an arbitrary mesh interface (AMI) interpolation.
virtual tmp< fvPatchField< Type > > clone() const
Construct and return a clone.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
TypeName(cyclicRepeatAMIFvPatch::typeName_())
Runtime type information.
A class for managing temporary objects.
Definition: PtrList.H:53
This boundary condition enforces a cyclic condition between a pair of boundaries, whereby communicati...
Namespace for OpenFOAM.