int main (int argc, char **argv) { sc_MPI_Comm mpicomm; int mpiret, retval; int level; const char *filename; p4est_connectivity_t *conn; sc_options_t *opt; mpiret = sc_MPI_Init (&argc, &argv); SC_CHECK_MPI (mpiret); mpicomm = sc_MPI_COMM_WORLD; sc_init (sc_MPI_COMM_WORLD, 1, 1, NULL, SC_LP_DEFAULT); p4est_init (NULL, SC_LP_DEFAULT); opt = sc_options_new (argv[0]); sc_options_add_int (opt, 'l', "level", &level, 0, "Upfront refinement level"); retval = sc_options_parse (p4est_package_id, SC_LP_ERROR, opt, argc, argv); if (retval == -1 || retval + 1 != argc) { sc_options_print_usage (p4est_package_id, SC_LP_PRODUCTION, opt, NULL); sc_abort_collective ("Usage error"); } filename = argv[retval]; P4EST_LDEBUGF ("Loading %s\n", filename); conn = p4est_connectivity_load (filename, NULL); run_load (mpicomm, conn, level); p4est_connectivity_destroy (conn); sc_options_destroy (opt); sc_finalize (); mpiret = sc_MPI_Finalize (); SC_CHECK_MPI (mpiret); return 0; }
int main (int argc, char **argv) { MPI_Comm mpicomm; int mpiret, retval; int rlevel, l; int periodic; sc_options_t *opt; mpiret = MPI_Init (&argc, &argv); SC_CHECK_MPI (mpiret); mpicomm = MPI_COMM_WORLD; sc_init (MPI_COMM_WORLD, 1, 1, NULL, SC_LP_DEFAULT); p4est_init (NULL, SC_LP_DEFAULT); opt = sc_options_new (argv[0]); sc_options_add_int (opt, 'l', "level", &rlevel, 0, "Upfront refinement level"); sc_options_add_switch (opt, 'p', "periodic", &periodic, "Periodic connectivity"); retval = sc_options_parse (p4est_package_id, SC_LP_ERROR, opt, argc, argv); if (retval == -1 || retval < argc) { sc_options_print_usage (p4est_package_id, SC_LP_PRODUCTION, opt, NULL); sc_abort_collective ("Usage error"); } for (l = 0; l <= rlevel; ++l) { run_bricks (mpicomm, periodic, l, rlevel); } sc_options_destroy (opt); sc_finalize (); mpiret = MPI_Finalize (); SC_CHECK_MPI (mpiret); return 0; }
int main (int argc, char **argv) { sc_MPI_Comm mpicomm; int mpiret; int mpirank; int first_arg; const char *prefix; p4est_connectivity_t *connectivity; sc_options_t *opt; /* initialize MPI */ mpiret = sc_MPI_Init (&argc, &argv); SC_CHECK_MPI (mpiret); mpicomm = sc_MPI_COMM_WORLD; mpiret = sc_MPI_Comm_rank (mpicomm, &mpirank); SC_CHECK_MPI (mpiret); /* initialize libsc and p4est */ sc_init (mpicomm, 1, 1, NULL, SC_LP_DEFAULT); p4est_init (NULL, SC_LP_DEFAULT); /* handle command line options */ opt = sc_options_new (argv[0]); sc_options_add_int (opt, 'l', "level", &refine_level, default_refine_level, "Refinement level"); sc_options_add_string (opt, 'o', "oprefix", &prefix, P4EST_STRING, "Output prefix"); first_arg = sc_options_parse (p4est_package_id, SC_LP_INFO, opt, argc, argv); SC_CHECK_ABORT (first_arg >= 0, "Option error"); /* create connectivity */ #ifndef P4_TO_P8 connectivity = p4est_connectivity_new_star (); #else connectivity = p8est_connectivity_new_rotcubes (); #endif /* test with vertex information */ test_loadsave (connectivity, prefix, mpicomm, mpirank); /* test without vertex information */ connectivity->num_vertices = 0; P4EST_FREE (connectivity->vertices); connectivity->vertices = NULL; P4EST_FREE (connectivity->tree_to_vertex); connectivity->tree_to_vertex = NULL; p4est_connectivity_set_attr (connectivity, 1); memset (connectivity->tree_to_attr, 0, connectivity->num_trees * sizeof (int8_t)); test_loadsave (connectivity, prefix, mpicomm, mpirank); /* clean up and exit */ p4est_connectivity_destroy (connectivity); sc_options_destroy (opt); sc_finalize (); mpiret = sc_MPI_Finalize (); SC_CHECK_MPI (mpiret); return 0; }