Thermal Fracture: improve import and display of timestamps

This commit is contained in:
Kristian Bendiksen 2022-06-29 15:29:21 +02:00
parent e99f713d53
commit 4b8a02cf46
7 changed files with 50 additions and 9 deletions

View File

@ -97,8 +97,15 @@ std::pair<std::shared_ptr<RigThermalFractureDefinition>, QString>
// Second is the timestamp
QString dateString = values[1];
QString dateFormat = "DD.MMMM.yy hh:mm:ss";
QString dateFormat = "dd.MM.yyyy hh:mm:ss";
QDateTime dateTime = QDateTime::fromString( dateString, dateFormat );
// Sometimes the datetime field is missing time
if ( !dateTime.isValid() )
{
QString dateFormat = "dd.MM.yyyy";
dateTime = QDateTime::fromString( dateString, dateFormat );
}
def->addTimeStep( dateTime.toSecsSinceEpoch() );
//

View File

@ -204,11 +204,11 @@ QList<caf::PdmOptionItemInfo> RimMeshFractureTemplate::calculateValueOptions( co
}
else if ( fieldNeedingOptions == &m_activeTimeStepIndex )
{
std::vector<double> timeValues = timeSteps();
int index = 0;
for ( double value : timeValues )
std::vector<QString> timeValues = timeStepsStrings();
int index = 0;
for ( QString value : timeValues )
{
options.push_back( caf::PdmOptionItemInfo( QString::number( value ), index ) );
options.push_back( caf::PdmOptionItemInfo( value, index ) );
index++;
}
}

View File

@ -53,8 +53,9 @@ public:
QString wellPathDepthAtFractureUiName() const override;
// Result Access
virtual std::vector<double> timeSteps() = 0;
virtual QStringList conductivityResultNames() const = 0;
virtual std::vector<double> timeSteps() = 0;
virtual std::vector<QString> timeStepsStrings() = 0;
virtual QStringList conductivityResultNames() const = 0;
virtual std::vector<std::vector<double>>
resultValues( const QString& uiResultName, const QString& unitName, size_t timeStepIndex ) const = 0;
virtual std::vector<double>

View File

@ -518,6 +518,21 @@ std::vector<double> RimStimPlanFractureTemplate::timeSteps()
return std::vector<double>();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::vector<QString> RimStimPlanFractureTemplate::timeStepsStrings()
{
std::vector<QString> steps;
std::vector<double> timeStepsAsDouble = timeSteps();
for ( auto d : timeStepsAsDouble )
{
steps.push_back( QString::number( d ) );
}
return steps;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -67,7 +67,7 @@ public:
double wellPathDepthAtFracture ) const override;
// Result Access
std::vector<QString> timeStepsStrings() override;
std::vector<double> timeSteps() override;
std::vector<std::pair<QString, QString>> uiResultNamesWithUnit() const override;
std::vector<std::vector<double>>

View File

@ -47,6 +47,7 @@
#include "cvfMath.h"
#include "cvfVector3.h"
#include <QDateTime>
#include <QFileInfo>
#include <algorithm>
@ -499,6 +500,23 @@ std::vector<double> RimThermalFractureTemplate::timeSteps()
return std::vector<double>();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::vector<QString> RimThermalFractureTemplate::timeStepsStrings()
{
std::vector<QString> steps;
std::vector<double> timeStepsAsDouble = timeSteps();
for ( auto d : timeStepsAsDouble )
{
QDateTime dateTime;
dateTime.setSecsSinceEpoch( d );
steps.push_back( dateTime.toString() );
}
return steps;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -56,7 +56,7 @@ public:
double wellPathDepthAtFracture ) const override;
// Result Access
std::vector<QString> timeStepsStrings() override;
std::vector<double> timeSteps() override;
std::vector<std::pair<QString, QString>> uiResultNamesWithUnit() const override;
std::vector<std::vector<double>>