Ejemplo n.º 1
0
bool nnc_info_equal( const nnc_info_type * nnc_info1 , const nnc_info_type * nnc_info2 ) {
  if (nnc_info1 == nnc_info2)
    return true;
  
  if ((nnc_info1 == NULL) || (nnc_info2 == NULL))
    return false;

  {
    if (nnc_info1->lgr_nr != nnc_info2->lgr_nr)
      return false;
    
    if ((int_vector_size( nnc_info1->lgr_index_map ) > 0) && (int_vector_size( nnc_info2->lgr_index_map ) > 0)) {
      int max_lgr_nr = util_int_max( int_vector_size( nnc_info1->lgr_index_map ), 
                                     int_vector_size( nnc_info2->lgr_index_map ) );
      int lgr_nr = 0;
      
      while (true) {
        nnc_vector_type * vector1 = nnc_info_get_vector( nnc_info1 , lgr_nr );
        nnc_vector_type * vector2 = nnc_info_get_vector( nnc_info2 , lgr_nr );
        
        if (!nnc_vector_equal(vector1 , vector2))
          return false;
        
        lgr_nr++;
        if (lgr_nr > max_lgr_nr)
          return true;
      } 
    } else {
      if (int_vector_size( nnc_info1->lgr_index_map ) == int_vector_size( nnc_info2->lgr_index_map ))
        return true;
      else
        return false;
    }
  }
}
Ejemplo n.º 2
0
const int_vector_type * nnc_info_get_grid_index_list(const nnc_info_type * nnc_info, int lgr_nr) { 
  nnc_vector_type * nnc_vector = nnc_info_get_vector( nnc_info , lgr_nr );
  if (nnc_vector)
    return nnc_vector_get_grid_index_list( nnc_vector );
  else
    return NULL;
}
Ejemplo n.º 3
0
void nnc_info_add_nnc(nnc_info_type * nnc_info, int lgr_nr, int global_cell_number, int nnc_index) {
  nnc_info_assert_vector( nnc_info , lgr_nr );
  {
    nnc_vector_type * nnc_vector = nnc_info_get_vector( nnc_info , lgr_nr );
    nnc_vector_add_nnc( nnc_vector , global_cell_number , nnc_index);
  }
}
Ejemplo n.º 4
0
static void nnc_info_assert_vector( nnc_info_type * nnc_info , int lgr_nr ) {
  nnc_vector_type * nnc_vector = nnc_info_get_vector( nnc_info , lgr_nr);
  if (!nnc_vector) {
    nnc_vector = nnc_vector_alloc( lgr_nr );
    nnc_info_add_vector( nnc_info , nnc_vector );
  }
}
Ejemplo n.º 5
0
int main(int argc , char ** argv) {
  int lgr_nr = 77;
  nnc_info_type * nnc_info = nnc_info_alloc(lgr_nr);   

  test_assert_int_equal( 0 , nnc_info_get_total_size( nnc_info ));
  test_assert_int_equal( lgr_nr , nnc_info_get_lgr_nr(  nnc_info ));
  test_assert_true(nnc_info_is_instance(nnc_info));
  test_assert_not_NULL(nnc_info); 
  
  nnc_info_add_nnc(nnc_info, lgr_nr, 110 , 0);
  test_assert_int_equal( 1, nnc_info_get_total_size( nnc_info ));
  
  nnc_info_add_nnc(nnc_info, 1, 110 , 1);
  nnc_info_add_nnc(nnc_info, 1, 111 , 2);
  test_assert_int_equal( 3, nnc_info_get_total_size( nnc_info ));
  

  nnc_vector_type * nnc_vector = nnc_info_get_vector( nnc_info , 1);
  const int_vector_type * nnc_cells = nnc_info_get_grid_index_list(nnc_info, 1); 
  test_assert_int_equal(int_vector_size(nnc_cells), 2); 
  test_assert_ptr_equal( nnc_cells , nnc_vector_get_grid_index_list( nnc_vector ));


  nnc_vector_type * nnc_vector_null  = nnc_info_get_vector( nnc_info , 2);
  const int_vector_type * nnc_cells_null = nnc_info_get_grid_index_list(nnc_info, 2); 
  test_assert_NULL(nnc_cells_null); 
  test_assert_NULL(nnc_vector_null); 
  
  nnc_vector_type * nnc_vector_self  = nnc_info_get_self_vector( nnc_info );
  const nnc_vector_type * nnc_vector_77  = nnc_info_get_vector( nnc_info , lgr_nr );
  test_assert_ptr_equal( nnc_vector_77 , nnc_vector_self );

  const int_vector_type * nnc_cells_77 = nnc_info_get_grid_index_list(nnc_info, lgr_nr); 
  const int_vector_type * nnc_cells_self = nnc_info_get_self_grid_index_list(nnc_info); 
  test_assert_ptr_equal( nnc_cells_77 , nnc_cells_self );


  test_assert_int_equal( 2 , nnc_info_get_size( nnc_info ));
  test_assert_ptr_equal( nnc_info_get_vector( nnc_info , 1 ) , nnc_info_iget_vector( nnc_info , 1 ));
  nnc_info_free(nnc_info);
  

  exit(0);
}
Ejemplo n.º 6
0
nnc_vector_type * nnc_info_get_self_vector( const nnc_info_type * nnc_info ) {
  return nnc_info_get_vector( nnc_info , nnc_info->lgr_nr );
}