diff --git a/ApplicationLibCode/Application/RiaPreferencesOpm.cpp b/ApplicationLibCode/Application/RiaPreferencesOpm.cpp index c407701efc..051c0e0159 100644 --- a/ApplicationLibCode/Application/RiaPreferencesOpm.cpp +++ b/ApplicationLibCode/Application/RiaPreferencesOpm.cpp @@ -40,6 +40,10 @@ RiaPreferencesOpm::RiaPreferencesOpm() CAF_PDM_InitField( &m_useMpi, "useMpi", false, "Use MPI to run Opm Flow" ); CAF_PDM_InitField( &m_mpiProcesses, "mpiProcesses", 4, "Number of MPI processes to use" ); + CAF_PDM_InitField( &m_mpirunCommand, "mpirunCommand", QString( "/usr/bin/mpirun" ), "Path to mpirun command" ); + m_mpirunCommand.uiCapability()->setUiEditorTypeName( caf::PdmUiFilePathEditor::uiEditorTypeName() ); + m_mpirunCommand.uiCapability()->setUiLabelPosition( caf::PdmUiItemInfo::TOP ); + CAF_PDM_InitFieldNoDefault( &m_wslDistribution, "wslDistribution", "WSL Distribution to use:" ); m_wslDistribution.uiCapability()->setUiEditorTypeName( caf::PdmUiComboBoxEditor::uiEditorTypeName() ); m_availableWslDists = RiaWslTools::wslDistributionList(); @@ -75,6 +79,7 @@ void RiaPreferencesOpm::appendItems( caf::PdmUiOrdering& uiOrdering ) if ( m_useMpi() ) { opmGrp->add( &m_mpiProcesses ); + opmGrp->add( &m_mpirunCommand ); } } @@ -104,6 +109,14 @@ QString RiaPreferencesOpm::opmFlowCommand() const return m_opmFlowCommand; } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +QString RiaPreferencesOpm::mpirunCommand() const +{ + return m_mpirunCommand; +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationLibCode/Application/RiaPreferencesOpm.h b/ApplicationLibCode/Application/RiaPreferencesOpm.h index 324d90b2fc..d038087e95 100644 --- a/ApplicationLibCode/Application/RiaPreferencesOpm.h +++ b/ApplicationLibCode/Application/RiaPreferencesOpm.h @@ -42,6 +42,7 @@ public: bool useWsl() const; bool useMpi() const; int mpiProcesses() const; + QString mpirunCommand() const; protected: QList calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions ) override; @@ -52,6 +53,7 @@ private: caf::PdmField m_wslDistribution; caf::PdmField m_useMpi; caf::PdmField m_mpiProcesses; + caf::PdmField m_mpirunCommand; QStringList m_availableWslDists; }; diff --git a/ApplicationLibCode/ProjectDataModel/Jobs/RimOpmFlowJob.cpp b/ApplicationLibCode/ProjectDataModel/Jobs/RimOpmFlowJob.cpp index b8f4b98222..604f72d833 100644 --- a/ApplicationLibCode/ProjectDataModel/Jobs/RimOpmFlowJob.cpp +++ b/ApplicationLibCode/ProjectDataModel/Jobs/RimOpmFlowJob.cpp @@ -526,7 +526,7 @@ QStringList RimOpmFlowJob::command() if ( opmPref->useMpi() ) { - cmd.append( "/usr/bin/mpirun" ); + cmd.append( opmPref->mpirunCommand() ); cmd.append( QString( "-np" ) ); cmd.append( QString( "%1" ).arg( opmPref->mpiProcesses() ) ); }