emptyLagrangianPatchField.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::emptyLagrangianPatchField
26 
27 Description
28  An empty boundary condition for Lagrangian. This is used for the patches
29  that have normals that point outside of the space of the reduced
30  dimensionality; e.g., the front and back planes of a two-dimensional slab.
31 
32  This operates in a manner identical to a symmetry condition. Properties are
33  transformed to represent an identical element entering the domain with an
34  opposite normal velocity and other vector and tensor quantities
35  transformed.
36 
37  Whether or not this is actually used is a matter for the cloud model. If
38  the cloud model is also of reduced dimensionality and only moves in the
39  two-dimensional plane or the one-dimensional line, then the elements will
40  never track into the empty patches and this condition will never be used.
41  If, on the other hand, the cloud model is still considered
42  three-dimensional even when the Eulerian modelling is of reduced
43  dimensionality, then the empty patches will be interacted with and this
44  condition will be used.
45 
46 Usage
47  Example specification:
48  \verbatim
49  <LagrangianPatchName>
50  {
51  type empty;
52  }
53  \endverbatim
54 
55 SourceFiles
56  emptyLagrangianPatchField.C
57 
58 \*---------------------------------------------------------------------------*/
59 
60 #ifndef emptyLagrangianPatchField_H
61 #define emptyLagrangianPatchField_H
62 
63 #include "LagrangianPatchField.H"
64 
65 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
66 
67 namespace Foam
68 {
69 
70 /*---------------------------------------------------------------------------*\
71  Class emptyLagrangianPatchField Declaration
72 \*---------------------------------------------------------------------------*/
73 
74 template<class Type>
76 :
77  public LagrangianPatchField<Type>
78 {
79 
80 public:
81 
82  //- Runtime type information
83  TypeName("empty");
84 
85 
86  // Constructors
87 
88  //- Construct from patch and internal field
90  (
91  const LagrangianPatch&,
92  const regIOobject&
93  );
94 
95  //- Construct from patch, internal field and dictionary
97  (
98  const LagrangianPatch&,
99  const regIOobject&,
100  const dictionary&
101  );
102 
103  //- Construct as copy
105  (
107  );
108 
109  //- Construct as copy setting the internal field reference
111  (
113  const regIOobject&
114  );
115 
116  //- Construct and return a clone
118  {
120  (
122  (
123  *this
124  )
125  );
126  }
127 
128  //- Construct and return a clone setting the internal field reference
130  (
131  const regIOobject& iIo
132  ) const
133  {
135  (
137  (
138  *this,
139  iIo
140  )
141  );
142  }
143 
144 
145  // Member Functions
146 
147  //- Evaluate the patch field
148  virtual void evaluate
149  (
152  );
153 };
154 
155 
156 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
157 
158 } // End namespace Foam
159 
160 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
161 
162 #ifdef NoRepository
163  #include "emptyLagrangianPatchField.C"
164 #endif
165 
166 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
167 
168 #endif
169 
170 // ************************************************************************* //
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Base class for Lagrangian boundary conditions.
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
An empty boundary condition for Lagrangian. This is used for the patches that have normals that point...
TypeName("empty")
Runtime type information.
virtual autoPtr< LagrangianPatchField< Type > > clone() const
Construct and return a clone.
emptyLagrangianPatchField(const LagrangianPatch &, const regIOobject &)
Construct from patch and internal field.
virtual void evaluate(PstreamBuffers &, const LagrangianScalarInternalDynamicField &fraction)
Evaluate the patch field.
regIOobject is an abstract class derived from IOobject to handle automatic object registration with t...
Definition: regIOobject.H:55
Namespace for OpenFOAM.