IOSS  2.0
Iodw_MetaData.h
Go to the documentation of this file.
1 // Copyright(C) 1999-2010
2 // Sandia Corporation. Under the terms of Contract
3 // DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
4 // certain rights in this software.
5 //
6 // Redistribution and use in source and binary forms, with or without
7 // modification, are permitted provided that the following conditions are
8 // met:
9 //
10 // * Redistributions of source code must retain the above copyright
11 // notice, this list of conditions and the following disclaimer.
12 //
13 // * Redistributions in binary form must reproduce the above
14 // copyright notice, this list of conditions and the following
15 // disclaimer in the documentation and/or other materials provided
16 // with the distribution.
17 // * Neither the name of Sandia Corporation nor the names of its
18 // contributors may be used to endorse or promote products derived
19 // from this software without specific prior written permission.
20 //
21 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 
33 #ifndef Iodw_MetaData_h
34 #define Iodw_MetaData_h
35 
36 #include <map>
37 #include <string>
38 #include <vector>
39 
40 namespace Iodw {
41 
42  namespace meta {
43 
44  struct Property
45  {
46  };
47 
48  struct Field
49  {
50  };
51 
53  {
54  std::vector<Property> properties;
55  std::vector<Field> fields;
56  };
57 
58  struct EntityBlock : public GroupingEntity
59  {
60  };
61 
62  struct EntitySet : public GroupingEntity
63  {
64  };
65 
66  struct NodeBlock : public EntityBlock
67  {
68  };
69  struct SideBlock : public EntityBlock
70  {
71  };
72  struct ElementBlock : public EntityBlock
73  {
74  };
75  struct EdgeBlock : public EntityBlock
76  {
77  };
78  struct FaceBlock : public EntityBlock
79  {
80  };
81 
82  struct NodeSet : public EntitySet
83  {
84  };
85  struct SideSet : public EntitySet
86  {
87  };
88  struct ElementSet : public EntitySet
89  {
90  };
91  struct EdgeSet : public EntitySet
92  {
93  };
94  struct FaceSet : public EntitySet
95  {
96  };
97 
98  struct Region
99  {
100  using Name = std::string;
101  using Key = std::string;
102  using NameKeyMap = std::map<Name, Key>;
103 
105 
106  std::vector<ElementBlock> element_blocks;
107  std::vector<NodeBlock> node_blocks;
108 
109  std::vector<ElementSet> element_sets;
110  std::vector<NodeSet> node_sets;
111  };
112 
113  } // namespace meta
114 
115 } // namespace Iodw
116 
117 #endif // Iodw_MetaData_h
Definition: Iodw_MetaData.h:94
Definition: Iodw_MetaData.h:91
std::string Name
Definition: Iodw_MetaData.h:100
std::string Key
Definition: Iodw_MetaData.h:101
Definition: Iodw_MetaData.h:52
Definition: Iodw_MetaData.h:82
std::vector< ElementSet > element_sets
Definition: Iodw_MetaData.h:109
Definition: Iodw_MetaData.h:44
std::vector< Field > fields
Definition: Iodw_MetaData.h:55
Definition: Iodw_MetaData.h:98
Definition: Iodw_MetaData.h:66
std::vector< NodeSet > node_sets
Definition: Iodw_MetaData.h:110
Definition: Iodw_MetaData.h:72
Definition: Iodw_MetaData.h:85
std::vector< Property > properties
Definition: Iodw_MetaData.h:54
Definition: Iodw_MetaData.h:62
std::vector< NodeBlock > node_blocks
Definition: Iodw_MetaData.h:107
A namespace for the pamgen database format.
Definition: Iodw_DatabaseIO.C:79
NameKeyMap name_key_map
Definition: Iodw_MetaData.h:104
Definition: Iodw_MetaData.h:48
Definition: Iodw_MetaData.h:58
Definition: Iodw_MetaData.h:88
std::map< Name, Key > NameKeyMap
Definition: Iodw_MetaData.h:102
Definition: Iodw_MetaData.h:75
Definition: Iodw_MetaData.h:69
std::vector< ElementBlock > element_blocks
Definition: Iodw_MetaData.h:106
Definition: Iodw_MetaData.h:78