From 074f7f7cd396f1dbbffeb2a676752056d0287b85 Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Tue, 7 Apr 2020 15:48:35 -0500 Subject: [PATCH] Passing the number of threads in use to libmesh. --- src/initialize.cpp | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) 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