Exemple #1
0
    def test_defaults(self):

        T = type(ConstantDensityAcousticWave(self.m1))
        assert T == ConstantDensityAcousticTimeScalar_1D_numpy

        T = type(ConstantDensityAcousticWave(self.m2))
        assert T == ConstantDensityAcousticTimeScalar_2D_numpy

        T = type(ConstantDensityAcousticWave(self.m3))
        assert T == ConstantDensityAcousticTimeScalar_3D_numpy
Exemple #2
0
    def test_alternate_kernel(self):

        T = type(
            ConstantDensityAcousticWave(self.m1, kernel_implementation='cpp'))
        assert T == ConstantDensityAcousticTimeScalar_1D_cpp

        T = type(
            ConstantDensityAcousticWave(self.m2, kernel_implementation='cpp'))
        assert T == ConstantDensityAcousticTimeScalar_2D_cpp

        T = type(
            ConstantDensityAcousticWave(self.m3, kernel_implementation='cpp'))
        assert T == ConstantDensityAcousticTimeScalar_3D_cpp

        T = type(
            ConstantDensityAcousticWave(self.m1, kernel_implementation='omp'))
        assert T == ConstantDensityAcousticTimeScalar_1D_cpp

        T = type(
            ConstantDensityAcousticWave(self.m2, kernel_implementation='omp'))
        assert T == ConstantDensityAcousticTimeScalar_2D_cpp

        T = type(
            ConstantDensityAcousticWave(self.m3, kernel_implementation='omp'))
        assert T == ConstantDensityAcousticTimeScalar_3D_cpp

        with pytest.raises(NoMatchError):
            T = type(
                ConstantDensityAcousticWave(self.m1,
                                            equation_formulation='ode',
                                            kernel_implementation='cpp'))
Exemple #3
0
    def test_spatial_accuracy(self):

        T = type(
            ConstantDensityAcousticWave(self.m1,
                                        kernel_implementation='numpy',
                                        spatial_accuracy_order=16))
        assert T == ConstantDensityAcousticTimeScalar_1D_numpy

        T = type(
            ConstantDensityAcousticWave(self.m1,
                                        kernel_implementation='cpp',
                                        spatial_accuracy_order=8))
        assert T == ConstantDensityAcousticTimeScalar_1D_cpp

        with pytest.raises(NoMatchError):
            T = type(
                ConstantDensityAcousticWave(self.m1,
                                            equation_formulation='scalar',
                                            kernel_implementation='cpp',
                                            spatial_accuracy_order=16))

        with pytest.raises(NoMatchError):
            T = type(
                ConstantDensityAcousticWave(self.m1, spatial_accuracy_order=3))
Exemple #4
0
    def test_ode(self):

        S = ConstantDensityAcousticWave(self.m1, equation_formulation='ode')
        T = type(S)
        assert T == ConstantDensityAcousticTimeODE_1D
        assert S.temporal_accuracy_order == 4
        assert S.temporal_integrator == 'rk'

        T = type(
            ConstantDensityAcousticWave(self.m2, equation_formulation='ode'))
        assert T == ConstantDensityAcousticTimeODE_2D

        T = type(
            ConstantDensityAcousticWave(self.m3, equation_formulation='ode'))
        assert T == ConstantDensityAcousticTimeODE_3D

        T = type(
            ConstantDensityAcousticWave(self.m2,
                                        equation_formulation='ode',
                                        temporal_integrator='rk'))
        assert T == ConstantDensityAcousticTimeODE_2D

        S = ConstantDensityAcousticWave(self.m2,
                                        equation_formulation='ode',
                                        temporal_integrator='rk',
                                        temporal_accuracy_order=2)
        T = type(S)
        assert T == ConstantDensityAcousticTimeODE_2D
        assert S.temporal_accuracy_order == 2

        with pytest.raises(NoMatchError):
            T = type(
                ConstantDensityAcousticWave(self.m2,
                                            equation_formulation='ode',
                                            temporal_integrator='rk',
                                            temporal_accuracy_order=6))
Exemple #5
0
    def test_nonsupport_keywords(self):

        T = type(
            ConstantDensityAcousticWave(self.m2,
                                        not_a_support_keyword='random-text'))
        assert T == ConstantDensityAcousticTimeScalar_2D_numpy