36 int main(
int argc,
char** argv )
38 int fail = MPI_Init( &argc, &argv );
42 po.
addOpt< std::string >(
"file,f",
"Input filename", &
fname );
43 po.
addOpt<
int >(
"ints,i",
"Number of intervals on each side of scd mesh", &
ints );
44 po.
addOpt<
int >(
"leaf,l",
"Maximum number of elements per leaf", &
leaf );
46 po.
addOpt<
int >(
"npoints,n",
"Number of query points", &
npoints );
48 po.
addOpt<
int >(
"tree,t",
"Tree type (-1=all (default), 0=AdaptiveKD, 1=BVH", &
tree );
54 fail = MPI_Finalize();
103 std::ostringstream opts;
104 opts <<
"MAX_DEPTH=" <<
max_depth <<
";MAX_PER_LEAF=" <<
leaf;
123 box_del =
box.bMax -
box.bMin;
125 double denom = 1.0 / (double)RAND_MAX;
126 std::vector< CartVect > test_pts(
npoints );
128 for(
int i = 0; i <
npoints; i++ )
131 double rx = (double)rand() * denom, ry = (double)rand() * denom, rz = (double)rand() * denom;
132 test_pts[i] =
box.bMin +
CartVect( rx * box_del[0], ry * box_del[1], rz * box_del[2] );
140 if( pc->
rank() == 0 )
145 std::cout <<
"Number of points inside an element = " <<
npoints - num_out <<
"/" <<
npoints <<
" ("
146 << 100.0 * ( (double)
npoints - num_out ) /
npoints <<
"%)" << std::endl;
147 std::cout <<
"Traversal stats:" << std::endl;
152 std::cout <<
"Tree information: " << std::endl;
169 rval = scdi->
construct_box(
HomCoord( 0, 0, 0 ),
HomCoord( 0, 0, 0 ), NULL, 0, new_box, NULL, &spd,
false, 0 );
CHECK_ERR( rval );
181 options =
"PARALLEL=READ_PART;PARTITION=PARALLEL_PARTITION;";
182 rval =
mb.
load_file( fn.c_str(), NULL, options.c_str() );