///////////////////////////////////////////////////////////////////////////////// // // Copyright (C) 2021 Equinor ASA // // ResInsight is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY // WARRANTY; without even the implied warranty of MERCHANTABILITY or // FITNESS FOR A PARTICULAR PURPOSE. // // See the GNU General Public License at // for more details. // ///////////////////////////////////////////////////////////////////////////////// #pragma once #include "cafPdmChildArrayField.h" #include "cafPdmChildField.h" #include "cafPdmField.h" #include "cafPdmObject.h" #include "cafPdmPtrField.h" #include #include class RimEclipseInputCase; class RimEclipseCase; class RimGeoMechCase; class RimParameterGroup; class RimFaultRAPreprocSettings; class RimGenericParameter; class RimFaultRASettings : public caf::PdmObject { CAF_PDM_HEADER_INIT; public: RimFaultRASettings(); ~RimFaultRASettings() override; void initFromPreprocSettings( RimFaultRAPreprocSettings* preprocsettings, RimEclipseInputCase* eclipseCase ); void setGeoMechCase( RimGeoMechCase* geomechCase ); RimGeoMechCase* geomechCase() const; QString geomechCaseFilename() const; QString geomechCaseName() const; RimEclipseInputCase* eclipseFRAGeneratedCase() const; RimEclipseCase* eclipseCase() const; QString eclipseCaseFilename() const; void setOutputBaseDirectory( QString baseDir ); QString outputBaseDirectory() const; int startTimeStepGeoMechIndex() const; QString startTimeStepGeoMech() const; int endTimeStepGeoMechIndex() const; QString endTimeStepGeoMech() const; void setEclipseTimeStepIndexes( int start, int stop ); void setGeomechTimeStepIndexes( int start, int stop ); int startTimeStepEclipseIndex() const; QString startTimeStepEclipse() const; QString loadStepStart( bool advanced = false ) const; int endTimeStepEclipseIndex() const; QString endTimeStepEclipse() const; QString loadStepEnd() const; std::list basicParameters( int faultID ); std::list advancedParameters( int faultID ); QString elasticPropertiesFilename() const; QString stressStartFilename() const; QString stressEndFilename() const; QString basicMacrisDatabase() const; QString advancedMacrisDatabase() const; QString basicParameterXMLFilename( int faultID ) const; QString advancedParameterXMLFilename( int faultID ) const; QStringList basicMacrisParameters( int faultID ) const; QStringList advancedMacrisParameters( int faultID ) const; QString tsurfOutputDirectory() const; RimGenericParameter* getInputParameter( QString name ) const; protected: void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override; void defineUiTreeOrdering( caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName ) override; QList calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions ) override; private: void setupResInsightParameters(); int timeStepDigits() const; private: caf::PdmPtrField m_eclipseFRAGeneratedCase; caf::PdmPtrField m_eclipseCase; caf::PdmPtrField m_geomechCase; caf::PdmField m_baseDir; caf::PdmField m_elasticTableFilename; caf::PdmField m_startTimestepEclipse; caf::PdmField m_endTimestepEclipse; caf::PdmField m_startTimestepGeoMech; caf::PdmField m_endTimestepGeoMech; caf::PdmChildArrayField m_basicParameters; caf::PdmChildArrayField m_advancedParameters; caf::PdmChildField m_basicParametersRI; caf::PdmChildField m_advancedParametersRI; };