In [1]:
from HelmholtzSolver2D import *
from ExampleBoundaries import Square

# Test Problem 1
# Dirichlet boundary condition with phi chose to be the same
# as a point-source at the center of the square.
#
solver = HelmholtzSolver2D(*(Square()))

boundaryCondition = BoundaryCondition(solver.aElement.shape[0])
boundaryCondition.alpha.fill(1.0)
boundaryCondition.beta.fill(0.0)

frequency = 400.0 # frequency [Hz]
k = frequencyToWavenumber(frequency)

centerSquare = np.array([0.05, 0.05], dtype=np.float32)
for i in range(solver.aCenters.shape[0]):
    r = norm(solver.aCenters[i, :] - centerSquare)
    boundaryCondition.f[i] = 1j * hankel1(0, k*r) / 4.0

boundaryIncidence = BoundaryIncidence(solver.aElement.shape[0])
boundaryIncidence.phi.fill(0.0)
boundaryIncidence.v.fill(0.0)

exteriorPoints = np.array([[0.0000,  0.1500],
                           [0.0500,  0.1500],
                           [0.1000,  0.1500],
                           [0.0500, -0.1000]], dtype=np.float32)

exteriorIncidentPhi = np.zeros(exteriorPoints.shape[0], dtype=np.complex64)

boundarySolution = solver.solveExteriorBoundary(k, boundaryCondition, boundaryIncidence)
exteriorPhi = solver.solveExterior(boundarySolution, exteriorIncidentPhi, exteriorPoints)
print "\n\nTest Problem 1"
print "==============\n"
print boundarySolution
printInteriorSolution(boundarySolution, exteriorPhi)

# Test Problem 2
# Neumann boundary condition with v chosen to be the same
# as a point-source at the center of the square.
#
boundaryCondition.alpha.fill(0.0)
boundaryCondition.beta.fill(1.0)

centerSquare = np.array([0.05, 0.05], dtype=np.float32)
for i in range(solver.aCenters.shape[0]):
    x = solver.aCenters[i, :]
    r = x - centerSquare
    R = norm(r)
    if x[0] <= 1e-7:
        drbdn = -r[0]/R
    elif x[0] >= 0.1 - 1e-7:
        drbdn = r[0]/R
    elif x[1] <= 1e-7:
        drbdn = -r[1]/R
    elif x[1] >= 0.1 - 1e-7:
        drbdn = r[1]/R
    else:
        assert False, "r = ({}, {}) not properly handled.".format(r[0], r[1])
    boundaryCondition.f[i] = -1j * k * drbdn * hankel1(1, k*R) / 4.0

boundarySolution = solver.solveExteriorBoundary(k, boundaryCondition, boundaryIncidence)
exteriorPhi = solver.solveExterior(boundarySolution, exteriorIncidentPhi, exteriorPoints)
print "\n\nTest Problem 2"
print "==============\n"
print boundarySolution
printInteriorSolution(boundarySolution, exteriorPhi)

# Test Problem 3
# Neumann boundary condition with v=0 on the full boundary.
# The 400Hz field in this case is generated by a point source
# at (0.5, 0.25)
boundaryCondition.alpha.fill(0.0)
boundaryCondition.beta.fill(1.0)
boundaryCondition.f.fill(0.0)

sourcePoint = np.array([0.5, 0.25], dtype=np.float32)
print "sourcePoint = ", sourcePoint
for i in range(solver.aCenters.shape[0]):
    x = solver.aCenters[i, :]
    r = x - sourcePoint
    R = norm(r)
    boundaryIncidence.phi[i] = 1j * hankel1(0, k*R) / 4.0
    if x[0] <= 1e-7:
        drbdn = -r[0]/R
    elif x[0] >= 0.1 - 1e-7:
        drbdn = r[0]/R
    elif x[1] <= 1e-7:
        drbdn = -r[1]/R
    elif x[1] >= 0.1 - 1e-7:
        drbdn = r[1]/R
    else:
        assert False, "r = ({}, {}) not properly handled.".format(r[0], r[1])
    boundaryIncidence.v[i] = -1j * k * drbdn * hankel1(1, k*R) / 4.0

