lagrangianReconstructor.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) 2011-2016 OpenFOAM Foundation
9  Copyright (C) 2018-2022 OpenCFD Ltd.
10 -------------------------------------------------------------------------------
11 License
12  This file is part of OpenFOAM.
13 
14  OpenFOAM is free software: you can redistribute it and/or modify it
15  under the terms of the GNU General Public License as published by
16  the Free Software Foundation, either version 3 of the License, or
17  (at your option) any later version.
18 
19  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
20  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
21  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
22  for more details.
23 
24  You should have received a copy of the GNU General Public License
25  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
26 
27 Class
28  Foam::lagrangianReconstructor
29 
30 Description
31  Reconstructor for lagrangian positions and fields
32 
33 SourceFiles
34  lagrangianReconstructor.C
35  lagrangianReconstructorTemplates.C
36 
37 \*---------------------------------------------------------------------------*/
38 
39 #ifndef Foam_lagrangianReconstructor_H
40 #define Foam_lagrangianReconstructor_H
41 
42 #include "cloud.H"
43 #include "polyMesh.H"
44 #include "IOobjectList.H"
45 #include "CompactIOField.H"
46 #include "fvMesh.H"
47 
48 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
49 
50 namespace Foam
51 {
52 
53 /*---------------------------------------------------------------------------*\
54  Class lagrangianReconstructor Declaration
55 \*---------------------------------------------------------------------------*/
56 
58 {
59  // Private Data
60 
61  //- Mesh reference
62  const fvMesh& mesh_;
63 
64  //- List of processor meshes
65  const PtrList<fvMesh>& procMeshes_;
66 
67  //- List of processor face addressing lists
68  const PtrList<labelIOList>& faceProcAddressing_;
69 
70  //- List of processor cell addressing lists
71  const PtrList<labelIOList>& cellProcAddressing_;
72 
73 
74  // Private Member Functions
75 
76  //- No copy construct
78 
79  //- No copy assignment
80  void operator=(const lagrangianReconstructor&) = delete;
81 
82 
83 public:
84 
85  // Static Data
86 
87  //- Output verbosity when writing
88  static int verbose_;
89 
90 
91  // Constructors
92 
93  //- Construct from components
95  (
96  const fvMesh& mesh,
97  const PtrList<fvMesh>& procMeshes,
98  const PtrList<labelIOList>& faceProcAddressing,
99  const PtrList<labelIOList>& cellProcAddressing
100  );
101 
102 
103  // Member Functions
104 
105  //- Reconstruct positions for given cloud
106  label reconstructPositions(const word& cloudName) const;
107 
108  //- Reconstruct a single field for given cloud
109  template<class Type>
112  (
113  const word& cloudName,
114  const word& fieldName
115  );
116 
117  //- Reconstruct a single field-field for given cloud
118  template<class Type>
121  (
122  const word& cloudName,
123  const word& fieldName
124  );
125 
126  //- Reconstruct multiple fields for given cloud
127  template<class Type>
128  label reconstructFields
129  (
130  const word& cloudName,
131  const UPtrList<const IOobject>& fieldObjects
132  );
133 
134  //- Reconstruct multiple fields for given cloud
135  template<class Type>
136  label reconstructFields
137  (
138  const word& cloudName,
139  const IOobjectList& objects,
140  const wordRes& selectedFields = wordRes()
141  );
142 
143  //- Reconstruct multiple field-field for given cloud
144  template<class Type>
146  (
147  const word& cloudName,
148  const IOobjectList& objects,
149  const wordRes& selectedFields = wordRes()
150  );
151 
152  //- Reconstruct all fields for known cloud field types
154  (
155  const word& cloudName,
156  const IOobjectList& cloudObjs,
157  const wordRes& selectedFields = wordRes()
158  );
159 };
160 
161 
162 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
163 
164 } // End namespace Foam
165 
166 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
167 
168 #ifdef NoRepository
170 #endif
171 
172 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
173 
174 #endif
175 
176 // ************************************************************************* //
label reconstructFieldFields(const word &cloudName, const IOobjectList &objects, const wordRes &selectedFields=wordRes())
Reconstruct multiple field-field for given cloud.
List of IOobjects with searching and retrieving facilities. Implemented as a HashTable, so the various sorted methods should be used if traversing in parallel.
Definition: IOobjectList.H:55
void reconstructAllFields(const word &cloudName, const IOobjectList &cloudObjs, const wordRes &selectedFields=wordRes())
Reconstruct all fields for known cloud field types.
tmp< CompactIOField< Field< Type >, Type > > reconstructFieldField(const word &cloudName, const word &fieldName)
Reconstruct a single field-field for given cloud.
tmp< IOField< Type > > reconstructField(const word &cloudName, const word &fieldName)
Reconstruct a single field for given cloud.
dynamicFvMesh & mesh
const word cloudName(propsDict.get< word >("cloud"))
A class for handling words, derived from Foam::string.
Definition: word.H:63
A List of wordRe with additional matching capabilities.
Definition: wordRes.H:53
A list of pointers to objects of type <T>, without allocation/deallocation management of the pointers...
Definition: HashTable.H:106
static int verbose_
Output verbosity when writing.
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers...
Definition: List.H:55
Mesh data needed to do the Finite Volume discretisation.
Definition: fvMesh.H:78
label reconstructFields(const word &cloudName, const UPtrList< const IOobject > &fieldObjects)
Reconstruct multiple fields for given cloud.
A class for managing temporary objects.
Definition: HashPtrTable.H:50
Reconstructor for lagrangian positions and fields.
label reconstructPositions(const word &cloudName) const
Reconstruct positions for given cloud.
Namespace for OpenFOAM.