Ejemplo n.º 1
0
const ecl_rft_cell_type * ecl_rft_node_iget_cell_sorted( ecl_rft_node_type * rft_node , int index) {
  if (ecl_rft_node_is_RFT( rft_node ))
    return ecl_rft_node_iget_cell( rft_node , index );
  else {
    if (!rft_node->sort_perm_in_sync)
      ecl_rft_node_create_sort_perm( rft_node );

    return vector_iget_const( rft_node->cells , int_vector_iget( rft_node->sort_perm , index ));
  }
}
Ejemplo n.º 2
0
// Hardcoded GURBAT values
void test_rft( const char * rft_file ) {
  ecl_rft_file_type * rft = ecl_rft_file_alloc( rft_file );
  ecl_rft_node_type * rft_node = ecl_rft_file_iget_node( rft , 0 );
  
  test_assert_true( ecl_rft_node_is_RFT( rft_node ));
  test_assert_int_equal( 14 , ecl_rft_node_get_size( rft_node ));
  test_assert_false( ecl_rft_node_is_MSW( rft_node ));
  
  test_assert_double_equal( 260.6111   , ecl_rft_node_iget_pressure( rft_node , 0 ));
  test_assert_double_equal( 0.0581993  , ecl_rft_node_iget_soil( rft_node , 0 ));
  test_assert_double_equal( 0.9405648  , ecl_rft_node_iget_swat( rft_node , 0 ));
  test_assert_double_equal( 0.00123579  , ecl_rft_node_iget_sgas( rft_node , 0 ));

  {
    int i,j,k;

    ecl_rft_node_iget_ijk( rft_node , 0 , &i , &j , &k );
    test_assert_int_equal( 32 , i );
    test_assert_int_equal( 53 , j );
    test_assert_int_equal( 0  , k );    

    ecl_rft_node_iget_ijk( rft_node , 13 , &i , &j , &k );
    test_assert_int_equal( 32 , i );
    test_assert_int_equal( 54 , j );
    test_assert_int_equal( 12 , k );    

    for (i=0; i < ecl_rft_node_get_size( rft_node );  i++) {
      const ecl_rft_cell_type * cell1 = ecl_rft_node_iget_cell( rft_node , i );
      const ecl_rft_cell_type * cell2 = ecl_rft_node_iget_cell_sorted( rft_node , i );

      test_assert_ptr_equal( cell1 , cell2 );
    }
  }
  ecl_rft_node_inplace_sort_cells( rft_node );

  ecl_rft_file_free( rft );
}