boundarySolution = solver.solveExteriorBoundary(k, boundaryCondition, boundaryIncidence)

for i in range(exteriorPoints.shape[0]):
    R = norm(exteriorPoints[i, :] - sourcePoint)
    exteriorIncidentPhi[i] = 1j * hankel1(0, k*R) / 4.0
    
exteriorPhi = solver.solveExterior(boundarySolution, exteriorIncidentPhi, exteriorPoints)
print "\n\nTest Problem 3"
print "==============\n"
print boundarySolution
printInteriorSolution(boundarySolution, exteriorPhi)



Test Problem 1
==============

Density of medium:      1.205 kg/m^3
Speed of sound:         344.0 m/s
Wavenumber (Frequency): 7.30602942695 (400.0 Hz)

index          Potential                   Pressure                    Velocity              Intensity
    1   1.1657e-01+  2.3549e-01i   -7.1318e+02+  3.5303e+02i   -1.8591e+00+ -2.2398e-01i     6.2340e+02
    2   1.3824e-01+  2.3854e-01i   -7.2240e+02+  4.1865e+02i   -2.6194e+00+ -3.1019e-01i     8.8120e+02
    3   1.5594e-01+  2.4058e-01i   -7.2859e+02+  4.7227e+02i   -3.1497e+00+ -3.2510e-01i     1.0706e+03
    4   1.6620e-01+  2.4160e-01i   -7.3169e+02+  5.0335e+02i   -3.4997e+00+ -3.2924e-01i     1.1975e+03
    5   1.6620e-01+  2.4160e-01i   -7.3169e+02+  5.0335e+02i   -3.4997e+00+ -3.2927e-01i     1.1975e+03
    6   1.5594e-01+  2.4058e-01i   -7.2859e+02+  4.7227e+02i   -3.1499e+00+ -3.2572e-01i     1.0706e+03
    7   1.3824e-01+  2.3854e-01i   -7.2240e+02+  4.1865e+02i   -2.6195e+00+ -3.1064e-01i     8.8114e+02
    8   1.1657e-01+  2.3549e-01i   -7.1318e+02+  3.5303e+02i   -1.8592e+00+ -2.2461e-01i     6.2332e+02
    9   1.1657e-01+  2.3549e-01i   -7.1318e+02+  3.5303e+02i   -1.8591e+00+ -2.2417e-01i     6.2335e+02
   10   1.3824e-01+  2.3854e-01i   -7.2240e+02+  4.1865e+02i   -2.6193e+00+ -3.1019e-01i     8.8118e+02
   11   1.5594e-01+  2.4058e-01i   -7.2859e+02+  4.7227e+02i   -3.1496e+00+ -3.2504e-01i     1.0706e+03
   12   1.6620e-01+  2.4160e-01i   -7.3169e+02+  5.0335e+02i   -3.4997e+00+ -3.2916e-01i     1.1975e+03
   13   1.6620e-01+  2.4160e-01i   -7.3169e+02+  5.0335e+02i   -3.4997e+00+ -3.2919e-01i     1.1975e+03
   14   1.5594e-01+  2.4058e-01i   -7.2859e+02+  4.7227e+02i   -3.1499e+00+ -3.2567e-01i     1.0706e+03
   15   1.3824e-01+  2.3854e-01i   -7.2240e+02+  4.1865e+02i   -2.6194e+00+ -3.1065e-01i     8.8112e+02
   16   1.1657e-01+  2.3549e-01i   -7.1318e+02+  3.5303e+02i   -1.8591e+00+ -2.2481e-01i     6.2327e+02
   17   1.1657e-01+  2.3549e-01i   -7.1318e+02+  3.5303e+02i   -1.8591e+00+ -2.2480e-01i     6.2327e+02
   18   1.3824e-01+  2.3854e-01i   -7.2240e+02+  4.1865e+02i   -2.6194e+00+ -3.1065e-01i     8.8112e+02
   19   1.5594e-01+  2.4058e-01i   -7.2859e+02+  4.7227e+02i   -3.1499e+00+ -3.2566e-01i     1.0706e+03
   20   1.6620e-01+  2.4160e-01i   -7.3169e+02+  5.0335e+02i   -3.4996e+00+ -3.2916e-01i     1.1975e+03
   21   1.6620e-01+  2.4160e-01i   -7.3169e+02+  5.0335e+02i   -3.4997e+00+ -3.2918e-01i     1.1975e+03
   22   1.5594e-01+  2.4058e-01i   -7.2859e+02+  4.7227e+02i   -3.1497e+00+ -3.2518e-01i     1.0706e+03
   23   1.3824e-01+  2.3854e-01i   -7.2240e+02+  4.1865e+02i   -2.6193e+00+ -3.1019e-01i     8.8118e+02
   24   1.1657e-01+  2.3549e-01i   -7.1318e+02+  3.5303e+02i   -1.8590e+00+ -2.2417e-01i     6.2335e+02
   25   1.1657e-01+  2.3549e-01i   -7.1318e+02+  3.5303e+02i   -1.8592e+00+ -2.2461e-01i     6.2332e+02
   26   1.3824e-01+  2.3854e-01i   -7.2240e+02+  4.1865e+02i   -2.6195e+00+ -3.1065e-01i     8.8113e+02
   27   1.5594e-01+  2.4058e-01i   -7.2859e+02+  4.7227e+02i   -3.1499e+00+ -3.2572e-01i     1.0706e+03
   28   1.6620e-01+  2.4160e-01i   -7.3169e+02+  5.0335e+02i   -3.4997e+00+ -3.2924e-01i     1.1975e+03
   29   1.6620e-01+  2.4160e-01i   -7.3169e+02+  5.0335e+02i   -3.4997e+00+ -3.2926e-01i     1.1975e+03
   30   1.5594e-01+  2.4058e-01i   -7.2859e+02+  4.7227e+02i   -3.1497e+00+ -3.2523e-01i     1.0706e+03
   31   1.3824e-01+  2.3854e-01i   -7.2240e+02+  4.1865e+02i   -2.6194e+00+ -3.1018e-01i     8.8120e+02
   32   1.1657e-01+  2.3549e-01i   -7.1318e+02+  3.5303e+02i   -1.8591e+00+ -2.2397e-01i     6.2340e+02


