9int main(
int argc,
char** argv) {
10 Kokkos::initialize(argc, argv);
12 const int N = 400,
STEPS = 200;
13 const float DT = (argc > 1) ? (
float)std::atof(argv[1]) : 2e-4f;
15 s.setDomain(1.f, 1.f, 1.f,
true,
true,
true);
16 s.initializeShape(
BOX, 0.035f, 0.f, 0.f);
17 std::uint32_t st = 0xA11CEu;
18 auto u = [&](
float lo,
float hi) {
19 st = st * 1664525u + 1013904223u;
20 return lo + (hi - lo) * ((
float)((st >> 8) & 0xFFFFFFu) / (float)0x1000000u);
22 std::vector<float> pos(3 *
N);
26 s.setGravity(0.f, -9.81f, 0.f);
30 for (
int k = 0; k < 5; ++k)
34 for (
int k = 0; k <
STEPS; ++k)
37 const double ms = 1e3 * t.seconds() /
STEPS;
38 std::printf(
" %d boxes, %d narrowphase passes: %.4f ms/pass (contacts=%d)\n",
N,
STEPS, ms,