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
#define UQ_ML_SAMPLING_DATA_OUTPUT_ALLOWED_SET_ODV
~MLSamplingOptions()
Destructor.
void MiscReadDoublesFromString(const std::string &inputString, std::vector< double > &outputDoubles)
std::string m_dataOutputFileName
Name of generic output file.
#define UQ_ML_SAMPLING_RESTART_INPUT_FILE_NAME_ODV
std::string m_restartInputFileType
Type of restart input file.
std::string m_option_dataOutputAllowedSet
int worldRank() const
Returns the process world rank.
MLSamplingOptions(const BaseEnvironment &env, const char *prefix)
Default constructor.
std::ofstream * subDisplayFile() const
Access function for m_subDisplayFile (displays file on stream).
std::ostream & operator<<(std::ostream &os, const BaseEnvironment &obj)
std::set< unsigned int > m_dataOutputAllowedSet
std::string m_option_restartInputFileType
po::variables_map & allOptionsMap() const
std::string m_prefix
Class prefix. (ml)
This (virtual) class sets up the environment underlying the use of the QUESO library by an executable...
const BaseEnvironment & m_env
void getMyOptionValues(po::options_description &optionsDesc)
Gets the sequence options defined to the Multilevel algorithm.
#define UQ_FATAL_TEST_MACRO(test, givenRank, where, what)
po::options_description * m_optionsDesc
void print(std::ostream &os) const
It prints the option values.
#define UQ_ML_SAMPLING_RESTART_CHAIN_SIZE_ODV
#define UQ_ML_SAMPLING_DATA_OUTPUT_FILE_NAME_ODV
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.
std::string m_option_restartInputFileName
std::string m_option_help
unsigned int m_restartChainSize
Size of restart chain.
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...
#define ML_CODE_HAS_NEW_RESTART_CAPABILITY
#define UQ_ML_SAMPLING_RESTART_INPUT_FILE_TYPE_ODV
void scanInputFileForMyOptions(const po::options_description &optionsDesc) const
This method scans the input file provided by the user to QUESO.
std::string m_option_dataOutputFileName