queso-0.56.0
GpmsaComputerModelOptions.C
Go to the documentation of this file.
1 //-----------------------------------------------------------------------bl-
2 //--------------------------------------------------------------------------
3 //
4 // QUESO - a library to support the Quantification of Uncertainty
5 // for Estimation, Simulation and Optimization
6 //
7 // Copyright (C) 2008-2015 The PECOS Development Team
8 //
9 // This library is free software; you can redistribute it and/or
10 // modify it under the terms of the Version 2.1 GNU Lesser General
11 // Public License as published by the Free Software Foundation.
12 //
13 // This library is distributed in the hope that it will be useful,
14 // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 // Lesser General Public License for more details.
17 //
18 // You should have received a copy of the GNU Lesser General Public
19 // License along with this library; if not, write to the Free Software
20 // Foundation, Inc. 51 Franklin Street, Fifth Floor,
21 // Boston, MA 02110-1301 USA
22 //
23 //-----------------------------------------------------------------------el-
24 
25 #ifndef DISABLE_BOOST_PROGRAM_OPTIONS
26 #include <boost/program_options.hpp>
27 #endif // DISABLE_BOOST_PROGRAM_OPTIONS
28 
29 #include <queso/GpmsaComputerModelOptions.h>
30 #include <queso/Miscellaneous.h>
31 
32 namespace QUESO {
33 
35  :
36  m_prefix ("gcm_"),
37  m_checkAgainstPreviousSample (UQ_GCM_CHECK_AGAINST_PREVIOUS_SAMPLE_ODV ),
38  m_dataOutputFileName (UQ_GCM_DATA_OUTPUT_FILE_NAME_ODV ),
39  m_dataOutputAllowAll (UQ_GCM_DATA_OUTPUT_ALLOW_ALL_ODV ),
40  //m_dataOutputAllowedSet (),
41  m_priorSeqNumSamples (UQ_GCM_PRIOR_SEQ_NUM_SAMPLES_ODV ),
42  m_priorSeqDataOutputFileName (UQ_GCM_PRIOR_SEQ_DATA_OUTPUT_FILE_NAME_ODV ),
43  m_priorSeqDataOutputFileType (UQ_GCM_PRIOR_SEQ_DATA_OUTPUT_FILE_TYPE_ODV ),
44  m_priorSeqDataOutputAllowAll (UQ_GCM_PRIOR_SEQ_DATA_OUTPUT_ALLOW_ALL_ODV ),
45  //m_priorSeqDataOutputAllowedSet (),
46  m_nuggetValueForBtWyB (UQ_GCM_NUGGET_VALUE_FOR_BT_WY_B_ODV ),
47  m_nuggetValueForBtWyBInv (UQ_GCM_NUGGET_VALUE_FOR_BT_WY_B_INV_ODV ),
48  m_formCMatrix (UQ_GCM_FORM_C_MATRIX_ODV ),
49  m_useTildeLogicForRankDefficientC(UQ_GCM_USE_TILDE_LOGIC_FOR_RANK_DEFFICIENT_C_ODV),
50  m_predLag (UQ_GCM_PRED_LAG_ODV ),
51  m_predVUsBySamplingRVs (UQ_GCM_PRED_VUS_BY_SAMPLING_RVS_ODV ),
52  m_predVUsBySummingRVs (UQ_GCM_PRED_VUS_BY_SUMMING_RVS_ODV ),
53  m_predVUsAtKeyPoints (UQ_GCM_PRED_VUS_AT_KEY_POINTS_ODV ),
54  m_predWsBySamplingRVs (UQ_GCM_PRED_WS_BY_SAMPLING_RVS_ODV ),
55  m_predWsBySummingRVs (UQ_GCM_PRED_WS_BY_SUMMING_RVS_ODV ),
56  m_predWsAtKeyPoints (UQ_GCM_PRED_WS_AT_KEY_POINTS_ODV ),
57 #ifndef DISABLE_BOOST_PROGRAM_OPTIONS
58  m_parser(NULL),
59 #endif // DISABLE_BOOST_PROGRAM_OPTIONS
60  m_option_help (m_prefix + "help" ),
61  m_option_checkAgainstPreviousSample (m_prefix + "checkAgainstPreviousSample" ),
62  m_option_dataOutputFileName (m_prefix + "dataOutputFileName" ),
63  m_option_dataOutputAllowAll (m_prefix + "dataOutputAllowAll" ),
64  m_option_dataOutputAllowedSet (m_prefix + "dataOutputAllowedSet" ),
65  m_option_priorSeqNumSamples (m_prefix + "priorSeqNumSamples" ),
66  m_option_priorSeqDataOutputFileName (m_prefix + "priorSeqDataOutputFileName" ),
67  m_option_priorSeqDataOutputFileType (m_prefix + "priorSeqDataOutputFileType" ),
68  m_option_priorSeqDataOutputAllowAll (m_prefix + "priorSeqDataOutputAllowAll" ),
69  m_option_priorSeqDataOutputAllowedSet (m_prefix + "priorSeqDataOutputAllowedSet" ),
70  m_option_nuggetValueForBtWyB (m_prefix + "nuggetValueForBtWyB" ),
71  m_option_nuggetValueForBtWyBInv (m_prefix + "nuggetValueForBtWyBInv" ),
72  m_option_formCMatrix (m_prefix + "formCMatrix" ),
73  m_option_useTildeLogicForRankDefficientC(m_prefix + "useTildeLogicForRankDefficientC"),
74  m_option_predLag (m_prefix + "predLag" ),
75  m_option_predVUsBySamplingRVs (m_prefix + "predVUsBySamplingRVs" ),
76  m_option_predVUsBySummingRVs (m_prefix + "predVUsBySummingRVs" ),
77  m_option_predVUsAtKeyPoints (m_prefix + "predVUsAtKeyPoints" ),
78  m_option_predWsBySamplingRVs (m_prefix + "predWsBySamplingRVs" ),
79  m_option_predWsBySummingRVs (m_prefix + "predWsBySummingRVs" ),
80  m_option_predWsAtKeyPoints (m_prefix + "predWsAtKeyPoints" )
81 {
82 }
83 
85  prefix)
86  :
87  m_prefix ((std::string)(prefix) + "gcm_"),
88  m_checkAgainstPreviousSample (UQ_GCM_CHECK_AGAINST_PREVIOUS_SAMPLE_ODV ),
89  m_dataOutputFileName (UQ_GCM_DATA_OUTPUT_FILE_NAME_ODV ),
90  m_dataOutputAllowAll (UQ_GCM_DATA_OUTPUT_ALLOW_ALL_ODV ),
91  //m_dataOutputAllowedSet (),
92  m_priorSeqNumSamples (UQ_GCM_PRIOR_SEQ_NUM_SAMPLES_ODV ),
93  m_priorSeqDataOutputFileName (UQ_GCM_PRIOR_SEQ_DATA_OUTPUT_FILE_NAME_ODV ),
94  m_priorSeqDataOutputFileType (UQ_GCM_PRIOR_SEQ_DATA_OUTPUT_FILE_TYPE_ODV ),
95  m_priorSeqDataOutputAllowAll (UQ_GCM_PRIOR_SEQ_DATA_OUTPUT_ALLOW_ALL_ODV ),
96  //m_priorSeqDataOutputAllowedSet (),
97  m_nuggetValueForBtWyB (UQ_GCM_NUGGET_VALUE_FOR_BT_WY_B_ODV ),
98  m_nuggetValueForBtWyBInv (UQ_GCM_NUGGET_VALUE_FOR_BT_WY_B_INV_ODV ),
99  m_formCMatrix (UQ_GCM_FORM_C_MATRIX_ODV ),
100  m_useTildeLogicForRankDefficientC(UQ_GCM_USE_TILDE_LOGIC_FOR_RANK_DEFFICIENT_C_ODV),
101  m_predLag (UQ_GCM_PRED_LAG_ODV ),
102  m_predVUsBySamplingRVs (UQ_GCM_PRED_VUS_BY_SAMPLING_RVS_ODV ),
103  m_predVUsBySummingRVs (UQ_GCM_PRED_VUS_BY_SUMMING_RVS_ODV ),
104  m_predVUsAtKeyPoints (UQ_GCM_PRED_VUS_AT_KEY_POINTS_ODV ),
105  m_predWsBySamplingRVs (UQ_GCM_PRED_WS_BY_SAMPLING_RVS_ODV ),
106  m_predWsBySummingRVs (UQ_GCM_PRED_WS_BY_SUMMING_RVS_ODV ),
107  m_predWsAtKeyPoints (UQ_GCM_PRED_WS_AT_KEY_POINTS_ODV ),
108 #ifndef DISABLE_BOOST_PROGRAM_OPTIONS
109  m_parser(new BoostInputOptionsParser(env->optionsInputFileName())),
110 #endif // DISABLE_BOOST_PROGRAM_OPTIONS
111  m_option_help (m_prefix + "help" ),
112  m_option_checkAgainstPreviousSample (m_prefix + "checkAgainstPreviousSample" ),
113  m_option_dataOutputFileName (m_prefix + "dataOutputFileName" ),
114  m_option_dataOutputAllowAll (m_prefix + "dataOutputAllowAll" ),
115  m_option_dataOutputAllowedSet (m_prefix + "dataOutputAllowedSet" ),
116  m_option_priorSeqNumSamples (m_prefix + "priorSeqNumSamples" ),
117  m_option_priorSeqDataOutputFileName (m_prefix + "priorSeqDataOutputFileName" ),
118  m_option_priorSeqDataOutputFileType (m_prefix + "priorSeqDataOutputFileType" ),
119  m_option_priorSeqDataOutputAllowAll (m_prefix + "priorSeqDataOutputAllowAll" ),
120  m_option_priorSeqDataOutputAllowedSet (m_prefix + "priorSeqDataOutputAllowedSet" ),
121  m_option_nuggetValueForBtWyB (m_prefix + "nuggetValueForBtWyB" ),
122  m_option_nuggetValueForBtWyBInv (m_prefix + "nuggetValueForBtWyBInv" ),
123  m_option_formCMatrix (m_prefix + "formCMatrix" ),
124  m_option_useTildeLogicForRankDefficientC(m_prefix + "useTildeLogicForRankDefficientC"),
125  m_option_predLag (m_prefix + "predLag" ),
126  m_option_predVUsBySamplingRVs (m_prefix + "predVUsBySamplingRVs" ),
127  m_option_predVUsBySummingRVs (m_prefix + "predVUsBySummingRVs" ),
128  m_option_predVUsAtKeyPoints (m_prefix + "predVUsAtKeyPoints" ),
129  m_option_predWsBySamplingRVs (m_prefix + "predWsBySamplingRVs" ),
130  m_option_predWsBySummingRVs (m_prefix + "predWsBySummingRVs" ),
131  m_option_predWsAtKeyPoints (m_prefix + "predWsAtKeyPoints" )
132 {
133 #ifndef DISABLE_BOOST_PROGRAM_OPTIONS
134  m_parser->registerOption(m_option_help.c_str(), "produce help message for mixed inverse problem");
136  m_parser->registerOption<std::string >(m_option_dataOutputFileName, UQ_GCM_DATA_OUTPUT_FILE_NAME_ODV , "name of data output file" );
138  m_parser->registerOption<std::string >(m_option_dataOutputAllowedSet, UQ_GCM_DATA_OUTPUT_ALLOWED_SET_ODV , "subEnvs that will write to data output file" );
140  m_parser->registerOption<std::string >(m_option_priorSeqDataOutputFileName, UQ_GCM_PRIOR_SEQ_DATA_OUTPUT_FILE_NAME_ODV , "prior sequence data output filename" );
141  m_parser->registerOption<std::string >(m_option_priorSeqDataOutputFileType, UQ_GCM_PRIOR_SEQ_DATA_OUTPUT_FILE_TYPE_ODV , "prior sequence data output filetype" );
143  m_parser->registerOption<std::string >(m_option_priorSeqDataOutputAllowedSet, UQ_GCM_PRIOR_SEQ_DATA_OUTPUT_ALLOWED_SET_ODV , "subEnvs that will write to data output file" );
144  m_parser->registerOption<double >(m_option_nuggetValueForBtWyB, UQ_GCM_NUGGET_VALUE_FOR_BT_WY_B_ODV , "nugget value for Bt_Wy_W matrix" );
145  m_parser->registerOption<double >(m_option_nuggetValueForBtWyBInv, UQ_GCM_NUGGET_VALUE_FOR_BT_WY_B_INV_ODV , "nugget value for Bt_Wy_W inverse matrix" );
148  m_parser->registerOption<unsigned int>(m_option_predLag, UQ_GCM_PRED_LAG_ODV , "predLag" );
155 
157 
171  m_parser->getOption<unsigned int>(m_option_predLag, m_predLag);
178 #else
182 
183  // UQ_GCM_DATA_OUTPUT_ALLOWED_SET_ODV is the empty set (string) by default
184  unsigned int size = env->input().vector_variable_size(m_option_dataOutputAllowedSet);
185  for (unsigned int i = 0; i < size; i++) {
186  // We default to empty set, so the default values are actually never
187  // used here
188  unsigned int allowed = env->input()(m_option_dataOutputAllowedSet, i, i);
189  m_dataOutputAllowedSet.insert(allowed);
190  }
191 
196 
197  // UQ_GCM_PRIOR_SEQ_DATA_OUTPUT_ALLOWED_SET_ODV is the empty set (string) by default
198  size = env->input().vector_variable_size(m_option_priorSeqDataOutputAllowedSet);
199  for (unsigned int i = 0; i < size; i++) {
200  // We default to empty set, so the default values are actually never
201  // used here
202  unsigned int allowed = env->input()(m_option_priorSeqDataOutputAllowedSet, i, i);
203  m_priorSeqDataOutputAllowedSet.insert(allowed);
204  }
205 
217 #endif // DISABLE_BOOST_PROGRAM_OPTIONS
218 }
219 
221 {
222 }
223 
225 {
226  this->copy(src);
227 }
228 
231 {
232  this->copy(rhs);
233  return *this;
234 }
235 
236 // void
237 // GcmOptionsValues::defineOptions()
238 // {
239 // (*m_optionsDescription).add_options()
240 // (m_option_help.c_str(), "produce help message for mixed inverse problem")
241 // (m_option_checkAgainstPreviousSample.c_str(), boost::program_options::value<bool >()->default_value(UQ_GCM_CHECK_AGAINST_PREVIOUS_SAMPLE_ODV ), "check against previous sample" )
242 // (m_option_dataOutputFileName.c_str(), boost::program_options::value<std::string >()->default_value(UQ_GCM_DATA_OUTPUT_FILE_NAME_ODV ), "name of data output file" )
243 // (m_option_dataOutputAllowAll.c_str(), boost::program_options::value<bool >()->default_value(UQ_GCM_DATA_OUTPUT_ALLOW_ALL_ODV ), "allow all or not" )
244 // (m_option_dataOutputAllowedSet.c_str(), boost::program_options::value<std::string >()->default_value(UQ_GCM_DATA_OUTPUT_ALLOWED_SET_ODV ), "subEnvs that will write to data output file" )
245 // (m_option_priorSeqNumSamples.c_str(), boost::program_options::value<unsigned int>()->default_value(UQ_GCM_PRIOR_SEQ_NUM_SAMPLES_ODV ), "prior sequence size" )
246 // (m_option_priorSeqDataOutputFileName.c_str(), boost::program_options::value<std::string >()->default_value(UQ_GCM_PRIOR_SEQ_DATA_OUTPUT_FILE_NAME_ODV ), "prior sequence data output filename" )
247 // (m_option_priorSeqDataOutputFileType.c_str(), boost::program_options::value<std::string >()->default_value(UQ_GCM_PRIOR_SEQ_DATA_OUTPUT_FILE_TYPE_ODV ), "prior sequence data output filetype" )
248 // (m_option_priorSeqDataOutputAllowAll.c_str(), boost::program_options::value<bool >()->default_value(UQ_GCM_PRIOR_SEQ_DATA_OUTPUT_ALLOW_ALL_ODV ), "allow all or not" )
249 // (m_option_priorSeqDataOutputAllowedSet.c_str(), boost::program_options::value<std::string >()->default_value(UQ_GCM_PRIOR_SEQ_DATA_OUTPUT_ALLOWED_SET_ODV ), "subEnvs that will write to data output file" )
250 // (m_option_nuggetValueForBtWyB.c_str(), boost::program_options::value<double >()->default_value(UQ_GCM_NUGGET_VALUE_FOR_BT_WY_B_ODV ), "nugget value for Bt_Wy_W matrix" )
251 // (m_option_nuggetValueForBtWyBInv.c_str(), boost::program_options::value<double >()->default_value(UQ_GCM_NUGGET_VALUE_FOR_BT_WY_B_INV_ODV ), "nugget value for Bt_Wy_W inverse matrix" )
252 // (m_option_formCMatrix.c_str(), boost::program_options::value<double >()->default_value(UQ_GCM_FORM_C_MATRIX_ODV ), "form C matrix" )
253 // (m_option_useTildeLogicForRankDefficientC.c_str(), boost::program_options::value<bool >()->default_value(UQ_GCM_USE_TILDE_LOGIC_FOR_RANK_DEFFICIENT_C_ODV), "use tilde logic for rank defficient C" )
254 // (m_option_predLag.c_str(), boost::program_options::value<unsigned int>()->default_value(UQ_GCM_PRED_LAG_ODV ), "predLag" )
255 // (m_option_predVUsBySamplingRVs.c_str(), boost::program_options::value<bool >()->default_value(UQ_GCM_PRED_VUS_BY_SAMPLING_RVS_ODV ), "predVUsBySamplingRVs" )
256 // (m_option_predVUsBySummingRVs.c_str(), boost::program_options::value<bool >()->default_value(UQ_GCM_PRED_VUS_BY_SUMMING_RVS_ODV ), "predVUsBySummingRVs" )
257 // (m_option_predVUsAtKeyPoints.c_str(), boost::program_options::value<bool >()->default_value(UQ_GCM_PRED_VUS_AT_KEY_POINTS_ODV ), "predVUsAtKeyPoints" )
258 // (m_option_predWsBySamplingRVs.c_str(), boost::program_options::value<bool >()->default_value(UQ_GCM_PRED_WS_BY_SAMPLING_RVS_ODV ), "predWsBySamplingRVs" )
259 // (m_option_predWsBySummingRVs.c_str(), boost::program_options::value<bool >()->default_value(UQ_GCM_PRED_WS_BY_SUMMING_RVS_ODV ), "predWsBySummingRVs" )
260 // (m_option_predWsAtKeyPoints.c_str(), boost::program_options::value<bool >()->default_value(UQ_GCM_PRED_WS_AT_KEY_POINTS_ODV ), "predWsAtKeyPoints" )
261 // ;
262 // }
263 //
264 // void
265 // GcmOptionsValues::getOptionValues()
266 // {
267 // if ((*m_optionsMap).count(m_option_help)) {
268 // if (m_env->subDisplayFile()) {
269 // *m_env->subDisplayFile() << (*m_optionsDescription)
270 // << std::endl;
271 // }
272 // }
273 //
274 // if ((*m_optionsMap).count(m_option_checkAgainstPreviousSample)) {
275 // m_checkAgainstPreviousSample = ((const boost::program_options::variable_value&) (*m_optionsMap)[m_option_checkAgainstPreviousSample]).as<bool>();
276 // }
277 //
278 // if ((*m_optionsMap).count(m_option_dataOutputFileName)) {
279 // m_dataOutputFileName = ((const boost::program_options::variable_value&) (*m_optionsMap)[m_option_dataOutputFileName]).as<std::string>();
280 // }
281 //
282 // if ((*m_optionsMap).count(m_option_dataOutputAllowAll)) {
283 // m_dataOutputAllowAll = ((const boost::program_options::variable_value&) (*m_optionsMap)[m_option_dataOutputAllowAll]).as<bool>();
284 // }
285 //
286 // if (m_dataOutputAllowAll) {
287 // m_dataOutputAllowedSet.insert(m_env->subId());
288 // }
289 // else if ((*m_optionsMap).count(m_option_dataOutputAllowedSet)) {
290 // m_dataOutputAllowedSet.clear();
291 // std::vector<double> tmpAllow(0,0.);
292 // std::string inputString = (*m_optionsMap)[m_option_dataOutputAllowedSet].as<std::string>();
293 // MiscReadDoublesFromString(inputString,tmpAllow);
294 //
295 // if (tmpAllow.size() > 0) {
296 // for (unsigned int i = 0; i < tmpAllow.size(); ++i) {
297 // m_dataOutputAllowedSet.insert((unsigned int) tmpAllow[i]);
298 // }
299 // }
300 // }
301 //
302 // //std::cout << "In GpmsaComputerModelOptions::getMyOptionValues(), m_option_priorSeqNumSamples = " << m_option_priorSeqNumSamples << "___" << std::endl;
303 // if ((*m_optionsMap).count(m_option_priorSeqNumSamples)) {
304 // //std::cout << "In GpmsaComputerModelOptions::getMyOptionValues(), going to read m_option_priorSeqNumSamples..." << std::endl;
305 // m_priorSeqNumSamples = ((const boost::program_options::variable_value&) (*m_optionsMap)[m_option_priorSeqNumSamples]).as<unsigned int>();
306 // //std::cout << "In GpmsaComputerModelOptions::getMyOptionValues(), just read m_option_priorSeqNumSamples = " << m_priorSeqNumSamples << std::endl;
307 // }
308 //
309 // if ((*m_optionsMap).count(m_option_priorSeqDataOutputFileName)) {
310 // m_priorSeqDataOutputFileName = ((const boost::program_options::variable_value&) (*m_optionsMap)[m_option_priorSeqDataOutputFileName]).as<std::string>();
311 // }
312 //
313 // if ((*m_optionsMap).count(m_option_priorSeqDataOutputFileType)) {
314 // m_priorSeqDataOutputFileType = ((const boost::program_options::variable_value&) (*m_optionsMap)[m_option_priorSeqDataOutputFileType]).as<std::string>();
315 // }
316 //
317 // if ((*m_optionsMap).count(m_option_priorSeqDataOutputAllowAll)) {
318 // m_priorSeqDataOutputAllowAll = ((const boost::program_options::variable_value&) (*m_optionsMap)[m_option_priorSeqDataOutputAllowAll]).as<bool>();
319 // }
320 //
321 // if (m_priorSeqDataOutputAllowAll) {
322 // m_priorSeqDataOutputAllowedSet.insert(m_env->subId());
323 // }
324 // else if ((*m_optionsMap).count(m_option_priorSeqDataOutputAllowedSet)) {
325 // m_priorSeqDataOutputAllowedSet.clear();
326 // std::vector<double> tmpAllow(0,0.);
327 // std::string inputString = (*m_optionsMap)[m_option_priorSeqDataOutputAllowedSet].as<std::string>();
328 // MiscReadDoublesFromString(inputString,tmpAllow);
329 //
330 // if (tmpAllow.size() > 0) {
331 // for (unsigned int i = 0; i < tmpAllow.size(); ++i) {
332 // m_priorSeqDataOutputAllowedSet.insert((unsigned int) tmpAllow[i]);
333 // }
334 // }
335 // }
336 //
337 // if ((*m_optionsMap).count(m_option_nuggetValueForBtWyB)) {
338 // m_nuggetValueForBtWyB = ((const boost::program_options::variable_value&) (*m_optionsMap)[m_option_nuggetValueForBtWyB]).as<double>();
339 // }
340 //
341 // if ((*m_optionsMap).count(m_option_nuggetValueForBtWyBInv)) {
342 // m_nuggetValueForBtWyBInv = ((const boost::program_options::variable_value&) (*m_optionsMap)[m_option_nuggetValueForBtWyBInv]).as<double>();
343 // }
344 //
345 // if ((*m_optionsMap).count(m_option_formCMatrix)) {
346 // m_formCMatrix = ((const boost::program_options::variable_value&) (*m_optionsMap)[m_option_formCMatrix]).as<double>();
347 // }
348 //
349 // if ((*m_optionsMap).count(m_option_useTildeLogicForRankDefficientC)) {
350 // m_useTildeLogicForRankDefficientC = ((const boost::program_options::variable_value&) (*m_optionsMap)[m_option_useTildeLogicForRankDefficientC]).as<bool>();
351 // }
352 //
353 // if ((*m_optionsMap).count(m_option_predLag)) {
354 // m_predLag = ((const boost::program_options::variable_value&) (*m_optionsMap)[m_option_predLag]).as<unsigned int>();
355 // }
356 //
357 // if ((*m_optionsMap).count(m_option_predVUsBySamplingRVs)) {
358 // m_predVUsBySamplingRVs = ((const boost::program_options::variable_value&) (*m_optionsMap)[m_option_predVUsBySamplingRVs]).as<bool>();
359 // }
360 //
361 // if ((*m_optionsMap).count(m_option_predVUsBySummingRVs)) {
362 // m_predVUsBySummingRVs = ((const boost::program_options::variable_value&) (*m_optionsMap)[m_option_predVUsBySummingRVs]).as<bool>();
363 // }
364 //
365 // if ((*m_optionsMap).count(m_option_predVUsAtKeyPoints)) {
366 // m_predVUsAtKeyPoints = ((const boost::program_options::variable_value&) (*m_optionsMap)[m_option_predVUsAtKeyPoints]).as<bool>();
367 // }
368 //
369 // if ((*m_optionsMap).count(m_option_predWsBySamplingRVs)) {
370 // m_predWsBySamplingRVs = ((const boost::program_options::variable_value&) (*m_optionsMap)[m_option_predWsBySamplingRVs]).as<bool>();
371 // }
372 //
373 // if ((*m_optionsMap).count(m_option_predWsBySummingRVs)) {
374 // m_predWsBySummingRVs = ((const boost::program_options::variable_value&) (*m_optionsMap)[m_option_predWsBySummingRVs]).as<bool>();
375 // }
376 //
377 // if ((*m_optionsMap).count(m_option_predWsAtKeyPoints)) {
378 // m_predWsAtKeyPoints = ((const boost::program_options::variable_value&) (*m_optionsMap)[m_option_predWsAtKeyPoints]).as<bool>();
379 // }
380 // }
381 
382 void
384 {
398  m_predLag = src.m_predLag;
405 
406  return;
407 }
408 
410  const BaseEnvironment& env,
411  const char* prefix)
412  :
413  m_ov (),
414  m_prefix ((std::string)(prefix) + "gcm_"),
415  m_env (env),
416 #ifndef DISABLE_BOOST_PROGRAM_OPTIONS
417  m_optionsDesc (new boost::program_options::options_description("Mixed Inverse Problem options")),
418 #endif // DISABLE_BOOST_PROGRAM_OPTIONS
419  m_option_help (m_prefix + "help" ),
420  m_option_checkAgainstPreviousSample (m_prefix + "checkAgainstPreviousSample" ),
421  m_option_dataOutputFileName (m_prefix + "dataOutputFileName" ),
422  m_option_dataOutputAllowAll (m_prefix + "dataOutputAllowAll" ),
423  m_option_dataOutputAllowedSet (m_prefix + "dataOutputAllowedSet" ),
424  m_option_priorSeqNumSamples (m_prefix + "priorSeqNumSamples" ),
425  m_option_priorSeqDataOutputFileName (m_prefix + "priorSeqDataOutputFileName" ),
426  m_option_priorSeqDataOutputFileType (m_prefix + "priorSeqDataOutputFileType" ),
427  m_option_priorSeqDataOutputAllowAll (m_prefix + "priorSeqDataOutputAllowAll" ),
428  m_option_priorSeqDataOutputAllowedSet (m_prefix + "priorSeqDataOutputAllowedSet" ),
429  m_option_nuggetValueForBtWyB (m_prefix + "nuggetValueForBtWyB" ),
430  m_option_nuggetValueForBtWyBInv (m_prefix + "nuggetValueForBtWyBInv" ),
431  m_option_formCMatrix (m_prefix + "formCMatrix" ),
432  m_option_useTildeLogicForRankDefficientC(m_prefix + "useTildeLogicForRankDefficientC"),
433  m_option_predLag (m_prefix + "predLag" ),
434  m_option_predVUsBySamplingRVs (m_prefix + "predVUsBySamplingRVs" ),
435  m_option_predVUsBySummingRVs (m_prefix + "predVUsBySummingRVs" ),
436  m_option_predVUsAtKeyPoints (m_prefix + "predVUsAtKeyPoints" ),
437  m_option_predWsBySamplingRVs (m_prefix + "predWsBySamplingRVs" ),
438  m_option_predWsBySummingRVs (m_prefix + "predWsBySummingRVs" ),
439  m_option_predWsAtKeyPoints (m_prefix + "predWsAtKeyPoints" )
440 {
442  queso_require_not_equal_to_msg(m_env.optionsInputFileName(), std::string(""), std::string("this constructor is incompatible with the abscense of an options input file"));
443 }
444 
446  const BaseEnvironment& env,
447  const char* prefix,
448  const GcmOptionsValues& alternativeOptionsValues)
449  :
450  m_ov (alternativeOptionsValues),
451  m_prefix ((std::string)(prefix) + "gcm_"),
452  m_env (env),
453 #ifndef DISABLE_BOOST_PROGRAM_OPTIONS
454  m_optionsDesc (NULL),
455 #endif // DISABLE_BOOST_PROGRAM_OPTIONS
456  m_option_help (m_prefix + "help" ),
457  m_option_checkAgainstPreviousSample (m_prefix + "checkAgainstPreviousSample" ),
458  m_option_dataOutputFileName (m_prefix + "dataOutputFileName" ),
459  m_option_dataOutputAllowAll (m_prefix + "dataOutputAllowAll" ),
460  m_option_dataOutputAllowedSet (m_prefix + "dataOutputAllowedSet" ),
461  m_option_priorSeqNumSamples (m_prefix + "priorSeqNumSamples" ),
462  m_option_priorSeqDataOutputFileName (m_prefix + "priorSeqDataOutputFileName" ),
463  m_option_priorSeqDataOutputFileType (m_prefix + "priorSeqDataOutputFileType" ),
464  m_option_priorSeqDataOutputAllowAll (m_prefix + "priorSeqDataOutputAllowAll" ),
465  m_option_priorSeqDataOutputAllowedSet (m_prefix + "priorSeqDataOutputAllowedSet" ),
466  m_option_nuggetValueForBtWyB (m_prefix + "nuggetValueForBtWyB" ),
467  m_option_nuggetValueForBtWyBInv (m_prefix + "nuggetValueForBtWyBInv" ),
468  m_option_formCMatrix (m_prefix + "formCMatrix" ),
469  m_option_useTildeLogicForRankDefficientC(m_prefix + "useTildeLogicForRankDefficientC"),
470  m_option_predLag (m_prefix + "predLag" ),
471  m_option_predVUsBySamplingRVs (m_prefix + "predVUsBySamplingRVs" ),
472  m_option_predVUsBySummingRVs (m_prefix + "predVUsBySummingRVs" ),
473  m_option_predVUsAtKeyPoints (m_prefix + "predVUsAtKeyPoints" ),
474  m_option_predWsBySamplingRVs (m_prefix + "predWsBySamplingRVs" ),
475  m_option_predWsBySummingRVs (m_prefix + "predWsBySummingRVs" ),
476  m_option_predWsAtKeyPoints (m_prefix + "predWsAtKeyPoints" )
477 {
479  queso_require_equal_to_msg(m_env.optionsInputFileName(), std::string(""), std::string("this constructor is incompatible with the existence of an options input file"));
480 
481  if (m_env.subDisplayFile() != NULL) {
482  *m_env.subDisplayFile() << "In GpmsaComputerModelOptions::constructor(2)"
483  << ": after setting values of options with prefix '" << m_prefix
484  << "', state of object is:"
485  << "\n" << *this
486  << std::endl;
487  }
488 }
489 
491 {
493 
494 #ifndef DISABLE_BOOST_PROGRAM_OPTIONS
495  if (m_optionsDesc) delete m_optionsDesc;
496 #endif // DISABLE_BOOST_PROGRAM_OPTIONS
497 }
498 
499 void
501 {
503 
504 #ifndef DISABLE_BOOST_PROGRAM_OPTIONS
505  queso_require_msg(m_optionsDesc, "m_optionsDesc variable is NULL");
506 
509  //std::cout << "scan 000\n"
510  // << std::endl;
512  //std::cout << "scan 001\n"
513  // << std::endl;
514 #endif // DISABLE_BOOST_PROGRAM_OPTIONS
515 
516  if (m_env.subDisplayFile() != NULL) {
517  *m_env.subDisplayFile() << "In GpmsaComputerModelOptions::scanOptionsValues()"
518  << ": after reading values of options with prefix '" << m_prefix
519  << "', state of object is:"
520  << "\n" << *this
521  << std::endl;
522  }
523 
524  return;
525 }
526 
527 #ifndef DISABLE_BOOST_PROGRAM_OPTIONS
528 void
529 GpmsaComputerModelOptions::defineMyOptions(boost::program_options::options_description& optionsDesc) const
530 {
532 
533  optionsDesc.add_options()
534  (m_option_help.c_str(), "produce help message for mixed inverse problem")
535  (m_option_checkAgainstPreviousSample.c_str(), boost::program_options::value<bool >()->default_value(UQ_GCM_CHECK_AGAINST_PREVIOUS_SAMPLE_ODV ), "check against previous sample" )
536  (m_option_dataOutputFileName.c_str(), boost::program_options::value<std::string >()->default_value(UQ_GCM_DATA_OUTPUT_FILE_NAME_ODV ), "name of data output file" )
537  (m_option_dataOutputAllowAll.c_str(), boost::program_options::value<bool >()->default_value(UQ_GCM_DATA_OUTPUT_ALLOW_ALL_ODV ), "allow all or not" )
538  (m_option_dataOutputAllowedSet.c_str(), boost::program_options::value<std::string >()->default_value(UQ_GCM_DATA_OUTPUT_ALLOWED_SET_ODV ), "subEnvs that will write to data output file" )
539  (m_option_priorSeqNumSamples.c_str(), boost::program_options::value<unsigned int>()->default_value(UQ_GCM_PRIOR_SEQ_NUM_SAMPLES_ODV ), "prior sequence size" )
540  (m_option_priorSeqDataOutputFileName.c_str(), boost::program_options::value<std::string >()->default_value(UQ_GCM_PRIOR_SEQ_DATA_OUTPUT_FILE_NAME_ODV ), "prior sequence data output filename" )
541  (m_option_priorSeqDataOutputFileType.c_str(), boost::program_options::value<std::string >()->default_value(UQ_GCM_PRIOR_SEQ_DATA_OUTPUT_FILE_TYPE_ODV ), "prior sequence data output filetype" )
542  (m_option_priorSeqDataOutputAllowAll.c_str(), boost::program_options::value<bool >()->default_value(UQ_GCM_PRIOR_SEQ_DATA_OUTPUT_ALLOW_ALL_ODV ), "allow all or not" )
543  (m_option_priorSeqDataOutputAllowedSet.c_str(), boost::program_options::value<std::string >()->default_value(UQ_GCM_PRIOR_SEQ_DATA_OUTPUT_ALLOWED_SET_ODV ), "subEnvs that will write to data output file" )
544  (m_option_nuggetValueForBtWyB.c_str(), boost::program_options::value<double >()->default_value(UQ_GCM_NUGGET_VALUE_FOR_BT_WY_B_ODV ), "nugget value for Bt_Wy_W matrix" )
545  (m_option_nuggetValueForBtWyBInv.c_str(), boost::program_options::value<double >()->default_value(UQ_GCM_NUGGET_VALUE_FOR_BT_WY_B_INV_ODV ), "nugget value for Bt_Wy_W inverse matrix" )
546  (m_option_formCMatrix.c_str(), boost::program_options::value<double >()->default_value(UQ_GCM_FORM_C_MATRIX_ODV ), "form C matrix" )
547  (m_option_useTildeLogicForRankDefficientC.c_str(), boost::program_options::value<bool >()->default_value(UQ_GCM_USE_TILDE_LOGIC_FOR_RANK_DEFFICIENT_C_ODV), "use tilde logic for rank defficient C" )
548  (m_option_predLag.c_str(), boost::program_options::value<unsigned int>()->default_value(UQ_GCM_PRED_LAG_ODV ), "predLag" )
549  (m_option_predVUsBySamplingRVs.c_str(), boost::program_options::value<bool >()->default_value(UQ_GCM_PRED_VUS_BY_SAMPLING_RVS_ODV ), "predVUsBySamplingRVs" )
550  (m_option_predVUsBySummingRVs.c_str(), boost::program_options::value<bool >()->default_value(UQ_GCM_PRED_VUS_BY_SUMMING_RVS_ODV ), "predVUsBySummingRVs" )
551  (m_option_predVUsAtKeyPoints.c_str(), boost::program_options::value<bool >()->default_value(UQ_GCM_PRED_VUS_AT_KEY_POINTS_ODV ), "predVUsAtKeyPoints" )
552  (m_option_predWsBySamplingRVs.c_str(), boost::program_options::value<bool >()->default_value(UQ_GCM_PRED_WS_BY_SAMPLING_RVS_ODV ), "predWsBySamplingRVs" )
553  (m_option_predWsBySummingRVs.c_str(), boost::program_options::value<bool >()->default_value(UQ_GCM_PRED_WS_BY_SUMMING_RVS_ODV ), "predWsBySummingRVs" )
554  (m_option_predWsAtKeyPoints.c_str(), boost::program_options::value<bool >()->default_value(UQ_GCM_PRED_WS_AT_KEY_POINTS_ODV ), "predWsAtKeyPoints" )
555  ;
556 
557  return;
558 }
559 #endif // DISABLE_BOOST_PROGRAM_OPTIONS
560 
561 #ifndef DISABLE_BOOST_PROGRAM_OPTIONS
562 void
563 GpmsaComputerModelOptions::getMyOptionValues(boost::program_options::options_description& optionsDesc)
564 {
566 
567  if (m_env.allOptionsMap().count(m_option_help)) {
568  if (m_env.subDisplayFile()) {
569  *m_env.subDisplayFile() << optionsDesc
570  << std::endl;
571  }
572  }
573 
575  m_ov.m_checkAgainstPreviousSample = ((const boost::program_options::variable_value&) m_env.allOptionsMap()[m_option_checkAgainstPreviousSample]).as<bool>();
576  }
577 
579  m_ov.m_dataOutputFileName = ((const boost::program_options::variable_value&) m_env.allOptionsMap()[m_option_dataOutputFileName]).as<std::string>();
580  }
581 
583  m_ov.m_dataOutputAllowAll = ((const boost::program_options::variable_value&) m_env.allOptionsMap()[m_option_dataOutputAllowAll]).as<bool>();
584  }
585 
588  }
591  std::vector<double> tmpAllow(0,0.);
592  std::string inputString = m_env.allOptionsMap()[m_option_dataOutputAllowedSet].as<std::string>();
593  MiscReadDoublesFromString(inputString,tmpAllow);
594 
595  if (tmpAllow.size() > 0) {
596  for (unsigned int i = 0; i < tmpAllow.size(); ++i) {
597  m_ov.m_dataOutputAllowedSet.insert((unsigned int) tmpAllow[i]);
598  }
599  }
600  }
601 
602  //std::cout << "In GpmsaComputerModelOptions::getMyOptionValues(), m_option_priorSeqNumSamples = " << m_option_priorSeqNumSamples << "___" << std::endl;
604  //std::cout << "In GpmsaComputerModelOptions::getMyOptionValues(), going to read m_option_priorSeqNumSamples..." << std::endl;
605  m_ov.m_priorSeqNumSamples = ((const boost::program_options::variable_value&) m_env.allOptionsMap()[m_option_priorSeqNumSamples]).as<unsigned int>();
606  //std::cout << "In GpmsaComputerModelOptions::getMyOptionValues(), just read m_option_priorSeqNumSamples = " << m_ov.m_priorSeqNumSamples << std::endl;
607  }
608 
610  m_ov.m_priorSeqDataOutputFileName = ((const boost::program_options::variable_value&) m_env.allOptionsMap()[m_option_priorSeqDataOutputFileName]).as<std::string>();
611  }
612 
614  m_ov.m_priorSeqDataOutputFileType = ((const boost::program_options::variable_value&) m_env.allOptionsMap()[m_option_priorSeqDataOutputFileType]).as<std::string>();
615  }
616 
618  m_ov.m_priorSeqDataOutputAllowAll = ((const boost::program_options::variable_value&) m_env.allOptionsMap()[m_option_priorSeqDataOutputAllowAll]).as<bool>();
619  }
620 
623  }
626  std::vector<double> tmpAllow(0,0.);
627  std::string inputString = m_env.allOptionsMap()[m_option_priorSeqDataOutputAllowedSet].as<std::string>();
628  MiscReadDoublesFromString(inputString,tmpAllow);
629 
630  if (tmpAllow.size() > 0) {
631  for (unsigned int i = 0; i < tmpAllow.size(); ++i) {
632  m_ov.m_priorSeqDataOutputAllowedSet.insert((unsigned int) tmpAllow[i]);
633  }
634  }
635  }
636 
638  m_ov.m_nuggetValueForBtWyB = ((const boost::program_options::variable_value&) m_env.allOptionsMap()[m_option_nuggetValueForBtWyB]).as<double>();
639  }
640 
642  m_ov.m_nuggetValueForBtWyBInv = ((const boost::program_options::variable_value&) m_env.allOptionsMap()[m_option_nuggetValueForBtWyBInv]).as<double>();
643  }
644 
646  m_ov.m_formCMatrix = ((const boost::program_options::variable_value&) m_env.allOptionsMap()[m_option_formCMatrix]).as<double>();
647  }
648 
650  m_ov.m_useTildeLogicForRankDefficientC = ((const boost::program_options::variable_value&) m_env.allOptionsMap()[m_option_useTildeLogicForRankDefficientC]).as<bool>();
651  }
652 
653  if (m_env.allOptionsMap().count(m_option_predLag)) {
654  m_ov.m_predLag = ((const boost::program_options::variable_value&) m_env.allOptionsMap()[m_option_predLag]).as<unsigned int>();
655  }
656 
658  m_ov.m_predVUsBySamplingRVs = ((const boost::program_options::variable_value&) m_env.allOptionsMap()[m_option_predVUsBySamplingRVs]).as<bool>();
659  }
660 
662  m_ov.m_predVUsBySummingRVs = ((const boost::program_options::variable_value&) m_env.allOptionsMap()[m_option_predVUsBySummingRVs]).as<bool>();
663  }
664 
666  m_ov.m_predVUsAtKeyPoints = ((const boost::program_options::variable_value&) m_env.allOptionsMap()[m_option_predVUsAtKeyPoints]).as<bool>();
667  }
668 
670  m_ov.m_predWsBySamplingRVs = ((const boost::program_options::variable_value&) m_env.allOptionsMap()[m_option_predWsBySamplingRVs]).as<bool>();
671  }
672 
674  m_ov.m_predWsBySummingRVs = ((const boost::program_options::variable_value&) m_env.allOptionsMap()[m_option_predWsBySummingRVs]).as<bool>();
675  }
676 
678  m_ov.m_predWsAtKeyPoints = ((const boost::program_options::variable_value&) m_env.allOptionsMap()[m_option_predWsAtKeyPoints]).as<bool>();
679  }
680 
681  return;
682 }
683 #endif // DISABLE_BOOST_PROGRAM_OPTIONS
684 
685 void
686 GpmsaComputerModelOptions::print(std::ostream& os) const
687 {
689 
693  << "\n" << m_option_dataOutputAllowedSet << " = ";
694  for (std::set<unsigned int>::iterator setIt = m_ov.m_dataOutputAllowedSet.begin(); setIt != m_ov.m_dataOutputAllowedSet.end(); ++setIt) {
695  os << *setIt << " ";
696  }
697  os << "\n" << m_option_priorSeqNumSamples << " = " << m_ov.m_priorSeqNumSamples
701  << "\n" << m_option_priorSeqDataOutputAllowedSet << " = ";
702  for (std::set<unsigned int>::iterator setIt = m_ov.m_priorSeqDataOutputAllowedSet.begin(); setIt != m_ov.m_priorSeqDataOutputAllowedSet.end(); ++setIt) {
703  os << *setIt << " ";
704  }
707  << "\n" << m_option_formCMatrix << " = " << m_ov.m_formCMatrix
709  << "\n" << m_option_predLag << " = " << m_ov.m_predLag
716  << std::endl;
717 
718  return;
719 }
720 
721 std::ostream& operator<<(std::ostream& os, const GpmsaComputerModelOptions& obj)
722 {
724 
725  obj.print(os);
726 
727  return os;
728 }
729 
730 } // End namespace QUESO
#define UQ_GCM_NUGGET_VALUE_FOR_BT_WY_B_INV_ODV
#define UQ_GCM_PRED_VUS_BY_SUMMING_RVS_ODV
void getMyOptionValues(boost::program_options::options_description &optionsDesc)
#define UQ_GCM_DATA_OUTPUT_ALLOWED_SET_ODV
BoostInputOptionsParser * m_parser
GpmsaComputerModelOptions(const BaseEnvironment &env, const char *prefix)
void copy(const GcmOptionsValues &src)
const GetPot & input() const
The GetPot input file parser.
Definition: Environment.C:1148
std::ofstream * subDisplayFile() const
Access function for m_subDisplayFile (displays file on stream).
Definition: Environment.C:320
std::ostream & operator<<(std::ostream &os, const BaseEnvironment &obj)
#define UQ_GCM_PRIOR_SEQ_DATA_OUTPUT_ALLOW_ALL_ODV
std::string optionsInputFileName() const
Access to the attribute m_optionsInputFileName, which stores the name of the input file passed by the...
Definition: Environment.C:353
std::set< unsigned int > m_dataOutputAllowedSet
This (virtual) class sets up the environment underlying the use of the QUESO library by an executable...
Definition: Environment.h:197
#define UQ_GCM_PRED_WS_BY_SAMPLING_RVS_ODV
#define UQ_GCM_FORM_C_MATRIX_ODV
GcmOptionsValues & operator=(const GcmOptionsValues &rhs)
unsigned vector_variable_size(const char *VarName) const
Definition: getpot.h:2532
void getOption(std::string &name, T &value)
Get option name from the parser and set value to the parsed value.
void MiscReadDoublesFromString(const std::string &inputString, std::vector< double > &outputDoubles)
Definition: Miscellaneous.C:40
#define queso_require_equal_to_msg(expr1, expr2, msg)
Definition: asserts.h:73
boost::program_options::variables_map & allOptionsMap() const
Definition: Environment.C:385
#define UQ_GCM_PRIOR_SEQ_DATA_OUTPUT_FILE_TYPE_ODV
#define UQ_GCM_PRED_WS_AT_KEY_POINTS_ODV
unsigned int subId() const
Access function to the number of each sub-environment Id: m_subId.
Definition: Environment.C:341
void print(std::ostream &os) const
#define queso_deprecated()
Definition: Defines.h:134
#define UQ_GCM_PRED_VUS_AT_KEY_POINTS_ODV
#define UQ_GCM_DATA_OUTPUT_FILE_NAME_ODV
std::string m_option_useTildeLogicForRankDefficientC
void scanInputFileForMyOptions(const boost::program_options::options_description &optionsDesc) const
This method scans the input file provided by the user to QUESO.
Definition: Environment.C:396
void scanInputFile()
This is the method that parses the input file.
void defineMyOptions(boost::program_options::options_description &optionsDesc) const
#define UQ_GCM_PRIOR_SEQ_DATA_OUTPUT_ALLOWED_SET_ODV
#define UQ_GCM_PRED_WS_BY_SUMMING_RVS_ODV
#define UQ_GCM_DATA_OUTPUT_ALLOW_ALL_ODV
#define queso_require_not_equal_to_msg(expr1, expr2, msg)
Definition: asserts.h:74
#define UQ_GCM_CHECK_AGAINST_PREVIOUS_SAMPLE_ODV
void registerOption(std::string name, T defaultValue, std::string description)
Call this to register an option with the parser.
#define queso_require_msg(asserted, msg)
Definition: asserts.h:69
#define UQ_GCM_PRED_LAG_ODV
#define UQ_GCM_PRIOR_SEQ_DATA_OUTPUT_FILE_NAME_ODV
std::set< unsigned int > m_priorSeqDataOutputAllowedSet
#define UQ_GCM_PRIOR_SEQ_NUM_SAMPLES_ODV
#define UQ_GCM_USE_TILDE_LOGIC_FOR_RANK_DEFFICIENT_C_ODV
#define UQ_GCM_NUGGET_VALUE_FOR_BT_WY_B_ODV
boost::program_options::options_description * m_optionsDesc
#define UQ_GCM_PRED_VUS_BY_SAMPLING_RVS_ODV

Generated on Tue Nov 29 2016 10:53:10 for queso-0.56.0 by  doxygen 1.8.5