Merge pull request #1105 from atgeirr/change-default-output-dir

Change default output dir
This commit is contained in:
Bård Skaflestad
2017-03-17 13:58:08 +01:00
committed by GitHub
7 changed files with 32 additions and 40 deletions

View File

@@ -145,8 +145,8 @@ namespace Opm
if (!ok) { if (!ok) {
return EXIT_FAILURE; return EXIT_FAILURE;
} }
asImpl().setupOutput();
asImpl().readDeckInput(); asImpl().readDeckInput();
asImpl().setupOutput();
asImpl().setupLogging(); asImpl().setupLogging();
asImpl().extractMessages(); asImpl().extractMessages();
asImpl().setupGridAndProps(); asImpl().setupGridAndProps();
@@ -365,14 +365,17 @@ namespace Opm
// Throws std::runtime_error if failed to create (if requested) output dir. // Throws std::runtime_error if failed to create (if requested) output dir.
void setupOutput() void setupOutput()
{ {
// Write parameters used for later reference. (only if rank is zero)
output_to_files_ = output_cout_ && param_.getDefault("output", true); output_to_files_ = output_cout_ && param_.getDefault("output", true);
// Always read output_dir as it will be set unconditionally later.
// Not doing this might cause files to be created in the current
// directory.
output_dir_ =
param_.getDefault("output_dir", std::string("."));
// Setup output directory.
auto& ioConfig = eclipse_state_->getIOConfig();
// Default output directory is the directory where the deck is found.
const std::string default_output_dir = ioConfig.getOutputDir();
output_dir_ = param_.getDefault("output_dir", default_output_dir);
// Override output directory if user specified.
ioConfig.setOutputDir(output_dir_);
// Write parameters used for later reference. (only if rank is zero)
if (output_to_files_) { if (output_to_files_) {
// Create output directory if needed. // Create output directory if needed.
boost::filesystem::path fpath(output_dir_); boost::filesystem::path fpath(output_dir_);
@@ -409,13 +412,9 @@ namespace Opm
} else { } else {
baseName = path(fpath.filename()).string(); baseName = path(fpath.filename()).string();
} }
if (param_.has("output_dir")) {
logFileStream << output_dir_ << "/";
debugFileStream << output_dir_ + "/";
}
logFileStream << baseName; logFileStream << output_dir_ << "/" << baseName;
debugFileStream << "." << baseName; debugFileStream << output_dir_ << "/" << "." << baseName;
if ( must_distribute_ && mpi_rank_ != 0 ) if ( must_distribute_ && mpi_rank_ != 0 )
{ {
@@ -511,8 +510,6 @@ namespace Opm
} }
eclipse_state_.reset(new EclipseState(*deck_, parseContext)); eclipse_state_.reset(new EclipseState(*deck_, parseContext));
auto& ioConfig = eclipse_state_->getIOConfig();
ioConfig.setOutputDir(output_dir_);
} }
catch (const std::invalid_argument& e) { catch (const std::invalid_argument& e) {
std::cerr << "Failed to create valid EclipseState object. See logfile: " << logFile_ << std::endl; std::cerr << "Failed to create valid EclipseState object. See logfile: " << logFile_ << std::endl;

View File

@@ -87,8 +87,8 @@ namespace Opm
return EXIT_FAILURE; return EXIT_FAILURE;
} }
setupOutput();
setupEbosSimulator(); setupEbosSimulator();
setupOutput();
setupLogging(); setupLogging();
extractMessages(); extractMessages();
setupGridAndProps(); setupGridAndProps();
@@ -225,14 +225,17 @@ namespace Opm
// Throws std::runtime_error if failed to create (if requested) output dir. // Throws std::runtime_error if failed to create (if requested) output dir.
void setupOutput() void setupOutput()
{ {
// Write parameters used for later reference. (only if rank is zero)
output_to_files_ = output_cout_ && param_.getDefault("output", true); output_to_files_ = output_cout_ && param_.getDefault("output", true);
// Always read output_dir as it will be set unconditionally later.
// Not doing this might cause files to be created in the current
// directory.
output_dir_ =
param_.getDefault("output_dir", std::string("."));
// Setup output directory.
auto& ioConfig = eclState().getIOConfig();
// Default output directory is the directory where the deck is found.
const std::string default_output_dir = ioConfig.getOutputDir();
output_dir_ = param_.getDefault("output_dir", default_output_dir);
// Override output directory if user specified.
ioConfig.setOutputDir(output_dir_);
// Write parameters used for later reference. (only if rank is zero)
if (output_to_files_) { if (output_to_files_) {
// Create output directory if needed. // Create output directory if needed.
boost::filesystem::path fpath(output_dir_); boost::filesystem::path fpath(output_dir_);
@@ -265,13 +268,9 @@ namespace Opm
} else { } else {
baseName = path(fpath.filename()).string(); baseName = path(fpath.filename()).string();
} }
if (param_.has("output_dir")) {
logFileStream << output_dir_ << "/";
debugFileStream << output_dir_ + "/";
}
logFileStream << baseName; logFileStream << output_dir_ << "/" << baseName;
debugFileStream << "." << baseName; debugFileStream << output_dir_ << "/" << "." << baseName;
if ( must_distribute_ && mpi_rank_ != 0 ) if ( must_distribute_ && mpi_rank_ != 0 )
{ {
@@ -354,12 +353,10 @@ namespace Opm
MissingFeatures::checkKeywords(deck()); MissingFeatures::checkKeywords(deck());
} }
IOConfig& ioConfig = eclState().getIOConfig();
ioConfig.setOutputDir(output_dir_);
// Possible to force initialization only behavior (NOSIM). // Possible to force initialization only behavior (NOSIM).
if (param_.has("nosim")) { if (param_.has("nosim")) {
const bool nosim = param_.get<bool>("nosim"); const bool nosim = param_.get<bool>("nosim");
auto& ioConfig = eclState().getIOConfig();
ioConfig.overrideNOSIM( nosim ); ioConfig.overrideNOSIM( nosim );
} }
} }

