12 int Test_ArrayStructures()
20 cout <<
"--------------------------------------------" << endl;
21 cout <<
" testing volu" << endl;
22 cout <<
"--------------------------------------------" << endl;
23 errTest = Test_Volu();
24 errFlag = errFlag | (errTest != 0);
26 cout <<
"--------------------------------------------" << endl;
27 cout <<
" testing surf" << endl;
28 cout <<
"--------------------------------------------" << endl;
29 errTest = Test_Surf();
30 errFlag = errFlag | (errTest != 0);
32 cout <<
"--------------------------------------------" << endl;
33 cout <<
" testing vert" << endl;
34 cout <<
"--------------------------------------------" << endl;
35 errTest = Test_Vert();
36 errFlag = errFlag | (errTest != 0);
38 cout <<
"--------------------------------------------" << endl;
39 cout <<
" testing edge" << endl;
40 cout <<
"--------------------------------------------" << endl;
41 errTest = Test_Edge();
42 errFlag = errFlag | (errTest != 0);
44 cout <<
"--------------------------------------------" << endl;
45 cout <<
" testing Mesh" << endl;
46 cout <<
"--------------------------------------------" << endl;
47 errTest = Test_Mesh();
48 errFlag = errFlag | (errTest != 0);
50 errFlag = errFlag | (errTest != 0);
66 singleCell.surfind.push_back(3);
67 singleCell.surfind.push_back(4);
69 cout <<
"assign 3 in cellStack" << endl;
70 cellStack.assign(3, singleCell);
73 cout <<
"push_back in cellStack" << endl;
74 cellStack.push_back(singleCell);
78 cout <<
"Calls to display" << endl;
79 cout <<
"Display each volu in stack" << endl;
81 for (i = 0; i < 4; ++i)
83 cellStack[i].index = i;
84 cellStack[i].surfind[0] = i;
88 cout <<
"Assign last volu to first volu" << endl;
89 cellStack[0] = cellStack[i - 1];
91 cellStack[0] = cellStack(i - 2);
92 cellPtr = cellStack(i - 2);
94 cout <<
"output cellptr" << endl;
96 cout <<
"Display each volu in stack" << endl;
98 cout << cellStack.capacity() << endl;
100 cout <<
"HashCellArrayStack" << endl;
101 cellStack.HashArray();
102 cellStack.SetMaxIndex();
103 cout <<
"Max Index in Array: " << cellStack.GetMaxIndex() << endl;
105 cellStack.Concatenate(cellStack);
108 catch (exception
const &ex)
110 cerr <<
"Exception: " << ex.what() << endl;
126 for (i = 0; i < 5; i++)
128 singleCell.edgeind.push_back(rand() % 100 + 1);
131 for (i = 0; i < 2; i++)
133 singleCell.voluind.push_back(rand() % 100 + 1);
136 cout <<
"assign 3 in cellStack" << endl;
137 cellStack.assign(3, singleCell);
139 singleCell.index = 1;
140 cout <<
"push_back in cellStack" << endl;
141 cellStack.push_back(singleCell);
145 cout <<
"Calls to display" << endl;
146 cout <<
"Display each volu in stack" << endl;
148 for (i = 0; i < 4; ++i)
150 cellStack[i].index = i;
151 cellStack[i].edgeind[0] = i;
155 cout <<
"Assign last volu to first volu" << endl;
156 cellStack[0] = cellStack[i - 1];
158 cout <<
"Display each volu in stack" << endl;
162 cout <<
"HashCellArrayStack" << endl;
163 cellStack.HashArray();
165 catch (exception
const &ex)
167 cerr <<
"Exception: " << ex.what() << endl;
182 for (i = 0; i < 5; i++)
184 singleCell.surfind.push_back(rand() % 100 + 1);
187 for (i = 0; i < 2; i++)
189 singleCell.vertind.push_back(rand() % 100 + 1);
192 cout <<
"assign 3 in cellStack" << endl;
193 cellStack.assign(3, singleCell);
195 singleCell.index = 1;
196 cout <<
"push_back in cellStack" << endl;
197 cellStack.push_back(singleCell);
201 cout <<
"Calls to display" << endl;
202 cout <<
"Display each volu in stack" << endl;
204 for (i = 0; i < 4; ++i)
206 cellStack[i].index = i;
207 cellStack[i].surfind[0] = i;
211 cout <<
"Assign last volu to first volu" << endl;
212 cellStack[0] = cellStack[i - 1];
214 cout <<
"Display each volu in stack" << endl;
218 cout <<
"HashCellArrayStack" << endl;
219 cellStack.HashArray();
221 catch (exception
const &ex)
223 cerr <<
"Exception: " << ex.what() << endl;
239 for (i = 0; i < 5; i++)
241 singleCell.edgeind.push_back(rand() % 100 + 1);
244 for (i = 0; i < 2; i++)
246 singleCell.coord.push_back(
double(rand() % 100 + 1) / 100.0);
249 cout <<
"assign 3 in cellStack" << endl;
250 cellStack.assign(3, singleCell);
251 singleCell.index = 1;
252 cout <<
"push_back in cellStack" << endl;
253 cellStack.push_back(singleCell);
257 cout <<
"Calls to display" << endl;
258 cout <<
"Display each volu in stack" << endl;
260 for (i = 0; i < 4; ++i)
262 cellStack[i].index = i;
263 cellStack[i].edgeind[0] = i;
267 cout <<
"Assign last volu to first volu" << endl;
268 cellStack[0] = cellStack[i - 1];
270 cout <<
"Display each volu in stack" << endl;
274 cout <<
"HashCellArrayStack" << endl;
275 cellStack.HashArray();
277 cout <<
"Test Find " << cellStack.find(1) << endl;
279 catch (exception
const &ex)
281 cerr <<
"Exception: " << ex.what() << endl;
289 mesh mesh1, mesh2, mesh3;
296 mesh1.Init(8, 12, 6, 1);
297 mesh2.Init(14, 20, 11, 2);
299 mesh1.PopulateIndices();
300 mesh2.PopulateIndices();
301 mesh3 = mesh1.MakeCompatible(mesh2);
302 #ifdef TEST_ARRAYSTRUCT_MESH
303 cout <<
"mesh1 " << endl;
305 cout <<
"Compatible mesh #3 generated displaying ";
306 cout <<
"mesh2 " << endl;
310 mesh1.MakeCompatible_inplace(mesh2);
312 #ifdef TEST_ARRAYSTRUCT_MESH
313 cout <<
"mesh2 made compatible inplace: ";
314 cout <<
"mesh2 " << endl;
316 cout <<
"mesh3 " << endl;
320 test1 = CompareDisp(mesh2, mesh3);
321 errFlag = errFlag || (!test1);
322 cout <<
"Result of Comparison 2&3: " << test1 << endl;
323 test1 = CompareDisp(mesh1, mesh2);
324 cout <<
"Result of Comparison 1&2: " << test1 << endl;
325 errFlag = errFlag || (test1);
327 cout <<
"Result of Comparison Test_Volu&Test_Volu: " << CompareFuncOut(Test_Volu, Test_Volu) << endl;
329 cout <<
"Concatenate mesh 1 and 2" << endl;
330 mesh1.Concatenate(mesh2);
333 catch (exception
const &ex)
335 cerr <<
"Exception: " << ex.what() << endl;
345 std::vector<double> lb, ub;
349 meshin.read(
"../TESTOUT/mesh234.dat");
350 tecout.OpenFile(
"../TESTOUT/meshcrop.plt");
352 lb = {0.1, 0.1, 0.1};
353 ub = {0.9, 0.9, 0.9};
354 meshin.PrepareForUse();
355 tecout.PrintMesh(meshin);
356 tecout.PrintMesh(meshin, 0, 0, rsvs3d::constants::tecplot::line);
358 tecout.PrintMesh(meshin, 0, 0, rsvs3d::constants::tecplot::line);
359 tecout.PrintMesh(meshin);
360 meshin.Crop(verts, 1);
361 tecout.PrintMesh(meshin);
363 catch (exception
const &ex)
365 cerr <<
"Exception: " << ex.what() << endl;
Class for an edge object in a mesh.
std::vector< int > AddBoundary(const std::vector< double > &lb, const std::vector< double > &ub)
Adds boundaries alond max and min xyz planes.
Class for surface object in a mesh.
Class for a vertex in a mesh.
Class for volume cell objects in a mesh.
Provides all the mesh tools used for the generation of 3D grids and geometries.
Provide tecplot file formating for mesh and snake outputs.