mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Look for fault definition in Pflotran input files
Look for fault definition in Pflotran input files If no *.DATA file is found, look for *.IN file and search for fault definitions.
This commit is contained in:
parent
681b4fbffe
commit
24fcec79ab
@ -1054,6 +1054,107 @@ QString RifEclipseInputFileTools::faultFaceText( cvf::StructGridInterface::FaceT
|
||||
return "";
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RifEclipseInputFileTools::parsePflotranInputFile( const QString& fileName, cvf::Collection<RigFault>* faults )
|
||||
{
|
||||
QStringList gridSectionFilenames;
|
||||
|
||||
RiaLogging::info( "Looking for 'Pflotran' fault definitions in " + fileName );
|
||||
|
||||
{
|
||||
// Find all referenced grdecl files in a pflotran input file, in the GRID section, example
|
||||
/*
|
||||
GRID
|
||||
TYPE grdecl ../include/ccs_3df_kh.grdecl
|
||||
TYPE grdecl ../include/ccs_3df_other.grdecl
|
||||
END
|
||||
*/
|
||||
|
||||
QFile file( fileName );
|
||||
if ( !file.open( QFile::ReadOnly ) ) return;
|
||||
|
||||
bool continueParsing = true;
|
||||
bool foundGridKeyword = false;
|
||||
bool foundEndKeyword = false;
|
||||
do
|
||||
{
|
||||
QString line;
|
||||
line = file.readLine().trimmed();
|
||||
|
||||
if ( line.startsWith( "GRID" ) ) foundGridKeyword = true;
|
||||
|
||||
if ( foundGridKeyword )
|
||||
{
|
||||
if ( line.startsWith( "TYPE" ) )
|
||||
{
|
||||
auto words = RiaTextStringTools::splitSkipEmptyParts( line, " " );
|
||||
if ( words.size() == 3 && words[1].startsWith( "grdecl", Qt::CaseInsensitive ) )
|
||||
{
|
||||
QFileInfo fi( fileName );
|
||||
QDir currentFileFolder = fi.absoluteDir();
|
||||
|
||||
QString absoluteFilePath = currentFileFolder.absoluteFilePath( words.back() );
|
||||
gridSectionFilenames.push_back( absoluteFilePath );
|
||||
}
|
||||
}
|
||||
|
||||
if ( line.startsWith( "END" ) ) foundEndKeyword = true;
|
||||
}
|
||||
|
||||
if ( foundEndKeyword || file.atEnd() )
|
||||
{
|
||||
continueParsing = false;
|
||||
}
|
||||
|
||||
} while ( continueParsing );
|
||||
}
|
||||
|
||||
// Find all grdecl files defined by the external_file keyword
|
||||
// For all these files, search for the FAULTS keyword and create fault objects
|
||||
/*
|
||||
external_file ccs_3df_kh.grdecl
|
||||
external_file ccs_3df_other.grdecl
|
||||
*/
|
||||
|
||||
for ( const auto& gridSectionFilename : gridSectionFilenames )
|
||||
{
|
||||
QFile file( gridSectionFilename );
|
||||
if ( !file.open( QFile::ReadOnly ) ) continue;
|
||||
|
||||
do
|
||||
{
|
||||
QString line;
|
||||
line = file.readLine().trimmed();
|
||||
|
||||
if ( line.startsWith( "external_file", Qt::CaseInsensitive ) )
|
||||
{
|
||||
auto words = RiaTextStringTools::splitSkipEmptyParts( line, " " );
|
||||
if ( words.size() == 2 )
|
||||
{
|
||||
QFileInfo fi( gridSectionFilename );
|
||||
QDir currentFileFolder = fi.absoluteDir();
|
||||
|
||||
QString absoluteFilePath = currentFileFolder.absoluteFilePath( words.back() );
|
||||
QFile grdeclFilename( absoluteFilePath );
|
||||
if ( !grdeclFilename.open( QFile::ReadOnly ) ) continue;
|
||||
|
||||
auto currentFaultCount = faults->size();
|
||||
|
||||
readFaults( grdeclFilename, 0, faults, nullptr );
|
||||
|
||||
if ( currentFaultCount != faults->size() )
|
||||
{
|
||||
RiaLogging::info( "Imported faults from " + absoluteFilePath );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} while ( !file.atEnd() );
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -126,6 +126,8 @@ public:
|
||||
|
||||
static bool hasGridData( const QString& fileName );
|
||||
|
||||
static void parsePflotranInputFile( const QString& fileName, cvf::Collection<RigFault>* faults );
|
||||
|
||||
private:
|
||||
static void readFaults( QFile& data, qint64 filePos, cvf::Collection<RigFault>* faults, bool* isEditKeywordDetected );
|
||||
|
||||
|
@ -19,6 +19,7 @@
|
||||
|
||||
#include "RifReaderInterface.h"
|
||||
|
||||
#include "RiaLogging.h"
|
||||
#include "RiaPreferencesGrid.h"
|
||||
|
||||
#include "RifEclipseInputFileTools.h"
|
||||
@ -159,12 +160,16 @@ void RifReaderInterface::importFaults( const QStringList& fileSet, cvf::Collecti
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach ( QString fname, fileSet )
|
||||
bool isDataFileFound = false;
|
||||
|
||||
for ( const auto& filename : fileSet )
|
||||
{
|
||||
if ( fname.endsWith( ".DATA" ) )
|
||||
if ( filename.endsWith( ".DATA" ) )
|
||||
{
|
||||
isDataFileFound = true;
|
||||
|
||||
std::vector<QString> filenamesWithFaults;
|
||||
RifEclipseInputFileTools::readFaultsInGridSection( fname, faults, &filenamesWithFaults, faultIncludeFileAbsolutePathPrefix() );
|
||||
RifEclipseInputFileTools::readFaultsInGridSection( filename, faults, &filenamesWithFaults, faultIncludeFileAbsolutePathPrefix() );
|
||||
|
||||
std::sort( filenamesWithFaults.begin(), filenamesWithFaults.end() );
|
||||
std::vector<QString>::iterator last = std::unique( filenamesWithFaults.begin(), filenamesWithFaults.end() );
|
||||
@ -173,5 +178,18 @@ void RifReaderInterface::importFaults( const QStringList& fileSet, cvf::Collecti
|
||||
setFilenamesWithFaults( filenamesWithFaults );
|
||||
}
|
||||
}
|
||||
|
||||
if ( !isDataFileFound )
|
||||
{
|
||||
RiaLogging::info( "No *.DATA file is found" );
|
||||
|
||||
for ( const auto& filename : fileSet )
|
||||
{
|
||||
if ( filename.endsWith( ".IN", Qt::CaseInsensitive ) )
|
||||
{
|
||||
RifEclipseInputFileTools::parsePflotranInputFile( filename, faults );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -251,6 +251,24 @@ TEST( RifEclipseInputFileToolsTest, FaultData )
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
TEST( RifEclipseInputFileToolsTest, FaultDataPflotran )
|
||||
{
|
||||
static const QString testDataRootFolder = QString( "%1/RifEclipseInputFileTools/pflotran" ).arg( TEST_DATA_DIR );
|
||||
|
||||
{
|
||||
QString fileName = testDataRootFolder + "/model/P_FLT_TEST_NO-KH.in";
|
||||
|
||||
cvf::Collection<RigFault> faults;
|
||||
|
||||
RifEclipseInputFileTools::parsePflotranInputFile( fileName, &faults );
|
||||
|
||||
EXPECT_EQ( (size_t)4, faults.size() );
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -0,0 +1,287 @@
|
||||
NOECHO
|
||||
|
||||
|
||||
SPECGRID
|
||||
30 30 12 F /
|
||||
|
||||
|
||||
FAULTS
|
||||
-- NAME IX1 IX2 IY1 IY2 IZ1 IZ2 FACE
|
||||
|
||||
'F_TEST1' 8 8 1 1 1 12 J /
|
||||
'F_TEST1' 8 8 1 1 1 12 I- /
|
||||
'F_TEST1' 9 9 2 2 1 12 J /
|
||||
'F_TEST1' 9 9 2 2 1 12 I- /
|
||||
'F_TEST1' 10 10 3 3 1 12 J /
|
||||
'F_TEST1' 10 10 3 3 1 12 I- /
|
||||
|
||||
'F_TEST2' 2 2 1 1 1 12 J /
|
||||
'F_TEST2' 2 2 1 1 1 12 I- /
|
||||
'F_TEST2' 3 3 2 2 1 12 J /
|
||||
'F_TEST2' 3 3 2 2 1 12 I- /
|
||||
'F_TEST2' 4 4 3 3 1 12 J /
|
||||
'F_TEST2' 4 4 3 3 1 12 I- /
|
||||
|
||||
'F_ORIG1' 1 1 21 21 1 5 I /
|
||||
'F_ORIG1' 1 1 21 21 8 8 I /
|
||||
'F_ORIG1' 1 1 21 21 11 12 I /
|
||||
'F_ORIG1' 1 1 21 21 1 6 J /
|
||||
'F_ORIG1' 1 1 21 21 8 9 J /
|
||||
'F_ORIG1' 1 1 21 21 11 12 J /
|
||||
'F_ORIG1' 2 2 20 20 1 2 I /
|
||||
'F_ORIG1' 2 2 20 20 5 5 I /
|
||||
'F_ORIG1' 2 2 20 20 7 12 I /
|
||||
'F_ORIG1' 2 2 20 20 1 3 J /
|
||||
'F_ORIG1' 2 2 20 20 5 5 J /
|
||||
'F_ORIG1' 2 2 20 20 8 8 J /
|
||||
'F_ORIG1' 2 2 20 20 11 12 J /
|
||||
'F_ORIG1' 3 3 19 19 1 2 I /
|
||||
'F_ORIG1' 3 3 19 19 5 7 I /
|
||||
'F_ORIG1' 3 3 19 19 10 12 I /
|
||||
'F_ORIG1' 3 3 19 19 1 2 J /
|
||||
'F_ORIG1' 3 3 19 19 5 8 J /
|
||||
'F_ORIG1' 3 3 19 19 10 12 J /
|
||||
'F_ORIG1' 4 4 18 18 1 2 I /
|
||||
'F_ORIG1' 4 4 18 18 5 5 I /
|
||||
'F_ORIG1' 4 4 18 18 7 10 I /
|
||||
'F_ORIG1' 4 4 18 18 12 12 I /
|
||||
'F_ORIG1' 4 4 18 18 1 2 J /
|
||||
'F_ORIG1' 4 4 18 18 4 5 J /
|
||||
'F_ORIG1' 4 4 18 18 7 7 J /
|
||||
'F_ORIG1' 4 4 18 18 9 10 J /
|
||||
'F_ORIG1' 4 4 18 18 12 12 J /
|
||||
'F_ORIG1' 5 5 17 17 2 2 I /
|
||||
'F_ORIG1' 5 5 17 17 4 4 I /
|
||||
'F_ORIG1' 5 5 17 17 6 10 I /
|
||||
'F_ORIG1' 5 5 17 17 12 12 I /
|
||||
'F_ORIG1' 5 5 17 17 1 2 J /
|
||||
'F_ORIG1' 5 5 17 17 5 10 J /
|
||||
'F_ORIG1' 5 5 17 17 12 12 J /
|
||||
'F_ORIG1' 6 6 16 16 1 10 I /
|
||||
'F_ORIG1' 6 6 16 16 2 2 J /
|
||||
'F_ORIG1' 6 6 16 16 4 4 J /
|
||||
'F_ORIG1' 6 6 16 16 6 10 J /
|
||||
'F_ORIG1' 7 7 15 15 3 3 I /
|
||||
'F_ORIG1' 7 7 15 15 6 11 I /
|
||||
'F_ORIG1' 7 7 15 15 3 4 J /
|
||||
'F_ORIG1' 7 7 15 15 6 12 J /
|
||||
'F_ORIG1' 8 8 14 14 1 1 I /
|
||||
'F_ORIG1' 8 8 14 14 3 9 I /
|
||||
'F_ORIG1' 8 8 14 14 11 12 I /
|
||||
'F_ORIG1' 8 8 14 14 1 1 J /
|
||||
'F_ORIG1' 8 8 14 14 3 3 J /
|
||||
'F_ORIG1' 8 8 14 14 6 11 J /
|
||||
'F_ORIG1' 9 9 13 13 1 1 I /
|
||||
'F_ORIG1' 9 9 13 13 3 12 I /
|
||||
'F_ORIG1' 9 9 13 13 1 1 J /
|
||||
'F_ORIG1' 9 9 13 13 3 9 J /
|
||||
'F_ORIG1' 9 9 13 13 11 12 J /
|
||||
'F_ORIG1' 10 10 12 12 1 1 I /
|
||||
'F_ORIG1' 10 10 12 12 4 6 I /
|
||||
'F_ORIG1' 10 10 12 12 8 8 I /
|
||||
'F_ORIG1' 10 10 12 12 10 11 I /
|
||||
'F_ORIG1' 10 10 12 12 1 1 J /
|
||||
'F_ORIG1' 10 10 12 12 4 8 J /
|
||||
'F_ORIG1' 10 10 12 12 10 11 J /
|
||||
'F_ORIG1' 11 11 11 11 2 6 I /
|
||||
'F_ORIG1' 11 11 11 11 8 8 I /
|
||||
'F_ORIG1' 11 11 11 11 3 6 J /
|
||||
'F_ORIG1' 11 11 11 11 8 8 J /
|
||||
'F_ORIG1' 11 11 11 11 11 11 J /
|
||||
'F_ORIG1' 12 12 10 10 1 1 I /
|
||||
'F_ORIG1' 12 12 10 10 3 6 I /
|
||||
'F_ORIG1' 12 12 10 10 8 11 I /
|
||||
'F_ORIG1' 12 12 10 10 1 6 J /
|
||||
'F_ORIG1' 12 12 10 10 8 10 J /
|
||||
'F_ORIG1' 13 13 9 9 3 3 I /
|
||||
'F_ORIG1' 13 13 9 9 5 10 I /
|
||||
'F_ORIG1' 13 13 9 9 12 12 I /
|
||||
'F_ORIG1' 13 13 9 9 1 1 J /
|
||||
'F_ORIG1' 13 13 9 9 3 3 J /
|
||||
'F_ORIG1' 13 13 9 9 5 12 J /
|
||||
'F_ORIG1' 14 14 8 8 3 3 I /
|
||||
'F_ORIG1' 14 14 8 8 7 7 I /
|
||||
'F_ORIG1' 14 14 8 8 9 12 I /
|
||||
'F_ORIG1' 14 14 8 8 3 3 J /
|
||||
'F_ORIG1' 14 14 8 8 7 10 J /
|
||||
'F_ORIG1' 14 14 8 8 12 12 J /
|
||||
'F_ORIG1' 15 15 7 7 3 4 I /
|
||||
'F_ORIG1' 15 15 7 7 6 12 I /
|
||||
'F_ORIG1' 15 15 7 7 2 4 J /
|
||||
'F_ORIG1' 15 15 7 7 6 7 J /
|
||||
'F_ORIG1' 15 15 7 7 9 12 J /
|
||||
'F_ORIG1' 16 16 6 6 1 4 I /
|
||||
'F_ORIG1' 16 16 6 6 6 7 I /
|
||||
'F_ORIG1' 16 16 6 6 9 12 I /
|
||||
'F_ORIG1' 16 16 6 6 1 1 J /
|
||||
'F_ORIG1' 16 16 6 6 3 4 J /
|
||||
'F_ORIG1' 16 16 6 6 6 12 J /
|
||||
'F_ORIG1' 17 17 5 5 1 2 J /
|
||||
'F_ORIG1' 17 17 5 5 4 4 J /
|
||||
'F_ORIG1' 17 17 5 5 6 7 J /
|
||||
'F_ORIG1' 17 17 5 5 9 9 J /
|
||||
'F_ORIG1' 17 17 5 5 11 12 J /
|
||||
'F_ORIG1' 18 18 4 4 1 2 I /
|
||||
'F_ORIG1' 18 18 4 4 4 7 I /
|
||||
'F_ORIG1' 18 18 4 4 11 11 I /
|
||||
'F_ORIG1' 18 18 4 4 1 2 J /
|
||||
'F_ORIG1' 18 18 4 4 4 5 J /
|
||||
'F_ORIG1' 18 18 4 4 7 8 J /
|
||||
'F_ORIG1' 18 18 4 4 10 11 J /
|
||||
'F_ORIG1' 19 19 3 3 3 5 I /
|
||||
'F_ORIG1' 19 19 3 3 7 9 I /
|
||||
'F_ORIG1' 19 19 3 3 11 12 I /
|
||||
'F_ORIG1' 19 19 3 3 2 2 J /
|
||||
'F_ORIG1' 19 19 3 3 4 7 J /
|
||||
'F_ORIG1' 19 19 3 3 11 11 J /
|
||||
'F_ORIG1' 20 20 2 2 2 3 I /
|
||||
'F_ORIG1' 20 20 2 2 5 10 I /
|
||||
'F_ORIG1' 20 20 2 2 12 12 I /
|
||||
'F_ORIG1' 20 20 2 2 3 3 J /
|
||||
'F_ORIG1' 20 20 2 2 5 5 J /
|
||||
'F_ORIG1' 20 20 2 2 7 12 J /
|
||||
'F_ORIG1' 21 21 1 1 1 5 I /
|
||||
'F_ORIG1' 21 21 1 1 8 11 I /
|
||||
'F_ORIG1' 21 21 1 1 1 5 J /
|
||||
'F_ORIG1' 21 21 1 1 7 10 J /
|
||||
'F_ORIG1' 21 21 1 1 12 12 J /
|
||||
|
||||
'F_ORIG2' 15 15 1 1 1 3 I /
|
||||
'F_ORIG2' 15 15 1 1 5 6 I /
|
||||
'F_ORIG2' 15 15 1 1 8 9 I /
|
||||
'F_ORIG2' 15 15 1 1 11 11 I /
|
||||
'F_ORIG2' 16 16 1 1 1 3 J /
|
||||
'F_ORIG2' 16 16 1 1 5 8 J /
|
||||
'F_ORIG2' 16 16 1 1 10 11 J /
|
||||
'F_ORIG2' 16 16 2 2 1 3 I /
|
||||
'F_ORIG2' 16 16 2 2 5 5 I /
|
||||
'F_ORIG2' 16 16 2 2 7 8 I /
|
||||
'F_ORIG2' 16 16 2 2 10 12 I /
|
||||
'F_ORIG2' 16 16 3 3 1 3 I /
|
||||
'F_ORIG2' 16 16 3 3 6 7 I /
|
||||
'F_ORIG2' 16 16 3 3 10 10 I /
|
||||
'F_ORIG2' 16 16 3 3 12 12 I /
|
||||
'F_ORIG2' 17 17 3 3 2 2 J /
|
||||
'F_ORIG2' 17 17 3 3 4 4 J /
|
||||
'F_ORIG2' 17 17 3 3 7 8 J /
|
||||
'F_ORIG2' 17 17 3 3 10 10 J /
|
||||
'F_ORIG2' 17 17 3 3 12 12 J /
|
||||
'F_ORIG2' 17 17 4 4 2 2 I /
|
||||
'F_ORIG2' 17 17 4 4 4 5 I /
|
||||
'F_ORIG2' 17 17 4 4 7 8 I /
|
||||
'F_ORIG2' 17 17 4 4 10 10 I /
|
||||
'F_ORIG2' 17 17 4 4 12 12 I /
|
||||
'F_ORIG2' 17 17 5 5 1 2 I /
|
||||
'F_ORIG2' 17 17 5 5 4 5 I /
|
||||
'F_ORIG2' 17 17 5 5 7 7 I /
|
||||
'F_ORIG2' 17 17 5 5 11 11 I /
|
||||
'F_ORIG2' 18 18 5 5 1 2 J /
|
||||
'F_ORIG2' 18 18 5 5 5 5 J /
|
||||
'F_ORIG2' 18 18 5 5 7 8 J /
|
||||
'F_ORIG2' 18 18 5 5 10 10 J /
|
||||
'F_ORIG2' 18 18 6 6 1 3 I /
|
||||
'F_ORIG2' 18 18 6 6 7 10 I /
|
||||
'F_ORIG2' 18 18 7 7 1 2 I /
|
||||
'F_ORIG2' 18 18 7 7 4 5 I /
|
||||
'F_ORIG2' 18 18 7 7 9 12 I /
|
||||
'F_ORIG2' 19 19 7 7 1 2 J /
|
||||
'F_ORIG2' 19 19 7 7 4 6 J /
|
||||
'F_ORIG2' 19 19 7 7 10 12 J /
|
||||
'F_ORIG2' 19 19 8 8 1 5 I /
|
||||
'F_ORIG2' 19 19 8 8 8 8 I /
|
||||
'F_ORIG2' 19 19 8 8 10 11 I /
|
||||
'F_ORIG2' 19 19 9 9 2 2 I /
|
||||
'F_ORIG2' 19 19 9 9 4 12 I /
|
||||
'F_ORIG2' 20 20 9 9 1 2 J /
|
||||
'F_ORIG2' 20 20 9 9 4 12 J /
|
||||
'F_ORIG2' 20 20 10 10 1 4 I /
|
||||
'F_ORIG2' 20 20 10 10 6 9 I /
|
||||
'F_ORIG2' 20 20 10 10 11 12 I /
|
||||
'F_ORIG2' 20 20 11 11 1 6 I /
|
||||
'F_ORIG2' 20 20 11 11 8 8 I /
|
||||
'F_ORIG2' 20 20 11 11 10 11 I /
|
||||
'F_ORIG2' 21 21 11 11 1 3 J /
|
||||
'F_ORIG2' 21 21 11 11 5 6 J /
|
||||
'F_ORIG2' 21 21 11 11 11 11 J /
|
||||
'F_ORIG2' 21 21 12 12 1 1 I /
|
||||
'F_ORIG2' 21 21 12 12 3 3 I /
|
||||
'F_ORIG2' 21 21 12 12 6 6 I /
|
||||
'F_ORIG2' 21 21 12 12 11 12 I /
|
||||
'F_ORIG2' 21 21 13 13 3 3 I /
|
||||
'F_ORIG2' 21 21 13 13 6 12 I /
|
||||
'F_ORIG2' 22 22 13 13 3 3 J /
|
||||
'F_ORIG2' 22 22 13 13 7 7 J /
|
||||
'F_ORIG2' 22 22 13 13 10 12 J /
|
||||
'F_ORIG2' 22 22 14 14 2 2 I /
|
||||
'F_ORIG2' 22 22 14 14 4 4 I /
|
||||
'F_ORIG2' 22 22 14 14 7 7 I /
|
||||
'F_ORIG2' 22 22 14 14 10 12 I /
|
||||
'F_ORIG2' 22 22 15 15 1 3 I /
|
||||
'F_ORIG2' 22 22 15 15 6 7 I /
|
||||
'F_ORIG2' 22 22 15 15 9 11 I /
|
||||
'F_ORIG2' 23 23 15 15 2 3 J /
|
||||
'F_ORIG2' 23 23 15 15 6 7 J /
|
||||
'F_ORIG2' 23 23 15 15 9 11 J /
|
||||
'F_ORIG2' 23 23 16 16 2 7 I /
|
||||
'F_ORIG2' 23 23 16 16 10 12 I /
|
||||
'F_ORIG2' 23 23 17 17 1 7 I /
|
||||
'F_ORIG2' 23 23 17 17 10 12 I /
|
||||
'F_ORIG2' 24 24 17 17 1 7 J /
|
||||
'F_ORIG2' 24 24 17 17 10 12 J /
|
||||
'F_ORIG2' 24 24 18 18 1 2 I /
|
||||
'F_ORIG2' 24 24 18 18 6 8 I /
|
||||
'F_ORIG2' 24 24 18 18 10 10 I /
|
||||
'F_ORIG2' 24 24 18 18 12 12 I /
|
||||
'F_ORIG2' 24 24 19 19 1 2 I /
|
||||
'F_ORIG2' 24 24 19 19 5 6 I /
|
||||
'F_ORIG2' 24 24 19 19 8 8 I /
|
||||
'F_ORIG2' 24 24 19 19 10 12 I /
|
||||
'F_ORIG2' 25 25 19 19 1 1 J /
|
||||
'F_ORIG2' 25 25 19 19 4 6 J /
|
||||
'F_ORIG2' 25 25 19 19 8 8 J /
|
||||
'F_ORIG2' 25 25 19 19 10 11 J /
|
||||
'F_ORIG2' 25 25 20 20 1 1 I /
|
||||
'F_ORIG2' 25 25 20 20 4 4 I /
|
||||
'F_ORIG2' 25 25 20 20 6 8 I /
|
||||
'F_ORIG2' 25 25 20 20 10 11 I /
|
||||
'F_ORIG2' 25 25 21 21 1 1 I /
|
||||
'F_ORIG2' 25 25 21 21 6 11 I /
|
||||
'F_ORIG2' 26 26 21 21 1 1 J /
|
||||
'F_ORIG2' 26 26 21 21 4 4 J /
|
||||
'F_ORIG2' 26 26 21 21 6 11 J /
|
||||
'F_ORIG2' 26 26 22 22 1 1 I /
|
||||
'F_ORIG2' 26 26 22 22 3 4 I /
|
||||
'F_ORIG2' 26 26 22 22 6 10 I /
|
||||
'F_ORIG2' 26 26 23 23 1 8 I /
|
||||
'F_ORIG2' 26 26 23 23 10 10 I /
|
||||
'F_ORIG2' 26 26 23 23 12 12 I /
|
||||
'F_ORIG2' 27 27 23 23 1 10 J /
|
||||
'F_ORIG2' 27 27 23 23 12 12 J /
|
||||
'F_ORIG2' 27 27 24 24 1 2 I /
|
||||
'F_ORIG2' 27 27 24 24 5 9 I /
|
||||
'F_ORIG2' 27 27 24 24 12 12 I /
|
||||
'F_ORIG2' 27 27 25 25 3 3 I /
|
||||
'F_ORIG2' 27 27 25 25 6 6 I /
|
||||
'F_ORIG2' 27 27 25 25 10 10 I /
|
||||
'F_ORIG2' 27 27 25 25 12 12 I /
|
||||
'F_ORIG2' 28 28 25 25 3 3 J /
|
||||
'F_ORIG2' 28 28 25 25 6 7 J /
|
||||
'F_ORIG2' 28 28 25 25 9 12 J /
|
||||
'F_ORIG2' 28 28 26 26 2 2 I /
|
||||
'F_ORIG2' 28 28 26 26 4 4 I /
|
||||
'F_ORIG2' 28 28 26 26 6 11 I /
|
||||
'F_ORIG2' 28 28 27 27 1 1 I /
|
||||
'F_ORIG2' 28 28 27 27 4 6 I /
|
||||
'F_ORIG2' 28 28 27 27 9 12 I /
|
||||
'F_ORIG2' 29 29 27 27 2 2 J /
|
||||
'F_ORIG2' 29 29 27 27 4 6 J /
|
||||
'F_ORIG2' 29 29 27 27 9 12 J /
|
||||
'F_ORIG2' 29 29 28 28 2 5 I /
|
||||
'F_ORIG2' 29 29 28 28 8 11 I /
|
||||
'F_ORIG2' 29 29 29 29 1 3 I /
|
||||
'F_ORIG2' 29 29 29 29 5 5 I /
|
||||
'F_ORIG2' 29 29 29 29 7 9 I /
|
||||
'F_ORIG2' 30 30 29 29 2 3 J /
|
||||
'F_ORIG2' 30 30 29 29 7 10 J /
|
||||
/
|
||||
ECHO
|
@ -0,0 +1,27 @@
|
||||
DIMENS
|
||||
30 30 12 /
|
||||
|
||||
external_file ccs_3df_geom_kh.grdecl
|
||||
|
||||
external_file ccs_3df_prop.grdecl
|
||||
|
||||
external_file Faults_test_KH.grdecl
|
||||
|
||||
external_file multflt_test_KH.grdecl
|
||||
|
||||
EQUALS
|
||||
ACTNUM 0 7 7 15 15 1 1
|
||||
ACTNUM 0 30 30 29 29 12 12
|
||||
/
|
||||
|
||||
|
||||
EQUALS
|
||||
FIPNUM 1 1 30 1 30 1 2 / overburden
|
||||
FIPNUM 2 1 30 1 30 1 6 /
|
||||
FIPNUM 3 1 30 1 30 1 4 /
|
||||
/
|
||||
|
||||
EQUALS
|
||||
SATNUM 1 /
|
||||
IMBNUM 2 /
|
||||
/
|
@ -0,0 +1,24 @@
|
||||
|
||||
SIMULATION
|
||||
SIMULATION_TYPE SUBSURFACE
|
||||
PROCESS_MODELS
|
||||
SUBSURFACE_FLOW Flow
|
||||
MODE GAS_WATER
|
||||
OPTIONS
|
||||
RESERVOIR_DEFAULTS
|
||||
ISOTHERMAL
|
||||
HYSTERESIS
|
||||
STRAND
|
||||
/
|
||||
/ ! end of subsurface_flow
|
||||
/
|
||||
END !! end simulation block
|
||||
|
||||
SUBSURFACE
|
||||
|
||||
#=========================== discretization ===================================
|
||||
|
||||
GRID
|
||||
TYPE grdecl ../include/ccs_3df_kh.grdecl
|
||||
END
|
||||
|
Loading…
Reference in New Issue
Block a user