diff --git a/ApplicationLibCode/ProjectDataModel/CompletionData/RimCompletionData.cpp b/ApplicationLibCode/ProjectDataModel/CompletionData/RimCompletionData.cpp index ff02e69ba0..1db4f7d130 100644 --- a/ApplicationLibCode/ProjectDataModel/CompletionData/RimCompletionData.cpp +++ b/ApplicationLibCode/ProjectDataModel/CompletionData/RimCompletionData.cpp @@ -35,6 +35,7 @@ RimCompletionData::RimCompletionData() { CAF_PDM_InitScriptableObject( "CompletionData", ":/Well.png" ); + CAF_PDM_InitScriptableFieldNoDefault( &m_wellName, "WellName", "Name of well" ); CAF_PDM_InitScriptableFieldNoDefault( &m_welspecs, "Welspecs", "Welspecs Data" ); CAF_PDM_InitScriptableFieldNoDefault( &m_compdat, "Compdat", "Compdat Data" ); } diff --git a/ApplicationLibCode/ProjectDataModel/CompletionData/RimCompletionData.h b/ApplicationLibCode/ProjectDataModel/CompletionData/RimCompletionData.h index 9387c8ccf4..3c731385aa 100644 --- a/ApplicationLibCode/ProjectDataModel/CompletionData/RimCompletionData.h +++ b/ApplicationLibCode/ProjectDataModel/CompletionData/RimCompletionData.h @@ -18,9 +18,12 @@ #pragma once +#include "cafPdmChildArrayField.h" #include "cafPdmField.h" #include "cafPdmObject.h" +#include + class RimWelspecsData; class RimCompdatData; class RigCompletionData; @@ -37,9 +40,12 @@ public: RimCompletionData(); ~RimCompletionData() override; + void setName( const QString& name ) { m_wellName.setValue( name ); } + void addCompletionData( RigCompletionData* completionData ); private: + caf::PdmField m_wellName; caf::PdmChildArrayField m_welspecs; caf::PdmChildArrayField m_compdat; }; diff --git a/ApplicationLibCode/ProjectDataModel/WellPath/RimModeledWellPath.cpp b/ApplicationLibCode/ProjectDataModel/WellPath/RimModeledWellPath.cpp index b27e6573bc..c94f9a51a7 100644 --- a/ApplicationLibCode/ProjectDataModel/WellPath/RimModeledWellPath.cpp +++ b/ApplicationLibCode/ProjectDataModel/WellPath/RimModeledWellPath.cpp @@ -296,6 +296,7 @@ void RimModeledWellPath::updateReferencePoint() RimCompletionData* RimModeledWellPath::completionData( RimEclipseCase* eCase ) { auto retData = new RimCompletionData(); + retData->setName( QString( "%1 - %2" ).arg( name(), eCase->caseUserDescription() ) ); auto compdata = RicWellPathExportCompletionDataFeatureImpl::completionDataForWellPath( this, eCase ); diff --git a/ApplicationLibCode/ProjectDataModel/WellPath/RimModeledWellPath.h b/ApplicationLibCode/ProjectDataModel/WellPath/RimModeledWellPath.h index 2d91a51ce3..d2de463d0b 100644 --- a/ApplicationLibCode/ProjectDataModel/WellPath/RimModeledWellPath.h +++ b/ApplicationLibCode/ProjectDataModel/WellPath/RimModeledWellPath.h @@ -26,7 +26,7 @@ class RimWellPathTarget; class RimWellPath; class RimWellPathGeometryDef; class RimCompletionData; -class RimeclipseCase; +class RimEclipseCase; class RimModeledWellPath : public RimWellPath { diff --git a/ApplicationLibCode/ProjectDataModelCommands/RimcWellPathCollection.cpp b/ApplicationLibCode/ProjectDataModelCommands/RimcWellPathCollection.cpp index 04cceb629e..8051ea9743 100644 --- a/ApplicationLibCode/ProjectDataModelCommands/RimcWellPathCollection.cpp +++ b/ApplicationLibCode/ProjectDataModelCommands/RimcWellPathCollection.cpp @@ -20,6 +20,7 @@ #include "CompletionData/RimCompletionData.h" #include "RimEclipseCase.h" +#include "RimEclipseResultCase.h" #include "RimModeledWellPath.h" #include "RimProject.h" #include "RimWellPath.h" @@ -92,7 +93,7 @@ RimcWellPathCollection_wellCompletions::RimcWellPathCollection_wellCompletions( { CAF_PDM_InitObject( "Well Completions" ); CAF_PDM_InitScriptableFieldNoDefault( &m_wellName, "WellName", "Name of Well" ); - // CAF_PDM_InitScriptableFieldNoDefault( &m_case, "eclipseCase", "Eclipse Case to extract data from" ); + // CAF_PDM_InitScriptableFieldNoDefault( &m_eclipseCase, "eclipseCase", "Eclipse Case to extract data from" ); CAF_PDM_InitScriptableField( &m_caseId, "eclipseCaseId", -1, "Eclipse Case to extract data from" ); } @@ -123,10 +124,11 @@ std::expected RimcWellPathCollection_wellComplet return std::unexpected( QString( "Eclipse case is not set. Cannot get completion data." ) ); } - // if ( m_case() == nullptr ) + // RimEclipseCase* eCase = dynamic_cast( m_eclipseCase() ); + // if ( m_eclipseCase() == nullptr ) //{ - // return std::unexpected( QString( "Eclipse case is not set. Cannot get completion data." ) ); - // } + // return std::unexpected( QString( "Eclipse case is not set. Cannot get completion data." ) ); + //} if ( auto wellPath = wellPathCollection->wellPathByName( m_wellName ) ) { diff --git a/ApplicationLibCode/ProjectDataModelCommands/RimcWellPathCollection.h b/ApplicationLibCode/ProjectDataModelCommands/RimcWellPathCollection.h index 7395155cef..45c286fa97 100644 --- a/ApplicationLibCode/ProjectDataModelCommands/RimcWellPathCollection.h +++ b/ApplicationLibCode/ProjectDataModelCommands/RimcWellPathCollection.h @@ -21,10 +21,11 @@ #include "cafPdmField.h" #include "cafPdmObjectHandle.h" #include "cafPdmObjectMethod.h" +#include "cafPdmPtrField.h" #include -class RimEclipseCase; +class RimEclipseResultCase; //================================================================================================== /// @@ -58,6 +59,6 @@ public: private: caf::PdmField m_wellName; - // caf::PdmPtrField m_case; + // caf::PdmPtrField m_eclipseCase; caf::PdmField m_caseId; }; diff --git a/CMakeLists.txt b/CMakeLists.txt index f34d14ee0e..a5eb2e68d0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -441,7 +441,8 @@ message(STATUS "Starting download of external library OpenVDS ...") if(MSVC) FetchContent_Declare( openvds - URL https://downloads.bluware.com/artifactory/Releases-OpenVDSPlus/3.4/openvds+-3.4.6-win.zip + URL http://10.10.0.26:8080/job/resinsight-dependencies/ws/openvds+-3.4.6-win.zip + #URL https://downloads.bluware.com/artifactory/Releases-OpenVDSPlus/3.4/openvds+-3.4.6-win.zip ) else() FetchContent_Declare( diff --git a/GrpcInterface/Python/rips/PythonExamples/wells_and_fractures/completion_data.py b/GrpcInterface/Python/rips/PythonExamples/wells_and_fractures/completion_data.py index 459ffb894a..d289b9ed7d 100644 --- a/GrpcInterface/Python/rips/PythonExamples/wells_and_fractures/completion_data.py +++ b/GrpcInterface/Python/rips/PythonExamples/wells_and_fractures/completion_data.py @@ -21,6 +21,7 @@ if resinsight is not None: # Use the first one the_case = cases[0] + print(the_case.id) print(the_case) print("Got " + str(len(wells)) + " wells: ") @@ -31,6 +32,13 @@ if resinsight is not None: well_path_coll = resinsight.project.well_path_collection() comp_data = well_path_coll.well_completions(wells[0].name, the_case.id) + print(comp_data.well_name) print(comp_data) - dir(rips) - dir(rips.CompletionData) + + cdata = comp_data.compdat() + + if len(cdata) == 0: + print("No COMPDAT data found for well: " + wells[0].name) + + for line in cdata: + print(line)