6877 well fracture intersection per fracture (#7251)

* #6877 Move well/fracture intersection to fracture (from template).
* #6877 Read stimplan xml without scaling and well/fracture intersection offset
* #6877 Move fracture grid to RimFracture from template.
* #6877 Use RiaDefines::conductivityResultName() where applicable.
* #6877 Reintroduce fracture template scaling.
* #6877 Hide well/fracture intersection option for elliptical template
* #7280: Fix crash when picking in first time step of StimPlan fracture
* #7279 Redraw after deleting fracture to make it disappear.
This commit is contained in:
Kristian Bendiksen
2021-01-26 15:32:18 +01:00
committed by GitHub
parent 05aceef936
commit f8aae6691d
22 changed files with 317 additions and 227 deletions

View File

@@ -240,7 +240,8 @@ const QString RivWellFracturePartMgr::resultInfoText( const RimEclipseView& acti
QString resultNameFromColors = activeView.fractureColors()->uiResultName();
QString resultUnitFromColors = activeView.fractureColors()->unit();
double resultValue = stimPlanTemplate->resultValueAtIJ( resultNameFromColors,
double resultValue = stimPlanTemplate->resultValueAtIJ( m_rimFracture->fractureGrid(),
resultNameFromColors,
resultUnitFromColors,
stimPlanTemplate->activeTimeStepIndex(),
cell->getI(),
@@ -284,7 +285,9 @@ const RigFractureCell* RivWellFracturePartMgr::getFractureCellAtDomainCoord( cvf
auto* stimPlanTempl = dynamic_cast<RimStimPlanFractureTemplate*>( m_rimFracture->fractureTemplate() );
if ( !stimPlanTempl ) return nullptr;
const RigFractureGrid* grid = stimPlanTempl->fractureGrid();
const RigFractureGrid* grid = m_rimFracture->fractureGrid();
if ( !grid ) return nullptr;
size_t cellI = cvf::UNDEFINED_SIZE_T;
size_t cellJ = cvf::UNDEFINED_SIZE_T;
const std::vector<RigFractureCell>& cells = grid->fractureCells();
@@ -337,7 +340,7 @@ cvf::ref<cvf::Part> RivWellFracturePartMgr::createEllipseSurfacePart( const RimE
{
std::vector<cvf::Vec3f> nodeCoords;
m_rimFracture->fractureTemplate()->fractureTriangleGeometry( &nodeCoords, &triangleIndices );
m_rimFracture->triangleGeometry( &nodeCoords, &triangleIndices );
cvf::Mat4d fractureXf = m_rimFracture->transformMatrix();
nodeDisplayCoords = transformToFractureDisplayCoords( nodeCoords, fractureXf, *displayCoordTransform );
@@ -410,7 +413,7 @@ cvf::ref<cvf::Part> RivWellFracturePartMgr::createStimPlanColorInterpolatedSurfa
std::vector<cvf::Vec3f> nodeDisplayCoords;
{
std::vector<cvf::Vec3f> nodeCoords;
stimPlanFracTemplate->fractureTriangleGeometry( &nodeCoords, &triangleIndices );
m_rimFracture->triangleGeometry( &nodeCoords, &triangleIndices );
if ( triangleIndices.empty() || nodeCoords.empty() )
{
@@ -540,7 +543,7 @@ cvf::ref<cvf::Part> RivWellFracturePartMgr::createStimPlanElementColorSurfacePar
dynamic_cast<RimStimPlanFractureTemplate*>( m_rimFracture->fractureTemplate() );
CVF_ASSERT( stimPlanFracTemplate );
if ( !stimPlanFracTemplate->fractureGrid() ) return nullptr;
if ( !m_rimFracture->fractureGrid() ) return nullptr;
auto displayCoordTransform = activeView.displayCoordTransform();
if ( displayCoordTransform.isNull() ) return nullptr;
@@ -550,7 +553,7 @@ cvf::ref<cvf::Part> RivWellFracturePartMgr::createStimPlanElementColorSurfacePar
const cvf::ScalarMapper* scalarMapper = nullptr;
{
std::vector<RigFractureCell> stimPlanCells = stimPlanFracTemplate->fractureGrid()->fractureCells();
std::vector<RigFractureCell> stimPlanCells = m_rimFracture->fractureGrid()->fractureCells();
RimRegularLegendConfig* legendConfig = nullptr;
if ( activeView.fractureColors() && activeView.fractureColors()->isChecked() &&
@@ -1028,12 +1031,12 @@ cvf::ref<cvf::DrawableGeo>
RivWellFracturePartMgr::createStimPlanMeshDrawable( RimStimPlanFractureTemplate* stimPlanFracTemplate,
const RimEclipseView& activeView )
{
if ( !stimPlanFracTemplate->fractureGrid() ) return nullptr;
if ( !m_rimFracture->fractureGrid() ) return nullptr;
auto displayCoordTransform = activeView.displayCoordTransform();
if ( displayCoordTransform.isNull() ) return nullptr;
std::vector<RigFractureCell> stimPlanCells = stimPlanFracTemplate->fractureGrid()->fractureCells();
std::vector<RigFractureCell> stimPlanCells = m_rimFracture->fractureGrid()->fractureCells();
std::vector<cvf::Vec3f> stimPlanMeshVertices;
QString resultNameFromColors = activeView.fractureColors()->uiResultName();