mapClouds.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 | Copyright (C) 2011 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 InNamespace
25  Foam::mapClouds
26 
27 Description
28  Generic Geometric field mapper. For "real" mapping, add template
29  specialisations for mapping of internal fields depending on mesh
30  type.
31 
32 \*---------------------------------------------------------------------------*/
33 
34 #ifndef mapClouds_H
35 #define mapClouds_H
36 
37 #include "cloud.H"
38 #include "objectRegistry.H"
39 
40 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
41 
42 namespace Foam
43 {
44 
45 //- Generic Geometric field mapper.
46 // For "real" mapping, add template specialisations for mapping of internal
47 // fields depending on mesh type.
48 inline void mapClouds(const objectRegistry& db, const mapPolyMesh& mapper)
49 {
51 
52  forAllIter(HashTable<const cloud*>, clouds, iter)
53  {
54  cloud& c = const_cast<cloud&>(*iter());
55 
56  if (polyMesh::debug)
57  {
58  Info<< "Mapping cloud " << c.name() << endl;
59  }
60 
61  c.autoMap(mapper);
62  }
63 }
64 
65 
66 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
67 
68 } // End namespace Foam
69 
70 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
71 
72 #endif
73 
74 // ************************************************************************* //
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
Definition: mapPolyMesh.H:158
An STL-conforming hash table.
Definition: HashTable.H:61
#define forAllIter(Container, container, iter)
Definition: UList.H:440
messageStream Info
Namespace for OpenFOAM.
Ostream & endl(Ostream &os)
Add newline and flush stream.
Definition: Ostream.H:251
A cloud is a collection of lagrangian particles.
Definition: cloud.H:51
virtual void autoMap(const mapPolyMesh &)
Remap the cells of particles corresponding to the.
Definition: cloud.C:67
const word & name() const
Return name.
Definition: IOobject.H:260
Registry of regIOobjects.
HashTable< const Type * > lookupClass(const bool strict=false) const
Lookup and return all objects of the given Type.
void mapClouds(const objectRegistry &db, const mapPolyMesh &mapper)
Generic Geometric field mapper.
Definition: mapClouds.H:48