Sound pressure at the sample points

index          Potential                    Pressure               Magnitude         Phase

    1   1.9746e-02+  2.0788e-01i   -6.2956e+02+  5.9800e+01i     1.5000e+02 dB       3.0469
    2   4.1440e-02+  2.1538e-01i   -6.5227e+02+  1.2550e+02i     1.5043e+02 dB       2.9515
    3   1.9745e-02+  2.0788e-01i   -6.2957e+02+  5.9798e+01i     1.5000e+02 dB       3.0469
    4  -3.7481e-02+  1.7918e-01i   -5.4265e+02+ -1.1351e+02i     1.4886e+02 dB       -2.9354


Test Problem 2
==============

Density of medium:      1.205 kg/m^3
Speed of sound:         344.0 m/s
Wavenumber (Frequency): 7.30602942695 (400.0 Hz)

index          Potential                   Pressure                    Velocity              Intensity
    1   1.1773e-01+  2.4035e-01i   -7.2788e+02+  3.5654e+02i   -2.0742e+00+ -3.2388e-01i     6.9716e+02
    2   1.3703e-01+  2.4258e-01i   -7.3465e+02+  4.1501e+02i   -2.5879e+00+ -3.2593e-01i     8.8296e+02
    3   1.5395e-01+  2.4424e-01i   -7.3968e+02+  4.6623e+02i   -3.1121e+00+ -3.2731e-01i     1.0747e+03
    4   1.6396e-01+  2.4510e-01i   -7.4229e+02+  4.9655e+02i   -3.4687e+00+ -3.2799e-01i     1.2060e+03
    5   1.6396e-01+  2.4510e-01i   -7.4228e+02+  4.9655e+02i   -3.4687e+00+ -3.2799e-01i     1.2060e+03
    6   1.5394e-01+  2.4423e-01i   -7.3964e+02+  4.6622e+02i   -3.1121e+00+ -3.2731e-01i     1.0746e+03
    7   1.3703e-01+  2.4256e-01i   -7.3461e+02+  4.1500e+02i   -2.5879e+00+ -3.2593e-01i     8.8290e+02
    8   1.1773e-01+  2.4033e-01i   -7.2784e+02+  3.5654e+02i   -2.0742e+00+ -3.2388e-01i     6.9711e+02
    9   1.1773e-01+  2.4033e-01i   -7.2785e+02+  3.5655e+02i   -2.0742e+00+ -3.2388e-01i     6.9712e+02
   10   1.3704e-01+  2.4257e-01i   -7.3463e+02+  4.1502e+02i   -2.5879e+00+ -3.2593e-01i     8.8292e+02
   11   1.5395e-01+  2.4423e-01i   -7.3966e+02+  4.6624e+02i   -3.1121e+00+ -3.2731e-01i     1.0747e+03
   12   1.6397e-01+  2.4510e-01i   -7.4228e+02+  4.9657e+02i   -3.4687e+00+ -3.2799e-01i     1.2059e+03
   13   1.6397e-01+  2.4509e-01i   -7.4227e+02+  4.9657e+02i   -3.4687e+00+ -3.2799e-01i     1.2059e+03
   14   1.5395e-01+  2.4422e-01i   -7.3962e+02+  4.6624e+02i   -3.1121e+00+ -3.2731e-01i     1.0746e+03
   15   1.3704e-01+  2.4256e-01i   -7.3458e+02+  4.1502e+02i   -2.5879e+00+ -3.2593e-01i     8.8286e+02
   16   1.1773e-01+  2.4032e-01i   -7.2780e+02+  3.5655e+02i   -2.0742e+00+ -3.2388e-01i     6.9707e+02
   17   1.1773e-01+  2.4032e-01i   -7.2780e+02+  3.5655e+02i   -2.0742e+00+ -3.2388e-01i     6.9707e+02
   18   1.3704e-01+  2.4256e-01i   -7.3458e+02+  4.1502e+02i   -2.5879e+00+ -3.2593e-01i     8.8286e+02
   19   1.5395e-01+  2.4422e-01i   -7.3962e+02+  4.6624e+02i   -3.1121e+00+ -3.2731e-01i     1.0746e+03
   20   1.6397e-01+  2.4509e-01i   -7.4226e+02+  4.9657e+02i   -3.4687e+00+ -3.2799e-01i     1.2059e+03
   21   1.6397e-01+  2.4510e-01i   -7.4227e+02+  4.9657e+02i   -3.4687e+00+ -3.2799e-01i     1.2059e+03
   22   1.5395e-01+  2.4423e-01i   -7.3965e+02+  4.6624e+02i   -3.1121e+00+ -3.2731e-01i     1.0746e+03
   23   1.3704e-01+  2.4257e-01i   -7.3462e+02+  4.1502e+02i   -2.5879e+00+ -3.2593e-01i     8.8292e+02
   24   1.1773e-01+  2.4033e-01i   -7.2785e+02+  3.5655e+02i   -2.0742e+00+ -3.2388e-01i     6.9712e+02
   25   1.1773e-01+  2.4033e-01i   -7.2783e+02+  3.5654e+02i   -2.0742e+00+ -3.2388e-01i     6.9711e+02
   26   1.3703e-01+  2.4256e-01i   -7.3460e+02+  4.1501e+02i   -2.5879e+00+ -3.2593e-01i     8.8289e+02
   27   1.5395e-01+  2.4423e-01i   -7.3964e+02+  4.6622e+02i   -3.1121e+00+ -3.2731e-01i     1.0746e+03
   28   1.6396e-01+  2.4510e-01i   -7.4228e+02+  4.9655e+02i   -3.4687e+00+ -3.2799e-01i     1.2059e+03
   29   1.6396e-01+  2.4510e-01i   -7.4229e+02+  4.9655e+02i   -3.4687e+00+ -3.2799e-01i     1.2060e+03
   30   1.5395e-01+  2.4424e-01i   -7.3967e+02+  4.6623e+02i   -3.1121e+00+ -3.2731e-01i     1.0747e+03
   31   1.3703e-01+  2.4258e-01i   -7.3465e+02+  4.1501e+02i   -2.5879e+00+ -3.2593e-01i     8.8295e+02
   32   1.1773e-01+  2.4034e-01i   -7.2788e+02+  3.5654e+02i   -2.0742e+00+ -3.2388e-01i     6.9716e+02


