int main(int argc , char ** argv) { int lgr_nr = 100; nnc_vector_type * vector = nnc_vector_alloc( lgr_nr ); test_assert_true( nnc_vector_is_instance( vector )); test_assert_int_equal( lgr_nr , nnc_vector_get_lgr_nr( vector )); nnc_vector_add_nnc( vector , 100 ); nnc_vector_add_nnc( vector , 200 ); nnc_vector_add_nnc( vector , 300 ); nnc_vector_add_nnc( vector , 100 ); nnc_vector_add_nnc( vector , 200 ); nnc_vector_add_nnc( vector , 300 ); { const int_vector_type * index_list = nnc_vector_get_index_list( vector ); test_assert_int_equal( 3 , int_vector_size( index_list )); test_assert_int_equal( 100 , int_vector_iget( index_list , 0 )); test_assert_int_equal( 200 , int_vector_iget( index_list , 1 )); test_assert_int_equal( 300 , int_vector_iget( index_list , 2 )); } nnc_vector_free( vector ); exit(0); }
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; }
static void nnc_info_add_vector( nnc_info_type * nnc_info , nnc_vector_type * nnc_vector) { vector_append_owned_ref( nnc_info->lgr_list , nnc_vector , nnc_vector_free__ ); int_vector_iset( nnc_info->lgr_index_map , nnc_vector_get_lgr_nr( nnc_vector ) , vector_get_size( nnc_info->lgr_list ) - 1 ); }