25 #include <queso/MLSamplingOptions.h>
26 #include <queso/Miscellaneous.h>
32 m_prefix ((std::string)(prefix) +
"ml_" ),
34 m_restartOutput_levelPeriod (UQ_ML_SAMPLING_RESTART_OUTPUT_LEVEL_PERIOD_ODV ),
35 m_restartOutput_baseNameForFiles (UQ_ML_SAMPLING_RESTART_OUTPUT_BASE_NAME_FOR_FILES_ODV),
36 m_restartOutput_fileType (UQ_ML_SAMPLING_RESTART_OUTPUT_FILE_TYPE_ODV ),
37 m_restartInput_baseNameForFiles (UQ_ML_SAMPLING_RESTART_INPUT_BASE_NAME_FOR_FILES_ODV ),
47 m_optionsDesc (new po::options_description(
"Multilevel sampling options")),
48 m_option_help (m_prefix +
"help" ),
50 m_option_restartOutput_levelPeriod (m_prefix +
"restartOutput_levelPeriod" ),
51 m_option_restartOutput_baseNameForFiles(m_prefix +
"restartOutput_baseNameForFiles"),
52 m_option_restartOutput_fileType (m_prefix +
"restartOutput_fileType" ),
53 m_option_restartInput_baseNameForFiles (m_prefix +
"restartInput_baseNameForFiles" ),
54 m_option_restartInput_fileType (m_prefix +
"restartInput_fileType" ),
56 m_option_restartInputFileName (m_prefix +
"restartInputFileName"),
57 m_option_restartInputFileType (m_prefix +
"restartInputFileType"),
58 m_option_restartChainSize (m_prefix +
"restartChainSize" ),
60 m_option_dataOutputFileName (m_prefix +
"dataOutputFileName" ),
61 m_option_dataOutputAllowedSet (m_prefix +
"dataOutputAllowedSet")
79 <<
": after getting values of options with prefix '" <<
m_prefix
80 <<
"', state of object is:"
91 optionsDesc.add_options()
92 (
m_option_help.c_str(),
"produce help msg for ML sampling options" )
94 (m_option_restartOutput_levelPeriod.c_str(), po::value<unsigned int>()->default_value(UQ_ML_SAMPLING_RESTART_OUTPUT_LEVEL_PERIOD_ODV),
"restartOutput_levelPeriod" )
95 (m_option_restartOutput_baseNameForFiles.c_str(), po::value<std::string >()->default_value(UQ_ML_SAMPLING_RESTART_OUTPUT_BASE_NAME_FOR_FILES_ODV),
"restartOutput_baseNameForFiles" )
96 (m_option_restartOutput_fileType.c_str(), po::value<std::string >()->default_value(UQ_ML_SAMPLING_RESTART_OUTPUT_FILE_TYPE_ODV),
"restartOutput_fileType" )
97 (m_option_restartInput_baseNameForFiles.c_str(), po::value<std::string >()->default_value(UQ_ML_SAMPLING_RESTART_INPUT_BASE_NAME_FOR_FILES_ODV),
"restartInput_baseNameForFiles" )
121 #ifdef ML_CODE_HAS_NEW_RESTART_CAPABILITY
123 m_restartOutput_levelPeriod = ((
const po::variable_value&)
m_env.
allOptionsMap()[m_option_restartOutput_levelPeriod.c_str()]).as<unsigned int>();
127 m_restartOutput_baseNameForFiles = ((
const po::variable_value&)
m_env.
allOptionsMap()[m_option_restartOutput_baseNameForFiles.c_str()]).as<std::string>();
130 UQ_FATAL_TEST_MACRO((m_restartOutput_levelPeriod > 0) && (m_restartOutput_baseNameForFiles ==
"."),
132 "MLSamplingOptions::getMyOptionsValues()",
133 "Option 'restartOutput_levelPeriod' is > 0, but 'restartOutput_baseNameForFiles' is not specified...");
136 m_restartOutput_fileType = ((
const po::variable_value&)
m_env.
allOptionsMap()[m_option_restartOutput_fileType.c_str()]).as<std::string>();
140 m_restartInput_baseNameForFiles = ((
const po::variable_value&)
m_env.
allOptionsMap()[m_option_restartInput_baseNameForFiles.c_str()]).as<std::string>();
144 m_restartInput_fileType = ((
const po::variable_value&)
m_env.
allOptionsMap()[m_option_restartInput_fileType.c_str()]).as<std::string>();
165 std::vector<double> tmpAllow(0,0.);
169 if (tmpAllow.size() > 0) {
170 for (
unsigned int i = 0; i < tmpAllow.size(); ++i) {
182 #ifdef ML_CODE_HAS_NEW_RESTART_CAPABILITY
183 os << m_option_restartOutput_levelPeriod <<
" = " << m_restartOutput_levelPeriod
184 <<
"\n" << m_option_restartOutput_baseNameForFiles <<
" = " << m_restartOutput_baseNameForFiles
185 <<
"\n" << m_option_restartOutput_fileType <<
" = " << m_restartOutput_fileType
186 <<
"\n" << m_option_restartInput_baseNameForFiles <<
" = " << m_restartInput_baseNameForFiles
187 <<
"\n" << m_option_restartInput_fileType <<
" = " << m_restartInput_fileType
const BaseEnvironment & m_env
unsigned int m_restartChainSize
Size of restart chain.
int worldRank() const
Returns the process world rank.
std::ofstream * subDisplayFile() const
Access function for m_subDisplayFile (displays file on stream).
po::options_description * m_optionsDesc
#define UQ_ML_SAMPLING_RESTART_INPUT_FILE_TYPE_ODV
po::variables_map & allOptionsMap() const
This (virtual) class sets up the environment underlying the use of the QUESO library by an executable...
std::ostream & operator<<(std::ostream &os, const BaseEnvironment &obj)
std::string m_dataOutputFileName
Name of generic output file.
void MiscReadDoublesFromString(const std::string &inputString, std::vector< double > &outputDoubles)
std::string m_restartInputFileType
Type of restart input file.
MLSamplingOptions(const BaseEnvironment &env, const char *prefix)
Default constructor.
#define UQ_ML_SAMPLING_DATA_OUTPUT_ALLOWED_SET_ODV
std::string m_option_restartInputFileName
std::set< unsigned int > m_dataOutputAllowedSet
std::string m_option_restartInputFileType
std::string m_option_help
std::string m_prefix
Class prefix. (ml)
void scanOptionsValues()
It scans the option values from the options input file.
This class provides options for the Multilevel sequence generator if no input file is available...
void getMyOptionValues(po::options_description &optionsDesc)
Gets the sequence options defined to the Multilevel algorithm.
std::string m_option_dataOutputFileName
#define ML_CODE_HAS_NEW_RESTART_CAPABILITY
void print(std::ostream &os) const
It prints the option values.
~MLSamplingOptions()
Destructor.
#define UQ_ML_SAMPLING_RESTART_INPUT_FILE_NAME_ODV
#define UQ_ML_SAMPLING_RESTART_CHAIN_SIZE_ODV
#define UQ_ML_SAMPLING_DATA_OUTPUT_FILE_NAME_ODV
#define UQ_FATAL_TEST_MACRO(test, givenRank, where, what)
std::string m_option_dataOutputAllowedSet
std::string m_option_restartChainSize
void defineMyOptions(po::options_description &optionsDesc) const
Defines the options for the Multilevel generator of samples as the default options.
std::string m_restartInputFileName
Name of restart input file.
void scanInputFileForMyOptions(const po::options_description &optionsDesc) const
This method scans the input file provided by the user to QUESO.