mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#2360 Elm props: Use element index in closest result intex calc
This commit is contained in:
parent
65d85b82f7
commit
2ce7e2c3d2
@ -175,7 +175,9 @@ RigFemScalarResultFrames* RigFemPartResultsCollection::findOrLoadScalarResult(in
|
||||
std::vector<RigFemScalarResultFrames*> resultsForEachComponent;
|
||||
for (auto elem : elementProperties)
|
||||
{
|
||||
RigFemScalarResultFrames* currentFrames = m_femPartResults[partIndex]->createScalarResult(resVarAddr);
|
||||
RigFemResultAddress addressForElement(RIG_ELEMENT, elem.first, "");
|
||||
RigFemScalarResultFrames* currentFrames = m_femPartResults[partIndex]->createScalarResult(addressForElement);
|
||||
currentFrames->enableAsSingleFrameResult();
|
||||
currentFrames->frameData(0).swap(elem.second);
|
||||
}
|
||||
|
||||
@ -2175,6 +2177,10 @@ RigFemClosestResultIndexCalculator::RigFemClosestResultIndexCalculator(RigFemPar
|
||||
{
|
||||
m_resultIndexToClosestResult = -1;
|
||||
}
|
||||
else if (resultPosition == RIG_ELEMENT)
|
||||
{
|
||||
m_resultIndexToClosestResult = elementIndex;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_resultIndexToClosestResult = m_closestElementNodeResIdx;
|
||||
|
@ -175,6 +175,7 @@ void RivFemPartGeometryGenerator::computeArrays()
|
||||
m_quadVerticesToNodeIdx.clear();
|
||||
m_quadVerticesToGlobalElmNodeIdx.clear();
|
||||
m_quadVerticesToGlobalElmFaceNodeIdx.clear();
|
||||
m_quadVerticesToGlobalElmIdx.clear();
|
||||
trianglesToElements.clear();
|
||||
trianglesToElementFaces.clear();
|
||||
|
||||
@ -183,6 +184,7 @@ void RivFemPartGeometryGenerator::computeArrays()
|
||||
vertices.reserve(estimatedQuadVxCount);
|
||||
m_quadVerticesToNodeIdx.reserve(estimatedQuadVxCount);
|
||||
m_quadVerticesToGlobalElmNodeIdx.reserve(estimatedQuadVxCount);
|
||||
m_quadVerticesToGlobalElmIdx.reserve(estimatedQuadVxCount);
|
||||
trianglesToElements.reserve(estimatedQuadVxCount/2);
|
||||
trianglesToElementFaces.reserve(estimatedQuadVxCount/2);
|
||||
|
||||
@ -258,6 +260,11 @@ void RivFemPartGeometryGenerator::computeArrays()
|
||||
m_quadVerticesToGlobalElmFaceNodeIdx.push_back(elmNodFaceResIdxFaceStart + 2);
|
||||
m_quadVerticesToGlobalElmFaceNodeIdx.push_back(elmNodFaceResIdxFaceStart + 3);
|
||||
|
||||
m_quadVerticesToGlobalElmIdx.push_back(elmIdx);
|
||||
m_quadVerticesToGlobalElmIdx.push_back(elmIdx);
|
||||
m_quadVerticesToGlobalElmIdx.push_back(elmIdx);
|
||||
m_quadVerticesToGlobalElmIdx.push_back(elmIdx);
|
||||
|
||||
trianglesToElements.push_back(elmIdx);
|
||||
trianglesToElements.push_back(elmIdx);
|
||||
trianglesToElementFaces.push_back(lfIdx);
|
||||
|
@ -86,6 +86,7 @@ public:
|
||||
const std::vector<size_t>& quadVerticesToNodeIdxMapping() const { return m_quadVerticesToNodeIdx;}
|
||||
const std::vector<size_t>& quadVerticesToGlobalElmNodeIdx() const { return m_quadVerticesToGlobalElmNodeIdx;}
|
||||
const std::vector<size_t>& quadVerticesToGlobalElmFaceNodeIdx() const { return m_quadVerticesToGlobalElmFaceNodeIdx; }
|
||||
const std::vector<size_t>& quadVerticesToGlobalElmIdx() const { return m_quadVerticesToGlobalElmIdx; }
|
||||
|
||||
RivFemPartTriangleToElmMapper* triangleToElementMapper() { return m_triangleMapper.p();}
|
||||
|
||||
@ -107,6 +108,7 @@ private:
|
||||
std::vector<size_t> m_quadVerticesToNodeIdx;
|
||||
std::vector<size_t> m_quadVerticesToGlobalElmNodeIdx;
|
||||
std::vector<size_t> m_quadVerticesToGlobalElmFaceNodeIdx;
|
||||
std::vector<size_t> m_quadVerticesToGlobalElmIdx;
|
||||
|
||||
// Mappings
|
||||
cvf::ref<RivFemPartTriangleToElmMapper> m_triangleMapper;
|
||||
|
@ -259,6 +259,10 @@ void RivFemPartPartMgr::updateCellResultColor(size_t timeStepIndex, RimGeoMechCe
|
||||
{
|
||||
vxToResultMapping = &(m_surfaceGenerator.quadVerticesToGlobalElmFaceNodeIdx());
|
||||
}
|
||||
else if (resVarAddress.resultPosType == RIG_ELEMENT)
|
||||
{
|
||||
vxToResultMapping = &(m_surfaceGenerator.quadVerticesToGlobalElmIdx());
|
||||
}
|
||||
|
||||
if (!vxToResultMapping) return;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user