from utilities.indexing import PolynomialIndex, IndexGenerator # num_dims = 2, max_level = 6 index_norm_order = 0.5 num_dims = 10 max_level = 30 index_generator = IndexGenerator() index_generator.set_parameters( num_dims, max_level, index_norm_order = 0.5, priority_weight = 1. ) index_generator.build_isotropic_index_set() indices = index_generator.get_all_indices() print index_generator.num_indices
def test_index_generator( self ): index_generator = IndexGenerator() # num_dims = 2, max_level = 3 index_norm_order = 1 num_dims = 2 max_level = 3 index_generator.set_parameters( num_dims, max_level, index_norm_order = 1, priority_weight = 1. ) index_generator.build_isotropic_index_set() indices = index_generator.get_all_indices() true_indices = [[0, 0], [1, 0], [2, 0], [0, 1], [1, 1], [0, 2], [1, 2], [2, 1], [3, 0], [0, 3]] indices_list = [] for i, index in enumerate( indices ): indices_list.append( index.uncompressed_data( num_dims ) ) indices = unique_matrix_rows( numpy.array( indices_list )) true_indices = unique_matrix_rows( numpy.array( true_indices ) ) assert numpy.allclose( true_indices, indices ) # num_dims = 3, max_level = 2 index_norm_order = 1 num_dims = 3 max_level = 2 index_generator.set_parameters( num_dims, max_level, index_norm_order = 1, priority_weight = 1. ) index_generator.build_isotropic_index_set() indices = index_generator.get_all_indices() true_indices = [[0, 0, 0], [1, 0, 0], [0, 1, 0], [0, 0, 1], [2, 0, 0], [1, 1, 0], [0, 2, 0], [1, 0, 1], [0, 1, 1], [0, 0, 2]] indices_list = [] for i, index in enumerate( indices ): indices_list.append( index.uncompressed_data( num_dims ) ) indices = unique_matrix_rows( numpy.array( indices_list )) true_indices = unique_matrix_rows( numpy.array( true_indices ) ) assert numpy.allclose( true_indices, indices ) # num_dims = 2, max_level = 3 index_norm_order = 0.5 num_dims = 2 max_level = 3 index_generator = IndexGenerator() index_generator.set_parameters( num_dims, max_level, index_norm_order = 0.5, priority_weight = 1. ) index_generator.build_isotropic_index_set() indices = index_generator.get_all_indices() true_indices = [[0, 0], [1, 0], [2, 0], [3, 0], [0, 1], [0, 2], [0, 3]] indices_list = [] for i, index in enumerate( indices ): indices_list.append( index.uncompressed_data( num_dims ) ) indices = unique_matrix_rows( numpy.array( indices_list ) ) true_indices = unique_matrix_rows( numpy.array( true_indices ) ) assert numpy.allclose( true_indices, indices ) # num_dims = 2, max_level = 6 index_norm_order = 0.5 num_dims = 2 max_level = 6 index_generator = IndexGenerator() index_generator.set_parameters( num_dims, max_level, index_norm_order = 0.5, priority_weight = 1. ) index_generator.build_isotropic_index_set() indices = index_generator.get_all_indices() true_indices = [[0, 0], [1, 0], [2, 0], [3, 0], [4, 0], [5, 0], [6, 0], [1, 1], [2, 1], [1, 2], [0, 1], [0, 2], [0, 3], [0, 4], [0, 5], [0, 6]] indices_list = [] for i, index in enumerate( indices ): indices_list.append( index.uncompressed_data( num_dims ) ) indices = unique_matrix_rows( numpy.array( indices_list ) ) true_indices = unique_matrix_rows( numpy.array( true_indices ) ) assert numpy.allclose( true_indices, indices )