static void ecl_nnc_geometry_add_pairs( const ecl_nnc_geometry_type * nnc_geo , const ecl_grid_type * grid ) { int lgr_nr1 = ecl_grid_get_lgr_nr( grid ); const ecl_grid_type * global_grid = ecl_grid_get_global_grid( grid ); if (!global_grid) global_grid = grid; for (int global_index1 = 0; global_index1 < ecl_grid_get_global_size( grid ); global_index1++) { const nnc_info_type * nnc_info = ecl_grid_get_cell_nnc_info1( grid , global_index1 ); if (!nnc_info) continue; for (int lgr_index2 = 0; lgr_index2 < nnc_info_get_size( nnc_info ); lgr_index2++) { const nnc_vector_type * nnc_vector = nnc_info_iget_vector( nnc_info , lgr_index2 ); const int_vector_type * grid2_index_list = nnc_vector_get_grid_index_list( nnc_vector ); const int_vector_type * nnc_index_list = nnc_vector_get_nnc_index_list( nnc_vector ); int lgr_nr2 = nnc_vector_get_lgr_nr( nnc_vector ); for (int index2 = 0; index2 < nnc_vector_get_size( nnc_vector ); index2++) { ecl_nnc_pair_type pair; pair.grid_nr1 = lgr_nr1; pair.global_index1 = global_index1; pair.grid_nr2 = lgr_nr2; pair.global_index2 = int_vector_iget( grid2_index_list , index2 ); pair.input_index = int_vector_iget( nnc_index_list, index2 ); struct_vector_append( nnc_geo->data , &pair); } } } }
static int ecl_nnc_export__( const ecl_grid_type * grid , int lgr_index1 , const ecl_file_type * init_file , ecl_nnc_type * nnc_data, int * nnc_offset) { int nnc_index = *nnc_offset; int lgr_nr1 = ecl_grid_get_lgr_nr( grid ); int global_index1; int valid_trans = 0 ; const ecl_grid_type * global_grid = ecl_grid_get_global_grid( grid ); if (!global_grid) global_grid = grid; for (global_index1 = 0; global_index1 < ecl_grid_get_global_size( grid ); global_index1++) { const nnc_info_type * nnc_info = ecl_grid_get_cell_nnc_info1( grid , global_index1 ); if (nnc_info) { int lgr_index2; for (lgr_index2=0; lgr_index2 < nnc_info_get_size( nnc_info ); lgr_index2++) { const nnc_vector_type * nnc_vector = nnc_info_iget_vector( nnc_info , lgr_index2 ); const int_vector_type * grid2_index_list = nnc_vector_get_grid_index_list( nnc_vector ); const int_vector_type * nnc_index_list = nnc_vector_get_nnc_index_list( nnc_vector ); int lgr_nr2 = nnc_vector_get_lgr_nr( nnc_vector ); const ecl_kw_type * tran_kw = ecl_nnc_export_get_tranx_kw(global_grid , init_file , lgr_nr1 , lgr_nr2 ); int index2; ecl_nnc_type nnc; nnc.grid_nr1 = lgr_nr1; nnc.grid_nr2 = lgr_nr2; nnc.global_index1 = global_index1; for (index2 = 0; index2 < nnc_vector_get_size( nnc_vector ); index2++) { nnc.global_index2 = int_vector_iget( grid2_index_list , index2 ); nnc.input_index = int_vector_iget( nnc_index_list, index2 ); if(tran_kw) { nnc.trans = ecl_kw_iget_as_double(tran_kw, nnc.input_index); valid_trans++; }else{ nnc.trans = ERT_ECL_DEFAULT_NNC_TRANS; } nnc_data[nnc_index] = nnc; nnc_index++; } } } } *nnc_offset = nnc_index; return valid_trans; }