mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-09 23:16:00 -06:00
Added nodal results reading to Femreader interface
Adjusted interface Started to add control code to fire reader and visualization generation
This commit is contained in:
parent
c3ec79d6e1
commit
b94ba6ca0b
@ -717,6 +717,7 @@ bool RiaApplication::openOdbCaseFromFile(const QString& fileName)
|
||||
QString caseName = gridFileName.completeBaseName();
|
||||
|
||||
RimGeoMechCase* geoMechCase = new RimGeoMechCase();
|
||||
geoMechCase->setFileName(fileName);
|
||||
geoMechCase->caseUserDescription = caseName;
|
||||
|
||||
RimGeoMechModels* geoMechModelCollection = m_project->activeOilField() ? m_project->activeOilField()->geoMechModels() : NULL;
|
||||
|
@ -22,30 +22,14 @@
|
||||
#include "RiaApplication.h"
|
||||
#include "RiaPreferences.h"
|
||||
|
||||
#include "RigCaseCellResultsData.h"
|
||||
#include "RigCaseData.h"
|
||||
#include "RigResultAccessorFactory.h"
|
||||
|
||||
#include "RimCase.h"
|
||||
#include "RimCellEdgeResultSlot.h"
|
||||
#include "RimReservoirCellResultsStorage.h"
|
||||
#include "RimReservoirView.h"
|
||||
#include "RimResultSlot.h"
|
||||
#include "RimTernaryLegendConfig.h"
|
||||
#include "RimWellCollection.h"
|
||||
|
||||
#include "RivCellEdgeEffectGenerator.h"
|
||||
#include "RivResultToTextureMapper.h"
|
||||
#include "RivScalarMapperUtils.h"
|
||||
#include "RivSourceInfo.h"
|
||||
#include "RivTernaryScalarMapperEffectGenerator.h"
|
||||
#include "RivTernaryTextureCoordsCreator.h"
|
||||
#include "RivTextureCoordsCreator.h"
|
||||
|
||||
#include "cafEffectGenerator.h"
|
||||
#include "cafPdmFieldCvfColor.h"
|
||||
#include "cafPdmFieldCvfMat4d.h"
|
||||
#include "cafProgressInfo.h"
|
||||
|
||||
#include "cvfDrawableGeo.h"
|
||||
#include "cvfMath.h"
|
||||
|
@ -37,11 +37,12 @@ public:
|
||||
RifGeoMechReaderInterface();
|
||||
virtual ~RifGeoMechReaderInterface();
|
||||
|
||||
virtual bool open(const std::string& fileName, RigGeoMechCaseData* geoMechCase) = 0;
|
||||
virtual bool readFemParts(const std::string& fileName, RigGeoMechCaseData* geoMechCase) = 0;
|
||||
virtual void close() = 0;
|
||||
|
||||
virtual std::vector<double> timeSteps() = 0;
|
||||
|
||||
virtual std::vector<double> timeSteps() = 0;
|
||||
virtual std::vector<std::string> scalarNodeResultNames() = 0;
|
||||
virtual void readScalarNodeResult(const std::string& resultName, int partIndex, int stepIndex, std::vector<float>* resultValues ) = 0;
|
||||
|
||||
private:
|
||||
};
|
||||
|
@ -112,7 +112,7 @@ void readOdbFile(const std::string& fileName, RigGeoMechCaseData* geoMechCase)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RifOdbReader::open(const std::string& fileName, RigGeoMechCaseData* geoMechCase)
|
||||
bool RifOdbReader::readFemParts(const std::string& fileName, RigGeoMechCaseData* geoMechCase)
|
||||
{
|
||||
odb_initializeAPI();
|
||||
|
||||
|
@ -36,10 +36,12 @@ public:
|
||||
RifOdbReader();
|
||||
virtual ~RifOdbReader();
|
||||
|
||||
virtual bool open(const std::string& fileName, RigGeoMechCaseData* geoMechCase);
|
||||
virtual bool readFemParts(const std::string& fileName, RigGeoMechCaseData* geoMechCase);
|
||||
virtual void close();
|
||||
|
||||
virtual std::vector<double> timeSteps();
|
||||
virtual std::vector<std::string> scalarNodeResultNames() {return std::vector<std::string> ();};
|
||||
virtual void readScalarNodeResult(const std::string& resultName, int partIndex, int stepIndex, std::vector<float>* resultValues ) {};
|
||||
|
||||
private:
|
||||
};
|
||||
|
@ -28,7 +28,7 @@ TEST(OdbReaderTest, BasicTests)
|
||||
{
|
||||
cvf::ref<RifOdbReader> reader = new RifOdbReader;
|
||||
cvf::ref<RigGeoMechCaseData> femData = new RigGeoMechCaseData;
|
||||
reader->open("C:\\pfRoot\\jjsOnJacobpcCsdep\\User\\Sigurd\\OdbApiExperiments\\viewer_tutorial.odb", femData.p());
|
||||
reader->readFemParts("C:\\pfRoot\\jjsOnJacobpcCsdep\\User\\Sigurd\\OdbApiExperiments\\viewer_tutorial.odb", femData.p());
|
||||
|
||||
EXPECT_EQ(1, femData->partCount());
|
||||
EXPECT_EQ(149, femData->part(0)->elementCount());
|
||||
|
@ -19,6 +19,11 @@
|
||||
|
||||
#include "RimGeoMechCase.h"
|
||||
#include "RimGeoMechView.h"
|
||||
#include "RiaApplication.h"
|
||||
#include "RiaPreferences.h"
|
||||
#include "RifOdbReader.h"
|
||||
#include "RigGeomechCaseData.h"
|
||||
#include <QFile>
|
||||
|
||||
CAF_PDM_SOURCE_INIT(RimGeoMechCase, "ResInsightGeoMechCase");
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -29,8 +34,8 @@ RimGeoMechCase::RimGeoMechCase(void)
|
||||
CAF_PDM_InitObject("Geomechanical Case", ":/GeoMechCase48x48.png", "", "");
|
||||
|
||||
CAF_PDM_InitField(&caseUserDescription, "CaseUserDescription", QString(), "Case name", "", "" ,"");
|
||||
CAF_PDM_InitField(&caseFileName, "CaseFileName", QString(), "Case file name", "", "", "");
|
||||
caseFileName.setUiReadOnly(true);
|
||||
CAF_PDM_InitField(&m_caseFileName, "CaseFileName", QString(), "Case file name", "", "", "");
|
||||
m_caseFileName.setUiReadOnly(true);
|
||||
CAF_PDM_InitFieldNoDefault(&geoMechViews, "GeoMechViews", "", "", "", "");
|
||||
|
||||
}
|
||||
@ -64,3 +69,34 @@ caf::PdmFieldHandle* RimGeoMechCase::userDescriptionField()
|
||||
return &caseUserDescription;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RimGeoMechCase::openGeoMechCase()
|
||||
{
|
||||
// If read already, return
|
||||
|
||||
if (this->m_geoMechCaseData.notNull()) return true;
|
||||
|
||||
cvf::ref<RifGeoMechReaderInterface> readerInterface;
|
||||
|
||||
if (!QFile::exists(m_caseFileName()))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
RiaPreferences* prefs = RiaApplication::instance()->preferences();
|
||||
readerInterface = new RifOdbReader;
|
||||
|
||||
m_geoMechCaseData = new RigGeoMechCaseData;
|
||||
if (!readerInterface->readFemParts(m_caseFileName().toStdString(), m_geoMechCaseData.p()))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// Todo: Default Results stuff, if needed
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
|
@ -22,9 +22,10 @@
|
||||
#include "cafPdmField.h"
|
||||
#include "cafPdmObject.h"
|
||||
#include "cafPdmPointer.h"
|
||||
#include "cvfObject.h"
|
||||
|
||||
class RimGeoMechView;
|
||||
|
||||
class RigGeoMechCaseData;
|
||||
//==================================================================================================
|
||||
///
|
||||
///
|
||||
@ -36,6 +37,9 @@ class RimGeoMechCase : public caf::PdmObject
|
||||
public:
|
||||
RimGeoMechCase(void);
|
||||
virtual ~RimGeoMechCase(void);
|
||||
|
||||
void setFileName(const QString& fileName) {m_caseFileName = fileName;}
|
||||
bool openGeoMechCase();
|
||||
|
||||
RimGeoMechView* createAndAddReservoirView();
|
||||
|
||||
@ -46,5 +50,6 @@ public:
|
||||
caf::PdmPointersField<RimGeoMechView*> geoMechViews;
|
||||
|
||||
private:
|
||||
caf::PdmField<QString> caseFileName;
|
||||
cvf::ref<RigGeoMechCaseData> m_geoMechCaseData;
|
||||
caf::PdmField<QString> m_caseFileName;
|
||||
};
|
||||
|
@ -73,7 +73,7 @@ public:
|
||||
|
||||
caf::PdmField< cvf::Color3f > backgroundColor;
|
||||
protected:
|
||||
virtual caf::PdmFieldHandle* userDescriptionField();
|
||||
virtual caf::PdmFieldHandle* userDescriptionField();
|
||||
|
||||
private:
|
||||
void updateViewerWidget();
|
||||
|
Loading…
Reference in New Issue
Block a user