Propagation in shalow waterΒΆ

Jupiter notebook specific imports

[ ]:
import os
os.chdir('../../../')
import warnings
warnings.filterwarnings('ignore')

PyWaveProp imports

[2]:
from uwa.source import GaussSource
from uwa.environment import UnderwaterEnvironment, Bathymetry
from uwa.sspade import UWASSpadeComputationalParams, uwa_ss_pade
from uwa.vis import AcousticPressureFieldVisualiser2d

Preparing environment

[3]:
max_range_m = 3000
env = UnderwaterEnvironment(
    sound_speed_profile_m_s=lambda x, z: 1500 + z*0,
    bottom_profile=Bathymetry(
        ranges_m=[0, max_range_m],
        depths_m=[300, 300]),
    bottom_sound_speed_m_s = 1700,
    bottom_density_g_cm = 1.5,
    bottom_attenuation_dm_lambda = 0.01
)

Preparing transmitting antenna

[4]:
src = GaussSource(
    freq_hz=1000,
    depth_m=100,
    beam_width_deg=1,
    elevation_angle_deg=-30,
    multiplier=5
)

Calculating the acoustics pressure field

[5]:
params = UWASSpadeComputationalParams(
    max_range_m=max_range_m,
    max_depth_m=500,
    dx_m=1, # output grid steps affects only on the resulting field, NOT the computational grid
    dz_m=1,
)
[6]:
field = uwa_ss_pade(
    src=src,
    env=env,
    params=params
)

Visualising the results

Two dimensional distribution of the field amplitude

[7]:
vis = AcousticPressureFieldVisualiser2d(field=field, env=env)
vis.plot2d(min_val=-50, max_val=-5, grid=True, show_terrain=True).show()
../../_images/notebooks_uwa_uwa_shallow_water_14_0.png
[8]:
src = GaussSource(
    freq_hz=200,
    depth_m=150,
    beam_width_deg=10,
    elevation_angle_deg=10,
    multiplier=5
)
[9]:
field = uwa_ss_pade(
    src=src,
    env=env,
    params=params
)
[10]:
vis = AcousticPressureFieldVisualiser2d(field=field, env=env)
vis.plot2d(-50, -5, grid=True, show_terrain=True).show()
../../_images/notebooks_uwa_uwa_shallow_water_17_0.png
[11]:
env = UnderwaterEnvironment(
    sound_speed_profile_m_s=lambda x, z: 1500 + z*0,
    bottom_profile=Bathymetry(
        ranges_m=[0, max_range_m],
        depths_m=[400, 0]),
    bottom_sound_speed_m_s = 1700,
    bottom_density_g_cm = 1.5,
    bottom_attenuation_dm_lambda = 0.05
)
[12]:
field = uwa_ss_pade(
    src=src,
    env=env,
    params=params
)
[13]:
vis = AcousticPressureFieldVisualiser2d(field=field, env=env)
plt = vis.plot2d(-50, -5, grid=True, show_terrain=True)
plt.show()
../../_images/notebooks_uwa_uwa_shallow_water_20_0.png
[13]: