Hi,I want to simulate transcranial transmission of ultrasound.Here the brain consist of two different types of tissues, which are general tissue(speed=1500,desity=1040,absorption coefficient=0.6) and bone(speed=3200,desity=1990,absorption coefficient=3.5).Can the following code simulate the ultrasound transmission in heterogeneous medium? Does the simulation conclude the refraction and reflection in the
interface between bone and general tissue? Do I need to consider other factors for HIFU,like nonlinear effects? Thank you very much! 
%model is the 2D map of brain.The model with value larger than 150 is bone and the other tissue is general
%tissue
[Nx, Ny] = size(model); %Nx=128 and Ny=128
dx = 1e-3;        % grid point spacing in the x direction  [m]
dy = 1e-3;        % grid point spacing in the y direction  [m]
kgrid = kWaveGrid(Nx, dx, Ny, dy);
medium.sound_speed = 1500 * ones(Nx, Ny);             %general tissue
medium.sound_speed(model>=150)=3200;                  % bone
medium.density = 1000 * ones(Nx, Ny);                 % general tissue
medium.density(model>=150)=1990;                      % bone
medium.alpha_power = 1.5;                               % default
medium.alpha_coeff = 0.6 * ones(Nx, Ny);                % general tissue
medium.alpha_coeff(model>=150)=3.5;                     % bone
% create initial pressure distribution using makeDisc
disc_magnitude = 5; % [Pa]
disc_x_pos = 50;    % [grid points]
disc_y_pos = 50;    % [grid points]
disc_radius = 8;    % [grid points]
disc_1 = disc_magnitude * makeDisc(Nx, Ny, disc_x_pos, disc_y_pos, disc_radius);
source.p0 = disc_1;
% define a centered circular sensor
sensor_radius = 5e-2;   % [m]
num_sensor_points = 50;
sensor.mask = makeCartCircle(sensor_radius, num_sensor_points);
%simulation
sensor_data = kspaceFirstOrder2D(kgrid, medium, source, sensor);