예제 #1
0
//--------------------------------------------------------------------------------------------------
/// 
//--------------------------------------------------------------------------------------------------
bool RIApplication::openEclipseCase(const QString& caseName, const QString& caseFileName)
{
    QFileInfo gridFileName(caseFileName);
    QString casePath = gridFileName.absolutePath();

    RimResultReservoir* rimResultReservoir = new RimResultReservoir();
    rimResultReservoir->caseName = caseName;
    rimResultReservoir->caseFileName = caseFileName;
    rimResultReservoir->caseDirectory = casePath;

    m_project->reservoirs.push_back(rimResultReservoir);

    RimReservoirView* riv = rimResultReservoir->createAndAddReservoirView();

    if (m_preferences->autocomputeSOIL)
    {
        // Select SOIL as default result variable
        riv->cellResult()->resultType = RimDefines::DYNAMIC_NATIVE;
        riv->cellResult()->resultVariable = "SOIL";
        riv->animationMode = true;
    }

    riv->loadDataAndUpdate();

    if (!riv->cellResult()->hasResult())
    {
        riv->cellResult()->resultVariable = RimDefines::undefinedResultName();
    }

    onProjectOpenedOrClosed();

    return true;
}
예제 #2
0
//--------------------------------------------------------------------------------------------------
/// 
//--------------------------------------------------------------------------------------------------
bool RIApplication::openEclipseCaseFromFile(const QString& fileName)
{
    if (!QFile::exists(fileName)) return false;

    QFileInfo gridFileName(fileName);
    QString caseName = gridFileName.completeBaseName();

    return openEclipseCase(caseName, fileName);
}
예제 #3
0
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimEclipseInputCaseOpm::importNewEclipseGridAndProperties(const QString& fileName)
{
    m_gridFileName = fileName;

    QFileInfo gridFileName(m_gridFileName);
    QString caseName = gridFileName.completeBaseName();
    this->caseUserDescription = caseName + " (opm-parser)";

    importEclipseGridAndProperties(m_gridFileName);
}
예제 #4
0
//--------------------------------------------------------------------------------------------------
/// Open the supplied file set. If no grid data has been read, it will first find the possible 
/// grid data among the files then read all supported properties from the files matching the grid
//--------------------------------------------------------------------------------------------------
void RimEclipseInputCase::openDataFileSet(const QStringList& fileNames)
{
    if (fileNames.contains(RimDefines::mockModelBasicInputCase()))
    {
        cvf::ref<RifReaderInterface> readerInterface = this->createMockModel(fileNames[0]);
        results(RifReaderInterface::MATRIX_RESULTS)->setReaderInterface(readerInterface.p());
        results(RifReaderInterface::FRACTURE_RESULTS)->setReaderInterface(readerInterface.p());

        reservoirData()->activeCellInfo(RifReaderInterface::MATRIX_RESULTS)->computeDerivedData();
        reservoirData()->activeCellInfo(RifReaderInterface::FRACTURE_RESULTS)->computeDerivedData();
        
        QFileInfo gridFileName(fileNames[0]);
        QString caseName = gridFileName.completeBaseName();
        this->caseUserDescription = caseName;
        
        computeCachedData();

        return;
    }

    if (this->reservoirData() == NULL) 
    {
        this->setReservoirData(new RigCaseData);
    }

    // First find and read the grid data 
    if (this->reservoirData()->mainGrid()->gridPointDimensions() == cvf::Vec3st(0,0,0))
    {
        RiaPreferences* prefs = RiaApplication::instance()->preferences();

         for (int i = 0; i < fileNames.size(); i++)
         {
             if (RifEclipseInputFileTools::openGridFile(fileNames[i], this->reservoirData(), prefs->readerSettings->importFaults()))
             {
                 m_gridFileName = fileNames[i];

                 QFileInfo gridFileName(fileNames[i]);
                 QString caseName = gridFileName.completeBaseName();

                 this->caseUserDescription = caseName;

                 this->reservoirData()->mainGrid()->setFlipAxis(flipXAxis, flipYAxis);

                 computeCachedData();

                 break;
             }
         }
    }

    if (this->reservoirData()->mainGrid()->gridPointDimensions() == cvf::Vec3st(0,0,0))
    {
        return ; // No grid present
    }

    // Then read the properties possibly in the grid file
    QStringList filesToRead;
    for (int i = 0; i < fileNames.size(); i++)
    {
        size_t j;
        bool exist = false;
        for (j = 0; j < m_additionalFileNames().size(); j++)
        {
            if (m_additionalFileNames()[j] == fileNames[i])
            {
                exist = true;
            }
        }

        if (!exist)
        {
            filesToRead.push_back(fileNames[i]);
        }
    }

    for (int i = 0; i < filesToRead.size(); i++)
    {
        QString propertyFileName = filesToRead[i];
        std::map<QString, QString> readProperties = RifEclipseInputFileTools::readProperties(propertyFileName, this->reservoirData());

        std::map<QString, QString>::iterator it;
        for (it = readProperties.begin(); it != readProperties.end(); ++it)
        {
            RimEclipseInputProperty* inputProperty = new RimEclipseInputProperty;
            inputProperty->resultName = it->first;
            inputProperty->eclipseKeyword = it->second;
            inputProperty->fileName = propertyFileName;
            inputProperty->resolvedState = RimEclipseInputProperty::RESOLVED;
            m_inputPropertyCollection->inputProperties.push_back(inputProperty);
        }

        if (propertyFileName != m_gridFileName)
        {
            m_additionalFileNames.v().push_back(propertyFileName);
        }
    }
}
 leptonAcceptancesForOneScolored*
 leptonAcceptancesForOneBeamEnergy::getParameterSets(
                                      particlePointer const coloredSparticle )
 // this returns the leptonAcceptancesForOneScolored for the requested
 // colored sparticle.
 {
   leptonAcceptancesForOneScolored* returnPointer( NULL );
   // we look to see if we already have a leptonAcceptancesForOneScolored for
   // this colored sparticle:
   if( inputShortcut->getGluino() == coloredSparticle )
   {
     if( NULL == gluinoAcceptanceSet )
     {
       std::string gridFileName( gridFileLocation );
       gridFileName.append( "/gluino+gluino_acceptance.dat" );
       acceptanceFromGluinoGrid
       = new leptonAcceptanceFromGluinoGrid( &gridFileName,
                                             inputShortcut );
       gluinoAcceptanceSet
       = new leptonAcceptancesForOneScolored( inputShortcut,
                                              coloredSparticle,
                                              acceptanceFromGluinoGrid,
                                              binSize,
                                              transverseMomentumCut );
     }
     returnPointer = gluinoAcceptanceSet;
   }
   else
   {
     for( std::vector< leptonAcceptancesForOneScolored* >::iterator
          searchIterator( squarkAcceptanceSets.begin() );
          squarkAcceptanceSets.end() > searchIterator;
          ++searchIterator )
     {
       if( coloredSparticle == (*searchIterator)->getScolored() )
       {
         returnPointer = *searchIterator;
         searchIterator = squarkAcceptanceSets.end();
       }
     }
     if( NULL == returnPointer )
       // if we do not already have a leptonAcceptanceParameterSet for this
       // squark, we make a new instance:
     {
       if( NULL == acceptanceFromSquarkGrid )
       {
         std::string gridFileName( gridFileLocation );
         gridFileName.append( "/squark+antisquark_acceptance.dat" );
         acceptanceFromSquarkGrid
         = new leptonAcceptanceFromSquarkGrid( &gridFileName,
                                               inputShortcut );
       }
       returnPointer = new leptonAcceptancesForOneScolored( inputShortcut,
                                                            coloredSparticle,
                                                     acceptanceFromSquarkGrid,
                                                            binSize,
                                                      transverseMomentumCut );
       squarkAcceptanceSets.push_back( returnPointer );
     }
   }
   return returnPointer;
 }