예제 #1
0
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
예제 #2
0
    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 )