mirror of
https://github.com/OPM/opm-simulators.git
synced 2024-11-22 09:16:27 -06:00
flow: print the startup banner immediately
also, add a "reading deck" output. The idea is to make `flow`'s behaviour less surprising by preventing people from thinking that nothing happens after starting `flow` for a large deck.
This commit is contained in:
parent
ab94700f9a
commit
7d30a8408a
@ -134,13 +134,16 @@ int main(int argc, char** argv)
|
|||||||
deckFilename = PreVanguard::canonicalDeckPath(deckFilename).string();
|
deckFilename = PreVanguard::canonicalDeckPath(deckFilename).string();
|
||||||
}
|
}
|
||||||
catch (const std::exception& e) {
|
catch (const std::exception& e) {
|
||||||
Ewoms::Parameters::printUsage<PreTypeTag>(PreProblem::helpPreamble(argc, const_cast<const char**>(argv)),
|
std::cerr << "Exception received: " << e.what() << ". Try '--help' for a usage description.\n";
|
||||||
e.what());
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Opm::FlowMainEbos<PreTypeTag>::printBanner();
|
||||||
|
|
||||||
// Create Deck and EclipseState.
|
// Create Deck and EclipseState.
|
||||||
try {
|
try {
|
||||||
|
std::cout << "Reading deck file '" << deckFilename << "'\n";
|
||||||
|
std::cout.flush();
|
||||||
Opm::Parser parser;
|
Opm::Parser parser;
|
||||||
typedef std::pair<std::string, Opm::InputError::Action> ParseModePair;
|
typedef std::pair<std::string, Opm::InputError::Action> ParseModePair;
|
||||||
typedef std::vector<ParseModePair> ParseModePairs;
|
typedef std::vector<ParseModePair> ParseModePairs;
|
||||||
|
@ -193,6 +193,24 @@ namespace Opm
|
|||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void printBanner()
|
||||||
|
{
|
||||||
|
const int lineLen = 70;
|
||||||
|
const std::string version = moduleVersionName();
|
||||||
|
const std::string banner = "This is flow "+version;
|
||||||
|
const int bannerPreLen = (lineLen - 2 - banner.size())/2;
|
||||||
|
const int bannerPostLen = bannerPreLen + (lineLen - 2 - banner.size())%2;
|
||||||
|
std::cout << "**********************************************************************\n";
|
||||||
|
std::cout << "* *\n";
|
||||||
|
std::cout << "*" << std::string(bannerPreLen, ' ') << banner << std::string(bannerPostLen, ' ') << "*\n";
|
||||||
|
std::cout << "* *\n";
|
||||||
|
std::cout << "* Flow is a simulator for fully implicit three-phase black-oil flow, *\n";
|
||||||
|
std::cout << "* including solvent and polymer capabilities. *\n";
|
||||||
|
std::cout << "* For more information, see https://opm-project.org *\n";
|
||||||
|
std::cout << "* *\n";
|
||||||
|
std::cout << "**********************************************************************\n\n";
|
||||||
|
}
|
||||||
|
|
||||||
/// This is the main function of Flow. It runs a complete simulation with the
|
/// This is the main function of Flow. It runs a complete simulation with the
|
||||||
/// given grid and simulator classes, based on the user-specified command-line
|
/// given grid and simulator classes, based on the user-specified command-line
|
||||||
/// input.
|
/// input.
|
||||||
@ -207,7 +225,6 @@ namespace Opm
|
|||||||
|
|
||||||
setupParallelism();
|
setupParallelism();
|
||||||
setupOutput();
|
setupOutput();
|
||||||
printStartupMessage();
|
|
||||||
setupEbosSimulator();
|
setupEbosSimulator();
|
||||||
setupLogging();
|
setupLogging();
|
||||||
printPRTHeader();
|
printPRTHeader();
|
||||||
@ -266,28 +283,6 @@ namespace Opm
|
|||||||
ThreadManager::init();
|
ThreadManager::init();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Print startup message if on output rank.
|
|
||||||
void printStartupMessage()
|
|
||||||
{
|
|
||||||
|
|
||||||
if (output_cout_) {
|
|
||||||
const int lineLen = 70;
|
|
||||||
const std::string version = moduleVersionName();
|
|
||||||
const std::string banner = "This is flow "+version;
|
|
||||||
const int bannerPreLen = (lineLen - 2 - banner.size())/2;
|
|
||||||
const int bannerPostLen = bannerPreLen + (lineLen - 2 - banner.size())%2;
|
|
||||||
std::cout << "**********************************************************************\n";
|
|
||||||
std::cout << "* *\n";
|
|
||||||
std::cout << "*" << std::string(bannerPreLen, ' ') << banner << std::string(bannerPostLen, ' ') << "*\n";
|
|
||||||
std::cout << "* *\n";
|
|
||||||
std::cout << "* Flow is a simulator for fully implicit three-phase black-oil flow, *\n";
|
|
||||||
std::cout << "* including solvent and polymer capabilities. *\n";
|
|
||||||
std::cout << "* For more information, see https://opm-project.org *\n";
|
|
||||||
std::cout << "* *\n";
|
|
||||||
std::cout << "**********************************************************************\n\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Extract the minimum priority and determines if log files ought to be created.
|
// Extract the minimum priority and determines if log files ought to be created.
|
||||||
// Writes to:
|
// Writes to:
|
||||||
// output_to_files_
|
// output_to_files_
|
||||||
|
Loading…
Reference in New Issue
Block a user