processorLagrangianPatch.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::processorLagrangianPatch
26 
27 Description
28  Processor Lagrangian patch. This is used for the patches that interface
29  between processors across faces that are internal to the complete mesh.
30 
31  with a co-located patch on another process.
32 
33 SourceFiles
34  processorLagrangianPatch.C
35 
36 \*---------------------------------------------------------------------------*/
37 
38 #ifndef processorLagrangianPatch_H
39 #define processorLagrangianPatch_H
40 
41 #include "LagrangianPatch.H"
42 #include "processorPolyPatch.H"
43 
44 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
45 
46 namespace Foam
47 {
48 
49 /*---------------------------------------------------------------------------*\
50  Class processorLagrangianPatch Declaration
51 \*---------------------------------------------------------------------------*/
52 
54 :
55  public LagrangianPatch
56 {
57 private:
58 
59  // Private Data
60 
61  //- Reference to the processor poly patch
62  const processorPolyPatch& processorPatch_;
63 
64 
65 protected:
66 
67  // Protected Data
68 
69  //- The sub-mesh used to append received data
71 
72 
73 public:
74 
75  //- Runtime type information
76  TypeName(processorPolyPatch::typeName_());
77 
78 
79  // Constructors
80 
81  //- Construct from a patch and a boundary mesh
83  (
84  const polyPatch&,
86  );
87 
88 
89  //- Destructor
90  virtual ~processorLagrangianPatch();
91 
92 
93  // Member Functions
94 
95  //- Return the processor patch
96  const processorPolyPatch& processorPatch() const
97  {
98  return processorPatch_;
99  }
100 
101  //- Return the sub-mesh associated with this patch
102  virtual const LagrangianSubMesh& mesh() const;
103 
104  //- Initialise evaluation of changes in elements that have tracked to
105  // this patch
106  virtual void initEvaluate
107  (
111  ) const;
112 
113  //- Evaluate changes in elements that have tracked to this patch
114  virtual void evaluate
115  (
119  ) const;
120 
121  //- Update following partitioning of the mesh
122  virtual void partition() const;
123 };
124 
125 
126 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
127 
128 } // End namespace Foam
129 
130 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
131 
132 #endif
133 
134 // ************************************************************************* //
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Boundary part of a Lagrangian mesh. Just a list of Lagrangian patches with some added convenience fun...
Class containing Lagrangian geometry and topology.
Base class for Lagrangian patches.
Mesh that relates to a sub-section of a Lagrangian mesh. This is used to construct fields that relate...
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 patch is a list of labels that address the faces in the global face list.
Definition: polyPatch.H:70
Processor Lagrangian patch. This is used for the patches that interface between processors across fac...
processorLagrangianPatch(const polyPatch &, const LagrangianBoundaryMesh &)
Construct from a patch and a boundary mesh.
autoPtr< LagrangianSubMesh > receiveMeshPtr_
The sub-mesh used to append received data.
virtual void initEvaluate(PstreamBuffers &, LagrangianMesh &, const LagrangianScalarInternalDynamicField &fraction) const
Initialise evaluation of changes in elements that have tracked to.
TypeName(processorPolyPatch::typeName_())
Runtime type information.
virtual void partition() const
Update following partitioning of the mesh.
const processorPolyPatch & processorPatch() const
Return the processor patch.
virtual void evaluate(PstreamBuffers &, LagrangianMesh &, const LagrangianScalarInternalDynamicField &fraction) const
Evaluate changes in elements that have tracked to this patch.
virtual const LagrangianSubMesh & mesh() const
Return the sub-mesh associated with this patch.
virtual ~processorLagrangianPatch()
Destructor.
Neighbour processor patch.
Namespace for OpenFOAM.