From 13341ba59bf4f88826225fa8a10255b436e4911e Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 24 Aug 2018 12:28:45 -0500 Subject: [PATCH] Move more definitions of settings variables to C++ --- include/openmc/settings.h | 9 ++++++++- src/settings.F90 | 16 ++++++++-------- src/settings.cpp | 7 +++++++ 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/include/openmc/settings.h b/include/openmc/settings.h index 640fac7d6..d7220a042 100644 --- a/include/openmc/settings.h +++ b/include/openmc/settings.h @@ -63,14 +63,21 @@ extern "C" int32_t index_ufs_mesh; //!< Index of UFS mesh in global mesh ar extern "C" int electron_treatment; //!< how to treat secondary electrons extern "C" double energy_cutoff[4]; //!< Energy cutoff in [eV] for each particle type extern "C" int legendre_to_tabular_points; //!< number of points to convert Legendres -extern "C" int temperature_method; //!< method for choosing temperatures +extern "C" int max_order; //!< Maximum Legendre order for multigroup data +extern "C" int n_log_bins; //!< number of bins for logarithmic energy grid +extern "C" int n_max_batches; //!< Maximum number of batches 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" int temperature_method; //!< method for choosing temperatures 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 trace_batch; //!< Batch to trace particle on +extern "C" int trace_gen; //!< Generation to trace particle on +extern "C" int64_t trace_particle; //!< Particle ID to enable trace on +extern "C" int trigger_batch_interval; //!< Batch interval for triggers 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/src/settings.F90 b/src/settings.F90 index a7530b1b5..e6c50e8d7 100644 --- a/src/settings.F90 +++ b/src/settings.F90 @@ -24,7 +24,7 @@ module settings real(C_DOUBLE), bind(C) :: temperature_default real(C_DOUBLE), bind(C) :: temperature_range(2) - integer :: n_log_bins ! number of bins for logarithmic grid + integer(C_INT), bind(C) :: n_log_bins ! number of bins for logarithmic grid logical(C_BOOL), bind(C) :: photon_transport integer(C_INT), bind(C) :: electron_treatment @@ -33,7 +33,7 @@ module settings ! MULTI-GROUP CROSS SECTION RELATED VARIABLES ! Maximum Data Order - integer(C_INT) :: max_order + integer(C_INT), bind(C) :: max_order ! Whether or not to convert Legendres to tabulars logical(C_BOOL), bind(C) :: legendre_to_tabular @@ -55,8 +55,8 @@ module settings integer(C_INT32_T), bind(C) :: n_inactive ! # of inactive batches integer(C_INT32_T), bind(C) :: gen_per_batch = 1 ! # of generations per batch - integer :: n_max_batches ! max # of batches - integer :: n_batch_interval = 1 ! batch interval for triggers + integer(C_INT), bind(C) :: n_max_batches ! max # of batches + integer(C_INT), bind(C, name='trigger_batch_interval') :: n_batch_interval ! batch interval for triggers logical(C_BOOL), bind(C, name='trigger_predict') :: pred_batches ! predict batches for triggers logical(C_BOOL), bind(C) :: trigger_on ! flag for turning triggers on/off @@ -75,7 +75,7 @@ module settings logical(C_BOOL), bind(C) :: survival_biasing real(C_DOUBLE), bind(C) :: weight_cutoff real(C_DOUBLE), bind(C) :: energy_cutoff(4) - real(C_DOUBLE) :: weight_survive + real(C_DOUBLE), bind(C) :: weight_survive ! Mode to run in (fixed source, eigenvalue, plotting, etc) integer(C_INT), bind(C) :: run_mode @@ -90,9 +90,9 @@ module settings logical(C_BOOL), bind(C) :: check_overlaps ! Trace for single particle - integer :: trace_batch - integer :: trace_gen - integer(8) :: trace_particle + integer(C_INT), bind(C) :: trace_batch + integer(C_INT), bind(C) :: trace_gen + integer(C_INT64_T), bind(C) :: trace_particle ! Particle tracks logical(C_BOOL), bind(C) :: write_all_tracks diff --git a/src/settings.cpp b/src/settings.cpp index 46932aadb..3beceabbb 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -61,6 +61,9 @@ int32_t index_ufs_mesh {-1}; int electron_treatment {ELECTRON_TTB}; double energy_cutoff[4] {0.0, 1000.0, 0.0, 0.0}; int legendre_to_tabular_points {C_NONE}; +int max_order; +int n_log_bins; +int n_max_batches; int res_scat_method {RES_SCAT_ARES}; double res_scat_energy_min {0.01}; double res_scat_energy_max {1000.0}; @@ -69,6 +72,10 @@ int temperature_method {TEMPERATURE_NEAREST}; double temperature_tolerance {10.0}; double temperature_default {293.6}; double temperature_range[2] {0.0, 0.0}; +int trace_batch; +int trace_gen; +int64_t trace_particle; +int trigger_batch_interval {1}; int verbosity {7}; double weight_cutoff {0.25}; double weight_survive {1.0};