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