mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-03 12:10:57 -06:00
#6869 Coarse Grid: Make sure empty coarsening cells are handled correctly
Based on fix by Jean-Paul Balabanian <jpb@equinor.com>
This commit is contained in:
parent
61245ee43f
commit
70dfdd9a41
@ -2466,16 +2466,18 @@ void RifReaderEclipseOutput::transferCoarseningInfo( const ecl_grid_type* eclGri
|
||||
for ( int i = 0; i < coarseGroupCount; i++ )
|
||||
{
|
||||
ecl_coarse_cell_type* coarse_cell = ecl_grid_iget_coarse_group( eclGrid, i );
|
||||
CVF_ASSERT( coarse_cell );
|
||||
|
||||
size_t i1 = static_cast<size_t>( ecl_coarse_cell_get_i1( coarse_cell ) );
|
||||
size_t i2 = static_cast<size_t>( ecl_coarse_cell_get_i2( coarse_cell ) );
|
||||
size_t j1 = static_cast<size_t>( ecl_coarse_cell_get_j1( coarse_cell ) );
|
||||
size_t j2 = static_cast<size_t>( ecl_coarse_cell_get_j2( coarse_cell ) );
|
||||
size_t k1 = static_cast<size_t>( ecl_coarse_cell_get_k1( coarse_cell ) );
|
||||
size_t k2 = static_cast<size_t>( ecl_coarse_cell_get_k2( coarse_cell ) );
|
||||
if ( coarse_cell )
|
||||
{
|
||||
size_t i1 = static_cast<size_t>( ecl_coarse_cell_get_i1( coarse_cell ) );
|
||||
size_t i2 = static_cast<size_t>( ecl_coarse_cell_get_i2( coarse_cell ) );
|
||||
size_t j1 = static_cast<size_t>( ecl_coarse_cell_get_j1( coarse_cell ) );
|
||||
size_t j2 = static_cast<size_t>( ecl_coarse_cell_get_j2( coarse_cell ) );
|
||||
size_t k1 = static_cast<size_t>( ecl_coarse_cell_get_k1( coarse_cell ) );
|
||||
size_t k2 = static_cast<size_t>( ecl_coarse_cell_get_k2( coarse_cell ) );
|
||||
|
||||
grid->addCoarseningBox( i1, i2, j1, j2, k1, k2 );
|
||||
grid->addCoarseningBox( i1, i2, j1, j2, k1, k2 );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
18
ThirdParty/Ert/lib/ecl/ecl_grid.cpp
vendored
18
ThirdParty/Ert/lib/ecl/ecl_grid.cpp
vendored
@ -1811,6 +1811,12 @@ static void ecl_grid_realloc_index_map(ecl_grid_type * ecl_grid) {
|
||||
int size = ecl_grid_get_num_coarse_groups(ecl_grid);
|
||||
for (int coarse_group = 0; coarse_group < size; coarse_group++) {
|
||||
ecl_coarse_cell_type * coarse_cell = ecl_grid_iget_coarse_group(ecl_grid, coarse_group);
|
||||
|
||||
// Coarse cell group numbering is not necessarily in consecutive order
|
||||
if(coarse_cell == NULL) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (ecl_coarse_cell_get_num_active(coarse_cell) > 0) {
|
||||
int global_index = ecl_coarse_cell_iget_active_cell_index(coarse_cell, 0);
|
||||
int active_value = ecl_coarse_cell_iget_active_value(coarse_cell, 0);
|
||||
@ -1879,8 +1885,12 @@ static void ecl_grid_set_active_index(ecl_grid_type * ecl_grid) {
|
||||
In the involved path ecl_coarse_cell_update_index() only updates
|
||||
the coarse cells' active_index if it is -1. */
|
||||
for (int coarse_index = 0; coarse_index < vector_get_size(ecl_grid->coarse_cells); coarse_index++) {
|
||||
ecl_coarse_cell_type * coarse_cell = (ecl_coarse_cell_type*)vector_iget_const(ecl_grid->coarse_cells, coarse_index);
|
||||
ecl_coarse_cell_type * coarse_cell = (ecl_coarse_cell_type*)vector_iget_const(ecl_grid->coarse_cells, coarse_index);
|
||||
|
||||
// Coarse cell group numbering is not necessarily in consecutive order
|
||||
if(coarse_cell != NULL) {
|
||||
ecl_coarse_cell_reset_active_index(coarse_cell);
|
||||
}
|
||||
}
|
||||
|
||||
/* 2: Go through all the cells and set the active index. In the
|
||||
@ -1923,6 +1933,12 @@ static void ecl_grid_set_active_index(ecl_grid_type * ecl_grid) {
|
||||
int size = ecl_grid_get_num_coarse_groups(ecl_grid);
|
||||
for (int coarse_group = 0; coarse_group < size; coarse_group++) {
|
||||
ecl_coarse_cell_type * coarse_cell = ecl_grid_iget_coarse_group( ecl_grid , coarse_group );
|
||||
|
||||
// Coarse cell group numbering is not necessarily in consecutive order
|
||||
if (coarse_cell == NULL) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (ecl_coarse_cell_get_num_active(coarse_cell) > 0) {
|
||||
int cell_active_index = ecl_coarse_cell_get_active_index( coarse_cell );
|
||||
int cell_active_value = ecl_coarse_cell_iget_active_value( coarse_cell , 0);
|
||||
|
Loading…
Reference in New Issue
Block a user