All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
EdgeMap.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) 2011-2019 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::EdgeMap
26 
27 Description
28  Map from edge (expressed as its endpoints) to value
29 
30 \*---------------------------------------------------------------------------*/
31 
32 #ifndef EdgeMap_H
33 #define EdgeMap_H
34 
35 #include "HashTable.H"
36 #include "edge.H"
37 
38 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
39 
40 namespace Foam
41 {
42 
43 /*---------------------------------------------------------------------------*\
44  Class EdgeMap Declaration
45 \*---------------------------------------------------------------------------*/
46 
47 template<class T>
48 class EdgeMap
49 :
50  public HashTable<T, edge, Hash<edge>>
51 {
52 
53 public:
54 
55  // Constructors
56 
57  //- Construct given initial map size
58  EdgeMap(const label size = 128)
59  :
61  {}
62 
63  //- Construct from Istream
64  EdgeMap(Istream& is)
65  :
66  HashTable<T, edge, Hash<edge>>(is)
67  {}
68 
69  //- Copy constructor
70  EdgeMap(const EdgeMap<T>& map)
71  :
72  HashTable<T, edge, Hash<edge>>(map)
73  {}
74 };
75 
76 
77 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
78 
79 } // End namespace Foam
80 
81 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
82 
83 #endif
84 
85 // ************************************************************************* //
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Definition: label.H:59
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
Definition: Istream.H:57
label size() const
Return number of elements in table.
Definition: HashTableI.H:65
EdgeMap(const label size=128)
Construct given initial map size.
Definition: EdgeMap.H:57
An edge is a list of two point labels. The functionality it provides supports the discretisation on a...
Definition: edge.H:58
An STL-conforming hash table.
Definition: HashTable.H:61
Map from edge (expressed as its endpoints) to value.
Definition: EdgeMap.H:47
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
Hash function class for primitives. All non-primitives used to hash entries on hash tables likely nee...
Definition: Hash.H:54
Namespace for OpenFOAM.