Sound pressure at the sample points

index          Potential                    Pressure               Magnitude         Phase

    1   1.8129e-02+  2.1040e-01i   -6.3720e+02+  5.4903e+01i     1.5010e+02 dB       3.0556
    2   3.9725e-02+  2.1805e-01i   -6.6037e+02+  1.2031e+02i     1.5052e+02 dB       2.9614
    3   1.8130e-02+  2.1040e-01i   -6.3720e+02+  5.4906e+01i     1.5010e+02 dB       3.0556
    4  -3.9574e-02+  1.8083e-01i   -5.4764e+02+ -1.1985e+02i     1.4895e+02 dB       -2.9261
sourcePoint =  [ 0.5   0.25]


Test Problem 3
==============

Density of medium:      1.205 kg/m^3
Speed of sound:         344.0 m/s
Wavenumber (Frequency): 7.30602942695 (400.0 Hz)

index          Potential                   Pressure                    Velocity              Intensity
    1   4.8578e-02+ -8.0419e-02i    2.4355e+02+  1.4712e+02i    0.0000e+00+  0.0000e+00i     0.0000e+00
    2   5.0097e-02+ -8.0373e-02i    2.4341e+02+  1.5172e+02i    0.0000e+00+  0.0000e+00i     0.0000e+00
    3   4.8870e-02+ -8.1157e-02i    2.4578e+02+  1.4800e+02i    0.0000e+00+  0.0000e+00i     0.0000e+00
    4   4.5675e-02+ -8.2386e-02i    2.4951e+02+  1.3833e+02i    0.0000e+00+  0.0000e+00i     0.0000e+00
    5   4.0648e-02+ -8.3906e-02i    2.5411e+02+  1.2310e+02i    0.0000e+00+  0.0000e+00i     0.0000e+00
    6   3.3634e-02+ -8.5632e-02i    2.5934e+02+  1.0186e+02i    0.0000e+00+  0.0000e+00i     0.0000e+00
    7   2.4099e-02+ -8.7528e-02i    2.6508e+02+  7.2982e+01i    0.0000e+00+  0.0000e+00i     0.0000e+00
    8   1.0268e-02+ -8.9631e-02i    2.7145e+02+  3.1095e+01i    0.0000e+00+  0.0000e+00i     0.0000e+00
    9  -2.5264e-02+ -9.2588e-02i    2.8040e+02+ -7.6512e+01i    0.0000e+00+  0.0000e+00i     0.0000e+00
   10  -4.3971e-02+ -9.2523e-02i    2.8021e+02+ -1.3316e+02i    0.0000e+00+  0.0000e+00i     0.0000e+00
   11  -5.9834e-02+ -9.1189e-02i    2.7617e+02+ -1.8121e+02i    0.0000e+00+  0.0000e+00i     0.0000e+00
   12  -7.4174e-02+ -8.8827e-02i    2.6901e+02+ -2.2463e+02i    0.0000e+00+  0.0000e+00i     0.0000e+00
   13  -8.7388e-02+ -8.5550e-02i    2.5909e+02+ -2.6465e+02i    0.0000e+00+  0.0000e+00i     0.0000e+00
   14  -9.9658e-02+ -8.1439e-02i    2.4664e+02+ -3.0181e+02i    0.0000e+00+  0.0000e+00i     0.0000e+00
   15  -1.1114e-01+ -7.6560e-02i    2.3186e+02+ -3.3658e+02i    0.0000e+00+  0.0000e+00i     0.0000e+00
   16  -1.2218e-01+ -7.0903e-02i    2.1473e+02+ -3.7001e+02i    0.0000e+00+  0.0000e+00i     0.0000e+00
   17  -1.3661e-01+ -6.3174e-02i    1.9132e+02+ -4.1373e+02i    0.0000e+00+  0.0000e+00i     0.0000e+00
   18  -1.3889e-01+ -6.2689e-02i    1.8985e+02+ -4.2062e+02i    0.0000e+00+  0.0000e+00i     0.0000e+00
   19  -1.3785e-01+ -6.3928e-02i    1.9361e+02+ -4.1748e+02i    0.0000e+00+  0.0000e+00i     0.0000e+00
   20  -1.3436e-01+ -6.6213e-02i    2.0053e+02+ -4.0691e+02i    0.0000e+00+  0.0000e+00i     0.0000e+00
   21  -1.2859e-01+ -6.9255e-02i    2.0974e+02+ -3.8942e+02i    0.0000e+00+  0.0000e+00i     0.0000e+00
   22  -1.2040e-01+ -7.2895e-02i    2.2076e+02+ -3.6462e+02i    0.0000e+00+  0.0000e+00i     0.0000e+00
   23  -1.0928e-01+ -7.7063e-02i    2.3339e+02+ -3.3097e+02i    0.0000e+00+  0.0000e+00i     0.0000e+00
   24  -9.3510e-02+ -8.1901e-02i    2.4804e+02+ -2.8320e+02i    0.0000e+00+  0.0000e+00i     0.0000e+00
   25  -5.5637e-02+ -9.0386e-02i    2.7373e+02+ -1.6850e+02i    0.0000e+00+  0.0000e+00i     0.0000e+00
   26  -3.7048e-02+ -9.2681e-02i    2.8068e+02+ -1.1220e+02i    0.0000e+00+  0.0000e+00i     0.0000e+00
   27  -2.1780e-02+ -9.3368e-02i    2.8276e+02+ -6.5961e+01i    0.0000e+00+  0.0000e+00i     0.0000e+00
   28  -8.2392e-03+ -9.2980e-02i    2.8159e+02+ -2.4952e+01i    0.0000e+00+  0.0000e+00i     0.0000e+00
   29   4.0913e-03+ -9.1743e-02i    2.7784e+02+  1.2391e+01i    0.0000e+00+  0.0000e+00i     0.0000e+00
   30   1.5461e-02+ -8.9804e-02i    2.7197e+02+  4.6825e+01i    0.0000e+00+  0.0000e+00i     0.0000e+00
   31   2.6047e-02+ -8.7279e-02i    2.6432e+02+  7.8883e+01i    0.0000e+00+  0.0000e+00i     0.0000e+00
   32   3.6140e-02+ -8.4253e-02i    2.5516e+02+  1.0945e+02i    0.0000e+00+  0.0000e+00i     0.0000e+00


Sound pressure at the sample points

index          Potential                    Pressure               Magnitude         Phase

    1  -3.2577e-02+ -9.5935e-02i    2.9054e+02+ -9.8659e+01i     1.4372e+02 dB       -0.3274
    2  -8.2847e-02+ -8.8279e-02i    2.6735e+02+ -2.5090e+02i     1.4526e+02 dB       -0.7537
    3  -1.2381e-01+ -6.8186e-02i    2.0650e+02+ -3.7495e+02i     1.4661e+02 dB       -1.0674
    4   2.1286e-02+ -8.8775e-02i    2.6885e+02+  6.4465e+01i     1.4281e+02 dB       0.2353

Copyright (C) 2017 Frank Jargstorff

This file is part of the AcousticBEM library.

AcousticBEM is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

AcousticBEM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with AcousticBEM. If not, see http://www.gnu.org/licenses/.