| 593 | } |
| 594 | |
| 595 | int |
| 596 | ParticleGroup::cube(const VVDouble &pts, const VInt &num, |
| 597 | const VDouble &vel0, double p0) { |
| 598 | if (pts.size() != 8) { |
| 599 | opserr << "WARNING: pts.size() != 8 -- ParticleGroup::cube\n"; |
| 600 | return -1; |
| 601 | } |
| 602 | if (num.size() != 3) { |
| 603 | opserr << "WARNING: num.size() != 3 -- ParticleGroup::cube\n"; |
| 604 | return -1; |
| 605 | } |
| 606 | |
| 607 | // line 15,26,37,48 |
| 608 | VVDouble dirs(4), crds(4); |
| 609 | for (unsigned int i = 0; i < dirs.size(); ++i) { |
| 610 | dirs[i] = pts[i + 4]; |
| 611 | dirs[i] -= pts[i]; |
| 612 | dirs[i] /= num[2]; |
| 613 | crds[i] = dirs[i]; |
| 614 | crds[i] /= 2.0; |
| 615 | crds[i] += pts[i]; |
| 616 | } |
| 617 | |
| 618 | // create each plane of particles |
| 619 | for (int i = 0; i < num[2]; ++i) { |
| 620 | if (qua_d(crds[0], crds[1], crds[2], crds[3], num[0], num[1], vel0, p0) < 0) { |
| 621 | opserr << "WARNING: failed to create particles -- ParticleGroup::cube\n"; |
| 622 | return -1; |
| 623 | } |
| 624 | |
| 625 | for (unsigned int j = 0; j < crds.size(); ++j) { |
| 626 | crds[j] += dirs[j]; |
| 627 | } |
| 628 | } |
| 629 | |
| 630 | return 0; |
| 631 | } |
no test coverage detected