Hi
I simulated a point velocity source in a 3D medium with sound properties of soft tissue. When I run it, I have the pressure of 0.02571 in 2*dx after source place and the pressure of 0.0002777 in 3*dx. I think that the attenuation seems to be a lot. Isn’t it? According to the simple formula of attenuation after 1*dx the pressure becomes 0.9987 of first one. I appreciate if you help me.
This is my code:
(clear all;
% simulation settings
DATA_CAST = 'single';
RUN_SIMULATION = true;
USE_STATISTICS = true;
medium.alpha_mode='no_dispersion';
% =========================================================================
% DEFINE THE K-WAVE GRID
% =========================================================================
PML_X_SIZE = 20; % [grid points]
PML_Y_SIZE = 20; % [grid points]
PML_Z_SIZE = 20;
% set total number of grid points not including the PML
Nx = 326; % [grid points]
Ny = 250; % [grid points]
Nz = 126; % [grid points]
% set desired grid size in the x-direction not including the PML
dx =4e-04; %6.355932203389830e-04; % [m]
dy = dx; % [m]
dz = dx; % [m]
% set desired grid size in the x-direction not including the PML
x = dx*Nx; % [m]
% create the k-space grid
kgrid = makeGrid(Nx, dx, Ny, dy, Nz, dz);
c0 = 1550;
% =========================================================================
% DEFINE THE MEDIUM PARAMETERS
% =========================================================================
% define the properties of the propagation medium
medium.alpha_coeff=0.58;
medium.alpha_power=1;
medium.sound_speed = 1550; % [m/s]
medium.density = 1030; % [kg/m^3]
% create the time array
Nt = 600;
dt =7e-8;
kgrid.t_array = (1:Nt)*dt;
% =========================================================================
% DEFINE THE ULTRASOUND TRANSDUCER
% =========================================================================
y1=126;
x1=1;
tr = zeros(Nx,Ny,Nz);
k=0;
tr(x1,y1,Nz/2)=1;
voxelPlot(tr);
source_positions = find(tr == 1);
source.u_mask = zeros(Nx, Ny,Nz);
source.u_mask(source_positions) = 1;
% =========================================================================
% DEFINE THE INPUT SIGNAL
% =========================================================================
% define a toneBurst source
source_strength = 1; % [Pa]
tone_burst_freq = 0.5e6; % [Hz]
tone_burst_cycles = 1;
source_signal=toneBurst(1/kgrid.dt, tone_burst_freq, tone_burst_cycles );
source.ux = (source_strength./(1550*1030)).*source_signal;
% =========================================================================
% DEFINE SENSOR MASK
% =========================================================================
% create a binary sensor mask with four detection positions
sensor.mask = zeros(Nx, Ny, Nz);
sensor.mask(1:326,1:250,Nz/2) = 1;
sensor.record = {'I','p'};
% =========================================================================
% RUN THE SIMULATION
% =========================================================================
% set the input settings
input_args = {...
'DataCast', DATA_CAST, 'DataRecast', true ,'PlotLayout', true, 'RecordMovie', true};
sensor_data = kspaceFirstOrder3D(kgrid, medium, source, sensor, input_args{:});)