Exemple #1
0
    def test_assemble_subblock_dense_complex_operator(self):
        from bempp.api import as_matrix, assemble_dense_block
        import numpy as np
        import bempp

        bempp.api.global_parameters.assembly.boundary_operator_assembly_type = 'dense'

        operator = self._complex_operator

        actual = as_matrix(assemble_dense_block(self._complex_operator, self._rows, self._cols,
                                                operator.domain, operator.dual_to_range))

        expected = as_matrix(operator.weak_form())[self._rows[0]:self._rows[1], self._cols[0]:self._cols[1]]

        self.assertAlmostEqual(np.linalg.norm(actual - expected), 0)
Exemple #2
0
    def test_assemble_complete_dense_real_operator(self):
        from bempp.api import as_matrix, assemble_dense_block
        import numpy as np
        import bempp

        bempp.api.global_parameters.assembly.boundary_operator_assembly_type = 'dense'

        operator = self._real_operator

        actual = as_matrix(assemble_dense_block(self._real_operator, bempp.api.ALL, bempp.api.ALL,
                                                operator.domain, operator.dual_to_range))

        expected = as_matrix(operator.weak_form())

        self.assertEqual(258,actual.shape[0])
        self.assertEqual(258,actual.shape[1])
        self.assertAlmostEqual(np.linalg.norm(actual - expected), 0)
    def test_assemble_complete_dense_complex_operator(self):
        """Assemble a complex dense operator."""
        from bempp.api import as_matrix, assemble_dense_block
        import numpy as np
        import bempp.api

        bempp.api.global_parameters.assembly.boundary_operator_assembly_type = \
            'dense'

        operator = self._complex_operator
        actual = as_matrix(
            assemble_dense_block(self._complex_operator, bempp.api.ALL,
                                 bempp.api.ALL))

        expected = as_matrix(operator.weak_form())

        self.assertAlmostEqual(np.linalg.norm(actual - expected), 0)
Exemple #4
0
    def test_assemble_complete_dense_real_operator_non_square(self):
        "assemble an opperator with a non square matrix"
        from bempp.api import as_matrix, assemble_dense_block
        import numpy as np
        import bempp

        bempp.api.global_parameters.assembly.boundary_operator_assembly_type = 'dense'

        operator = self._real_operator_2

        actual = as_matrix(assemble_dense_block(operator, bempp.api.ALL, bempp.api.ALL,
                                                operator.domain, operator.dual_to_range))

        expected = as_matrix(operator.weak_form())

        self.assertEqual(512, actual.shape[0])
        self.assertEqual(258, actual.shape[1])
        np.testing.assert_allclose(actual, expected)
    def test_assemble_subblock_dense_real_operator(self):
        """Assemble a subblock of a dense real operator."""
        from bempp.api import as_matrix, assemble_dense_block
        import numpy as np
        import bempp

        bempp.api.global_parameters.assembly.boundary_operator_assembly_type = \
            'dense'

        operator = self._real_operator

        actual = as_matrix(
            assemble_dense_block(self._real_operator, self._rows, self._cols))

        expected = as_matrix(operator.weak_form())[self._rows[0]:self._rows[1],
                                                   self._cols[0]:self._cols[1]]

        self.assertAlmostEqual(np.linalg.norm(actual - expected), 0)
    def test_assemble_complete_dense_real_operator_non_square(self):
        "Assemble an opperator with a non square matrix"
        from bempp.api import as_matrix, assemble_dense_block
        import numpy as np
        import bempp

        bempp.api.global_parameters.assembly.boundary_operator_assembly_type = \
            'dense'

        operator = self._real_operator_2

        actual = as_matrix(
            assemble_dense_block(operator, bempp.api.ALL, bempp.api.ALL))

        expected = as_matrix(operator.weak_form())

        self.assertEqual(512, actual.shape[0])
        self.assertEqual(258, actual.shape[1])
        np.testing.assert_allclose(actual, expected)