queso-0.51.1
Private Member Functions | List of all members
QUESO::FullEnvironment Class Reference

This class sets up the full environment underlying the use of the QUESO library by an executable. More...

#include <Environment.h>

Inheritance diagram for QUESO::FullEnvironment:
Inheritance graph
[legend]
Collaboration diagram for QUESO::FullEnvironment:
Collaboration graph
[legend]

Public Member Functions

Constructor/Destructor methods
 FullEnvironment (RawType_MPI_Comm inputComm, const char *passedOptionsInputFileName, const char *prefix, const EnvOptionsValues *alternativeOptionsValues)
 Default constructor. More...
 
 ~FullEnvironment ()
 Destructor. More...
 
I/O methods
void print (std::ostream &os) const
 Sends the environment options to the stream. More...
 
- Public Member Functions inherited from QUESO::BaseEnvironment
 BaseEnvironment (const char *passedOptionsInputFileName, const EnvOptionsValues *alternativeOptionsValues)
 Default constructor. More...
 
 BaseEnvironment (const BaseEnvironment &obj)
 Copy constructor. It should not be used be the user. More...
 
virtual ~BaseEnvironment ()
 Destructor. More...
 
BaseEnvironmentoperator= (const BaseEnvironment &rhs)
 Assignment operator. It should not be used be the user. More...
 
bool fullEnvIsReady () const
 Returns whether the full environment class is ready (constructor has successfully been called). More...
 
int worldRank () const
 Returns the process world rank. More...
 
int fullRank () const
 Returns the process full rank. More...
 
const MpiCommfullComm () const
 Access function for MpiComm full communicator. More...
 
RawType_MPI_Group subGroup () const
 Access function for sub-group. More...
 
int subRank () const
 Access function for sub-rank. More...
 
const MpiCommsubComm () const
 Access function for MpiComm sub communicator. More...
 
const MpiCommselfComm () const
 Access function for MpiComm self-communicator. More...
 
int inter0Rank () const
 Returns the process inter0 rank. More...
 
const MpiComminter0Comm () const
 Access function for MpiComm inter0-communicator. More...
 
std::ofstream * subDisplayFile () const
 Access function for m_subDisplayFile (displays file on stream). More...
 
std::string subDisplayFileName () const
 Access function for m_subDisplayFileName (displays filename on stream). More...
 
unsigned int numSubEnvironments () const
 Access function to the number of sub-environments. More...
 
unsigned int subId () const
 Access function to the number of each sub-environment Id: m_subId. More...
 
const std::string & subIdString () const
 Access to the attribute m_subIdString; which stores the string for the sub-environment, and it will be used, for instance, to create the output files for each sub-environment. More...
 
void checkTheParallelEnvironment () const
 
std::string optionsInputFileName () const
 Access to the attribute m_optionsInputFileName, which stores the name of the input file passed by the user to QUESO. More...
 
void setOptionsInputFileAccessState (bool newState) const
 
po::variables_map & allOptionsMap () const
 
void scanInputFileForMyOptions (const po::options_description &optionsDesc) const
 This method scans the input file provided by the user to QUESO. More...
 
unsigned int displayVerbosity () const
 
unsigned int syncVerbosity () const
 Access function to private attribute m_syncVerbosity. More...
 
unsigned int checkingLevel () const
 Access function to private attribute m_checkingLevel. More...
 
const RngBaserngObject () const
 Access to the RNG object. More...
 
void resetSeed (int newSeedOption)
 Reset RNG seed. More...
 
int seed () const
 Access to the RNG seed. More...
 
const BasicPdfsBasebasicPdfs () const
 Access to Basic PDFs. More...
 
std::string platformName () const
 Access to the platform name. More...
 
std::string identifyingString () const
 Access function to private attribute m_identifyingString: identifying string. More...
 
void resetIdentifyingString (const std::string &newString) const
 Reset private attribute m_identifyingString with the value newString. More...
 
bool isThereInputFile () const
 //TODO Not implemented? it is called in examples/validationCycle/tests_old/results_5_25/uqTgaEx4.h. More...
 
