14 Real bp = 10.0, pp = 0.1, pd = 0.04, wd = 0.01, wp = 50.0;
15 unsigned int nr = 1,
a = 2;
19 EXPECT_EQ(hl1.
rings(1), (
unsigned int)1);
20 EXPECT_EQ(hl1.
rings(7), (
unsigned int)2);
21 EXPECT_EQ(hl1.
rings(19), (
unsigned int)3);
22 EXPECT_EQ(hl1.
rings(37), (
unsigned int)4);
27 FAIL() <<
"missing expected error";
29 catch (
const std::exception & e)
31 std::string msg(e.what());
32 ASSERT_NE(msg.find(
"Number of pins 100 not evenly divisible in a hexagonal lattice!"),
34 <<
"failed with unexpected error: " << msg;
38 EXPECT_EQ(hl1.
pins(1), (
unsigned int)1);
39 EXPECT_EQ(hl1.
pins(2), (
unsigned int)6);
40 EXPECT_EQ(hl1.
pins(3), (
unsigned int)12);
55 Real bp = 10.0, pp = 0.1, pd = 0.04, wd = 0.01, wp = 50.0;
56 unsigned int nr = 1,
a = 2;
68 EXPECT_EQ(hl1.
nPins(), (
unsigned int)1);
77 EXPECT_EQ(hl2.
nPins(), (
unsigned int)7);
86 EXPECT_EQ(hl3.
nPins(), (
unsigned int)19);
95 EXPECT_EQ(hl4.
nPins(), (
unsigned int)37);
105 EXPECT_EQ(interior_pins2[0][0], (
unsigned int)0);
106 EXPECT_EQ(interior_pins2[0][1], (
unsigned int)1);
107 EXPECT_EQ(interior_pins2[0][2], (
unsigned int)2);
108 EXPECT_EQ(interior_pins2[1][0], (
unsigned int)0);
109 EXPECT_EQ(interior_pins2[1][1], (
unsigned int)2);
110 EXPECT_EQ(interior_pins2[1][2], (
unsigned int)3);
111 EXPECT_EQ(interior_pins2[2][0], (
unsigned int)0);
112 EXPECT_EQ(interior_pins2[2][1], (
unsigned int)3);
113 EXPECT_EQ(interior_pins2[2][2], (
unsigned int)4);
114 EXPECT_EQ(interior_pins2[3][0], (
unsigned int)0);
115 EXPECT_EQ(interior_pins2[3][1], (
unsigned int)4);
116 EXPECT_EQ(interior_pins2[3][2], (
unsigned int)5);
117 EXPECT_EQ(interior_pins2[4][0], (
unsigned int)0);
118 EXPECT_EQ(interior_pins2[4][1], (
unsigned int)5);
119 EXPECT_EQ(interior_pins2[4][2], (
unsigned int)6);
120 EXPECT_EQ(interior_pins2[5][0], (
unsigned int)0);
121 EXPECT_EQ(interior_pins2[5][1], (
unsigned int)6);
122 EXPECT_EQ(interior_pins2[5][2], (
unsigned int)1);
125 EXPECT_EQ(edge_pins2[0][0], (
unsigned int)1);
126 EXPECT_EQ(edge_pins2[0][1], (
unsigned int)2);
127 EXPECT_EQ(edge_pins2[1][0], (
unsigned int)2);
128 EXPECT_EQ(edge_pins2[1][1], (
unsigned int)3);
129 EXPECT_EQ(edge_pins2[2][0], (
unsigned int)3);
130 EXPECT_EQ(edge_pins2[2][1], (
unsigned int)4);
131 EXPECT_EQ(edge_pins2[3][0], (
unsigned int)4);
132 EXPECT_EQ(edge_pins2[3][1], (
unsigned int)5);
133 EXPECT_EQ(edge_pins2[4][0], (
unsigned int)5);
134 EXPECT_EQ(edge_pins2[4][1], (
unsigned int)6);
135 EXPECT_EQ(edge_pins2[5][0], (
unsigned int)6);
136 EXPECT_EQ(edge_pins2[5][1], (
unsigned int)1);
139 EXPECT_EQ(corner_pins2[0][0], (
unsigned int)1);
140 EXPECT_EQ(corner_pins2[1][0], (
unsigned int)2);
141 EXPECT_EQ(corner_pins2[2][0], (
unsigned int)3);
142 EXPECT_EQ(corner_pins2[3][0], (
unsigned int)4);
143 EXPECT_EQ(corner_pins2[4][0], (
unsigned int)5);
144 EXPECT_EQ(corner_pins2[5][0], (
unsigned int)6);
147 EXPECT_EQ(interior_pins3[0][0], (
unsigned int)0);
148 EXPECT_EQ(interior_pins3[0][1], (
unsigned int)1);
149 EXPECT_EQ(interior_pins3[0][2], (
unsigned int)2);
150 EXPECT_EQ(interior_pins3[1][0], (
unsigned int)0);
151 EXPECT_EQ(interior_pins3[1][1], (
unsigned int)2);
152 EXPECT_EQ(interior_pins3[1][2], (
unsigned int)3);
153 EXPECT_EQ(interior_pins3[2][0], (
unsigned int)0);
154 EXPECT_EQ(interior_pins3[2][1], (
unsigned int)3);
155 EXPECT_EQ(interior_pins3[2][2], (
unsigned int)4);
156 EXPECT_EQ(interior_pins3[3][0], (
unsigned int)0);
157 EXPECT_EQ(interior_pins3[3][1], (
unsigned int)4);
158 EXPECT_EQ(interior_pins3[3][2], (
unsigned int)5);
159 EXPECT_EQ(interior_pins3[4][0], (
unsigned int)0);
160 EXPECT_EQ(interior_pins3[4][1], (
unsigned int)5);
161 EXPECT_EQ(interior_pins3[4][2], (
unsigned int)6);
162 EXPECT_EQ(interior_pins3[5][0], (
unsigned int)0);
163 EXPECT_EQ(interior_pins3[5][1], (
unsigned int)6);
164 EXPECT_EQ(interior_pins3[5][2], (
unsigned int)1);
165 EXPECT_EQ(interior_pins3[6][0], (
unsigned int)1);
166 EXPECT_EQ(interior_pins3[6][1], (
unsigned int)7);
167 EXPECT_EQ(interior_pins3[6][2], (
unsigned int)8);
168 EXPECT_EQ(interior_pins3[7][0], (
unsigned int)8);
169 EXPECT_EQ(interior_pins3[7][1], (
unsigned int)2);
170 EXPECT_EQ(interior_pins3[7][2], (
unsigned int)1);
171 EXPECT_EQ(interior_pins3[8][0], (
unsigned int)2);
172 EXPECT_EQ(interior_pins3[8][1], (
unsigned int)8);
173 EXPECT_EQ(interior_pins3[8][2], (
unsigned int)9);
174 EXPECT_EQ(interior_pins3[9][0], (
unsigned int)2);
175 EXPECT_EQ(interior_pins3[9][1], (
unsigned int)9);
176 EXPECT_EQ(interior_pins3[9][2], (
unsigned int)10);
177 EXPECT_EQ(interior_pins3[10][0], (
unsigned int)10);
178 EXPECT_EQ(interior_pins3[10][1], (
unsigned int)3);
179 EXPECT_EQ(interior_pins3[10][2], (
unsigned int)2);
180 EXPECT_EQ(interior_pins3[11][0], (
unsigned int)3);
181 EXPECT_EQ(interior_pins3[11][1], (
unsigned int)10);
182 EXPECT_EQ(interior_pins3[11][2], (
unsigned int)11);
183 EXPECT_EQ(interior_pins3[12][0], (
unsigned int)3);
184 EXPECT_EQ(interior_pins3[12][1], (
unsigned int)11);
185 EXPECT_EQ(interior_pins3[12][2], (
unsigned int)12);
186 EXPECT_EQ(interior_pins3[13][0], (
unsigned int)12);
187 EXPECT_EQ(interior_pins3[13][1], (
unsigned int)4);
188 EXPECT_EQ(interior_pins3[13][2], (
unsigned int)3);
189 EXPECT_EQ(interior_pins3[14][0], (
unsigned int)4);
190 EXPECT_EQ(interior_pins3[14][1], (
unsigned int)12);
191 EXPECT_EQ(interior_pins3[14][2], (
unsigned int)13);
192 EXPECT_EQ(interior_pins3[15][0], (
unsigned int)4);
193 EXPECT_EQ(interior_pins3[15][1], (
unsigned int)13);
194 EXPECT_EQ(interior_pins3[15][2], (
unsigned int)14);
195 EXPECT_EQ(interior_pins3[16][0], (
unsigned int)14);
196 EXPECT_EQ(interior_pins3[16][1], (
unsigned int)5);
197 EXPECT_EQ(interior_pins3[16][2], (
unsigned int)4);
198 EXPECT_EQ(interior_pins3[17][0], (
unsigned int)5);
199 EXPECT_EQ(interior_pins3[17][1], (
unsigned int)14);
200 EXPECT_EQ(interior_pins3[17][2], (
unsigned int)15);
201 EXPECT_EQ(interior_pins3[18][0], (
unsigned int)5);
202 EXPECT_EQ(interior_pins3[18][1], (
unsigned int)15);
203 EXPECT_EQ(interior_pins3[18][2], (
unsigned int)16);
204 EXPECT_EQ(interior_pins3[19][0], (
unsigned int)16);
205 EXPECT_EQ(interior_pins3[19][1], (
unsigned int)6);
206 EXPECT_EQ(interior_pins3[19][2], (
unsigned int)5);
207 EXPECT_EQ(interior_pins3[20][0], (
unsigned int)6);
208 EXPECT_EQ(interior_pins3[20][1], (
unsigned int)16);
209 EXPECT_EQ(interior_pins3[20][2], (
unsigned int)17);
210 EXPECT_EQ(interior_pins3[21][0], (
unsigned int)6);
211 EXPECT_EQ(interior_pins3[21][1], (
unsigned int)17);
212 EXPECT_EQ(interior_pins3[21][2], (
unsigned int)18);
213 EXPECT_EQ(interior_pins3[22][0], (
unsigned int)18);
214 EXPECT_EQ(interior_pins3[22][1], (
unsigned int)1);
215 EXPECT_EQ(interior_pins3[22][2], (
unsigned int)6);
216 EXPECT_EQ(interior_pins3[23][0], (
unsigned int)1);
217 EXPECT_EQ(interior_pins3[23][1], (
unsigned int)18);
218 EXPECT_EQ(interior_pins3[23][2], (
unsigned int)7);
221 EXPECT_EQ(edge_pins3[0][0], (
unsigned int)7);
222 EXPECT_EQ(edge_pins3[0][1], (
unsigned int)8);
223 EXPECT_EQ(edge_pins3[1][0], (
unsigned int)8);
224 EXPECT_EQ(edge_pins3[1][1], (
unsigned int)9);
225 EXPECT_EQ(edge_pins3[2][0], (
unsigned int)9);
226 EXPECT_EQ(edge_pins3[2][1], (
unsigned int)10);
227 EXPECT_EQ(edge_pins3[3][0], (
unsigned int)10);
228 EXPECT_EQ(edge_pins3[3][1], (
unsigned int)11);
229 EXPECT_EQ(edge_pins3[4][0], (
unsigned int)11);
230 EXPECT_EQ(edge_pins3[4][1], (
unsigned int)12);
231 EXPECT_EQ(edge_pins3[5][0], (
unsigned int)12);
232 EXPECT_EQ(edge_pins3[5][1], (
unsigned int)13);
233 EXPECT_EQ(edge_pins3[6][0], (
unsigned int)13);
234 EXPECT_EQ(edge_pins3[6][1], (
unsigned int)14);
235 EXPECT_EQ(edge_pins3[7][0], (
unsigned int)14);
236 EXPECT_EQ(edge_pins3[7][1], (
unsigned int)15);
237 EXPECT_EQ(edge_pins3[8][0], (
unsigned int)15);
238 EXPECT_EQ(edge_pins3[8][1], (
unsigned int)16);
239 EXPECT_EQ(edge_pins3[9][0], (
unsigned int)16);
240 EXPECT_EQ(edge_pins3[9][1], (
unsigned int)17);
241 EXPECT_EQ(edge_pins3[10][0], (
unsigned int)17);
242 EXPECT_EQ(edge_pins3[10][1], (
unsigned int)18);
243 EXPECT_EQ(edge_pins3[11][0], (
unsigned int)18);
244 EXPECT_EQ(edge_pins3[11][1], (
unsigned int)7);
247 EXPECT_EQ(corner_pins3[0][0], (
unsigned int)7);
248 EXPECT_EQ(corner_pins3[1][0], (
unsigned int)9);
249 EXPECT_EQ(corner_pins3[2][0], (
unsigned int)11);
250 EXPECT_EQ(corner_pins3[3][0], (
unsigned int)13);
251 EXPECT_EQ(corner_pins3[4][0], (
unsigned int)15);
252 EXPECT_EQ(corner_pins3[5][0], (
unsigned int)17);
257 Real bp = 5.0, pp = 1.0, pd = 0.8, wd = 0.05, wp = 50.0;
258 unsigned int nr = 1,
a = 2;
273 EXPECT_DOUBLE_EQ(hl6.
pinBundleSpacing(), (5.0 - (std::sqrt(3.0) + 0.8)) / 2.);
277 EXPECT_DOUBLE_EQ(hl8.
pinBundleSpacing(), (5.0 - (std::sqrt(3.0) + 0.8)) / 2.);
282 int n_interior, n_edge, n_corner;
283 Real flow_interior, flow_edge, flow_corner;
284 Real area_interior, area_edge, area_corner;
286 Real bp = 5.0, pp = 1.0, pd = 0.8, wd = 0.1, wp = 50.0;
287 unsigned int nr = 1,
a = 2;
324 n_interior * flow_interior + n_edge * flow_edge + n_corner * flow_corner);
326 n_interior * area_interior + n_edge * area_edge + n_corner * area_corner);
339 n_interior * flow_interior + n_edge * flow_edge + n_corner * flow_corner);
341 n_interior * area_interior + n_edge * area_edge + n_corner * area_corner);
354 n_interior * flow_interior + n_edge * flow_edge + n_corner * flow_corner);
356 n_interior * area_interior + n_edge * area_edge + n_corner * area_corner);
370 n_interior * flow_interior + n_edge * flow_edge + n_corner * flow_corner);
372 n_interior * area_interior + n_edge * area_edge + n_corner * area_corner);
385 n_interior * flow_interior + n_edge * flow_edge + n_corner * flow_corner);
387 n_interior * area_interior + n_edge * area_edge + n_corner * area_corner);
400 n_interior * flow_interior + n_edge * flow_edge + n_corner * flow_corner);
402 n_interior * area_interior + n_edge * area_edge + n_corner * area_corner);
407 Real bp = 5.0, pp = 0.99, pd = 0.8, wd = 0.0, wp = 50.0;
408 unsigned int nr = 3,
a = 2;
422 Real sin60 = std::sqrt(3.0) / 2.0;
425 EXPECT_EQ(centers.size(), hl15.
nPins());
426 EXPECT_DOUBLE_EQ(centers[0](0), 0.0);
427 EXPECT_DOUBLE_EQ(centers[0](1), 0.0);
428 EXPECT_DOUBLE_EQ(centers[0](2), 0.0);
432 EXPECT_EQ(centers2.size(), hl16.
nPins());
433 EXPECT_DOUBLE_EQ(centers2[0](0), 0.0);
434 EXPECT_DOUBLE_EQ(centers2[0](1), 0.0);
435 EXPECT_DOUBLE_EQ(centers2[1](0), cos60 * p);
436 EXPECT_DOUBLE_EQ(centers2[1](1), sin60 * p);
437 EXPECT_DOUBLE_EQ(centers2[2](0), -cos60 * p);
438 EXPECT_DOUBLE_EQ(centers2[2](1), sin60 * p);
439 EXPECT_DOUBLE_EQ(centers2[3](0), -p);
440 EXPECT_DOUBLE_EQ(centers2[3](1), 0.0);
441 EXPECT_DOUBLE_EQ(centers2[4](0), -cos60 * p);
442 EXPECT_DOUBLE_EQ(centers2[4](1), -sin60 * p);
443 EXPECT_DOUBLE_EQ(centers2[5](0), cos60 * p);
444 EXPECT_DOUBLE_EQ(centers2[5](1), -sin60 * p);
445 EXPECT_DOUBLE_EQ(centers2[6](0), p);
446 EXPECT_DOUBLE_EQ(centers2[6](1), (
unsigned int)0);
449 EXPECT_DOUBLE_EQ(centers2[i](2), 0.0);
452 EXPECT_EQ(centers3.size(), hl14.
nPins());
453 EXPECT_DOUBLE_EQ(centers3[0](0), 0.0);
454 EXPECT_DOUBLE_EQ(centers3[0](1), 0.0);
455 EXPECT_DOUBLE_EQ(centers3[1](0), cos60 * p);
456 EXPECT_DOUBLE_EQ(centers3[1](1), sin60 * p);
457 EXPECT_DOUBLE_EQ(centers3[2](0), -cos60 * p);
458 EXPECT_DOUBLE_EQ(centers3[2](1), sin60 * p);
459 EXPECT_DOUBLE_EQ(centers3[3](0), -p);
460 EXPECT_DOUBLE_EQ(centers3[3](1), 0.0);
461 EXPECT_DOUBLE_EQ(centers3[4](0), -cos60 * p);
462 EXPECT_DOUBLE_EQ(centers3[4](1), -sin60 * p);
463 EXPECT_DOUBLE_EQ(centers3[5](0), cos60 * p);
464 EXPECT_DOUBLE_EQ(centers3[5](1), -sin60 * p);
465 EXPECT_DOUBLE_EQ(centers3[6](0), p);
466 EXPECT_DOUBLE_EQ(centers3[6](1), (
unsigned int)0);
468 EXPECT_DOUBLE_EQ(centers3[7](0), p);
469 EXPECT_DOUBLE_EQ(centers3[7](1), 2 * p * sin60);
470 EXPECT_DOUBLE_EQ(centers3[8](0), (
unsigned int)0);
471 EXPECT_DOUBLE_EQ(centers3[8](1), 2 * p * sin60);
472 EXPECT_DOUBLE_EQ(centers3[9](0), -p);
473 EXPECT_DOUBLE_EQ(centers3[9](1), 2 * p * sin60);
474 EXPECT_DOUBLE_EQ(centers3[10](0), -p - p * cos60);
475 EXPECT_DOUBLE_EQ(centers3[10](1), p * sin60);
476 EXPECT_DOUBLE_EQ(centers3[11](0), -2 * p);
477 EXPECT_DOUBLE_EQ(centers3[11](1), (
unsigned int)0);
478 EXPECT_DOUBLE_EQ(centers3[12](0), -p - p * cos60);
479 EXPECT_DOUBLE_EQ(centers3[12](1), -p * sin60);
480 EXPECT_DOUBLE_EQ(centers3[13](0), -p);
481 EXPECT_DOUBLE_EQ(centers3[13](1), -2 * p * sin60);
482 EXPECT_DOUBLE_EQ(centers3[14](0), (
unsigned int)0);
483 EXPECT_DOUBLE_EQ(centers3[14](1), -2 * p * sin60);
484 EXPECT_DOUBLE_EQ(centers3[15](0), p);
485 EXPECT_DOUBLE_EQ(centers3[15](1), -2 * p * sin60);
486 EXPECT_DOUBLE_EQ(centers3[16](0), p + p * cos60);
487 EXPECT_DOUBLE_EQ(centers3[16](1), -p * sin60);
488 EXPECT_DOUBLE_EQ(centers3[17](0), 2 * p);
489 EXPECT_DOUBLE_EQ(centers3[17](1), 0.0);
490 EXPECT_DOUBLE_EQ(centers3[18](0), p + p * cos60);
491 EXPECT_DOUBLE_EQ(centers3[18](1), p * sin60);
494 EXPECT_DOUBLE_EQ(centers3[i](2), 0.0);
497 EXPECT_EQ(centers4.size(), hl17.
nPins());
498 EXPECT_DOUBLE_EQ(centers4[0](0), 0.0);
499 EXPECT_DOUBLE_EQ(centers4[0](1), 0.0);
500 EXPECT_DOUBLE_EQ(centers4[1](0), cos60 * p);
501 EXPECT_DOUBLE_EQ(centers4[1](1), sin60 * p);
502 EXPECT_DOUBLE_EQ(centers4[2](0), -cos60 * p);
503 EXPECT_DOUBLE_EQ(centers4[2](1), sin60 * p);
504 EXPECT_DOUBLE_EQ(centers4[3](0), -p);
505 EXPECT_DOUBLE_EQ(centers4[3](1), 0.0);
506 EXPECT_DOUBLE_EQ(centers4[4](0), -cos60 * p);
507 EXPECT_DOUBLE_EQ(centers4[4](1), -sin60 * p);
508 EXPECT_DOUBLE_EQ(centers4[5](0), cos60 * p);
509 EXPECT_DOUBLE_EQ(centers4[5](1), -sin60 * p);
510 EXPECT_DOUBLE_EQ(centers4[6](0), p);
511 EXPECT_DOUBLE_EQ(centers4[6](1), (
unsigned int)0);
513 EXPECT_DOUBLE_EQ(centers4[7](0), p);
514 EXPECT_DOUBLE_EQ(centers4[7](1), 2 * p * sin60);
515 EXPECT_DOUBLE_EQ(centers4[8](0), (
unsigned int)0);
516 EXPECT_DOUBLE_EQ(centers4[8](1), 2 * p * sin60);
517 EXPECT_DOUBLE_EQ(centers4[9](0), -p);
518 EXPECT_DOUBLE_EQ(centers4[9](1), 2 * p * sin60);
519 EXPECT_DOUBLE_EQ(centers4[10](0), -p - p * cos60);
520 EXPECT_DOUBLE_EQ(centers4[10](1), p * sin60);
521 EXPECT_DOUBLE_EQ(centers4[11](0), -2 * p);
522 EXPECT_DOUBLE_EQ(centers4[11](1), (
unsigned int)0);
523 EXPECT_DOUBLE_EQ(centers4[12](0), -p - p * cos60);
524 EXPECT_DOUBLE_EQ(centers4[12](1), -p * sin60);
525 EXPECT_DOUBLE_EQ(centers4[13](0), -p);
526 EXPECT_DOUBLE_EQ(centers4[13](1), -2 * p * sin60);
527 EXPECT_DOUBLE_EQ(centers4[14](0), (
unsigned int)0);
528 EXPECT_DOUBLE_EQ(centers4[14](1), -2 * p * sin60);
529 EXPECT_DOUBLE_EQ(centers4[15](0), p);
530 EXPECT_DOUBLE_EQ(centers4[15](1), -2 * p * sin60);
531 EXPECT_DOUBLE_EQ(centers4[16](0), p + p * cos60);
532 EXPECT_DOUBLE_EQ(centers4[16](1), -p * sin60);
533 EXPECT_DOUBLE_EQ(centers4[17](0), 2 * p);
534 EXPECT_DOUBLE_EQ(centers4[17](1), 0.0);
535 EXPECT_DOUBLE_EQ(centers4[18](0), p + p * cos60);
536 EXPECT_DOUBLE_EQ(centers4[18](1), p * sin60);
538 EXPECT_DOUBLE_EQ(centers4[19](0), p + p * cos60);
539 EXPECT_DOUBLE_EQ(centers4[19](1), 3 * p * sin60);
540 EXPECT_DOUBLE_EQ(centers4[20](0), p * cos60);
541 EXPECT_DOUBLE_EQ(centers4[20](1), 3 * p * sin60);
542 EXPECT_DOUBLE_EQ(centers4[21](0), -p * cos60);
543 EXPECT_DOUBLE_EQ(centers4[21](1), 3 * p * sin60);
544 EXPECT_DOUBLE_EQ(centers4[22](0), -p - p * cos60);
545 EXPECT_DOUBLE_EQ(centers4[22](1), 3 * p * sin60);
546 EXPECT_DOUBLE_EQ(centers4[23](0), -2 * p);
547 EXPECT_DOUBLE_EQ(centers4[23](1), 2 * p * sin60);
548 EXPECT_DOUBLE_EQ(centers4[24](0), -2 * p - p * cos60);
549 EXPECT_DOUBLE_EQ(centers4[24](1), p * sin60);
550 EXPECT_DOUBLE_EQ(centers4[25](0), -3 * p);
551 EXPECT_DOUBLE_EQ(centers4[25](1), (
unsigned int)0);
552 EXPECT_DOUBLE_EQ(centers4[26](0), -2 * p - p * cos60);
553 EXPECT_DOUBLE_EQ(centers4[26](1), -p * sin60);
554 EXPECT_DOUBLE_EQ(centers4[27](0), -2 * p);
555 EXPECT_DOUBLE_EQ(centers4[27](1), -2 * p * sin60);
556 EXPECT_DOUBLE_EQ(centers4[28](0), -p - p * cos60);
557 EXPECT_DOUBLE_EQ(centers4[28](1), -3 * p * sin60);
558 EXPECT_DOUBLE_EQ(centers4[29](0), -p * cos60);
559 EXPECT_DOUBLE_EQ(centers4[29](1), -3 * p * sin60);
560 EXPECT_DOUBLE_EQ(centers4[30](0), p * cos60);
561 EXPECT_DOUBLE_EQ(centers4[30](1), -3 * p * sin60);
562 EXPECT_DOUBLE_EQ(centers4[31](0), p + p * cos60);
563 EXPECT_DOUBLE_EQ(centers4[31](1), -3 * p * sin60);
564 EXPECT_DOUBLE_EQ(centers4[32](0), 2 * p);
565 EXPECT_DOUBLE_EQ(centers4[32](1), -2 * p * sin60);
566 EXPECT_DOUBLE_EQ(centers4[33](0), 2 * p + p * cos60);
567 EXPECT_DOUBLE_EQ(centers4[33](1), -p * sin60);
568 EXPECT_DOUBLE_EQ(centers4[34](0), 3 * p);
569 EXPECT_DOUBLE_EQ(centers4[34](1), (
unsigned int)0);
570 EXPECT_DOUBLE_EQ(centers4[35](0), 2 * p + p * cos60);
571 EXPECT_DOUBLE_EQ(centers4[35](1), p * sin60);
572 EXPECT_DOUBLE_EQ(centers4[36](0), 2 * p);
573 EXPECT_DOUBLE_EQ(centers4[36](1), 2 * p * sin60);
576 EXPECT_DOUBLE_EQ(centers4[i](2), 0.0);
581 Real bp = 4.0, pp = 0.8, pd = 0.6, wd = 0.05, wp = 50.0;
582 unsigned int nr = 3,
a = 2;
586 Point pt0(0.06, 0.35, 3.5);
587 Point pt1(-0.47, 0.28, 3.5);
588 Point pt2(-0.26, -0.21, 3.5);
589 Point pt3(-0.12, -0.349, 3.5);
590 Point pt4(0.46, -0.27, 3.5);
591 Point pt5(0.37, 0.6, 3.5);
600 Point pt6(0.36, 1.06, -7.0);
601 Point pt7(0.11, 0.98, -7.0);
602 Point pt8(-0.43, 1.27, -7.0);
603 Point pt9(-0.81, 0.93, -7.0);
604 Point pt10(-0.75, 0.47, -7.0);
605 Point pt11(-1.06, 0.28, -7.0);
606 Point pt12(-1.16, -0.13, -7.0);
607 Point pt13(-0.73, -0.41, -7.0);
608 Point pt14(-0.73, -0.81, -7.0);
609 Point pt15(-0.46, -1.18, -7.0);
610 Point pt16(0.05, -0.98, -7.0);
611 Point pt17(0.27, -1.00, -7.0);
612 Point pt18(0.72, -0.98, -7.0);
613 Point pt19(0.75, -0.58, -7.0);
614 Point pt20(1.23, -0.23, -7.0);
615 Point pt21(1.17, 0.09, -7.0);
616 Point pt22(0.78, 0.38, -7.0);
617 Point pt23(0.74, 0.84, -7.0);
638 Point pt24(0.31, 1.44, -0.1);
639 Point pt25(-0.38, 1.61, -0.1);
640 Point pt26(-1.17, 1.52, -0.1);
641 Point pt27(-1.78, 0.38, -0.1);
642 Point pt28(-1.91, -0.42, -0.1);
643 Point pt29(-1.39, -1.24, -0.1);
644 Point pt30(-0.46, -1.74, -0.1);
645 Point pt31(0.18, -1.79, -0.1);
646 Point pt32(1.24, -1.17, -0.1);
647 Point pt33(1.75, -0.57, -0.1);
648 Point pt34(1.51, 0.37, -0.1);
649 Point pt35(1.16, 1.42, -0.1);
664 Point pt36(1.05, 1.75, 1.2);
665 Point pt37(-1.02, 1.72, 1.2);
666 Point pt38(-2.03, -0.05, 1.2);
667 Point pt39(-1.01, -1.59, 1.2);
668 Point pt40(0.89, -1.79, 1.2);
669 Point pt41(1.98, 0.12, 1.2);
681 Real bp = 4.0, pp = 0.8, pd = 0.6, wd = 0.05, wp = 50.0;
682 unsigned int nr = 3,
a = 2;
685 Point pt0(0.06, 0.35, 0.0);
686 Point pt1(-0.47, 0.28, 0.0);
687 Point pt2(-0.26, -0.21, 0.0);
688 Point pt3(-0.12, -0.349, 0.0);
689 Point pt4(0.46, -0.27, 0.0);
690 Point pt5(0.37, 0.6, 0.0);
705 pt0 = {0.5 * 0.8 * 0.5, 0.5 * 0.8 * std::sqrt(3.0) / 2.0, 0.0};
708 Point pt6(0.36, 1.06, 0.0);
709 Point pt7(0.11, 0.98, 0.0);
710 Point pt8(-0.43, 1.27, 0.0);
711 Point pt9(-0.81, 0.93, 0.0);
712 Point pt10(-0.75, 0.47, 0.0);
713 Point pt11(-1.06, 0.28, 0.0);
714 Point pt12(-1.16, -0.13, 0.0);
715 Point pt13(-0.73, -0.41, 0.0);
716 Point pt14(-0.73, -0.81, 0.0);
717 Point pt15(-0.46, -1.18, 0.0);
718 Point pt16(0.05, -0.98, 0.0);
719 Point pt17(0.27, -1.00, 0.0);
720 Point pt18(0.72, -0.98, 0.0);
721 Point pt19(0.75, -0.58, 0.0);
722 Point pt20(1.23, -0.23, 0.0);
723 Point pt21(1.17, 0.09, 0.0);
724 Point pt22(0.78, 0.38, 0.0);
725 Point pt23(0.74, 0.84, 0.0);
764 Point pt24(0.31, 1.44, 0.0);
765 Point pt25(-0.38, 1.61, 0.0);
766 Point pt26(-1.17, 1.52, 0.0);
767 Point pt27(-1.78, 0.38, 0.0);
768 Point pt28(-1.91, -0.42, 0.0);
769 Point pt29(-1.39, -1.24, 0.0);
770 Point pt30(-0.46, -1.74, 0.0);
771 Point pt31(0.18, -1.79, 0.0);
772 Point pt32(1.24, -1.17, 0.0);
773 Point pt33(1.75, -0.57, 0.0);
774 Point pt34(1.51, 0.37, 0.0);
775 Point pt35(1.16, 1.42, 0.0);
802 Point pt36(1.05, 1.75, 0.0);
803 Point pt37(-1.02, 1.72, 0.0);
804 Point pt38(-2.03, -0.05, 0.0);
805 Point pt39(-1.01, -1.59, 0.0);
806 Point pt40(0.89, -1.79, 0.0);
807 Point pt41(1.98, 0.12, 0.0);
825 Real bp = 4.0, pp = 0.8, pd = 0.6, wd = 0.05, wp = 50.0;
826 unsigned int nr = 1,
a = 2;
834 EXPECT_EQ(gi[i].first, 0);
835 EXPECT_EQ(gi[i++].second, -1);
837 EXPECT_EQ(gi[i].first, 0);
838 EXPECT_EQ(gi[i++].second, -2);
840 EXPECT_EQ(gi[i].first, 0);
841 EXPECT_EQ(gi[i++].second, -3);
843 EXPECT_EQ(gi[i].first, 0);
844 EXPECT_EQ(gi[i++].second, -4);
846 EXPECT_EQ(gi[i].first, 0);
847 EXPECT_EQ(gi[i++].second, -5);
849 EXPECT_EQ(gi[i].first, 0);
850 EXPECT_EQ(gi[i++].second, -6);
852 for (
unsigned int i = 0; i < hl.
nGaps(); ++i)
856 EXPECT_EQ(lg[i][0], 5);
857 EXPECT_EQ(lg[i++][1], 0);
859 EXPECT_EQ(lg[i][0], 0);
860 EXPECT_EQ(lg[i++][1], 1);
862 EXPECT_EQ(lg[i][0], 1);
863 EXPECT_EQ(lg[i++][1], 2);
865 EXPECT_EQ(lg[i][0], 2);
866 EXPECT_EQ(lg[i++][1], 3);
868 EXPECT_EQ(lg[i][0], 3);
869 EXPECT_EQ(lg[i++][1], 4);
871 EXPECT_EQ(lg[i][0], 4);
872 EXPECT_EQ(lg[i++][1], 5);
877 Real bp = 4.0, pp = 0.8, pd = 0.6, wd = 0.05, wp = 50.0;
878 unsigned int nr = 2,
a = 2;
886 EXPECT_EQ(gi[i].first, 0);
887 EXPECT_EQ(gi[i++].second, 1);
889 EXPECT_EQ(gi[i].first, 0);
890 EXPECT_EQ(gi[i++].second, 2);
892 EXPECT_EQ(gi[i].first, 0);
893 EXPECT_EQ(gi[i++].second, 3);
895 EXPECT_EQ(gi[i].first, 0);
896 EXPECT_EQ(gi[i++].second, 4);
898 EXPECT_EQ(gi[i].first, 0);
899 EXPECT_EQ(gi[i++].second, 5);
901 EXPECT_EQ(gi[i].first, 0);
902 EXPECT_EQ(gi[i++].second, 6);
904 EXPECT_EQ(gi[i].first, 1);
905 EXPECT_EQ(gi[i++].second, 2);
907 EXPECT_EQ(gi[i].first, 1);
908 EXPECT_EQ(gi[i++].second, 6);
910 EXPECT_EQ(gi[i].first, 2);
911 EXPECT_EQ(gi[i++].second, 3);
913 EXPECT_EQ(gi[i].first, 3);
914 EXPECT_EQ(gi[i++].second, 4);
916 EXPECT_EQ(gi[i].first, 4);
917 EXPECT_EQ(gi[i++].second, 5);
919 EXPECT_EQ(gi[i].first, 5);
920 EXPECT_EQ(gi[i++].second, 6);
922 EXPECT_EQ(gi[i].first, 1);
923 EXPECT_EQ(gi[i++].second, -1);
925 EXPECT_EQ(gi[i].first, 2);
926 EXPECT_EQ(gi[i++].second, -1);
928 EXPECT_EQ(gi[i].first, 2);
929 EXPECT_EQ(gi[i++].second, -2);
931 EXPECT_EQ(gi[i].first, 3);
932 EXPECT_EQ(gi[i++].second, -2);
934 EXPECT_EQ(gi[i].first, 3);
935 EXPECT_EQ(gi[i++].second, -3);
937 EXPECT_EQ(gi[i].first, 4);
938 EXPECT_EQ(gi[i++].second, -3);
940 EXPECT_EQ(gi[i].first, 4);
941 EXPECT_EQ(gi[i++].second, -4);
943 EXPECT_EQ(gi[i].first, 5);
944 EXPECT_EQ(gi[i++].second, -4);
946 EXPECT_EQ(gi[i].first, 5);
947 EXPECT_EQ(gi[i++].second, -5);
949 EXPECT_EQ(gi[i].first, 6);
950 EXPECT_EQ(gi[i++].second, -5);
952 EXPECT_EQ(gi[i].first, 6);
953 EXPECT_EQ(gi[i++].second, -6);
955 EXPECT_EQ(gi[i].first, 1);
956 EXPECT_EQ(gi[i++].second, -6);
958 for (
unsigned int i = 0; i < hl.
nGaps(); ++i)
967 EXPECT_EQ(lg[i][0], 0);
968 EXPECT_EQ(lg[i][1], 6);
969 EXPECT_EQ(lg[i++][2], 1);
971 EXPECT_EQ(lg[i][0], 1);
972 EXPECT_EQ(lg[i][1], 8);
973 EXPECT_EQ(lg[i++][2], 2);
975 EXPECT_EQ(lg[i][0], 2);
976 EXPECT_EQ(lg[i][1], 9);
977 EXPECT_EQ(lg[i++][2], 3);
979 EXPECT_EQ(lg[i][0], 3);
980 EXPECT_EQ(lg[i][1], 10);
981 EXPECT_EQ(lg[i++][2], 4);
983 EXPECT_EQ(lg[i][0], 4);
984 EXPECT_EQ(lg[i][1], 11);
985 EXPECT_EQ(lg[i++][2], 5);
987 EXPECT_EQ(lg[i][0], 5);
988 EXPECT_EQ(lg[i][1], 7);
989 EXPECT_EQ(lg[i++][2], 0);
991 EXPECT_EQ(lg[i][0], 6);
992 EXPECT_EQ(lg[i][1], 13);
993 EXPECT_EQ(lg[i++][2], 12);
995 EXPECT_EQ(lg[i][0], 8);
996 EXPECT_EQ(lg[i][1], 15);
997 EXPECT_EQ(lg[i++][2], 14);
999 EXPECT_EQ(lg[i][0], 9);
1000 EXPECT_EQ(lg[i][1], 17);
1001 EXPECT_EQ(lg[i++][2], 16);
1003 EXPECT_EQ(lg[i][0], 10);
1004 EXPECT_EQ(lg[i][1], 19);
1005 EXPECT_EQ(lg[i++][2], 18);
1007 EXPECT_EQ(lg[i][0], 11);
1008 EXPECT_EQ(lg[i][1], 21);
1009 EXPECT_EQ(lg[i++][2], 20);
1011 EXPECT_EQ(lg[i][0], 7);
1012 EXPECT_EQ(lg[i][1], 23);
1013 EXPECT_EQ(lg[i++][2], 22);
1015 EXPECT_EQ(lg[i][0], 23);
1016 EXPECT_EQ(lg[i++][1], 12);
1018 EXPECT_EQ(lg[i][0], 13);
1019 EXPECT_EQ(lg[i++][1], 14);
1021 EXPECT_EQ(lg[i][0], 15);
1022 EXPECT_EQ(lg[i++][1], 16);
1024 EXPECT_EQ(lg[i][0], 17);
1025 EXPECT_EQ(lg[i++][1], 18);
1027 EXPECT_EQ(lg[i][0], 19);
1028 EXPECT_EQ(lg[i++][1], 20);
1030 EXPECT_EQ(lg[i][0], 21);
1031 EXPECT_EQ(lg[i++][1], 22);
1036 Real bp = 4.0, pp = 0.8, pd = 0.6, wd = 0.05, wp = 50.0;
1037 unsigned int nr = 3,
a = 2;
1045 EXPECT_EQ(gi[i].first, 0);
1046 EXPECT_EQ(gi[i++].second, 1);
1048 EXPECT_EQ(gi[i].first, 0);
1049 EXPECT_EQ(gi[i++].second, 2);
1051 EXPECT_EQ(gi[i].first, 0);
1052 EXPECT_EQ(gi[i++].second, 3);
1054 EXPECT_EQ(gi[i].first, 0);
1055 EXPECT_EQ(gi[i++].second, 4);
1057 EXPECT_EQ(gi[i].first, 0);
1058 EXPECT_EQ(gi[i++].second, 5);
1060 EXPECT_EQ(gi[i].first, 0);
1061 EXPECT_EQ(gi[i++].second, 6);
1063 EXPECT_EQ(gi[i].first, 1);
1064 EXPECT_EQ(gi[i++].second, 2);
1066 EXPECT_EQ(gi[i].first, 1);
1067 EXPECT_EQ(gi[i++].second, 6);
1069 EXPECT_EQ(gi[i].first, 1);
1070 EXPECT_EQ(gi[i++].second, 7);
1072 EXPECT_EQ(gi[i].first, 1);
1073 EXPECT_EQ(gi[i++].second, 8);
1075 EXPECT_EQ(gi[i].first, 1);
1076 EXPECT_EQ(gi[i++].second, 18);
1078 EXPECT_EQ(gi[i].first, 2);
1079 EXPECT_EQ(gi[i++].second, 3);
1081 EXPECT_EQ(gi[i].first, 2);
1082 EXPECT_EQ(gi[i++].second, 8);
1084 EXPECT_EQ(gi[i].first, 2);
1085 EXPECT_EQ(gi[i++].second, 9);
1087 EXPECT_EQ(gi[i].first, 2);
1088 EXPECT_EQ(gi[i++].second, 10);
1090 EXPECT_EQ(gi[i].first, 3);
1091 EXPECT_EQ(gi[i++].second, 4);
1093 EXPECT_EQ(gi[i].first, 3);
1094 EXPECT_EQ(gi[i++].second, 10);
1096 EXPECT_EQ(gi[i].first, 3);
1097 EXPECT_EQ(gi[i++].second, 11);
1099 EXPECT_EQ(gi[i].first, 3);
1100 EXPECT_EQ(gi[i++].second, 12);
1102 EXPECT_EQ(gi[i].first, 4);
1103 EXPECT_EQ(gi[i++].second, 5);
1105 EXPECT_EQ(gi[i].first, 4);
1106 EXPECT_EQ(gi[i++].second, 12);
1108 EXPECT_EQ(gi[i].first, 4);
1109 EXPECT_EQ(gi[i++].second, 13);
1111 EXPECT_EQ(gi[i].first, 4);
1112 EXPECT_EQ(gi[i++].second, 14);
1114 EXPECT_EQ(gi[i].first, 5);
1115 EXPECT_EQ(gi[i++].second, 6);
1117 EXPECT_EQ(gi[i].first, 5);
1118 EXPECT_EQ(gi[i++].second, 14);
1120 EXPECT_EQ(gi[i].first, 5);
1121 EXPECT_EQ(gi[i++].second, 15);
1123 EXPECT_EQ(gi[i].first, 5);
1124 EXPECT_EQ(gi[i++].second, 16);
1126 EXPECT_EQ(gi[i].first, 6);
1127 EXPECT_EQ(gi[i++].second, 16);
1129 EXPECT_EQ(gi[i].first, 6);
1130 EXPECT_EQ(gi[i++].second, 17);
1132 EXPECT_EQ(gi[i].first, 6);
1133 EXPECT_EQ(gi[i++].second, 18);
1135 EXPECT_EQ(gi[i].first, 7);
1136 EXPECT_EQ(gi[i++].second, 8);
1138 EXPECT_EQ(gi[i].first, 7);
1139 EXPECT_EQ(gi[i++].second, 18);
1141 EXPECT_EQ(gi[i].first, 8);
1142 EXPECT_EQ(gi[i++].second, 9);
1144 EXPECT_EQ(gi[i].first, 9);
1145 EXPECT_EQ(gi[i++].second, 10);
1147 EXPECT_EQ(gi[i].first, 10);
1148 EXPECT_EQ(gi[i++].second, 11);
1150 EXPECT_EQ(gi[i].first, 11);
1151 EXPECT_EQ(gi[i++].second, 12);
1153 EXPECT_EQ(gi[i].first, 12);
1154 EXPECT_EQ(gi[i++].second, 13);
1156 EXPECT_EQ(gi[i].first, 13);
1157 EXPECT_EQ(gi[i++].second, 14);
1159 EXPECT_EQ(gi[i].first, 14);
1160 EXPECT_EQ(gi[i++].second, 15);
1162 EXPECT_EQ(gi[i].first, 15);
1163 EXPECT_EQ(gi[i++].second, 16);
1165 EXPECT_EQ(gi[i].first, 16);
1166 EXPECT_EQ(gi[i++].second, 17);
1168 EXPECT_EQ(gi[i].first, 17);
1169 EXPECT_EQ(gi[i++].second, 18);
1171 EXPECT_EQ(gi[i].first, 7);
1172 EXPECT_EQ(gi[i++].second, -1);
1174 EXPECT_EQ(gi[i].first, 8);
1175 EXPECT_EQ(gi[i++].second, -1);
1177 EXPECT_EQ(gi[i].first, 9);
1178 EXPECT_EQ(gi[i++].second, -1);
1180 EXPECT_EQ(gi[i].first, 9);
1181 EXPECT_EQ(gi[i++].second, -2);
1183 EXPECT_EQ(gi[i].first, 10);
1184 EXPECT_EQ(gi[i++].second, -2);
1186 EXPECT_EQ(gi[i].first, 11);
1187 EXPECT_EQ(gi[i++].second, -2);
1189 EXPECT_EQ(gi[i].first, 11);
1190 EXPECT_EQ(gi[i++].second, -3);
1192 EXPECT_EQ(gi[i].first, 12);
1193 EXPECT_EQ(gi[i++].second, -3);
1195 EXPECT_EQ(gi[i].first, 13);
1196 EXPECT_EQ(gi[i++].second, -3);
1198 EXPECT_EQ(gi[i].first, 13);
1199 EXPECT_EQ(gi[i++].second, -4);
1201 EXPECT_EQ(gi[i].first, 14);
1202 EXPECT_EQ(gi[i++].second, -4);
1204 EXPECT_EQ(gi[i].first, 15);
1205 EXPECT_EQ(gi[i++].second, -4);
1207 EXPECT_EQ(gi[i].first, 15);
1208 EXPECT_EQ(gi[i++].second, -5);
1210 EXPECT_EQ(gi[i].first, 16);
1211 EXPECT_EQ(gi[i++].second, -5);
1213 EXPECT_EQ(gi[i].first, 17);
1214 EXPECT_EQ(gi[i++].second, -5);
1216 EXPECT_EQ(gi[i].first, 17);
1217 EXPECT_EQ(gi[i++].second, -6);
1219 EXPECT_EQ(gi[i].first, 18);
1220 EXPECT_EQ(gi[i++].second, -6);
1222 EXPECT_EQ(gi[i].first, 7);
1223 EXPECT_EQ(gi[i++].second, -6);
1225 for (
unsigned int i = 0; i < hl.
nGaps(); ++i)
1227 if (i == 7 || i == 31)
1234 EXPECT_EQ(lg[i][0], 0);
1235 EXPECT_EQ(lg[i][1], 6);
1236 EXPECT_EQ(lg[i++][2], 1);
1238 EXPECT_EQ(lg[i][0], 1);
1239 EXPECT_EQ(lg[i][1], 11);
1240 EXPECT_EQ(lg[i++][2], 2);
1242 EXPECT_EQ(lg[i][0], 2);
1243 EXPECT_EQ(lg[i][1], 15);
1244 EXPECT_EQ(lg[i++][2], 3);
1246 EXPECT_EQ(lg[i][0], 3);
1247 EXPECT_EQ(lg[i][1], 19);
1248 EXPECT_EQ(lg[i++][2], 4);
1250 EXPECT_EQ(lg[i][0], 4);
1251 EXPECT_EQ(lg[i][1], 23);
1252 EXPECT_EQ(lg[i++][2], 5);
1254 EXPECT_EQ(lg[i][0], 5);
1255 EXPECT_EQ(lg[i][1], 7);
1256 EXPECT_EQ(lg[i++][2], 0);
1258 EXPECT_EQ(lg[i][0], 8);
1259 EXPECT_EQ(lg[i][1], 30);
1260 EXPECT_EQ(lg[i++][2], 9);
1262 EXPECT_EQ(lg[i][0], 12);
1263 EXPECT_EQ(lg[i][1], 6);
1264 EXPECT_EQ(lg[i++][2], 9);
1266 EXPECT_EQ(lg[i][0], 12);
1267 EXPECT_EQ(lg[i][1], 32);
1268 EXPECT_EQ(lg[i++][2], 13);
1270 EXPECT_EQ(lg[i][0], 13);
1271 EXPECT_EQ(lg[i][1], 33);
1272 EXPECT_EQ(lg[i++][2], 14);
1274 EXPECT_EQ(lg[i][0], 16);
1275 EXPECT_EQ(lg[i][1], 11);
1276 EXPECT_EQ(lg[i++][2], 14);
1278 EXPECT_EQ(lg[i][0], 16);
1279 EXPECT_EQ(lg[i][1], 34);
1280 EXPECT_EQ(lg[i++][2], 17);
1282 EXPECT_EQ(lg[i][0], 17);
1283 EXPECT_EQ(lg[i][1], 35);
1284 EXPECT_EQ(lg[i++][2], 18);
1286 EXPECT_EQ(lg[i][0], 20);
1287 EXPECT_EQ(lg[i][1], 15);
1288 EXPECT_EQ(lg[i++][2], 18);
1290 EXPECT_EQ(lg[i][0], 20);
1291 EXPECT_EQ(lg[i][1], 36);
1292 EXPECT_EQ(lg[i++][2], 21);
1294 EXPECT_EQ(lg[i][0], 21);
1295 EXPECT_EQ(lg[i][1], 37);
1296 EXPECT_EQ(lg[i++][2], 22);
1298 EXPECT_EQ(lg[i][0], 24);
1299 EXPECT_EQ(lg[i][1], 19);
1300 EXPECT_EQ(lg[i++][2], 22);
1302 EXPECT_EQ(lg[i][0], 24);
1303 EXPECT_EQ(lg[i][1], 38);
1304 EXPECT_EQ(lg[i++][2], 25);
1306 EXPECT_EQ(lg[i][0], 25);
1307 EXPECT_EQ(lg[i][1], 39);
1308 EXPECT_EQ(lg[i++][2], 26);
1310 EXPECT_EQ(lg[i][0], 27);
1311 EXPECT_EQ(lg[i][1], 23);
1312 EXPECT_EQ(lg[i++][2], 26);
1314 EXPECT_EQ(lg[i][0], 27);
1315 EXPECT_EQ(lg[i][1], 40);
1316 EXPECT_EQ(lg[i++][2], 28);
1318 EXPECT_EQ(lg[i][0], 28);
1319 EXPECT_EQ(lg[i][1], 41);
1320 EXPECT_EQ(lg[i++][2], 29);
1322 EXPECT_EQ(lg[i][0], 10);
1323 EXPECT_EQ(lg[i][1], 7);
1324 EXPECT_EQ(lg[i++][2], 29);
1326 EXPECT_EQ(lg[i][0], 10);
1327 EXPECT_EQ(lg[i][1], 31);
1328 EXPECT_EQ(lg[i++][2], 8);
1331 EXPECT_EQ(lg[i][0], 30);
1332 EXPECT_EQ(lg[i][1], 43);
1333 EXPECT_EQ(lg[i++][2], 42);
1335 EXPECT_EQ(lg[i][0], 32);
1336 EXPECT_EQ(lg[i][1], 44);
1337 EXPECT_EQ(lg[i++][2], 43);
1339 EXPECT_EQ(lg[i][0], 33);
1340 EXPECT_EQ(lg[i][1], 46);
1341 EXPECT_EQ(lg[i++][2], 45);
1343 EXPECT_EQ(lg[i][0], 34);
1344 EXPECT_EQ(lg[i][1], 47);
1345 EXPECT_EQ(lg[i++][2], 46);
1347 EXPECT_EQ(lg[i][0], 35);
1348 EXPECT_EQ(lg[i][1], 49);
1349 EXPECT_EQ(lg[i++][2], 48);
1351 EXPECT_EQ(lg[i][0], 36);
1352 EXPECT_EQ(lg[i][1], 50);
1353 EXPECT_EQ(lg[i++][2], 49);
1355 EXPECT_EQ(lg[i][0], 37);
1356 EXPECT_EQ(lg[i][1], 52);
1357 EXPECT_EQ(lg[i++][2], 51);
1359 EXPECT_EQ(lg[i][0], 38);
1360 EXPECT_EQ(lg[i][1], 53);
1361 EXPECT_EQ(lg[i++][2], 52);
1363 EXPECT_EQ(lg[i][0], 39);
1364 EXPECT_EQ(lg[i][1], 55);
1365 EXPECT_EQ(lg[i++][2], 54);
1367 EXPECT_EQ(lg[i][0], 40);
1368 EXPECT_EQ(lg[i][1], 56);
1369 EXPECT_EQ(lg[i++][2], 55);
1371 EXPECT_EQ(lg[i][0], 41);
1372 EXPECT_EQ(lg[i][1], 58);
1373 EXPECT_EQ(lg[i++][2], 57);
1375 EXPECT_EQ(lg[i][0], 31);
1376 EXPECT_EQ(lg[i][1], 59);
1377 EXPECT_EQ(lg[i++][2], 58);
1380 EXPECT_EQ(lg[i][0], 59);
1381 EXPECT_EQ(lg[i++][1], 42);
1383 EXPECT_EQ(lg[i][0], 44);
1384 EXPECT_EQ(lg[i++][1], 45);
1386 EXPECT_EQ(lg[i][0], 47);
1387 EXPECT_EQ(lg[i++][1], 48);
1389 EXPECT_EQ(lg[i][0], 50);
1390 EXPECT_EQ(lg[i++][1], 51);
1392 EXPECT_EQ(lg[i][0], 53);
1393 EXPECT_EQ(lg[i++][1], 54);
1395 EXPECT_EQ(lg[i][0], 56);
1396 EXPECT_EQ(lg[i++][1], 57);
1401 Real bp = 4.0, pp = 0.8, pd = 0.6, wd = 0.05, wp = 50.0;
1402 unsigned int nr = 3,
a = 2;
1405 Point pt1(0.23, 0.27, 0.0);
1408 Point pt2(-0.5, 0.29, 0.0);
1411 Point pt3(1.14, 0.275, 0.0);
1414 Point pt4(-0.77, 1.015, 0.0);
1417 Point pt5(-0.84, 0.445, 0.0);
1420 Point pt6(-0.47, 1.55, 0.0);
1423 Point pt7(-0.069, 1.94, 0.0);
1426 Point pt8(-1.22, 1.79, 0.0);
1429 Point pt10(-0.26, -1.61, 0.0);
1432 Point pt11(2.23, 0.03, 0.0);
1435 Point pt12(-1.77, -0.70, 0.0);
1441 Real bp = 4.0, pp = 0.8, pd = 0.6, wd = 0.05, wp = 50.0;
1442 unsigned int nr = 1,
a = 2;
1445 Real sin60 = std::sqrt(3.0) / 2.0;
1447 for (
const auto & n : normals)
1448 EXPECT_DOUBLE_EQ(n(2), 0.0);
1450 EXPECT_DOUBLE_EQ(normals[0](0), -1.0);
1451 EXPECT_DOUBLE_EQ(normals[0](1), 0.0);
1453 EXPECT_DOUBLE_EQ(normals[1](0), -0.5);
1454 EXPECT_DOUBLE_EQ(normals[1](1), -sin60);
1456 EXPECT_DOUBLE_EQ(normals[2](0), 0.5);
1457 EXPECT_DOUBLE_EQ(normals[2](1), -sin60);
1459 EXPECT_DOUBLE_EQ(normals[3](0), 1.0);
1460 EXPECT_DOUBLE_EQ(normals[3](1), 0.0);
1462 EXPECT_DOUBLE_EQ(normals[4](0), 0.5);
1463 EXPECT_DOUBLE_EQ(normals[4](1), sin60);
1465 EXPECT_DOUBLE_EQ(normals[5](0), -0.5);
1466 EXPECT_DOUBLE_EQ(normals[5](1), sin60);
1471 Real bp = 4.0, pp = 0.8, pd = 0.6, wd = 0.05, wp = 50.0;
1472 unsigned int nr = 2,
a = 2;
1475 Real sin60 = std::sqrt(3.0) / 2.0;
1477 for (
const auto & n : normals)
1478 EXPECT_DOUBLE_EQ(n(2), 0.0);
1480 EXPECT_DOUBLE_EQ(normals[0](0), -sin60);
1481 EXPECT_DOUBLE_EQ(normals[0](1), 0.5);
1483 EXPECT_DOUBLE_EQ(normals[1](0), -sin60);
1484 EXPECT_DOUBLE_EQ(normals[1](1), -0.5);
1486 EXPECT_DOUBLE_EQ(normals[2](0), 0.0);
1487 EXPECT_DOUBLE_EQ(normals[2](1), -1.0);
1489 EXPECT_DOUBLE_EQ(normals[3](0), sin60);
1490 EXPECT_DOUBLE_EQ(normals[3](1), -0.5);
1492 EXPECT_DOUBLE_EQ(normals[4](0), sin60);
1493 EXPECT_DOUBLE_EQ(normals[4](1), 0.5);
1495 EXPECT_DOUBLE_EQ(normals[5](0), 0.0);
1496 EXPECT_DOUBLE_EQ(normals[5](1), 1.0);
1498 EXPECT_DOUBLE_EQ(normals[6](0), 0.0);
1499 EXPECT_DOUBLE_EQ(normals[6](1), -1.0);
1501 EXPECT_DOUBLE_EQ(normals[7](0), -sin60);
1502 EXPECT_DOUBLE_EQ(normals[7](1), -0.5);
1504 EXPECT_DOUBLE_EQ(normals[8](0), sin60);
1505 EXPECT_DOUBLE_EQ(normals[8](1), -0.5);
1507 EXPECT_DOUBLE_EQ(normals[9](0), sin60);
1508 EXPECT_DOUBLE_EQ(normals[9](1), 0.5);
1510 EXPECT_DOUBLE_EQ(normals[10](0), 0.0);
1511 EXPECT_DOUBLE_EQ(normals[10](1), 1.0);
1513 EXPECT_DOUBLE_EQ(normals[11](0), -sin60);
1514 EXPECT_DOUBLE_EQ(normals[11](1), 0.5);
1516 EXPECT_DOUBLE_EQ(normals[12](0), -1.0);
1517 EXPECT_DOUBLE_EQ(normals[12](1), 0.0);
1519 EXPECT_DOUBLE_EQ(normals[13](0), -1.0);
1520 EXPECT_DOUBLE_EQ(normals[13](1), 0.0);
1522 EXPECT_DOUBLE_EQ(normals[14](0), -0.5);
1523 EXPECT_DOUBLE_EQ(normals[14](1), -sin60);
1525 EXPECT_DOUBLE_EQ(normals[15](0), -0.5);
1526 EXPECT_DOUBLE_EQ(normals[15](1), -sin60);
1528 EXPECT_DOUBLE_EQ(normals[16](0), 0.5);
1529 EXPECT_DOUBLE_EQ(normals[16](1), -sin60);
1531 EXPECT_DOUBLE_EQ(normals[17](0), 0.5);
1532 EXPECT_DOUBLE_EQ(normals[17](1), -sin60);
1534 EXPECT_DOUBLE_EQ(normals[18](0), 1.0);
1535 EXPECT_DOUBLE_EQ(normals[18](1), 0.0);
1537 EXPECT_DOUBLE_EQ(normals[19](0), 1.0);
1538 EXPECT_DOUBLE_EQ(normals[19](1), 0.0);
1540 EXPECT_DOUBLE_EQ(normals[20](0), 0.5);
1541 EXPECT_DOUBLE_EQ(normals[20](1), sin60);
1543 EXPECT_DOUBLE_EQ(normals[21](0), 0.5);
1544 EXPECT_DOUBLE_EQ(normals[21](1), sin60);
1546 EXPECT_DOUBLE_EQ(normals[22](0), -0.5);
1547 EXPECT_DOUBLE_EQ(normals[22](1), sin60);
1549 EXPECT_DOUBLE_EQ(normals[23](0), -0.5);
1550 EXPECT_DOUBLE_EQ(normals[23](1), sin60);
1555 Real bp = 4.0, pp = 0.8, pd = 0.6, wd = 0.05, wp = 50.0;
1556 unsigned int nr = 3,
a = 2;
1559 Real sin60 = std::sqrt(3.0) / 2.0;
1561 for (
const auto & n : normals)
1562 EXPECT_DOUBLE_EQ(n(2), 0.0);
1564 EXPECT_DOUBLE_EQ(normals[0](0), -sin60);
1565 EXPECT_DOUBLE_EQ(normals[0](1), 0.5);
1567 EXPECT_DOUBLE_EQ(normals[1](0), -sin60);
1568 EXPECT_DOUBLE_EQ(normals[1](1), -0.5);
1570 EXPECT_DOUBLE_EQ(normals[2](0), 0.0);
1571 EXPECT_DOUBLE_EQ(normals[2](1), -1.0);
1573 EXPECT_DOUBLE_EQ(normals[3](0), sin60);
1574 EXPECT_DOUBLE_EQ(normals[3](1), -0.5);
1576 EXPECT_DOUBLE_EQ(normals[4](0), sin60);
1577 EXPECT_DOUBLE_EQ(normals[4](1), 0.5);
1579 EXPECT_DOUBLE_EQ(normals[5](0), 0.0);
1580 EXPECT_DOUBLE_EQ(normals[5](1), 1.0);
1582 EXPECT_DOUBLE_EQ(normals[6](0), 0.0);
1583 EXPECT_DOUBLE_EQ(normals[6](1), -1.0);
1585 EXPECT_DOUBLE_EQ(normals[7](0), -sin60);
1586 EXPECT_DOUBLE_EQ(normals[7](1), -0.5);
1588 EXPECT_DOUBLE_EQ(normals[8](0), -sin60);
1589 EXPECT_DOUBLE_EQ(normals[8](1), 0.5);
1591 EXPECT_DOUBLE_EQ(normals[9](0), -sin60);
1592 EXPECT_DOUBLE_EQ(normals[9](1), -0.5);
1594 EXPECT_DOUBLE_EQ(normals[10](0), 0.0);
1595 EXPECT_DOUBLE_EQ(normals[10](1), 1.0);
1597 EXPECT_DOUBLE_EQ(normals[11](0), sin60);
1598 EXPECT_DOUBLE_EQ(normals[11](1), -0.5);
1600 EXPECT_DOUBLE_EQ(normals[12](0), -sin60);
1601 EXPECT_DOUBLE_EQ(normals[12](1), 0.5);
1603 EXPECT_DOUBLE_EQ(normals[13](0), -sin60);
1604 EXPECT_DOUBLE_EQ(normals[13](1), -0.5);
1606 EXPECT_DOUBLE_EQ(normals[14](0), 0.0);
1607 EXPECT_DOUBLE_EQ(normals[14](1), -1.0);
1609 EXPECT_DOUBLE_EQ(normals[15](0), sin60);
1610 EXPECT_DOUBLE_EQ(normals[15](1), 0.5);
1612 EXPECT_DOUBLE_EQ(normals[16](0), -sin60);
1613 EXPECT_DOUBLE_EQ(normals[16](1), -0.5);
1615 EXPECT_DOUBLE_EQ(normals[17](0), 0.0);
1616 EXPECT_DOUBLE_EQ(normals[17](1), -1.0);
1618 EXPECT_DOUBLE_EQ(normals[18](0), sin60);
1619 EXPECT_DOUBLE_EQ(normals[18](1), -0.5);
1621 EXPECT_DOUBLE_EQ(normals[19](0), 0.0);
1622 EXPECT_DOUBLE_EQ(normals[19](1), 1.0);
1624 EXPECT_DOUBLE_EQ(normals[20](0), 0.0);
1625 EXPECT_DOUBLE_EQ(normals[20](1), -1.0);
1627 EXPECT_DOUBLE_EQ(normals[21](0), sin60);
1628 EXPECT_DOUBLE_EQ(normals[21](1), -0.5);
1630 EXPECT_DOUBLE_EQ(normals[22](0), sin60);
1631 EXPECT_DOUBLE_EQ(normals[22](1), 0.5);
1633 EXPECT_DOUBLE_EQ(normals[23](0), -sin60);
1634 EXPECT_DOUBLE_EQ(normals[23](1), 0.5);
1636 EXPECT_DOUBLE_EQ(normals[24](0), sin60);
1637 EXPECT_DOUBLE_EQ(normals[24](1), -0.5);
1639 EXPECT_DOUBLE_EQ(normals[25](0), sin60);
1640 EXPECT_DOUBLE_EQ(normals[25](1), 0.5);
1642 EXPECT_DOUBLE_EQ(normals[26](0), 0.0);
1643 EXPECT_DOUBLE_EQ(normals[26](1), 1.0);
1645 EXPECT_DOUBLE_EQ(normals[27](0), sin60);
1646 EXPECT_DOUBLE_EQ(normals[27](1), 0.5);
1648 EXPECT_DOUBLE_EQ(normals[28](0), 0.0);
1649 EXPECT_DOUBLE_EQ(normals[28](1), 1.0);
1651 EXPECT_DOUBLE_EQ(normals[29](0), -sin60);
1652 EXPECT_DOUBLE_EQ(normals[29](1), 0.5);
1654 EXPECT_DOUBLE_EQ(normals[30](0), 0.0);
1655 EXPECT_DOUBLE_EQ(normals[30](1), -1.0);
1657 EXPECT_DOUBLE_EQ(normals[31](0), -sin60);
1658 EXPECT_DOUBLE_EQ(normals[31](1), -0.5);
1660 EXPECT_DOUBLE_EQ(normals[32](0), 0.0);
1661 EXPECT_DOUBLE_EQ(normals[32](1), -1.0);
1663 EXPECT_DOUBLE_EQ(normals[33](0), sin60);
1664 EXPECT_DOUBLE_EQ(normals[33](1), -0.5);
1666 EXPECT_DOUBLE_EQ(normals[34](0), sin60);
1667 EXPECT_DOUBLE_EQ(normals[34](1), -0.5);
1669 EXPECT_DOUBLE_EQ(normals[35](0), sin60);
1670 EXPECT_DOUBLE_EQ(normals[35](1), 0.5);
1672 EXPECT_DOUBLE_EQ(normals[36](0), sin60);
1673 EXPECT_DOUBLE_EQ(normals[36](1), 0.5);
1675 EXPECT_DOUBLE_EQ(normals[37](0), 0.0);
1676 EXPECT_DOUBLE_EQ(normals[37](1), 1.0);
1678 EXPECT_DOUBLE_EQ(normals[38](0), 0.0);
1679 EXPECT_DOUBLE_EQ(normals[38](1), 1.0);
1681 EXPECT_DOUBLE_EQ(normals[39](0), -sin60);
1682 EXPECT_DOUBLE_EQ(normals[39](1), 0.5);
1684 EXPECT_DOUBLE_EQ(normals[40](0), -sin60);
1685 EXPECT_DOUBLE_EQ(normals[40](1), 0.5);
1687 EXPECT_DOUBLE_EQ(normals[41](0), -sin60);
1688 EXPECT_DOUBLE_EQ(normals[41](1), -0.5);
1690 EXPECT_DOUBLE_EQ(normals[42](0), -1.0);
1691 EXPECT_DOUBLE_EQ(normals[42](1), 0.0);
1693 EXPECT_DOUBLE_EQ(normals[43](0), -1.0);
1694 EXPECT_DOUBLE_EQ(normals[43](1), 0.0);
1696 EXPECT_DOUBLE_EQ(normals[44](0), -1.0);
1697 EXPECT_DOUBLE_EQ(normals[44](1), 0.0);
1699 EXPECT_DOUBLE_EQ(normals[45](0), -0.5);
1700 EXPECT_DOUBLE_EQ(normals[45](1), -sin60);
1702 EXPECT_DOUBLE_EQ(normals[46](0), -0.5);
1703 EXPECT_DOUBLE_EQ(normals[46](1), -sin60);
1705 EXPECT_DOUBLE_EQ(normals[47](0), -0.5);
1706 EXPECT_DOUBLE_EQ(normals[47](1), -sin60);
1708 EXPECT_DOUBLE_EQ(normals[48](0), 0.5);
1709 EXPECT_DOUBLE_EQ(normals[48](1), -sin60);
1711 EXPECT_DOUBLE_EQ(normals[49](0), 0.5);
1712 EXPECT_DOUBLE_EQ(normals[49](1), -sin60);
1714 EXPECT_DOUBLE_EQ(normals[50](0), 0.5);
1715 EXPECT_DOUBLE_EQ(normals[50](1), -sin60);
1717 EXPECT_DOUBLE_EQ(normals[51](0), 1.0);
1718 EXPECT_DOUBLE_EQ(normals[51](1), 0.0);
1720 EXPECT_DOUBLE_EQ(normals[52](0), 1.0);
1721 EXPECT_DOUBLE_EQ(normals[52](1), 0.0);
1723 EXPECT_DOUBLE_EQ(normals[53](0), 1.0);
1724 EXPECT_DOUBLE_EQ(normals[53](1), 0.0);
1726 EXPECT_DOUBLE_EQ(normals[54](0), 0.5);
1727 EXPECT_DOUBLE_EQ(normals[54](1), sin60);
1729 EXPECT_DOUBLE_EQ(normals[55](0), 0.5);
1730 EXPECT_DOUBLE_EQ(normals[55](1), sin60);
1732 EXPECT_DOUBLE_EQ(normals[56](0), 0.5);
1733 EXPECT_DOUBLE_EQ(normals[56](1), sin60);
1735 EXPECT_DOUBLE_EQ(normals[57](0), -0.5);
1736 EXPECT_DOUBLE_EQ(normals[57](1), sin60);
1738 EXPECT_DOUBLE_EQ(normals[58](0), -0.5);
1739 EXPECT_DOUBLE_EQ(normals[58](1), sin60);
1741 EXPECT_DOUBLE_EQ(normals[59](0), -0.5);
1742 EXPECT_DOUBLE_EQ(normals[59](1), sin60);
1747 Real bp = 4.0, pp = 0.8, pd = 0.6, wd = 0.05, wp = 50.0;
1748 unsigned int nr = 2,
a = 2;
1751 Real sin60 = std::sqrt(3.0) / 2.0;
1755 double side = 0.46188021535170065;
1756 const auto & pin0 = pin_corners[0];
1757 EXPECT_DOUBLE_EQ(pin0[0](0), 0.0);
1758 EXPECT_DOUBLE_EQ(pin0[0](1), side);
1760 EXPECT_DOUBLE_EQ(pin0[1](0), -side * sin60);
1761 EXPECT_DOUBLE_EQ(pin0[1](1), side * cos60);
1763 EXPECT_DOUBLE_EQ(pin0[2](0), -side * sin60);
1764 EXPECT_DOUBLE_EQ(pin0[2](1), -side * cos60);
1766 EXPECT_DOUBLE_EQ(pin0[3](0), (
unsigned int)0);
1767 EXPECT_DOUBLE_EQ(pin0[3](1), -side);
1769 EXPECT_DOUBLE_EQ(pin0[4](0), side * sin60);
1770 EXPECT_DOUBLE_EQ(pin0[4](1), -side * cos60);
1772 EXPECT_DOUBLE_EQ(pin0[5](0), side * sin60);
1773 EXPECT_DOUBLE_EQ(pin0[5](1), side * cos60);
1777 const auto & pin1 = pin_corners[1];
1778 double x = pin_centers[1](0);
1779 double y = pin_centers[1](1);
1781 EXPECT_DOUBLE_EQ(pin1[0](0),
x + 0.0);
1782 EXPECT_DOUBLE_EQ(pin1[0](1),
y + side);
1784 EXPECT_DOUBLE_EQ(pin1[1](0),
x + -side * sin60);
1785 EXPECT_DOUBLE_EQ(pin1[1](1),
y + side * cos60);
1787 EXPECT_DOUBLE_EQ(pin1[2](0),
x + -side * sin60);
1788 EXPECT_DOUBLE_EQ(pin1[2](1),
y + -side * cos60);
1790 EXPECT_DOUBLE_EQ(pin1[3](0),
x + 0);
1791 EXPECT_DOUBLE_EQ(pin1[3](1),
y + -side);
1793 EXPECT_DOUBLE_EQ(pin1[4](0),
x + side * sin60);
1794 EXPECT_DOUBLE_EQ(pin1[4](1),
y + -side * cos60);
1796 EXPECT_DOUBLE_EQ(pin1[5](0),
x + side * sin60);
1797 EXPECT_DOUBLE_EQ(pin1[5](1),
y + side * cos60);
1800 Point p(0.07, 0.195, 0.0);
1803 p = {0.02, 0.42, 0.0};
1806 p = {0.74, 0.46, 0.0};
1809 p = {-0.206, 0.668, 0.0};
1812 p = {-0.99, 0.313, 0.0};
1815 p = {-0.257, -0.67, 0.0};
1818 p = {0.67, -0.79, 0.0};
1821 p = {0.43, 0.0206, 0.0};
1824 p = {0.85, 0.51, 0.0};
1830 Real bp = 4.0, pp = 0.8, pd = 0.6, wd = 0.05, wp = 50.0;
1831 unsigned int nr = 3,
a = 2;
1834 EXPECT_DOUBLE_EQ(hl.
pinPitch(), 0.8);
Real cornerFlowVolume() const
Get the flow volume of an corner channel per wire pitch.
Real cornerWettedArea() const
Get the wetted area of a corner channel per wire pitch.
unsigned int rings(const unsigned int n) const
Get the number of rings for a specified number of pins.
unsigned int pinIndex(const Point &point) const
Get the pin index given a point.
unsigned int nInteriorPins() const
Get the number of interior pins.
unsigned int nChannels() const
Get the total number of channels.
unsigned int channelIndex(const Point &point) const
Get the channel index given a point.
channel_type::ChannelTypeEnum channelType(const Point &p) const
Get the channel type (interior, edge, corner) given a point.
Real interiorFlowVolume() const
Get the flow volume of an interior channel per wire pitch.
const std::vector< std::vector< unsigned int > > & interiorChannelPinIndices() const
Get the pin indices forming the corners of all interior channels.
const std::vector< double > y
Real flowVolume() const
Get the flow volume of the bundle per wire pitch.
unsigned int nEdgeChannels() const
Get the number of edge channels.
Real pinBundleSpacing() const
Get the distance between the outermost pins and the duct walls.
Real edgeWettedArea() const
Get the wetted area of an edge channel per wire pitch.
const std::vector< std::vector< unsigned int > > & cornerChannelPinIndices() const
Get the pin indices forming one of the corners of all corner channels.
unsigned int nCornerPins() const
Get the number of corner pins.
Real wireDiameter() const
Get the wire diameter.
const std::vector< std::vector< unsigned int > > & edgeChannelPinIndices() const
Get the pin indices forming two of the corners of all edge channels.
unsigned int gapIndex(const Point &point) const
Get the index for the gap closest to the point.
Real wirePitch() const
Get the wire pitch.
Class providing various utility functions related to triangular lattices of pins enclosed in a hexago...
unsigned int nCornerChannels() const
Get the number of corner channels.
const std::vector< double > x
Real wettedArea() const
Get the wetted area of entire bundle per wire pitch.
unsigned int nInteriorChannels() const
Get the number of interior channels.
unsigned int pins(const unsigned int n) const
Get the number of pins in a given ring.
bool lastGapInRing(const unsigned int gap_index) const
Whether this gap is the "last" in the ring, i.e.
const std::vector< std::vector< int > > & localToGlobalGaps() const
For each subchannel, get the indices of the gaps that touch that subchannel.
unsigned int nEdgePins() const
Get the number of edge pins.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const std::vector< std::pair< int, int > > & gapIndices() const
Get the pin and side indices on each gap.
Real pinRadius() const
Get the pin outer radius.
const std::vector< std::vector< Point > > & pinCenteredCornerCoordinates() const
Get the corner coordinates of a hexagon surrounding each pin.
IntRange< T > make_range(T beg, T end)
unsigned int nGaps() const
Get the number of gaps.
const std::vector< Point > & gapUnitNormals() const
Get the unit normals for all of the gaps.
Real hydraulicDiameter() const
Get the overall bundle hydraulic diameter.
const std::vector< Point > & pinCenters() const
Get the center coordinates of the pins.
Real interiorWettedArea() const
Get the wetted area of an interior channel per wire pitch.
TEST_F(HexagonalLatticeTest, rings_and_pins)
Real pinPitch() const
Get the pin pitch.
unsigned int firstPinInRing(const unsigned int ring) const
Get the index of the "first" pin in a ring.
unsigned int nInteriorGaps() const
Get the number of gaps that touch an interior channel.
Real edgeFlowVolume() const
Get the flow volume of an edge channel per wire pitch.
void ErrorVector unsigned int
unsigned int nPins() const
Get the total number of pins for the lattice.
unsigned int lastPinInRing(const unsigned int ring) const
Get the index of the "last" pin in a ring.
Real bundlePitch() const
Get the bundle pitch.
Real pinDiameter() const
Get the pin diameter.