25 #ifndef DISABLE_BOOST_PROGRAM_OPTIONS
26 #include <boost/program_options.hpp>
27 #endif // DISABLE_BOOST_PROGRAM_OPTIONS
29 #define GETPOT_NAMESPACE QUESO
30 #include <queso/getpot.h>
32 #include <queso/config_queso.h>
33 #include <queso/Environment.h>
34 #include <queso/EnvironmentOptions.h>
35 #include <queso/RngGsl.h>
36 #include <queso/RngBoost.h>
37 #include <queso/BasicPdfsGsl.h>
38 #include <queso/BasicPdfsBoost.h>
39 #include <queso/Miscellaneous.h>
46 #include <queso/asserts.h>
57 os <<
"------------------------------------------------------------------------------------------" ;
58 os <<
"--------------------" << std::endl;
59 os <<
"QUESO Library: Version = " << QUESO_VERSION;
62 os << QUESO_BUILD_DEVSTATUS << std::endl << std::endl;
64 os <<
"Build Date = " << QUESO_BUILD_DATE << std::endl;
65 os <<
"Build Host = " << QUESO_BUILD_HOST << std::endl;
66 os <<
"Build User = " << QUESO_BUILD_USER << std::endl;
67 os <<
"Build Arch = " << QUESO_BUILD_ARCH << std::endl;
68 os <<
"Build Rev = " << QUESO_BUILD_VERSION << std::endl << std::endl;
70 os <<
"C++ Config = " << QUESO_CXX <<
" " << QUESO_CXXFLAGS << std::endl;
72 os <<
"Trilinos DIR = " << QUESO_TRILINOS_DIR << std::endl;
73 os <<
"GSL Libs = " << QUESO_GSL_DIR << std::endl;
74 os <<
"GRVY DIR = " << QUESO_GRVY_DIR << std::endl;
75 os <<
"GLPK DIR = " << QUESO_GLPK_DIR << std::endl;
76 os <<
"HDF5 DIR = " << QUESO_HDF5_DIR << std::endl;
77 os <<
"------------------------------------------------------------------------------------------" ;
78 os <<
"--------------------" << std::endl;
97 int major_version = 0;
98 int minor_version = 0;
99 int micro_version = 0;
101 #ifdef QUESO_MAJOR_VERSION
102 major_version = QUESO_MAJOR_VERSION;
105 #ifdef QUESO_MINOR_VERSION
106 minor_version = QUESO_MINOR_VERSION;
109 #ifdef QUESO_MICRO_VERSION
110 micro_version = QUESO_MICRO_VERSION;
113 return(major_version*10000 + minor_version*100 + micro_version);
120 #ifdef QUESO_HAS_HDF5
142 const char* passedOptionsInputFileName,
145 m_fullEnvIsReady (false),
150 m_optionsInputFileName (
""),
151 m_optionsInputFileAccessState(true),
152 #ifndef DISABLE_BOOST_PROGRAM_OPTIONS
153 m_allOptionsDesc (NULL),
154 m_allOptionsMap (NULL),
163 m_inter0CommSize (1),
164 m_subDisplayFile (NULL),
167 m_exceptionalCircumstance (false),
168 m_optionsObj (alternativeOptionsValues)
174 const std::string& passedOptionsInputFileName,
177 m_fullEnvIsReady (false),
182 m_optionsInputFileName (passedOptionsInputFileName),
183 m_optionsInputFileAccessState(true),
184 #ifndef DISABLE_BOOST_PROGRAM_OPTIONS
185 m_allOptionsDesc (NULL),
186 m_allOptionsMap (NULL),
195 m_inter0CommSize (1),
196 m_subDisplayFile (NULL),
199 m_exceptionalCircumstance (false),
200 m_optionsObj (alternativeOptionsValues)
212 struct timeval timevalNow;
214 gettimeofday(&timevalNow, NULL);
220 <<
"Total run time = " << timevalNow.tv_sec -
m_timevalBegin.tv_sec
226 std::cout <<
"Ending run at " << ctime(&timevalNow.tv_sec)
227 <<
"Total run time = " << timevalNow.tv_sec -
m_timevalBegin.tv_sec
233 #ifndef DISABLE_BOOST_PROGRAM_OPTIONS
238 #endif // DISABLE_BOOST_PROGRAM_OPTIONS
371 #ifndef DISABLE_BOOST_PROGRAM_OPTIONS
372 #ifdef UQ_USES_COMMAND_LINE_OPTIONS
373 const boost::program_options::options_description&
374 BaseEnvironment::allOptionsDesc()
const
381 #endif // DISABLE_BOOST_PROGRAM_OPTIONS
383 #ifndef DISABLE_BOOST_PROGRAM_OPTIONS
384 boost::program_options::variables_map&
392 #endif // DISABLE_BOOST_PROGRAM_OPTIONS
394 #ifndef DISABLE_BOOST_PROGRAM_OPTIONS
400 #ifdef UQ_USES_COMMAND_LINE_OPTIONS
412 #ifdef QUESO_MEMORY_DEBUGGING
413 std::cout <<
"Entering BaseEnv::scanInputFileForMyOptions()" << std::endl;
424 std::string(
"m_optionsInputFileName is 'nothing'"));
427 #ifdef QUESO_MEMORY_DEBUGGING
428 std::cout <<
"in BaseEnv::scanInputFileForMyOptions(), before store(a)" << std::endl;
433 #ifdef QUESO_MEMORY_DEBUGGING
434 std::cout <<
"in BaseEnv::scanInputFileForMyOptions(), after store(a)" << std::endl;
440 #ifdef QUESO_MEMORY_DEBUGGING
441 std::cout <<
"Leaving BaseEnv::scanInputFileForMyOptions()" << std::endl;
446 #endif // DISABLE_BOOST_PROGRAM_OPTIONS
516 return m_timevalBegin;
521 const std::string& baseFileName,
522 const std::string& inputFileType,
523 const std::set<unsigned int>& allowedSubEnvIds,
527 std::string fileType(inputFileType);
528 #ifdef QUESO_HAS_HDF5
533 *this->
subDisplayFile() <<
"WARNING in BaseEnvironment::openOutputFile()"
535 <<
"' has been requested, but this QUESO library has not been built with 'hdf5'"
541 std::cerr <<
"WARNING in BaseEnvironment::openOutputFile()"
543 <<
"' has been requested, but this QUESO library has not been built with 'hdf5'"
552 bool returnValue =
true;
555 (allowedSubEnvIds.find(this->subId()) == allowedSubEnvIds.end() )) {
558 <<
", subId = " << this->
subId()
559 <<
": no output file opened with base name '" << baseFileName <<
"." << fileType
561 <<
", writeOver = " << writeOver
572 <<
", subId = " << this->
subId()
573 <<
": opening output file with base name '" << baseFileName <<
"." << fileType
575 <<
", writeOver = " << writeOver
581 std::cout <<
"In BaseEnvironment::openOutputFile()"
582 <<
": opening output file with base name '" << baseFileName <<
"." << fileType
584 <<
", writeOver = " << writeOver
595 <<
", subId = " << this->
subId()
596 <<
", trying to open output file with base name '" << baseFileName <<
"." << fileType
598 <<
", writeOver = " << writeOver
599 <<
": calling CheckFilePath()..."
605 <<
", subId = " << this->
subId()
606 <<
", trying to open output file with base name '" << baseFileName <<
"." << fileType
608 <<
", writeOver = " << writeOver
609 <<
": returned from CheckFilePath() with irtrn = " << irtrn
620 filePtrSet.
ofsVar =
new std::ofstream((baseFileName+
"_sub"+this->
subIdString()+
"."+fileType).c_str(),
621 std::ofstream::out | std::ofstream::trunc);
631 <<
": just opened output file with base name '" << baseFileName <<
"." << fileType
633 <<
", writeOver = " << writeOver
634 <<
", options 'out|trunc'"
635 <<
", osfvar = " << filePtrSet.
ofsVar
646 filePtrSet.
ofsVar =
new std::ofstream((baseFileName+
"_sub"+this->
subIdString()+
"."+fileType).c_str(),
648 std::cout <<
"filePtrSet.ofsVar(1) = " << filePtrSet.
ofsVar << std::endl;
649 if (filePtrSet.
ofsVar) std::cout <<
"filePtrSet.ofsVar(1)->is_open() = " << filePtrSet.
ofsVar->is_open() << std::endl;
653 filePtrSet.
ofsVar =
new std::ofstream((baseFileName+
"_sub"+this->
subIdString()+
"."+fileType).c_str(),
654 std::ofstream::out | std::ofstream::app);
656 #ifdef QUESO_HAS_HDF5
658 std::string fullFileName =
659 baseFileName+
"_sub"+this->
subIdString()+
"."+fileType;
662 filePtrSet.h5Var = H5Fcreate(fullFileName.c_str(),
669 "error opening file `" << fullFileName <<
"`");
677 <<
": just opened output file with base name '" << baseFileName <<
"." << fileType
679 <<
", writeOver = " << writeOver
680 <<
", options 'out|in|app'"
681 <<
", osfvar = " << filePtrSet.
ofsVar
688 if ((filePtrSet.
ofsVar == NULL ) ||
689 (filePtrSet.
ofsVar->is_open() ==
false)) {
692 filePtrSet.
ofsVar =
new std::ofstream((baseFileName+
"_sub"+this->
subIdString()+
"."+fileType).c_str(),
693 std::ofstream::out | std::ofstream::trunc);
696 <<
": just opened output file with base name '" << baseFileName <<
"." << fileType
698 <<
", writeOver = " << writeOver
699 <<
", options 'out|trunc'"
700 <<
", osfvar = " << filePtrSet.
ofsVar
712 "failed to open output file");
726 const std::string& baseFileName,
727 const std::string& inputFileType,
731 std::string fileType(inputFileType);
732 #ifdef QUESO_HAS_HDF5
737 *this->
subDisplayFile() <<
"WARNING in BaseEnvironment::openUnifiedOutputFile()"
739 <<
"' has been requested, but this QUESO library has not been built with 'hdf5'"
745 std::cerr <<
"WARNING in BaseEnvironment::openUnifiedOutputFile()"
747 <<
"' has been requested, but this QUESO library has not been built with 'hdf5'"
756 bool returnValue =
true;
758 if (baseFileName ==
".") {
760 *this->
subDisplayFile() <<
"In BaseEnvironment::openUnifiedOutputFile()"
761 <<
": no unified output file opened with base name '" << baseFileName <<
"." << fileType
763 <<
", writeOver = " << writeOver
773 *this->
subDisplayFile() <<
"In BaseEnvironment::openUnifiedOutputFile()"
774 <<
": opening unified output file with base name '" << baseFileName <<
"." << fileType
776 <<
", writeOver = " << writeOver
784 std::cout <<
"In BaseEnvironment::openUnifiedOutputFile()"
785 <<
": opening output file with base name '" << baseFileName <<
"." << fileType
787 <<
", writeOver = " << writeOver
795 int irtrn =
CheckFilePath((baseFileName+
"."+fileType).c_str());
804 filePtrSet.
ofsVar =
new std::ofstream((baseFileName+
"."+fileType).c_str(),
805 std::ofstream::out | std::ofstream::trunc);
807 #ifdef QUESO_HAS_HDF5
809 filePtrSet.h5Var = H5Fcreate((baseFileName+
"."+fileType).c_str(),
819 *this->
subDisplayFile() <<
"In BaseEnvironment::openUnifiedOutputFile()"
820 <<
": just opened output file with base name '" << baseFileName <<
"." << fileType
822 <<
", writeOver = " << writeOver
823 <<
", options 'out|trunc'"
824 <<
", osfvar = " << filePtrSet.
ofsVar
835 filePtrSet.
ofsVar =
new std::ofstream((baseFileName+
"."+fileType).c_str(),
836 std::ofstream::out | std::ofstream::app);
838 #ifdef QUESO_HAS_HDF5
840 filePtrSet.h5Var = H5Fcreate((baseFileName+
"."+fileType).c_str(),
854 *this->
subDisplayFile() <<
"In BaseEnvironment::openUnifiedOutputFile()"
855 <<
": just opened output file with base name '" << baseFileName <<
"." << fileType
857 <<
", writeOver = " << writeOver
858 <<
", options 'out|in|app'"
859 <<
", osfvar = " << filePtrSet.
ofsVar
862 if ((filePtrSet.
ofsVar == NULL ) ||
863 (filePtrSet.
ofsVar->is_open() ==
false)) {
865 std::cout <<
"Retrying 2..." << std::endl;
868 filePtrSet.
ofsVar =
new std::ofstream((baseFileName+
"."+fileType).c_str(),
869 std::ofstream::out | std::ofstream::trunc);
871 *this->
subDisplayFile() <<
"In BaseEnvironment::openUnifiedOutputFile()"
872 <<
": just opened output file with base name '" << baseFileName <<
"." << fileType
874 <<
", writeOver = " << writeOver
875 <<
", options 'out|trunc'"
876 <<
", osfvar = " << filePtrSet.
ofsVar
881 if (filePtrSet.
ofsVar == NULL) {
882 std::cerr <<
"In BaseEnvironment::openUnifiedOutputFile()"
883 <<
": failed to open unified output file with base name '" << baseFileName <<
"." << fileType
896 const std::string& baseFileName,
897 const std::string& inputFileType,
898 const std::set<unsigned int>& allowedSubEnvIds,
901 std::string fileType(inputFileType);
902 #ifdef QUESO_HAS_HDF5
907 *this->
subDisplayFile() <<
"WARNING in BaseEnvironment::openInputFile()"
909 <<
"' has been requested, but this QUESO library has not been built with 'hdf5'"
915 std::cerr <<
"WARNING in BaseEnvironment::openInputFile()"
917 <<
"' has been requested, but this QUESO library has not been built with 'hdf5'"
926 bool returnValue =
true;
929 (allowedSubEnvIds.find(this->subId()) == allowedSubEnvIds.end() )) {
932 <<
": no input file opened with base name '" << baseFileName <<
"." << fileType
944 <<
": opening input file with base name '" << baseFileName <<
"." << fileType
954 int irtrn =
CheckFilePath((baseFileName+
"."+fileType).c_str());
959 filePtrSet.
ifsVar =
new std::ifstream((baseFileName+
"."+fileType).c_str(),
961 if ((filePtrSet.
ifsVar == NULL) || (filePtrSet.
ifsVar->is_open() ==
false)) {
962 std::cerr <<
"In BaseEnvironment::openInputFile()"
963 <<
": failed to open input file with base name '" << baseFileName <<
"." << fileType
969 #ifdef QUESO_HAS_HDF5
971 filePtrSet.h5Var = H5Fopen((baseFileName+
"."+fileType).c_str(),
991 const std::string& baseFileName,
992 const std::string& inputFileType,
995 std::string fileType(inputFileType);
996 #ifdef QUESO_HAS_HDF5
1001 *this->
subDisplayFile() <<
"WARNING in BaseEnvironment::openUnifiedInputFile()"
1003 <<
"' has been requested, but this QUESO library has not been built with 'hdf5'"
1009 std::cerr <<
"WARNING in BaseEnvironment::openUnifiedInputFile()"
1011 <<
"' has been requested, but this QUESO library has not been built with 'hdf5'"
1020 bool returnValue =
true;
1021 filePtrSet.
ifsVar = NULL;
1024 *this->
subDisplayFile() <<
"In BaseEnvironment::openUnifiedInputFile()"
1025 <<
": no input file opened with base name '" << baseFileName <<
"." << fileType
1029 returnValue =
false;
1036 *this->
subDisplayFile() <<
"In BaseEnvironment::openUnifiedInputFile()"
1037 <<
": opening input file with base name '" << baseFileName <<
"." << fileType
1047 int irtrn =
CheckFilePath((baseFileName+
"."+fileType).c_str());
1052 filePtrSet.
ifsVar =
new std::ifstream((baseFileName+
"."+fileType).c_str(),
1054 if ((filePtrSet.
ifsVar == NULL) || (filePtrSet.
ifsVar->is_open() ==
false)) {
1055 std::cerr <<
"In BaseEnvironment::openUnifiedInputFile()"
1056 <<
": failed to open input file with base name '" << baseFileName <<
"." << fileType
1062 #ifdef QUESO_HAS_HDF5
1064 filePtrSet.h5Var = H5Fopen((baseFileName+
"."+fileType).c_str(),
1085 const std::string& inputFileType)
const
1087 std::string fileType(inputFileType);
1088 #ifdef QUESO_HAS_HDF5
1093 *this->
subDisplayFile() <<
"WARNING in BaseEnvironment::closeFile()"
1095 <<
"' has been requested, but this QUESO library has not been built with 'hdf5'"
1101 std::cerr <<
"WARNING in BaseEnvironment::closeFile()"
1103 <<
"' has been requested, but this QUESO library has not been built with 'hdf5'"
1115 delete filePtrSet.
ofsVar;
1116 filePtrSet.
ofsVar = NULL;
1119 delete filePtrSet.
ifsVar;
1120 filePtrSet.
ifsVar = NULL;
1122 #ifdef QUESO_HAS_HDF5
1124 H5Fclose(filePtrSet.h5Var);
1177 #ifdef QUESO_HAS_MPI
1180 const char* passedOptionsInputFileName,
1186 this->construct(inputComm, prefix);
1191 const std::string& passedOptionsInputFileName,
1192 const std::string& prefix,
1193 EnvOptionsValues* alternativeOptionsValues)
1195 BaseEnvironment(passedOptionsInputFileName,alternativeOptionsValues)
1197 this->construct(inputComm, prefix.c_str());
1204 #ifdef QUESO_MEMORY_DEBUGGING
1205 std::cout <<
"Entering FullEnv" << std::endl;
1211 int mpiRC = MPI_Comm_rank(inputComm,&
m_worldRank);
1225 #ifdef QUESO_MEMORY_DEBUGGING
1226 std::cout <<
"In FullEnv, finished dealing with MPI initially" << std::endl;
1237 #ifndef DISABLE_BOOST_PROGRAM_OPTIONS
1239 m_allOptionsDesc =
new boost::program_options::options_description(
"Allowed options");
1240 #endif // DISABLE_BOOST_PROGRAM_OPTIONS
1247 EnvOptionsValues * tempOptions =
new EnvOptionsValues(
this, prefix);
1257 std::cout << (*m_optionsObj) << std::endl;
1262 "total number of processors in environment must be multiple of the specified number of subEnvironments");
1264 #ifdef QUESO_MEMORY_DEBUGGING
1265 std::cout <<
"In FullEnv, finished scanning options" << std::endl;
1285 std::cout <<
"Beginning run at " << ctime(&
m_timevalBegin.tv_sec)
1297 sprintf(tmpSubId,
"%u",
m_subId);
1304 std::vector<int> fullRanksOfMySubEnvironment(numRanksPerSubEnvironment,0);
1305 for (
unsigned int i = 0; i < numRanksPerSubEnvironment; ++i) {
1306 fullRanksOfMySubEnvironment[i] =
m_subId * numRanksPerSubEnvironment + i;
1309 mpiRC = MPI_Group_incl(
m_fullGroup, (
int) numRanksPerSubEnvironment, &fullRanksOfMySubEnvironment[0], &
m_subGroup);
1315 m_subComm =
new MpiComm(*
this,subRawComm);
1329 fullRanksOfInter0[i] = i * numRanksPerSubEnvironment;
1336 if (
m_fullRank%numRanksPerSubEnvironment == 0) {
1355 bool openFile =
false;
1381 std::ofstream::out | std::ofstream::trunc);
1397 std::cout <<
"MPI node of worldRank " <<
m_worldRank
1399 <<
", belongs to subEnvironment of id " <<
m_subId
1403 std::cout <<
"MPI node of worldRank " <<
m_worldRank
1404 <<
" belongs to sub communicator with full ranks";
1405 for (
unsigned int j = 0; j < fullRanksOfMySubEnvironment.size(); ++j) {
1406 std::cout <<
" " << fullRanksOfMySubEnvironment[j];
1411 std::cout <<
"MPI node of worldRank " << m_worldRank
1412 <<
" also belongs to inter0 communicator with full ranks";
1413 for (
unsigned int j = 0; j < fullRanksOfInter0.size(); ++j) {
1414 std::cout <<
" " << fullRanksOfInter0[j];
1420 std::cout << std::endl;
1441 std::cerr <<
"In Environment::constructor()"
1454 *
m_subDisplayFile <<
"Done with initializations at FullEnvironment::commonConstructor()"
1460 #endif // QUESO_HAS_MPI
1463 const char* passedOptionsInputFileName,
1473 const std::string& passedOptionsInputFileName,
1474 const std::string& prefix,
1485 #ifdef QUESO_MEMORY_DEBUGGING
1486 std::cout <<
"Entering FullEnv" << std::endl;
1495 #ifndef QUESO_HAS_MPI
1502 #ifdef QUESO_MEMORY_DEBUGGING
1503 std::cout <<
"In FullEnv, finished dealing with MPI initially" << std::endl;
1514 #ifndef DISABLE_BOOST_PROGRAM_OPTIONS
1516 m_allOptionsDesc =
new boost::program_options::options_description(
"Allowed options");
1517 #endif // DISABLE_BOOST_PROGRAM_OPTIONS
1534 std::cout << (*m_optionsObj) << std::endl;
1539 "total number of processors in environment must be multiple of the specified number of subEnvironments");
1541 #ifdef QUESO_MEMORY_DEBUGGING
1542 std::cout <<
"In FullEnv, finished scanning options" << std::endl;
1559 std::cout <<
"Beginning run at " << ctime(&
m_timevalBegin.tv_sec)
1565 sprintf(tmpSubId,
"%u",
m_subId);
1572 int fullRanksOfMySubEnvironment = 1;
1574 #ifndef QUESO_HAS_MPI
1590 int fullRanksOfInter0 = 0;
1591 #ifndef QUESO_HAS_MPI
1611 bool openFile =
false;
1618 if (openFile && m_worldRank == 0) {
1637 std::ofstream::out | std::ofstream::trunc);
1653 std::cout <<
"MPI node of worldRank " << m_worldRank
1655 <<
", belongs to subEnvironment of id " <<
m_subId
1659 std::cout <<
"MPI node of worldRank " << m_worldRank
1660 <<
" belongs to sub communicator with full ranks";
1661 std::cout <<
" " << fullRanksOfMySubEnvironment;
1665 std::cout <<
"MPI node of worldRank " << m_worldRank
1666 <<
" also belongs to inter0 communicator with full ranks";
1667 std::cout <<
" " << fullRanksOfInter0;
1672 std::cout << std::endl;
1690 std::cerr <<
"In Environment::constructor()"
1703 *
m_subDisplayFile <<
"Done with initializations at FullEnvironment::commonConstructor()"
1724 #ifdef QUESO_HAS_MPI
1725 int mpi_initialized;
1726 MPI_Initialized (&mpi_initialized);
1728 if (mpi_initialized)
1731 MPI_Abort(MPI_COMM_WORLD, 1);
1752 if (ifs->is_open()) {
1757 if (
m_fullRank == 0) std::cout <<
"An invalid input file has been passed to the 'environment' class constructor!"
1761 if (
m_fullRank == 0) std::cout <<
"\nThis is a help message of the QUESO library."
1762 <<
"\nAn application using the QUESO library shall be executed by typing"
1763 <<
"\n '<eventual mpi commands and options> <Application> <InputFile>'"
1764 <<
"\nin the command line."
virtual ~BaseEnvironment()
Destructor.
const RngBase * rngObject() const
Access to the RNG object.
int NumProc() const
Returns total number of processes.
#define UQ_ENV_FILENAME_FOR_NO_INPUT_FILE
std::string m_optionsInputFileName
EnvOptionsValues * m_optionsObj
struct timeval m_timevalBegin
int worldRank() const
Returns the process world rank.
RawType_MPI_Comm Comm() const
Extract MPI Communicator from a MpiComm object.
void Barrier() const
Pause every process in *this communicator until all the processes reach this point.
const GetPot & input() const
The GetPot input file parser.
std::ofstream * subDisplayFile() const
Access function for m_subDisplayFile (displays file on stream).
#define queso_require_greater_equal_msg(expr1, expr2, msg)
bool m_subDisplayAllowAll
Allows (or not) all sub-environments to write to output file.
int subRank() const
Access function for sub-rank.
std::ifstream * ifsVar
Provides a stream interface to read data from files.
std::string optionsInputFileName() const
Access to the attribute m_optionsInputFileName, which stores the name of the input file passed by the...
boost::program_options::variables_map * m_allOptionsMap
This class provides a suite options one can pass to a QUESO environment.
This (virtual) class sets up the environment underlying the use of the QUESO library by an executable...
int MyPID() const
Return my process ID.
void resetIdentifyingString(const std::string &newString)
Reset private attribute m_identifyingString with the value newString.
int inter0Rank() const
Returns the process inter0 rank.
std::string subDisplayFileName() const
Access function for m_subDisplayFileName (displays filename on stream).
RawType_MPI_Group m_subGroup
std::ofstream * m_subDisplayFile
std::string platformName() const
Access to the platform name.
unsigned int m_syncVerbosity
Synchronized verbosity.
EmptyEnvironment()
Default constructor. Does nothing.
bool fullEnvIsReady() const
Returns whether the full environment class is ready (constructor has successfully been called)...
int CheckFilePath(const char *path)
std::string m_platformName
Platform name.
#define RawValue_MPI_COMM_SELF
int QUESO_get_numeric_version()
Class for random number generation using Boost library.
void print(std::ostream &os) const
Sends the environment options to the stream.
#define queso_require_equal_to_msg(expr1, expr2, msg)
bool openInputFile(const std::string &fileName, const std::string &fileType, const std::set< unsigned int > &allowedSubEnvIds, FilePtrSetStruct &filePtrSet) const
Opens an input file.
#define UQ_FILE_EXTENSION_FOR_HDF_FORMAT
boost::program_options::variables_map & allOptionsMap() const
std::string m_subIdString
Class for random number generation using GSL library.
#define UQ_FILE_EXTENSION_FOR_TXT_FORMAT
Struct for handling data input and output from files.
boost::program_options::options_description * m_allOptionsDesc
unsigned int subId() const
Access function to the number of each sub-environment Id: m_subId.
unsigned int syncVerbosity() const
Access function to private attribute m_syncVerbosity.
#define queso_deprecated()
void print(std::ostream &os) const
std::terminate_handler old_terminate_handler
bool m_optionsInputFileAccessState
bool m_exceptionalCircumstance
std::string identifyingString() const
Access function to private attribute m_identifyingString: identifying string.
virtual void resetSeed(int newSeed)
Resets the seed with value newSeed.
unsigned int m_displayVerbosity
Verbosity.
std::string m_subDisplayFileName
Output filename for sub-screen writing.
void scanInputFileForMyOptions(const boost::program_options::options_description &optionsDesc) const
This method scans the input file provided by the user to QUESO.
unsigned int m_numSubEnvironments
Class for random number generation (base class for either GSL or Boost RNG).
std::set< unsigned int > m_subDisplayAllowedSet
Sub-environments that will write to output.
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.
void setExceptionalCircumstance(bool value) const
Set an exceptional circumstance.
void closeFile(FilePtrSetStruct &filePtrSet, const std::string &fileType) const
Closes the file.
int fullRank() const
Returns the process full rank.
void readOptionsInputFile()
Checks the options input file and reads the options.
unsigned int numSubEnvironments() const
Access function to the number of sub-environments.
void queso_terminate_handler()
Function for unhandled exceptions in Queso.
~FilePtrSetStruct()
Destructor.
void QUESO_version_print(std::ostream &os)
std::ofstream * ofsVar
Provides a stream interface to write data to files.
BaseEnvironment(const char *passedOptionsInputFileName, EnvOptionsValues *alternativeOptionsValues)
Default constructor.
RawType_MPI_Group subGroup() const
Access function for sub-group.
bool exceptionalCircumstance() const
Decides whether there is an exceptional circumstance.
TODO: Base class for basic PDFs using Gsl library.
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...
void resetSeed(int newSeedOption)
Reset RNG seed.
#define queso_require_not_equal_to_msg(expr1, expr2, msg)
TODO: Base class for basic PDFs (via either GSL or Boost).
unsigned int checkingLevel() const
Access function to private attribute m_checkingLevel.
int seed() const
Access to the RNG seed.
std::string m_rngType
Type of the random number generator.
ScopedPtr< GetPot >::Type m_input
unsigned int displayVerbosity() const
RawType_MPI_Group m_fullGroup
const MpiComm & subComm() const
Access function for MpiComm sub communicator.
unsigned int m_checkingLevel
Checking level.
const BasicPdfsBase * basicPdfs() const
Access to Basic PDFs.
#define UQ_FILE_EXTENSION_FOR_MATLAB_FORMAT
#define queso_require_msg(asserted, msg)
The QUESO MPI Communicator Class.
~FullEnvironment()
Destructor.
const MpiComm & fullComm() const
Access function for MpiComm full communicator.
std::string m_identifyingString
Identifying string.
~EmptyEnvironment()
Destructor.
int m_seed
Seed of the random number generator.
int seed() const
Sets the seed.
bool openUnifiedInputFile(const std::string &fileName, const std::string &fileType, FilePtrSetStruct &filePtrSet) const
Opens the unified input file.
void setOptionsInputFileAccessState(bool newState) const
RawType_MPI_Group m_inter0Group
FullEnvironment(const char *passedOptionsInputFileName, const char *prefix, EnvOptionsValues *alternativeOptionsValues)
Parallel constructor.
#define queso_error_msg(msg)
FilePtrSetStruct()
Struct constructor.
#define UQ_ENV_FILENAME_FOR_NO_OUTPUT_FILE
TODO: Base class for basic PDFs using Boost library.
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.
BasicPdfsBase * m_basicPdfs
const MpiComm & inter0Comm() const
Access function for MpiComm inter0-communicator.
void construct(const char *prefix)
Named constructor backend for multiple constructor overloads.
bool m_subDisplayAllowInter0
Allows (or not) all inter0 nodes to write to output file.
const MpiComm & selfComm() const
Access function for MpiComm self-communicator.