processorCyclicLagrangianPatchField.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) 2025 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::processorCyclicLagrangianPatchField
26 
27 Description
28  A processorCyclic boundary condition for Lagrangian. Properties are
29  communicated to and from the neighbour patch and are transformed by the
30  transformation of the associated cyclic patch.
31 
32 Usage
33  Example specification:
34  \verbatim
35  <LagrangianPatchName>
36  {
37  type processorCyclic;
38  }
39  \endverbatim
40 
41 SourceFiles
42  processorCyclicLagrangianPatchField.C
43 
44 \*---------------------------------------------------------------------------*/
45 
46 #ifndef processorCyclicLagrangianPatchField_H
47 #define processorCyclicLagrangianPatchField_H
48 
51 
52 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
53 
54 namespace Foam
55 {
56 
57 /*---------------------------------------------------------------------------*\
58  Class processorCyclicLagrangianPatchField Declaration
59 \*---------------------------------------------------------------------------*/
60 
61 template<class Type>
63 :
65 {
66 private:
67 
68  // Private Data
69 
70  //- Reference to the processorCyclic patch
71  const processorCyclicLagrangianPatch& processorCyclicPatch_;
72 
73 
74 public:
75 
76  //- Runtime type information
77  TypeName("processorCyclic");
78 
79 
80  // Constructors
81 
82  //- Construct from patch and internal field
84  (
85  const LagrangianPatch&,
86  const regIOobject&
87  );
88 
89  //- Construct from patch, internal field and dictionary
91  (
92  const LagrangianPatch&,
93  const regIOobject&,
94  const dictionary&
95  );
96 
97  //- Construct as copy
99  (
101  );
102 
103  //- Construct as copy setting the internal field reference
105  (
107  const regIOobject&
108  );
109 
110  //- Construct as copy setting the patch and the internal field reference
112  (
114  const LagrangianPatch&,
115  const regIOobject&
116  );
117 
118  //- Construct and return a clone
120  {
122  (
124  (
125  *this
126  )
127  );
128  }
129 
130  //- Construct and return a clone setting the internal field reference
132  (
133  const regIOobject& iIo
134  ) const
135  {
137  (
139  (
140  *this,
141  iIo
142  )
143  );
144  }
145 
146  //- Construct and return a clone onto a new patch
147  // and setting the internal field reference
149  (
150  const LagrangianPatch& p,
151  const regIOobject& iIo
152  ) const
153  {
155  (
157  (
158  *this,
159  p,
160  iIo
161  )
162  );
163  }
164 
165 
166  // Member Functions
167 
168  //- Evaluate the patch field
169  virtual void evaluate
170  (
173  );
174 };
175 
176 
177 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
178 
179 } // End namespace Foam
180 
181 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
182 
183 #ifdef NoRepository
185 #endif
186 
187 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
188 
189 #endif
190 
191 // ************************************************************************* //
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Base class for Lagrangian patches.
Buffers for inter-processor communications streams (UOPstream, UIPstream).
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
Definition: autoPtr.H:51
A list of keywords followed by any number of values (e.g. words and numbers) or sub-dictionaries.
Definition: dictionary.H:162
A processorCyclic boundary condition for Lagrangian. Properties are communicated to and from the neig...
TypeName("processorCyclic")
Runtime type information.
processorCyclicLagrangianPatchField(const LagrangianPatch &, const regIOobject &)
Construct from patch and internal field.
virtual autoPtr< LagrangianPatchField< Type > > clone() const
Construct and return a clone.
virtual void evaluate(PstreamBuffers &, const LagrangianScalarInternalDynamicField &fraction)
Evaluate the patch field.
Processor-cyclic Lagrangian patch. This is used for the patches that interface between processors acr...
A processor boundary condition for Lagrangian. Properties are communicated to and from the neighbour ...
regIOobject is an abstract class derived from IOobject to handle automatic object registration with t...
Definition: regIOobject.H:55
Namespace for OpenFOAM.
volScalarField & p