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
52 struct GroupingEntity
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
104 NameKeyMap name_key_map;
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
Iodw::meta::SideBlock
Definition: Iodw_MetaData.h:69
Iodw::meta::GroupingEntity::properties
std::vector< Property > properties
Definition: Iodw_MetaData.h:54
Iodw::meta::Region::Key
std::string Key
Definition: Iodw_MetaData.h:101
Iodw::meta::FaceSet
Definition: Iodw_MetaData.h:94
Iodw::meta::EntityBlock
Definition: Iodw_MetaData.h:58
Iodw::meta::Field
Definition: Iodw_MetaData.h:48
Iodw::meta::GroupingEntity::fields
std::vector< Field > fields
Definition: Iodw_MetaData.h:55
Iodw::meta::Region::element_sets
std::vector< ElementSet > element_sets
Definition: Iodw_MetaData.h:109
Iodw::meta::ElementSet
Definition: Iodw_MetaData.h:88
Iodw::meta::EntitySet
Definition: Iodw_MetaData.h:62
Iodw::meta::NodeSet
Definition: Iodw_MetaData.h:82
Iodw::meta::Region::node_sets
std::vector< NodeSet > node_sets
Definition: Iodw_MetaData.h:110
Iodw::meta::Region::node_blocks
std::vector< NodeBlock > node_blocks
Definition: Iodw_MetaData.h:107
Iodw::meta::NodeBlock
Definition: Iodw_MetaData.h:66
Iodw::meta::SideSet
Definition: Iodw_MetaData.h:85
Iodw::meta::ElementBlock
Definition: Iodw_MetaData.h:72
Iodw::meta::Property
Definition: Iodw_MetaData.h:44
Iodw::meta::EdgeBlock
Definition: Iodw_MetaData.h:75
Iodw::meta::Region::NameKeyMap
std::map< Name, Key > NameKeyMap
Definition: Iodw_MetaData.h:102
Iodw::meta::EdgeSet
Definition: Iodw_MetaData.h:91
Iodw::meta::Region::element_blocks
std::vector< ElementBlock > element_blocks
Definition: Iodw_MetaData.h:106
Iodw::meta::GroupingEntity
Definition: Iodw_MetaData.h:52
Iodw::meta::Region
Definition: Iodw_MetaData.h:98
Iodw::meta::FaceBlock
Definition: Iodw_MetaData.h:78
Iodw::meta::Region::name_key_map
NameKeyMap name_key_map
Definition: Iodw_MetaData.h:104
Iodw
A namespace for the pamgen database format.
Definition: Iodw_DatabaseIO.C:79
Iodw::meta::Region::Name
std::string Name
Definition: Iodw_MetaData.h:100