diff --git a/src/initialize.cpp b/src/initialize.cpp index c85ae81b1..8053246cd 100644 --- a/src/initialize.cpp +++ b/src/initialize.cpp @@ -58,7 +58,24 @@ int openmc_init(int argc, char* argv[], const void* intracomm) // Parse command-line arguments int err = parse_command_line(argc, argv); - //if (err) return err; + if (err) return err; + +#ifdef LIBMESH + +#ifdef _OPENMP + int n_threads = omp_get_max_threads(); +#else + int n_threads = 1; +#endif + + // initialize libmesh +#ifdef OPENMC_MPI + if (!settings::LMI) settings::LMI = std::make_unique(argc, argv, mpi::intracomm, n_threads); +#else + if (!settings::LMI) settings::LMI = std::make_unique(argc, argv, n_threads); +#endif + +#endif // Start total and initialization timer simulation::time_total.start(); @@ -72,10 +89,6 @@ int openmc_init(int argc, char* argv[], const void* intracomm) } #endif -#ifdef LIBMESH - if (!settings::LMI) settings::LMI = std::make_unique(argc, argv); -#endif - // Initialize random number generator -- if the user specifies a seed, it // will be re-initialized later