struct timeval timevalBegin () const
 Used to save the time when the combo `QUESO+user's application' started to run. More...
 
bool openOutputFile (const std::string &fileName, const std::string &fileType, const std::set< unsigned int > &allowedSubEnvIds, bool writeOver, FilePtrSetStruct &filePtrSet) const
 Opens an output file for each sub-environment that was chosen to send data to the file. More...
 
bool openUnifiedOutputFile (const std::string &fileName, const std::string &fileType, bool writeOver, FilePtrSetStruct &filePtrSet) const
 Opens a unified output file, that will contain data from all sub-environments. More...
 
bool openInputFile (const std::string &fileName, const std::string &fileType, const std::set< unsigned int > &allowedSubEnvIds, FilePtrSetStruct &filePtrSet) const
 Opens an input file. More...
 
bool openUnifiedInputFile (const std::string &fileName, const std::string &fileType, FilePtrSetStruct &filePtrSet) const
 Opens the unified input file. More...
 
void closeFile (FilePtrSetStruct &filePtrSet, const std::string &fileType) const
 Closes the file. More...
 
void setExceptionalCircumstance (bool value) const
 Set an exceptional circumstance. More...
 
bool exceptionalCircumstance () const
 Decides whether there is an exceptional circumstance. More...
 

Private Member Functions

void readOptionsInputFile ()
 Checks the options input file and reads the options. More...
 

Additional Inherited Members

- Protected Attributes inherited from QUESO::BaseEnvironment
bool m_fullEnvIsReady
 
int m_worldRank
 
MpiCommm_fullComm
 
int m_fullRank
 
int m_fullCommSize
 
RawType_MPI_Group m_fullGroup
 
std::string m_optionsInputFileName
 
bool m_optionsInputFileAccessState
 
po::options_description * m_allOptionsDesc
 
po::variables_map * m_allOptionsMap
 
unsigned int m_subId
 
std::string m_subIdString
 
RawType_MPI_Group m_subGroup
 
MpiCommm_subComm
 
int m_subRank
 
int m_subCommSize
 
MpiCommm_selfComm
 
RawType_MPI_Group m_inter0Group
 
MpiCommm_inter0Comm
 
int m_inter0Rank
 
int m_inter0CommSize
 
std::ofstream * m_subDisplayFile
 
RngBasem_rngObject
 
BasicPdfsBasem_basicPdfs
 
struct timeval m_timevalBegin
 
bool m_exceptionalCircumstance
 
EnvOptionsValues m_alternativeOptionsValues
 
EnvironmentOptionsm_optionsObj
 

Detailed Description

This class sets up the full environment underlying the use of the QUESO library by an executable.

This is the class that is actually used during a QUESO+application run.

Definition at line 420 of file Environment.h.

Constructor & Destructor Documentation

QUESO::FullEnvironment::FullEnvironment ( RawType_MPI_Comm  inputComm,
const char *  passedOptionsInputFileName,
const char *  prefix,
const EnvOptionsValues alternativeOptionsValues 
)

Default constructor.

It initializes the full communicator, reads the options, deals with multiple sub-environments, e.g. dealing with sub/self/inter0-communicators, handles path for output files.

Definition at line 1207 of file Environment.C.

References QUESO::MpiComm::Barrier(), QUESO::CheckFilePath(), QUESO::MpiComm::Comm(), QUESO::BaseEnvironment::displayVerbosity(), QUESO::BaseEnvironment::m_allOptionsDesc, QUESO::BaseEnvironment::m_allOptionsMap, QUESO::BaseEnvironment::m_alternativeOptionsValues, QUESO::BaseEnvironment::m_basicPdfs, QUESO::BaseEnvironment::m_fullComm, QUESO::BaseEnvironment::m_fullCommSize, QUESO::BaseEnvironment::m_fullEnvIsReady, QUESO::BaseEnvironment::m_fullGroup, QUESO::BaseEnvironment::m_fullRank, QUESO::BaseEnvironment::m_inter0Comm, QUESO::BaseEnvironment::m_inter0CommSize, QUESO::BaseEnvironment::m_inter0Group, QUESO::BaseEnvironment::m_inter0Rank, QUESO::EnvOptionsValues::m_numSubEnvironments, QUESO::BaseEnvironment::m_optionsInputFileName, QUESO::BaseEnvironment::m_optionsObj, QUESO::EnvironmentOptions::m_ov, QUESO::BaseEnvironment::m_rngObject, QUESO::EnvOptionsValues::m_rngType, QUESO::EnvOptionsValues::m_seed, QUESO::BaseEnvironment::m_selfComm, QUESO::BaseEnvironment::m_subComm, QUESO::BaseEnvironment::m_subCommSize, QUESO::EnvOptionsValues::m_subDisplayAllowAll, QUESO::EnvOptionsValues::m_subDisplayAllowedSet, QUESO::EnvOptionsValues::m_subDisplayAllowInter0, QUESO::BaseEnvironment::m_subDisplayFile, QUESO::EnvOptionsValues::m_subDisplayFileName, QUESO::BaseEnvironment::m_subGroup, QUESO::BaseEnvironment::m_subId, QUESO::BaseEnvironment::m_subIdString, QUESO::BaseEnvironment::m_subRank, QUESO::BaseEnvironment::m_timevalBegin, QUESO::BaseEnvironment::m_worldRank, QUESO::MpiComm::MyPID(), QUESO::MpiComm::NumProc(), QUESO::old_terminate_handler, QUESO::queso_terminate_handler(), QUESO::QUESO_version_print(), RawValue_MPI_COMM_SELF, readOptionsInputFile(), QUESO::EnvironmentOptions::scanOptionsValues(), UQ_ENV_FILENAME_FOR_NO_OUTPUT_FILE, UQ_FATAL_TEST_MACRO, and QUESO::UQ_UNAVAILABLE_RANK.

1212  :
1213  BaseEnvironment(passedOptionsInputFileName,alternativeOptionsValues)
1214 {
1215 #ifdef QUESO_MEMORY_DEBUGGING
1216  std::cout << "Entering FullEnv" << std::endl;
1217 #endif
1218 
1220  // Initialize "full" communicator -- Not necessarily MPI_COMM_WORLD
1222  int mpiRC = MPI_Comm_rank(inputComm,&m_worldRank);
1223  UQ_FATAL_TEST_MACRO(mpiRC != MPI_SUCCESS,
1225  "FullEnvironment::commonConstructor()",
1226  "failed to get world fullRank()");
1227 
1228  m_fullComm = new MpiComm(*this,inputComm);
1231 
1232  mpiRC = MPI_Comm_group(m_fullComm->Comm(), &m_fullGroup);
1233  UQ_FATAL_TEST_MACRO(mpiRC != MPI_SUCCESS,
1234  m_worldRank,
1235  "FullEnvironment::commonConstructor()",
1236  "failed MPI_Comm_group()");
1237 
1238  // saving old uncaught exception handler, invoking queso_terminate
1239  old_terminate_handler = std::set_terminate(queso_terminate_handler);
1240 
1241 #ifdef QUESO_MEMORY_DEBUGGING
1242  std::cout << "In FullEnv, finished dealing with MPI initially" << std::endl;
1243 #endif
1244 
1246  // Read options
1248  if (m_optionsInputFileName == "") {
1249  m_optionsObj = new EnvironmentOptions(*this,prefix,m_alternativeOptionsValues);
1250  }
1251  else {
1252  m_allOptionsMap = new po::variables_map();
1253  m_allOptionsDesc = new po::options_description("Allowed options");
1254  m_optionsObj = new EnvironmentOptions(*this,prefix);
1255 
1257 
1259  }
1260 
1261 #ifdef QUESO_MEMORY_DEBUGGING
1262  std::cout << "In FullEnv, finished scanning options" << std::endl;
1263 #endif
1264 
1265  // Only display these messages if the user wants them
1266  // NOTE: This got moved below the Read Options section
1267  // because we need the options to be read to know what
1268  // the verbosity level is.
1269  if (this->displayVerbosity() > 0) {
1271  // Display main initial messages
1272  // 'std::cout' is for: main trace messages + synchronized trace messages + error messages prior to 'exit()' or 'abort()'
1274  /*int iRC = 0;*/
1275  /*iRC = */gettimeofday(&m_timevalBegin, NULL);
1276 
1277  if (m_fullRank == 0) {
1278  QUESO_version_print(std::cout);
1279  }
1280 
1281  if (m_fullRank == 0) {
1282  std::cout << "Beginning run at " << ctime(&m_timevalBegin.tv_sec)
1283  << std::endl;
1284  }
1285  }
1286 
1288  // Deal with multiple subEnvironments: create the sub communicators, one for each subEnvironment
1290  unsigned int numRanksPerSubEnvironment = m_fullCommSize/m_optionsObj->m_ov.m_numSubEnvironments;
1291 
1292  m_subId = m_fullRank/numRanksPerSubEnvironment;
1293  char tmpSubId[16];
1294  sprintf(tmpSubId,"%u",m_subId);
1295  m_subIdString = tmpSubId;
1296 
1298  m_optionsObj->m_ov.m_subDisplayAllowedSet.insert((unsigned int) m_subId);
1299  }
1300 
1301  std::vector<int> fullRanksOfMySubEnvironment(numRanksPerSubEnvironment,0);
1302  for (unsigned int i = 0; i < numRanksPerSubEnvironment; ++i) {
1303  fullRanksOfMySubEnvironment[i] = m_subId * numRanksPerSubEnvironment + i;
1304  }
1305 
1306  mpiRC = MPI_Group_incl(m_fullGroup, (int) numRanksPerSubEnvironment, &fullRanksOfMySubEnvironment[0], &m_subGroup);
1307  UQ_FATAL_TEST_MACRO(mpiRC != MPI_SUCCESS,
1308  m_worldRank,
1309  "FullEnvironment::commonConstructor()",
1310  "failed MPI_Group_incl() for a subEnvironment");
1311 
1312  RawType_MPI_Comm subRawComm;
1313  mpiRC = MPI_Comm_create(m_fullComm->Comm(), m_subGroup, &subRawComm);
1314  UQ_FATAL_TEST_MACRO(mpiRC != MPI_SUCCESS,
1315  m_worldRank,
1316  "FullEnvironment::commonConstructor()",
1317  "failed MPI_Comm_group() for a subEnvironment");
1318  m_subComm = new MpiComm(*this,subRawComm);
1319  m_subRank = m_subComm->MyPID();
1321 
1323  // Deal with multiple subEnvironments: create the self communicator
1325  m_selfComm = new MpiComm(*this,RawValue_MPI_COMM_SELF);
1326 
1328  // Deal with multiple subEnvironments: create the inter0 communicator
1330  std::vector<int> fullRanksOfInter0(m_optionsObj->m_ov.m_numSubEnvironments,0);
1331  for (unsigned int i = 0; i < m_optionsObj->m_ov.m_numSubEnvironments; ++i) {
1332  fullRanksOfInter0[i] = i * numRanksPerSubEnvironment;
1333  }
1334  mpiRC = MPI_Group_incl(m_fullGroup, (int) m_optionsObj->m_ov.m_numSubEnvironments, &fullRanksOfInter0[0], &m_inter0Group);
1335  UQ_FATAL_TEST_MACRO(mpiRC != MPI_SUCCESS,
1336  m_worldRank,
1337  "FullEnvironment::commonConstructor()",
1338  "failed MPI_Group_incl() for inter0");
1339  RawType_MPI_Comm inter0RawComm;
1340  mpiRC = MPI_Comm_create(m_fullComm->Comm(), m_inter0Group, &inter0RawComm);
1341  UQ_FATAL_TEST_MACRO(mpiRC != MPI_SUCCESS,
1342  m_worldRank,
1343  "FullEnvironment::commonConstructor()",
1344  "failed MPI_Comm_group() for inter0");
1345  if (m_fullRank%numRanksPerSubEnvironment == 0) {
1346  m_inter0Comm = new MpiComm(*this,inter0RawComm);
1349  }
1350 
1352  // This situation has been already taken care of above
1353  }
1355  if (m_inter0Rank >= 0) {
1356  m_optionsObj->m_ov.m_subDisplayAllowedSet.insert((unsigned int) m_subId);
1357  }
1358  }
1359 
1360 
1362  // Open "screen" file
1364  bool openFile = false;
1365  if ((m_subRank == 0 ) &&
1368  openFile = true;
1369  }
1370 
1371  if (openFile && m_worldRank == 0) {
1373  // Verify parent directory exists (for cases when a user
1374  // specifies a relative path for the desired output file).
1376  int irtrn = CheckFilePath((m_optionsObj->m_ov.m_subDisplayFileName+"_sub"+m_subIdString+".txt").c_str());
1377  UQ_FATAL_TEST_MACRO(irtrn < 0,
1378  m_worldRank,
1379  "Environment::constructor()",
1380  "unable to verify output path");
1381  }
1382 
1384  // Ensure that rank 0 has created path, if necessary, before other tasks use it
1386  m_fullComm->Barrier();
1387 
1388  if (openFile) {
1390  // Always write over an eventual pre-existing file
1392  m_subDisplayFile = new std::ofstream((m_optionsObj->m_ov.m_subDisplayFileName+"_sub"+m_subIdString+".txt").c_str(),
1393  std::ofstream::out | std::ofstream::trunc);
1394  UQ_FATAL_TEST_MACRO((m_subDisplayFile && m_subDisplayFile->is_open()) == false,
1395  m_worldRank,
1396  "Environment::constructor()",
1397  "failed to open sub screen file");
1398 
1400 
1401  *m_subDisplayFile << "Beginning run at " << ctime(&m_timevalBegin.tv_sec)
1402  << std::endl;
1403  }
1404 
1406  // Debug message related to subEnvironments
1408  if (this->displayVerbosity() >= 2) {
1409  for (int i = 0; i < m_fullCommSize; ++i) {
1410  if (i == m_fullRank) {
1411  //std::cout << "In FullEnvironment::commonConstructor()"
1412  std::cout << "MPI node of worldRank " << m_worldRank
1413  << " has fullRank " << m_fullRank
1414  << ", belongs to subEnvironment of id " << m_subId
1415  << ", and has subRank " << m_subRank
1416  << std::endl;
1417 
1418  std::cout << "MPI node of worldRank " << m_worldRank
1419  << " belongs to sub communicator with full ranks";
1420  for (unsigned int j = 0; j < fullRanksOfMySubEnvironment.size(); ++j) {
1421  std::cout << " " << fullRanksOfMySubEnvironment[j];
1422  }
1423  std::cout << "\n";
1424 
1425  if (m_inter0Comm) {
1426  std::cout << "MPI node of worldRank " << m_worldRank
1427  << " also belongs to inter0 communicator with full ranks";
1428  for (unsigned int j = 0; j < fullRanksOfInter0.size(); ++j) {
1429  std::cout << " " << fullRanksOfInter0[j];
1430  }
1431  std::cout << ", and has inter0Rank " << m_inter0Rank;
1432  }
1433  std::cout << "\n";
1434 
1435  std::cout << std::endl;
1436  }
1437  m_fullComm->Barrier();
1438  }
1439  //if (this->fullRank() == 0) std::cout << "Sleeping 3 seconds..."
1440  // << std::endl;
1441  //sleep(3);
1442  }
1443 
1445  // Deal with seed
1447  if (m_optionsObj->m_ov.m_rngType == "gsl") {
1448  m_rngObject = new RngGsl(m_optionsObj->m_ov.m_seed,m_worldRank);
1449  m_basicPdfs = new BasicPdfsGsl(m_worldRank);
1450  }
1451  else if (m_optionsObj->m_ov.m_rngType == "boost") {
1452  m_rngObject = new RngBoost(m_optionsObj->m_ov.m_seed,m_worldRank);
1453  m_basicPdfs = new BasicPdfsBoost(m_worldRank);
1454  }
1455  else {
1456  std::cerr << "In Environment::constructor()"
1457  << ": rngType = " << m_optionsObj->m_ov.m_rngType
1458  << std::endl;
1459  UQ_FATAL_TEST_MACRO(true,
1460  m_worldRank,
1461  "Environment::constructor()",
1462  "the requested 'rngType' is not supported yet");
1463  }
1464 
1466  // Leave commonConstructor()
1468  m_fullComm->Barrier();
1469  m_fullEnvIsReady = true;
1470 
1471  if ((m_subDisplayFile) && (this->displayVerbosity() >= 5)) {
1472  *m_subDisplayFile << "Done with initializations at FullEnvironment::commonConstructor()"
1473  << std::endl;
1474  }
1475 
1476  return;
1477 }
std::string m_subIdString
Definition: Environment.h:367
po::options_description * m_allOptionsDesc
Definition: Environment.h:363
std::terminate_handler old_terminate_handler
Definition: Environment.C:124
struct timeval m_timevalBegin
Definition: Environment.h:383
void scanOptionsValues()
Scans option values from input file.
BaseEnvironment(const char *passedOptionsInputFileName, const EnvOptionsValues *alternativeOptionsValues)
Default constructor.
Definition: Environment.C:130
int NumProc() const
Returns total number of processes.
Definition: MpiComm.C:121
void QUESO_version_print(std::ostream &os)
Definition: Environment.C:47
const int UQ_UNAVAILABLE_RANK
Definition: Defines.h:74
bool m_subDisplayAllowAll
Allows (or not) all sub-environments to write to output file.
Definition: Defines.h:134
std::string m_optionsInputFileName
Definition: Environment.h:361
bool m_subDisplayAllowInter0
Allows (or not) all inter0 nodes to write to output file.
Definition: Defines.h:137
std::ofstream * m_subDisplayFile
Definition: Environment.h:380
po::variables_map * m_allOptionsMap
Definition: Environment.h:364
BasicPdfsBase * m_basicPdfs
Definition: Environment.h:382
void Barrier() const
Pause every process in *this communicator until all the processes reach this point.
Definition: MpiComm.C:143
unsigned int m_numSubEnvironments
Number of sub-environments.
Definition: Defines.h:128
RawType_MPI_Group m_inter0Group
Definition: Environment.h:375
MPI_Comm RawType_MPI_Comm
Definition: MpiComm.h:38
unsigned int m_subId
Definition: Environment.h:366
int m_seed
Seed of the random number generator.
Definition: Defines.h:157
Class for random number generation using GSL library.
Class for random number generation using Boost library.
#define UQ_ENV_FILENAME_FOR_NO_OUTPUT_FILE
void readOptionsInputFile()
Checks the options input file and reads the options.
Definition: Environment.C:1513
int MyPID() const
Return my process ID.
Definition: MpiComm.C:112
EnvironmentOptions * m_optionsObj
Definition: Environment.h:387
std::set< unsigned int > m_subDisplayAllowedSet
Sub-environments that will write to output.
Definition: Defines.h:140
#define RawValue_MPI_COMM_SELF
Definition: MpiComm.h:43
int CheckFilePath(const char *path)
RawType_MPI_Group m_fullGroup
Definition: Environment.h:359
unsigned int displayVerbosity() const
Definition: Environment.C:436
void queso_terminate_handler()
Function for unhandled exceptions in Queso.
Definition: Environment.C:1490
#define UQ_FATAL_TEST_MACRO(test, givenRank, where, what)
Definition: Defines.h:223
EnvOptionsValues m_alternativeOptionsValues
Definition: Environment.h:386
std::string m_rngType
Type of the random number generator.
Definition: Defines.h:152
std::string m_subDisplayFileName
Output filename for sub-screen writing.
Definition: Defines.h:131
EnvOptionsValues m_ov
Instance of EnvOptionsValues, a class with default values for QUESO environment.
RawType_MPI_Group m_subGroup
Definition: Environment.h:368
RawType_MPI_Comm Comm() const
Extract MPI Communicator from a MpiComm object.
Definition: MpiComm.C:103
QUESO::FullEnvironment::~FullEnvironment ( )

Destructor.

Definition at line 1479 of file Environment.C.

1480 {
1481 }

Member Function Documentation

void QUESO::FullEnvironment::print ( std::ostream &  os) const
virtual

Sends the environment options to the stream.

Implements QUESO::BaseEnvironment.

Definition at line 1484 of file Environment.C.

1485 {
1486  os.flush(); // just to avoid icpc warnings
1487  return;
1488 }
void QUESO::FullEnvironment::readOptionsInputFile ( )
private

Checks the options input file and reads the options.

Definition at line 1513 of file Environment.C.

References QUESO::BaseEnvironment::m_fullRank, QUESO::BaseEnvironment::m_optionsInputFileName, and queso_error.

Referenced by FullEnvironment().

1514 {
1515  std::ifstream* ifs = new std::ifstream(m_optionsInputFileName.c_str());
1516  if (ifs->is_open()) {
1517  //ifs->close();
1518  delete ifs;
1519  }
1520  else {
1521  if (m_fullRank == 0) std::cout << "An invalid input file has been passed to the 'environment' class constructor!"
1522  << ": name of file is '" << m_optionsInputFileName.c_str() << "'"
1523  << std::endl;
1524 
1525  if (m_fullRank == 0) std::cout << "\nThis is a help message of the QUESO library."
1526  << "\nAn application using the QUESO library shall be executed by typing"
1527  << "\n '<eventual mpi commands and options> <Application> <InputFile>'"
1528  << "\nin the command line."
1529  << "\n"
1530  << std::endl;
1531  queso_error();
1532  }
1533 
1534  return;
1535 }
#define queso_error()
Definition: asserts.h:87
std::string m_optionsInputFileName
Definition: Environment.h:361

The documentation for this class was generated from the following files:

Generated on Thu Apr 23 2015 19:26:16 for queso-0.51.1 by  doxygen 1.8.5