74 int NumMyElements = obj.NumMyElements();
75 int NumGlobalElements = obj.NumGlobalElements();
81 std::vector<std::string> IntLabels, DoubleLabels;
82 std::vector<int> IntLabelsData;
83 std::vector<double> DoubleLabelsData;
85 obj.GetLabels(IntLabels, IntLabelsData, DoubleLabels, DoubleLabelsData);
89 for (
unsigned int i = 0; i < IntLabels.size(); ++i)
90 Write(GroupName, IntLabels[i], IntLabelsData[i]);
92 for (
unsigned int i = 0; i < DoubleLabels.size(); ++i)
93 Write(GroupName, DoubleLabels[i], DoubleLabelsData[i]);
99 std::vector<int> IntSize(NumMyElements);
100 std::vector<int> DoubleSize(NumMyElements);
102 int TotalIntSize = 0, TotalDoubleSize = 0;
104 std::vector<int> IntData;
105 std::vector<double> DoubleData;
107 for (
int i = 0; i < NumMyElements; ++i)
109 IntSize[i] = obj.IntSize(i);
110 DoubleSize[i] = obj.DoubleSize(i);
111 TotalIntSize += IntSize[i];
112 TotalDoubleSize += DoubleSize[i];
115 IntData.resize(TotalIntSize);
116 DoubleData.resize(TotalDoubleSize);
125 for (
int i = 0; i < NumMyElements; ++i)
127 obj.Pack(i, &IntData[IntCount], &DoubleData[DoubleCount]);
128 IntCount += IntSize[i];
129 DoubleCount += DoubleSize[i];
135 Write(GroupName,
"__type__", obj.Type());
136 Write(GroupName,
"NumGlobalElements", NumGlobalElements);
137 Write(GroupName,
"has int", obj.HasInt());
138 Write(GroupName,
"has double", obj.HasDouble());
142 Write(GroupName,
"int ptr", NumMyElements,
143 NumGlobalElements, H5T_NATIVE_INT, &IntSize[0]);
144 Write(GroupName,
"int data", NumMyElements,
145 NumGlobalElements, H5T_NATIVE_INT, &IntData[0]);
150 Write(GroupName,
"double ptr", NumMyElements,
151 NumGlobalElements, H5T_NATIVE_INT, &DoubleSize[0]);
152 Write(GroupName,
"double data", NumMyElements,
153 NumGlobalElements, H5T_NATIVE_DOUBLE, &DoubleData[0]);
160 int NumMyElements = obj.NumMyElements();
161 int NumGlobalElements = obj.NumGlobalElements();
163 std::vector<std::string> IntLabels, DoubleLabels;
165 obj.GetLabels(IntLabels, DoubleLabels);
166 std::vector<int> IntLabelsData(IntLabels.size());
167 std::vector<double> DoubleLabelsData(DoubleLabels.size());
169 for (
unsigned int i = 0; i < IntLabels.size(); ++i)
170 Read(GroupName, IntLabels[i], IntLabelsData[i]);
172 for (
unsigned int i = 0; i < DoubleLabels.size(); ++i)
173 Read(GroupName, DoubleLabels[i], DoubleLabelsData[i]);
175 std::vector<int> IntSize(NumMyElements);
176 std::vector<int> DoubleSize(NumMyElements);
178 int TotalIntSize = 0, TotalDoubleSize = 0;
179 int GrandTotalIntSize = 0, GrandTotalDoubleSize = 0;
184 Read(GroupName,
"int ptr", NumMyElements,
185 NumGlobalElements, H5T_NATIVE_INT, &IntSize[0]);
186 for (
int i = 0; i < NumMyElements; ++i)
187 TotalIntSize += IntSize[i];
188 Comm().SumAll(&TotalIntSize, &GrandTotalIntSize, 1);
193 Read(GroupName,
"double ptr", NumMyElements,
194 NumGlobalElements, H5T_NATIVE_INT, &DoubleSize[0]);
195 for (
int i = 0; i < NumMyElements; ++i)
197 TotalDoubleSize += DoubleSize[i];
199 Comm().SumAll(&TotalDoubleSize, &GrandTotalDoubleSize, 1);
202 std::vector<int> IntData(TotalIntSize + 1);
203 std::vector<double> DoubleData(TotalDoubleSize + 1);
207 Read(GroupName,
"int data", TotalIntSize,
208 GrandTotalIntSize, H5T_NATIVE_INT, &IntData[0]);
210 Read(GroupName,
"double data", TotalDoubleSize,
211 GrandTotalDoubleSize, H5T_NATIVE_DOUBLE, &DoubleData[0]);
216 obj.SetLabels(IntLabelsData, DoubleLabelsData);
218 int IntCount = 0, DoubleCount = 0;
219 for (
int i = 0; i < NumMyElements; ++i)
221 obj.UnPack(i, IntSize[i], &(IntData[IntCount]),
222 DoubleSize[i], &(DoubleData[DoubleCount]));
223 IntCount += IntSize[i];
224 DoubleCount += DoubleSize[i];