From bb69f52311f49346be35cc29adb267ad23298ca4 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 24 Aug 2018 11:04:17 -0500 Subject: [PATCH] Move run_mode and verbosity out of C API --- include/openmc/capi.h | 2 -- include/openmc/settings.h | 2 ++ openmc/capi/settings.py | 6 +++--- src/initialize.cpp | 4 ++-- src/main.cpp | 3 ++- src/particle.cpp | 4 ++-- src/settings.F90 | 4 ++-- src/settings.cpp | 4 +++- 8 files changed, 16 insertions(+), 13 deletions(-) diff --git a/include/openmc/capi.h b/include/openmc/capi.h index bc43715926..500f38da5d 100644 --- a/include/openmc/capi.h +++ b/include/openmc/capi.h @@ -152,9 +152,7 @@ extern "C" { extern int32_t n_surfaces; extern int32_t n_tallies; extern int32_t n_universes; - extern int openmc_run_mode; extern bool openmc_simulation_initialized; - extern int openmc_verbosity; // Variables that are shared by necessity (can be removed from public header // later) diff --git a/include/openmc/settings.h b/include/openmc/settings.h index aa4b93656a..640fac7d6a 100644 --- a/include/openmc/settings.h +++ b/include/openmc/settings.h @@ -67,9 +67,11 @@ extern "C" int temperature_method; //!< method for choosing temperatures extern "C" int res_scat_method; //!< resonance upscattering method extern "C" double res_scat_energy_min; //!< Min energy in [eV] for res. upscattering extern "C" double res_scat_energy_max; //!< Max energy in [eV] for res. upscattering +extern "C" int run_mode; //!< Run mode (eigenvalue, fixed src, etc.) extern "C" double temperature_tolerance; //!< Tolerance in [K] on choosing temperatures extern "C" double temperature_default; //!< Default T in [K] extern "C" double temperature_range[2]; //!< Min/max T in [K] over which to load xs +extern "C" int verbosity; //!< How verbose to make output extern "C" double weight_cutoff; //!< Weight cutoff for Russian roulette extern "C" double weight_survive; //!< Survival weight after Russian roulette diff --git a/openmc/capi/settings.py b/openmc/capi/settings.py index d706112c41..1063d6463e 100644 --- a/openmc/capi/settings.py +++ b/openmc/capi/settings.py @@ -20,11 +20,11 @@ class _Settings(object): generations_per_batch = _DLLGlobal(c_int32, 'gen_per_batch') inactive = _DLLGlobal(c_int32, 'n_inactive') particles = _DLLGlobal(c_int64, 'n_particles') - verbosity = _DLLGlobal(c_int, 'openmc_verbosity') + verbosity = _DLLGlobal(c_int, 'verbosity') @property def run_mode(self): - i = c_int.in_dll(_dll, 'openmc_run_mode').value + i = c_int.in_dll(_dll, 'run_mode').value try: return _RUN_MODES[i] except KeyError: @@ -32,7 +32,7 @@ class _Settings(object): @run_mode.setter def run_mode(self, mode): - current_idx = c_int.in_dll(_dll, 'openmc_run_mode') + current_idx = c_int.in_dll(_dll, 'run_mode') for idx, mode_value in _RUN_MODES.items(): if mode_value == mode: current_idx.value = idx diff --git a/src/initialize.cpp b/src/initialize.cpp index dfbf418343..35f8728162 100644 --- a/src/initialize.cpp +++ b/src/initialize.cpp @@ -108,7 +108,7 @@ parse_command_line(int argc, char* argv[]) std::string arg {argv[i]}; if (arg[0] == '-') { if (arg == "-p" || arg == "--plot") { - openmc_run_mode = RUN_MODE_PLOTTING; + settings::run_mode = RUN_MODE_PLOTTING; settings::check_overlaps = true; } else if (arg == "-n" || arg == "--particles") { @@ -172,7 +172,7 @@ parse_command_line(int argc, char* argv[]) } else if (arg == "-g" || arg == "--geometry-debug") { settings::check_overlaps = true; } else if (arg == "-c" || arg == "--volume") { - openmc_run_mode = RUN_MODE_VOLUME; + settings::run_mode = RUN_MODE_VOLUME; } else if (arg == "-s" || arg == "--threads") { // Read number of threads i += 1; diff --git a/src/main.cpp b/src/main.cpp index 54b78d38d0..a6b12123eb 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3,6 +3,7 @@ #endif #include "openmc/capi.h" #include "openmc/error.h" +#include "openmc/settings.h" int main(int argc, char* argv[]) { @@ -23,7 +24,7 @@ int main(int argc, char* argv[]) { } // start problem based on mode - switch (openmc_run_mode) { + switch (openmc::settings::run_mode) { case RUN_MODE_FIXEDSOURCE: case RUN_MODE_EIGENVALUE: err = openmc_run(); diff --git a/src/particle.cpp b/src/particle.cpp index 3dda0e7c92..6c5d241138 100644 --- a/src/particle.cpp +++ b/src/particle.cpp @@ -144,7 +144,7 @@ void Particle::write_restart() { // Dont write another restart file if in particle restart mode - if (openmc_run_mode == RUN_MODE_PARTICLE) return; + if (settings::run_mode == RUN_MODE_PARTICLE) return; // Set up file name std::stringstream filename; @@ -169,7 +169,7 @@ Particle::write_restart() write_dataset(file_id, "generations_per_batch", gen_per_batch); write_dataset(file_id, "current_generation", openmc_current_gen); write_dataset(file_id, "n_particles", n_particles); - switch (openmc_run_mode) { + switch (settings::run_mode) { case RUN_MODE_FIXEDSOURCE: write_dataset(file_id, "run_mode", "fixed source"); break; diff --git a/src/settings.F90 b/src/settings.F90 index 8c862d9b9f..a7530b1b5d 100644 --- a/src/settings.F90 +++ b/src/settings.F90 @@ -78,14 +78,14 @@ module settings real(C_DOUBLE) :: weight_survive ! Mode to run in (fixed source, eigenvalue, plotting, etc) - integer(C_INT), bind(C, name='openmc_run_mode') :: run_mode = NONE + integer(C_INT), bind(C) :: run_mode ! Restart run logical(C_BOOL), bind(C) :: restart_run ! The verbosity controls how much information will be printed to the screen ! and in logs - integer(C_INT), bind(C, name='openmc_verbosity') :: verbosity = 7 + integer(C_INT), bind(C) :: verbosity logical(C_BOOL), bind(C) :: check_overlaps diff --git a/src/settings.cpp b/src/settings.cpp index 8c0027aa0f..46932aadb4 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -64,10 +64,12 @@ int legendre_to_tabular_points {C_NONE}; int res_scat_method {RES_SCAT_ARES}; double res_scat_energy_min {0.01}; double res_scat_energy_max {1000.0}; +int run_mode; int temperature_method {TEMPERATURE_NEAREST}; double temperature_tolerance {10.0}; double temperature_default {293.6}; double temperature_range[2] {0.0, 0.0}; +int verbosity {7}; double weight_cutoff {0.25}; double weight_survive {1.0}; @@ -92,7 +94,7 @@ void read_settings(pugi::xml_node* root) } // Look for deprecated windowed_multipole file in settings.xml - if (openmc_run_mode != RUN_MODE_PLOTTING) { + if (run_mode != RUN_MODE_PLOTTING) { if (check_for_node(*root, "multipole_library")) { warning("Setting multipole_library in settings.xml has been " "deprecated. The multipole_library is now set in materials.xml and"