mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#2830 Geomech: Improve performance on results calculations
This commit is contained in:
@@ -550,6 +550,8 @@ RigFemScalarResultFrames* RigFemPartResultsCollection::calculateEnIpPorBarResult
|
|||||||
dstFrameData.resize(valCount, inf);
|
dstFrameData.resize(valCount, inf);
|
||||||
|
|
||||||
int elementCount = femPart->elementCount();
|
int elementCount = femPart->elementCount();
|
||||||
|
|
||||||
|
#pragma omp parallel for
|
||||||
for (int elmIdx = 0; elmIdx < elementCount; ++elmIdx)
|
for (int elmIdx = 0; elmIdx < elementCount; ++elmIdx)
|
||||||
{
|
{
|
||||||
RigElementType elmType = femPart->elementType(elmIdx);
|
RigElementType elmType = femPart->elementType(elmIdx);
|
||||||
@@ -604,7 +606,8 @@ RigFemScalarResultFrames* RigFemPartResultsCollection::calculateTimeLapseResult(
|
|||||||
size_t valCount = srcFrameData.size();
|
size_t valCount = srcFrameData.size();
|
||||||
dstFrameData.resize(valCount);
|
dstFrameData.resize(valCount);
|
||||||
|
|
||||||
for ( size_t vIdx = 0; vIdx < valCount; ++vIdx )
|
#pragma omp parallel for
|
||||||
|
for (long vIdx = 0; vIdx < static_cast<long>(valCount); ++vIdx )
|
||||||
{
|
{
|
||||||
dstFrameData[vIdx] = srcFrameData[vIdx] - baseFrameData[vIdx];
|
dstFrameData[vIdx] = srcFrameData[vIdx] - baseFrameData[vIdx];
|
||||||
}
|
}
|
||||||
@@ -680,7 +683,8 @@ RigFemScalarResultFrames* RigFemPartResultsCollection::calculateMeanStressSEM(in
|
|||||||
size_t valCount = sa11Data.size();
|
size_t valCount = sa11Data.size();
|
||||||
dstFrameData.resize(valCount);
|
dstFrameData.resize(valCount);
|
||||||
|
|
||||||
for(size_t vIdx = 0; vIdx < valCount; ++vIdx)
|
#pragma omp parallel for
|
||||||
|
for (long vIdx = 0; vIdx < static_cast<long>(valCount); ++vIdx)
|
||||||
{
|
{
|
||||||
dstFrameData[vIdx] = (sa11Data[vIdx] + sa22Data[vIdx] + sa33Data[vIdx])/3.0f;
|
dstFrameData[vIdx] = (sa11Data[vIdx] + sa22Data[vIdx] + sa33Data[vIdx])/3.0f;
|
||||||
}
|
}
|
||||||
@@ -722,7 +726,8 @@ RigFemScalarResultFrames* RigFemPartResultsCollection::calculateSFI(int partInde
|
|||||||
size_t valCount = se1Data.size();
|
size_t valCount = se1Data.size();
|
||||||
dstFrameData.resize(valCount);
|
dstFrameData.resize(valCount);
|
||||||
|
|
||||||
for ( size_t vIdx = 0; vIdx < valCount; ++vIdx )
|
#pragma omp parallel for
|
||||||
|
for (long vIdx = 0; vIdx < static_cast<long>(valCount); ++vIdx)
|
||||||
{
|
{
|
||||||
float se1 = se1Data[vIdx];
|
float se1 = se1Data[vIdx];
|
||||||
float se3 = se3Data[vIdx];
|
float se3 = se3Data[vIdx];
|
||||||
@@ -775,7 +780,8 @@ RigFemScalarResultFrames* RigFemPartResultsCollection::calculateDSM(int partInde
|
|||||||
size_t valCount = se1Data.size();
|
size_t valCount = se1Data.size();
|
||||||
dstFrameData.resize(valCount);
|
dstFrameData.resize(valCount);
|
||||||
|
|
||||||
for ( size_t vIdx = 0; vIdx < valCount; ++vIdx )
|
#pragma omp parallel for
|
||||||
|
for (long vIdx = 0; vIdx < static_cast<long>(valCount); ++vIdx)
|
||||||
{
|
{
|
||||||
dstFrameData[vIdx] = dsm(se1Data[vIdx], se3Data[vIdx], tanFricAng, cohPrTanFricAngle);
|
dstFrameData[vIdx] = dsm(se1Data[vIdx], se3Data[vIdx], tanFricAng, cohPrTanFricAngle);
|
||||||
}
|
}
|
||||||
@@ -812,7 +818,8 @@ RigFemScalarResultFrames* RigFemPartResultsCollection::calculateFOS(int partInde
|
|||||||
size_t valCount = dsmData.size();
|
size_t valCount = dsmData.size();
|
||||||
dstFrameData.resize(valCount);
|
dstFrameData.resize(valCount);
|
||||||
|
|
||||||
for ( size_t vIdx = 0; vIdx < valCount; ++vIdx )
|
#pragma omp parallel for
|
||||||
|
for (long vIdx = 0; vIdx < static_cast<long>(valCount); ++vIdx)
|
||||||
{
|
{
|
||||||
float dsm = dsmData[vIdx];
|
float dsm = dsmData[vIdx];
|
||||||
dstFrameData[vIdx] = 1.0f/dsm;
|
dstFrameData[vIdx] = 1.0f/dsm;
|
||||||
@@ -856,7 +863,8 @@ RigFemScalarResultFrames* RigFemPartResultsCollection::calculateMeanStressSTM(in
|
|||||||
size_t valCount = st11Data.size();
|
size_t valCount = st11Data.size();
|
||||||
dstFrameData.resize(valCount);
|
dstFrameData.resize(valCount);
|
||||||
|
|
||||||
for(size_t vIdx = 0; vIdx < valCount; ++vIdx)
|
#pragma omp parallel for
|
||||||
|
for (long vIdx = 0; vIdx < static_cast<long>(valCount); ++vIdx)
|
||||||
{
|
{
|
||||||
dstFrameData[vIdx] = (st11Data[vIdx] + st22Data[vIdx] + st33Data[vIdx])/3.0f;
|
dstFrameData[vIdx] = (st11Data[vIdx] + st22Data[vIdx] + st33Data[vIdx])/3.0f;
|
||||||
}
|
}
|
||||||
@@ -904,7 +912,8 @@ RigFemScalarResultFrames* RigFemPartResultsCollection::calculateDeviatoricStress
|
|||||||
size_t valCount = st11Data.size();
|
size_t valCount = st11Data.size();
|
||||||
dstFrameData.resize(valCount);
|
dstFrameData.resize(valCount);
|
||||||
|
|
||||||
for(size_t vIdx = 0; vIdx < valCount; ++vIdx)
|
#pragma omp parallel for
|
||||||
|
for (long vIdx = 0; vIdx < static_cast<long>(valCount); ++vIdx)
|
||||||
{
|
{
|
||||||
float stmVal = stmData[vIdx];
|
float stmVal = stmData[vIdx];
|
||||||
float st11Corr = st11Data[vIdx] - stmVal;
|
float st11Corr = st11Data[vIdx] - stmVal;
|
||||||
@@ -958,7 +967,8 @@ RigFemScalarResultFrames* RigFemPartResultsCollection::calculateVolumetricStrain
|
|||||||
size_t valCount = ea11Data.size();
|
size_t valCount = ea11Data.size();
|
||||||
dstFrameData.resize(valCount);
|
dstFrameData.resize(valCount);
|
||||||
|
|
||||||
for(size_t vIdx = 0; vIdx < valCount; ++vIdx)
|
#pragma omp parallel for
|
||||||
|
for (long vIdx = 0; vIdx < static_cast<long>(valCount); ++vIdx)
|
||||||
{
|
{
|
||||||
dstFrameData[vIdx] = (ea11Data[vIdx] + ea22Data[vIdx] + ea33Data[vIdx]);
|
dstFrameData[vIdx] = (ea11Data[vIdx] + ea22Data[vIdx] + ea33Data[vIdx]);
|
||||||
}
|
}
|
||||||
@@ -1002,7 +1012,8 @@ RigFemScalarResultFrames* RigFemPartResultsCollection::calculateDeviatoricStrain
|
|||||||
size_t valCount = ea11Data.size();
|
size_t valCount = ea11Data.size();
|
||||||
dstFrameData.resize(valCount);
|
dstFrameData.resize(valCount);
|
||||||
|
|
||||||
for ( size_t vIdx = 0; vIdx < valCount; ++vIdx )
|
#pragma omp parallel for
|
||||||
|
for (long vIdx = 0; vIdx < static_cast<long>(valCount); ++vIdx)
|
||||||
{
|
{
|
||||||
dstFrameData[vIdx] = 0.666666666666667f*(ea11Data[vIdx] - ea33Data[vIdx]);
|
dstFrameData[vIdx] = 0.666666666666667f*(ea11Data[vIdx] - ea33Data[vIdx]);
|
||||||
}
|
}
|
||||||
@@ -1094,6 +1105,8 @@ RigFemScalarResultFrames* RigFemPartResultsCollection::calculateSurfaceAlignedSt
|
|||||||
PCRITDat.resize(valCount);
|
PCRITDat.resize(valCount);
|
||||||
|
|
||||||
int elementCount = femPart->elementCount();
|
int elementCount = femPart->elementCount();
|
||||||
|
|
||||||
|
#pragma omp parallel for
|
||||||
for(int elmIdx = 0; elmIdx < elementCount; ++elmIdx)
|
for(int elmIdx = 0; elmIdx < elementCount; ++elmIdx)
|
||||||
{
|
{
|
||||||
RigElementType elmType = femPart->elementType(elmIdx);
|
RigElementType elmType = femPart->elementType(elmIdx);
|
||||||
@@ -1206,6 +1219,7 @@ RigFemScalarResultFrames* RigFemPartResultsCollection::calculateSurfaceAngles(in
|
|||||||
Pinc.resize(valCount);
|
Pinc.resize(valCount);
|
||||||
|
|
||||||
int elementCount = femPart->elementCount();
|
int elementCount = femPart->elementCount();
|
||||||
|
#pragma omp parallel for
|
||||||
for ( int elmIdx = 0; elmIdx < elementCount; ++elmIdx )
|
for ( int elmIdx = 0; elmIdx < elementCount; ++elmIdx )
|
||||||
{
|
{
|
||||||
RigElementType elmType = femPart->elementType(elmIdx);
|
RigElementType elmType = femPart->elementType(elmIdx);
|
||||||
@@ -1904,6 +1918,7 @@ RigFemScalarResultFrames* RigFemPartResultsCollection::calculateDerivedResult(in
|
|||||||
frameCountProgress.incrementProgress();
|
frameCountProgress.incrementProgress();
|
||||||
|
|
||||||
int elementCount = femPart->elementCount();
|
int elementCount = femPart->elementCount();
|
||||||
|
#pragma omp parallel for
|
||||||
for(int elmIdx = 0; elmIdx < elementCount; ++elmIdx)
|
for(int elmIdx = 0; elmIdx < elementCount; ++elmIdx)
|
||||||
{
|
{
|
||||||
RigElementType elmType = femPart->elementType(elmIdx);
|
RigElementType elmType = femPart->elementType(elmIdx);
|
||||||
@@ -1961,6 +1976,8 @@ void RigFemPartResultsCollection::calculateGammaFromFrames(int partIndex,
|
|||||||
dstFrameData.resize(valCount);
|
dstFrameData.resize(valCount);
|
||||||
|
|
||||||
int elementCount = femPart->elementCount();
|
int elementCount = femPart->elementCount();
|
||||||
|
|
||||||
|
#pragma omp parallel for
|
||||||
for ( int elmIdx = 0; elmIdx < elementCount; ++elmIdx )
|
for ( int elmIdx = 0; elmIdx < elementCount; ++elmIdx )
|
||||||
{
|
{
|
||||||
RigElementType elmType = femPart->elementType(elmIdx);
|
RigElementType elmType = femPart->elementType(elmIdx);
|
||||||
|
|||||||
Reference in New Issue
Block a user