2019-03-18 06:52:01 -05:00
|
|
|
/////////////////////////////////////////////////////////////////////////////////
|
|
|
|
//
|
|
|
|
// Copyright (C) 2017- Statoil ASA
|
|
|
|
//
|
|
|
|
// ResInsight is free software: you can redistribute it and/or modify
|
|
|
|
// it under the terms of the GNU General Public License as published by
|
|
|
|
// the Free Software Foundation, either version 3 of the License, or
|
|
|
|
// (at your option) any later version.
|
|
|
|
//
|
|
|
|
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
|
|
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
|
|
// FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
//
|
|
|
|
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
|
|
|
|
// for more details.
|
|
|
|
//
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
2019-03-29 07:37:25 -05:00
|
|
|
#include "RicExportEclipseSectorModelUi.h"
|
2019-03-18 06:52:01 -05:00
|
|
|
|
|
|
|
#include "RiaApplication.h"
|
|
|
|
#include "RigCaseCellResultsData.h"
|
|
|
|
#include "RigEclipseCaseData.h"
|
|
|
|
|
|
|
|
#include "RimEclipseResultDefinition.h"
|
|
|
|
|
|
|
|
#include "cafPdmUiFilePathEditor.h"
|
|
|
|
#include "cafPdmUiGroup.h"
|
2019-03-21 04:35:52 -05:00
|
|
|
#include "cafPdmUiLineEditor.h"
|
2019-03-18 06:52:01 -05:00
|
|
|
#include "cafPdmUiListEditor.h"
|
|
|
|
#include "cafPdmUiOrdering.h"
|
|
|
|
|
|
|
|
#include <QDir>
|
|
|
|
#include <QFileInfo>
|
2019-03-21 04:35:52 -05:00
|
|
|
#include <QIntValidator>
|
2019-03-18 06:52:01 -05:00
|
|
|
|
2019-03-21 05:56:19 -05:00
|
|
|
#include <set>
|
|
|
|
|
2019-03-29 07:37:25 -05:00
|
|
|
CAF_PDM_SOURCE_INIT(RicExportEclipseSectorModelUi, "RicExportEclipseInputGridUi");
|
2019-03-18 06:52:01 -05:00
|
|
|
|
|
|
|
namespace caf
|
|
|
|
{
|
|
|
|
template<>
|
2019-03-29 07:37:25 -05:00
|
|
|
void RicExportEclipseSectorModelUi::ResultExportOptionsEnum::setUp()
|
2019-03-18 06:52:01 -05:00
|
|
|
{
|
2019-03-29 07:37:25 -05:00
|
|
|
addItem(RicExportEclipseSectorModelUi::EXPORT_NO_RESULTS, "NO_RESULTS", "Do not export");
|
|
|
|
addItem(RicExportEclipseSectorModelUi::EXPORT_TO_GRID_FILE, "TO_GRID_FILE", "Append to grid file");
|
|
|
|
addItem(RicExportEclipseSectorModelUi::EXPORT_TO_SINGLE_SEPARATE_FILE, "TO_SINGLE_RESULT_FILE", "Export to single file");
|
|
|
|
addItem(RicExportEclipseSectorModelUi::EXPORT_TO_SEPARATE_FILE_PER_RESULT, "TO_SEPARATE_RESULT_FILES", "Export to a separate file per property");
|
2019-03-18 06:52:01 -05:00
|
|
|
|
2019-03-29 07:37:25 -05:00
|
|
|
setDefault(RicExportEclipseSectorModelUi::EXPORT_TO_SEPARATE_FILE_PER_RESULT);
|
2019-03-18 06:52:01 -05:00
|
|
|
}
|
2019-03-29 08:26:49 -05:00
|
|
|
|
2019-03-18 06:52:01 -05:00
|
|
|
} // namespace caf
|
|
|
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
///
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
2019-03-29 07:37:25 -05:00
|
|
|
RicExportEclipseSectorModelUi::RicExportEclipseSectorModelUi(RigEclipseCaseData* caseData)
|
2019-03-18 06:52:01 -05:00
|
|
|
: m_caseData(caseData)
|
|
|
|
{
|
|
|
|
CAF_PDM_InitObject("Export Visible Cells as Eclipse Input Grid", "", "", "");
|
|
|
|
|
|
|
|
CAF_PDM_InitField(&exportGrid, "ExportGrid", true, "Export Grid", "", "Includes COORD, ZCORN and ACTNUM", "");
|
|
|
|
CAF_PDM_InitField(&exportGridFilename, "ExportGridFilename", QString(), "Grid File Name", "", "", "");
|
|
|
|
exportGridFilename.uiCapability()->setUiEditorTypeName(caf::PdmUiFilePathEditor::uiEditorTypeName());
|
2019-03-21 04:35:52 -05:00
|
|
|
|
2019-03-29 08:26:49 -05:00
|
|
|
CAF_PDM_InitField(&makeInvisibleCellsInactive, "InvisibleCellActnum", false, "Make Invisible Cells Inactive", "", "", "");
|
|
|
|
|
2019-03-21 04:35:52 -05:00
|
|
|
CAF_PDM_InitFieldNoDefault(&exportFaults, "ExportFaults", "Export Faults", "", "", "");
|
2019-03-28 14:42:29 -05:00
|
|
|
exportFaults = EXPORT_TO_SINGLE_SEPARATE_FILE;
|
|
|
|
|
2019-03-21 04:35:52 -05:00
|
|
|
CAF_PDM_InitField(&exportFaultsFilename, "ExportFaultsFilename", QString(), "Faults File Name", "", "", "");
|
|
|
|
exportFaultsFilename.uiCapability()->setUiEditorTypeName(caf::PdmUiFilePathEditor::uiEditorTypeName());
|
|
|
|
|
2019-03-28 14:42:29 -05:00
|
|
|
CAF_PDM_InitFieldNoDefault(&exportResults, "ExportResults", "Export Properties", "", "", "");
|
|
|
|
CAF_PDM_InitField(&exportResultsFilename, "ExportResultsFilename", QString(), "Properties File Name", "", "", "");
|
|
|
|
exportResultsFilename.uiCapability()->setUiEditorTypeName(caf::PdmUiFilePathEditor::uiEditorTypeName());
|
|
|
|
|
2019-03-18 06:52:01 -05:00
|
|
|
CAF_PDM_InitFieldNoDefault(&exportMainKeywords, "ExportMainKeywords", "Main Keywords", "", "", "");
|
|
|
|
CAF_PDM_InitFieldNoDefault(&exportAdditionalKeywords, "ExportAdditionalKeywords", "Additional Keywords", "", "", "");
|
|
|
|
|
2019-03-19 04:49:09 -05:00
|
|
|
QString ijkLabel = "Cell Count I, J, K";
|
|
|
|
CAF_PDM_InitField(&cellCountI, "CellCountI", 1, ijkLabel, "", "", "");
|
|
|
|
CAF_PDM_InitField(&cellCountJ, "CellCountJ", 1, "", "", "", "");
|
|
|
|
CAF_PDM_InitField(&cellCountK, "CellCountK", 1, "", "", "", "");
|
|
|
|
|
2019-03-18 06:52:01 -05:00
|
|
|
exportGridFilename = defaultGridFileName();
|
|
|
|
exportResultsFilename = defaultResultsFileName();
|
2019-03-21 04:35:52 -05:00
|
|
|
exportFaultsFilename = defaultFaultsFileName();
|
2019-03-18 06:52:01 -05:00
|
|
|
|
|
|
|
for (QString keyword : mainKeywords())
|
|
|
|
{
|
|
|
|
exportMainKeywords.v().push_back(keyword);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
///
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
2019-03-29 07:37:25 -05:00
|
|
|
RicExportEclipseSectorModelUi::~RicExportEclipseSectorModelUi()
|
2019-03-18 06:52:01 -05:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
///
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
2019-03-29 07:37:25 -05:00
|
|
|
std::vector<QString> RicExportEclipseSectorModelUi::allSelectedKeywords() const
|
2019-03-18 06:52:01 -05:00
|
|
|
{
|
|
|
|
std::vector<QString> additionalResults = exportAdditionalKeywords();
|
|
|
|
std::vector<QString> allRes = exportMainKeywords();
|
|
|
|
allRes.insert(allRes.end(), additionalResults.begin(), additionalResults.end());
|
|
|
|
return allRes;
|
|
|
|
}
|
|
|
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
///
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
2019-03-29 07:37:25 -05:00
|
|
|
void RicExportEclipseSectorModelUi::defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute * attribute)
|
2019-03-18 06:52:01 -05:00
|
|
|
{
|
2019-03-21 04:35:52 -05:00
|
|
|
if (field == &exportResultsFilename || field == &exportGridFilename || field == &exportFaultsFilename)
|
2019-03-18 06:52:01 -05:00
|
|
|
{
|
|
|
|
caf::PdmUiFilePathEditorAttribute* myAttr = dynamic_cast<caf::PdmUiFilePathEditorAttribute*>(attribute);
|
|
|
|
if (myAttr)
|
|
|
|
{
|
|
|
|
myAttr->m_selectSaveFileName = true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (field == &exportMainKeywords || field == &exportAdditionalKeywords)
|
|
|
|
{
|
|
|
|
caf::PdmUiListEditorAttribute* myAttr = dynamic_cast<caf::PdmUiListEditorAttribute*>(attribute);
|
|
|
|
if (myAttr)
|
|
|
|
{
|
|
|
|
myAttr->m_heightHint = 200;
|
|
|
|
}
|
|
|
|
}
|
2019-03-21 04:35:52 -05:00
|
|
|
else if (field == &cellCountI || field == &cellCountJ || field == &cellCountK)
|
|
|
|
{
|
|
|
|
caf::PdmUiLineEditorAttribute* myAttr = dynamic_cast<caf::PdmUiLineEditorAttribute*>(attribute);
|
|
|
|
if (myAttr)
|
|
|
|
{
|
|
|
|
QIntValidator* validator = new QIntValidator(1, 10, nullptr);
|
|
|
|
myAttr->validator = validator;
|
|
|
|
}
|
|
|
|
}
|
2019-03-18 06:52:01 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
///
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
2019-03-29 07:37:25 -05:00
|
|
|
void RicExportEclipseSectorModelUi::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
|
2019-03-18 06:52:01 -05:00
|
|
|
{
|
|
|
|
caf::PdmUiGroup* gridGroup = uiOrdering.addNewGroup("Grid Export");
|
|
|
|
gridGroup->add(&exportGrid);
|
|
|
|
gridGroup->add(&exportGridFilename);
|
|
|
|
exportGridFilename.uiCapability()->setUiReadOnly(!exportGrid());
|
2019-03-29 08:26:49 -05:00
|
|
|
gridGroup->add(&makeInvisibleCellsInactive);
|
2019-03-18 06:52:01 -05:00
|
|
|
|
2019-03-28 14:42:29 -05:00
|
|
|
gridGroup->add(&exportFaults);
|
|
|
|
if (exportFaults() != EXPORT_NO_RESULTS)
|
|
|
|
{
|
|
|
|
if (exportFaults() == EXPORT_TO_SINGLE_SEPARATE_FILE)
|
|
|
|
{
|
|
|
|
gridGroup->add(&exportFaultsFilename);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2019-03-21 04:35:52 -05:00
|
|
|
caf::PdmUiGroup* resultsGroup = uiOrdering.addNewGroup("Results and Faults Export");
|
2019-03-21 05:56:19 -05:00
|
|
|
|
2019-03-18 06:52:01 -05:00
|
|
|
resultsGroup->add(&exportResults);
|
|
|
|
if (exportResults() != EXPORT_NO_RESULTS)
|
|
|
|
{
|
|
|
|
if (exportResults() == EXPORT_TO_SINGLE_SEPARATE_FILE)
|
2019-03-21 05:56:19 -05:00
|
|
|
{
|
2019-03-18 06:52:01 -05:00
|
|
|
resultsGroup->add(&exportResultsFilename);
|
2019-03-21 05:56:19 -05:00
|
|
|
}
|
2019-03-18 06:52:01 -05:00
|
|
|
}
|
2019-03-28 14:42:29 -05:00
|
|
|
|
2019-03-21 05:56:19 -05:00
|
|
|
if (exportResults() != EXPORT_NO_RESULTS)
|
|
|
|
{
|
|
|
|
resultsGroup->add(&exportMainKeywords);
|
|
|
|
resultsGroup->add(&exportAdditionalKeywords);
|
|
|
|
}
|
|
|
|
|
2019-03-19 04:49:09 -05:00
|
|
|
caf::PdmUiGroup* gridRefinement = uiOrdering.addNewGroup("Grid Refinement");
|
|
|
|
gridRefinement->add(&cellCountI, { true, 2, 1 });
|
|
|
|
gridRefinement->add(&cellCountJ, { false });
|
|
|
|
gridRefinement->add(&cellCountK, { false });
|
|
|
|
|
2019-03-18 06:52:01 -05:00
|
|
|
uiOrdering.skipRemainingFields(true);
|
|
|
|
}
|
|
|
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
///
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
2019-03-29 07:37:25 -05:00
|
|
|
void RicExportEclipseSectorModelUi::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
|
2019-03-18 06:52:01 -05:00
|
|
|
{
|
|
|
|
if (changedField == &exportGridFilename)
|
|
|
|
{
|
2019-03-21 04:35:52 -05:00
|
|
|
QFileInfo info(exportGridFilename());
|
|
|
|
QDir dirPath = info.absoluteDir();
|
|
|
|
|
2019-03-18 06:52:01 -05:00
|
|
|
if (exportResultsFilename() == defaultResultsFileName())
|
|
|
|
{
|
2019-03-21 04:35:52 -05:00
|
|
|
exportResultsFilename = dirPath.absoluteFilePath("RESULTS.GRDECL");
|
|
|
|
}
|
|
|
|
if (exportFaultsFilename() == defaultFaultsFileName())
|
|
|
|
{
|
|
|
|
exportFaultsFilename = dirPath.absoluteFilePath("FAULTS.GRDECL");
|
2019-03-18 06:52:01 -05:00
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (changedField == &exportResultsFilename)
|
|
|
|
{
|
2019-03-21 04:35:52 -05:00
|
|
|
QFileInfo info(exportResultsFilename());
|
|
|
|
QDir dirPath = info.absoluteDir();
|
|
|
|
|
|
|
|
if (exportGridFilename() == defaultGridFileName())
|
|
|
|
{
|
|
|
|
exportGridFilename = dirPath.absoluteFilePath("GRID.GRDECL");
|
|
|
|
}
|
|
|
|
if (exportFaultsFilename() == defaultFaultsFileName())
|
|
|
|
{
|
|
|
|
exportFaultsFilename = dirPath.absoluteFilePath("FAULTS.GRDECL");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (changedField == &exportFaultsFilename)
|
|
|
|
{
|
|
|
|
QFileInfo info(exportFaultsFilename());
|
|
|
|
QDir dirPath = info.absoluteDir();
|
|
|
|
|
2019-03-18 06:52:01 -05:00
|
|
|
if (exportGridFilename() == defaultGridFileName())
|
|
|
|
{
|
2019-03-21 04:35:52 -05:00
|
|
|
exportGridFilename = dirPath.absoluteFilePath("GRID.GRDECL");
|
|
|
|
}
|
|
|
|
if (exportResultsFilename() == defaultResultsFileName())
|
|
|
|
{
|
|
|
|
exportResultsFilename = dirPath.absoluteFilePath("RESULTS.GRDECL");
|
2019-03-18 06:52:01 -05:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
///
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
QList<caf::PdmOptionItemInfo>
|
2019-03-29 07:37:25 -05:00
|
|
|
RicExportEclipseSectorModelUi::calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool* useOptionsOnly)
|
2019-03-18 06:52:01 -05:00
|
|
|
{
|
|
|
|
QList<caf::PdmOptionItemInfo> options;
|
|
|
|
if (fieldNeedingOptions == &exportMainKeywords)
|
|
|
|
{
|
|
|
|
RigCaseCellResultsData* resultData = m_caseData->results(RiaDefines::MATRIX_MODEL);
|
|
|
|
QList<caf::PdmOptionItemInfo> allOptions = RimEclipseResultDefinition::calcOptionsForVariableUiFieldStandard(RiaDefines::STATIC_NATIVE, resultData);
|
|
|
|
|
|
|
|
std::set<QString> mainKeywords = this->mainKeywords();
|
|
|
|
for (caf::PdmOptionItemInfo option : allOptions)
|
|
|
|
{
|
|
|
|
if (mainKeywords.count(option.optionUiText()))
|
|
|
|
{
|
|
|
|
options.push_back(option);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (fieldNeedingOptions == &exportAdditionalKeywords)
|
|
|
|
{
|
|
|
|
RigCaseCellResultsData* resultData = m_caseData->results(RiaDefines::MATRIX_MODEL);
|
|
|
|
QList<caf::PdmOptionItemInfo> allOptions =
|
|
|
|
RimEclipseResultDefinition::calcOptionsForVariableUiFieldStandard(RiaDefines::STATIC_NATIVE, resultData);
|
|
|
|
|
|
|
|
std::set<QString> mainKeywords = this->mainKeywords();
|
|
|
|
for (caf::PdmOptionItemInfo option : allOptions)
|
|
|
|
{
|
2019-03-19 05:43:43 -05:00
|
|
|
if (!mainKeywords.count(option.optionUiText()) && option.optionUiText() != "None")
|
2019-03-18 06:52:01 -05:00
|
|
|
{
|
|
|
|
if (option.optionUiText() == "ACTNUM" && exportGrid())
|
|
|
|
{
|
|
|
|
if (exportResults() != EXPORT_TO_GRID_FILE)
|
|
|
|
options.push_back(caf::PdmOptionItemInfo("ACTNUM (included in Grid File)", "ACTNUM"));
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
options.push_back(option);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2019-03-21 05:56:19 -05:00
|
|
|
else if (fieldNeedingOptions == &exportFaults)
|
|
|
|
{
|
|
|
|
std::set<ResultExportOptions> validFaultOptions = { EXPORT_NO_RESULTS, EXPORT_TO_GRID_FILE, EXPORT_TO_SINGLE_SEPARATE_FILE };
|
|
|
|
for (ResultExportOptions option : validFaultOptions)
|
|
|
|
{
|
|
|
|
options.push_back(caf::PdmOptionItemInfo(ResultExportOptionsEnum::uiText(option), option));
|
|
|
|
}
|
|
|
|
}
|
2019-03-18 06:52:01 -05:00
|
|
|
return options;
|
|
|
|
}
|
|
|
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
///
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
2019-03-29 07:37:25 -05:00
|
|
|
std::set<QString> RicExportEclipseSectorModelUi::mainKeywords()
|
2019-03-18 06:52:01 -05:00
|
|
|
{
|
2019-03-29 09:15:15 -05:00
|
|
|
return { RiaDefines::eqlnumResultName(), "FIPNUM", "NTG", "PERMX", "PERMY", "PERMZ", "PORO", "PVTNUM", "SATNUM", "SWATINIT" };
|
2019-03-18 06:52:01 -05:00
|
|
|
}
|
|
|
|
|
2019-03-21 05:56:19 -05:00
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
///
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
2019-03-29 07:37:25 -05:00
|
|
|
QString RicExportEclipseSectorModelUi::defaultFolder() const
|
2019-03-21 05:56:19 -05:00
|
|
|
{
|
|
|
|
QString projectDirectory = RiaApplication::instance()->currentProjectPath();
|
|
|
|
QString fallbackDirectory = projectDirectory;
|
|
|
|
if (fallbackDirectory.isEmpty())
|
|
|
|
{
|
|
|
|
QString generalFallback = RiaApplication::instance()->lastUsedDialogDirectory("GENERAL_DATA");
|
|
|
|
fallbackDirectory = RiaApplication::instance()->lastUsedDialogDirectoryWithFallback("BINARY_GRID", generalFallback);
|
|
|
|
}
|
|
|
|
return RiaApplication::instance()->lastUsedDialogDirectoryWithFallback("EXPORT_INPUT_GRID", fallbackDirectory);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2019-03-18 06:52:01 -05:00
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
///
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
2019-03-29 07:37:25 -05:00
|
|
|
QString RicExportEclipseSectorModelUi::defaultGridFileName() const
|
2019-03-18 06:52:01 -05:00
|
|
|
{
|
2019-03-21 05:56:19 -05:00
|
|
|
|
|
|
|
QDir baseDir(defaultFolder());
|
2019-03-18 06:52:01 -05:00
|
|
|
return baseDir.absoluteFilePath("GRID.GRDECL");
|
|
|
|
}
|
|
|
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
///
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
2019-03-29 07:37:25 -05:00
|
|
|
QString RicExportEclipseSectorModelUi::defaultResultsFileName() const
|
2019-03-18 06:52:01 -05:00
|
|
|
{
|
2019-03-21 05:56:19 -05:00
|
|
|
QDir baseDir(defaultFolder());
|
2019-03-18 06:52:01 -05:00
|
|
|
return baseDir.absoluteFilePath("RESULTS.GRDECL");
|
|
|
|
}
|
2019-03-21 04:35:52 -05:00
|
|
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
///
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
2019-03-29 07:37:25 -05:00
|
|
|
QString RicExportEclipseSectorModelUi::defaultFaultsFileName() const
|
2019-03-21 04:35:52 -05:00
|
|
|
{
|
2019-03-21 05:56:19 -05:00
|
|
|
QDir baseDir(defaultFolder());
|
2019-03-21 04:35:52 -05:00
|
|
|
return baseDir.absoluteFilePath("FAULTS.GRDECL");
|
|
|
|
}
|