View File

@@ -310,7 +310,6 @@ namespace Opm
// Parameters for output. // Parameters for output.
const std::string outputDir_; const std::string outputDir_;
const int output_interval_;
const bool restart_double_si_; const bool restart_double_si_;
int lastBackupReportStep_; int lastBackupReportStep_;
@@ -341,8 +340,7 @@ namespace Opm
const Opm::PhaseUsage &phaseUsage) const Opm::PhaseUsage &phaseUsage)
: output_( param.getDefault("output", true) ), : output_( param.getDefault("output", true) ),
parallelOutput_( output_ ? new ParallelDebugOutput< Grid >( grid, eclipseState, phaseUsage.num_phases, phaseUsage ) : 0 ), parallelOutput_( output_ ? new ParallelDebugOutput< Grid >( grid, eclipseState, phaseUsage.num_phases, phaseUsage ) : 0 ),
outputDir_( output_ ? param.getDefault("output_dir", std::string("output")) : "." ), outputDir_( eclipseState.getIOConfig().getOutputDir() ),
output_interval_( output_ ? param.getDefault("output_interval", 1): 0 ),
restart_double_si_( output_ ? param.getDefault("restart_double_si", false) : false ), restart_double_si_( output_ ? param.getDefault("restart_double_si", false) : false ),
lastBackupReportStep_( -1 ), lastBackupReportStep_( -1 ),
phaseUsage_( phaseUsage ), phaseUsage_( phaseUsage ),

View File

@@ -21,7 +21,7 @@ TEST_ARGS="$@"
rm -Rf ${RESULT_PATH} rm -Rf ${RESULT_PATH}
mkdir -p ${RESULT_PATH} mkdir -p ${RESULT_PATH}
cd ${RESULT_PATH} cd ${RESULT_PATH}
${BINPATH}/${EXE_NAME} ${TEST_ARGS} nosim=true ${BINPATH}/${EXE_NAME} ${TEST_ARGS} nosim=true output_dir=${RESULT_PATH}
cd .. cd ..
ecode=0 ecode=0

View File

@@ -19,11 +19,11 @@ TEST_ARGS="$@"
rm -Rf ${RESULT_PATH} rm -Rf ${RESULT_PATH}
mkdir -p ${RESULT_PATH} mkdir -p ${RESULT_PATH}
cd ${RESULT_PATH} cd ${RESULT_PATH}
${BINPATH}/${EXE_NAME} ${TEST_ARGS}.DATA linear_solver_reduction=1e-7 tolerance_cnv=5e-6 tolerance_mb=1e-8 ${BINPATH}/${EXE_NAME} ${TEST_ARGS}.DATA linear_solver_reduction=1e-7 tolerance_cnv=5e-6 tolerance_mb=1e-8 output_dir=${RESULT_PATH}
test $? -eq 0 || exit 1 test $? -eq 0 || exit 1
mkdir mpi mkdir mpi
cd mpi cd mpi
mpirun -np 4 ${BINPATH}/${EXE_NAME} ${TEST_ARGS}.DATA linear_solver_reduction=1e-7 tolerance_cnv=5e-6 tolerance_mb=1e-8 mpirun -np 4 ${BINPATH}/${EXE_NAME} ${TEST_ARGS}.DATA linear_solver_reduction=1e-7 tolerance_cnv=5e-6 tolerance_mb=1e-8 output_dir=${RESULT_PATH}/mpi
test $? -eq 0 || exit 1 test $? -eq 0 || exit 1
cd .. cd ..

View File

@@ -18,7 +18,7 @@ TEST_ARGS="$@"
rm -Rf ${RESULT_PATH} rm -Rf ${RESULT_PATH}
mkdir -p ${RESULT_PATH} mkdir -p ${RESULT_PATH}
cd ${RESULT_PATH} cd ${RESULT_PATH}
${BINPATH}/${EXE_NAME} ${TEST_ARGS} ${BINPATH}/${EXE_NAME} ${TEST_ARGS} output_dir=${RESULT_PATH}
cd .. cd ..
ecode=0 ecode=0

View File

@@ -19,9 +19,9 @@ TEST_ARGS="$@"
rm -Rf ${RESULT_PATH} rm -Rf ${RESULT_PATH}
mkdir -p ${RESULT_PATH} mkdir -p ${RESULT_PATH}
cd ${RESULT_PATH} cd ${RESULT_PATH}
${BINPATH}/${EXE_NAME} ${TEST_ARGS}.DATA timestep.adaptive=false ${BINPATH}/${EXE_NAME} ${TEST_ARGS}.DATA timestep.adaptive=false output_dir=${RESULT_PATH}
test $? -eq 0 || exit 1 test $? -eq 0 || exit 1
${BINPATH}/${EXE_NAME} ${TEST_ARGS}_RESTART.DATA timestep.adaptive=false ${BINPATH}/${EXE_NAME} ${TEST_ARGS}_RESTART.DATA timestep.adaptive=false output_dir=${RESULT_PATH}
test $? -eq 0 || exit 1 test $? -eq 0 || exit 1
ecode=0 ecode=0