<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="bbPress/1.0.2" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>k-Wave User Forum &#187; User Favorites: Arlen</title>
		<link><a href='http://www.k-wave.org/forum/profile/arlen'>arlen</a></link>
		<description>Support for the k-Wave MATLAB toolbox</description>
		<language>en-US</language>
		<pubDate>Fri, 06 Mar 2026 02:53:15 +0000</pubDate>
		<generator>http://bbpress.org/?v=1.0.2</generator>
		<textInput>
			<title><![CDATA[Search]]></title>
			<description><![CDATA[Search all topics from these forums.]]></description>
			<name>q</name>
			<link>http://www.k-wave.org/forum/search.php</link>
		</textInput>
		<atom:link href="http://www.k-wave.org/forum/rss/profile/" rel="self" type="application/rss+xml" />

		<item>
			<title>Bradley Treeby on "wrong  Pressure of Focus in bowl focused transducer simulation"</title>
			<link>http://www.k-wave.org/forum/topic/wrong-pressure-of-focus-in-bowl-focused-transducer-simulation#post-8980</link>
			<pubDate>Thu, 07 Dec 2023 10:26:38 +0000</pubDate>
			<dc:creator>Bradley Treeby</dc:creator>
			<guid isPermaLink="false">8980@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Are you extracting the amplitude at the fundamental and the harmonics? Note, you can avoid start-up transients in your sensor data (including the &#60;code&#62;p_max&#60;/code&#62; calculation) by defining &#60;code&#62;sensor.record_start_index&#60;/code&#62;.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>Arlen on "wrong  Pressure of Focus in bowl focused transducer simulation"</title>
			<link>http://www.k-wave.org/forum/topic/wrong-pressure-of-focus-in-bowl-focused-transducer-simulation#post-8978</link>
			<pubDate>Thu, 07 Dec 2023 05:17:34 +0000</pubDate>
			<dc:creator>Arlen</dc:creator>
			<guid isPermaLink="false">8978@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Dear Bradley Treeby,&#60;br /&#62;
Thanks for your advice!&#60;br /&#62;
I found that this problem happens when simulation is in nonlinear condition. And I try to use sensor.record = {'p'} and extractAmpPhase() to find the max pressure, then the results are converged.  I think maybe when use sensor to record 'p_max', the sound field is unstable at the beginning, the max pressure of which is larger than when the sound field is stable, and the wrong max pressure is recorded.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>Bradley Treeby on "High intensity focused ultrasound simualtion"</title>
			<link>http://www.k-wave.org/forum/topic/high-intensity-focused-ultrasound-simualtion#post-8958</link>
			<pubDate>Fri, 24 Nov 2023 16:38:16 +0000</pubDate>
			<dc:creator>Bradley Treeby</dc:creator>
			<guid isPermaLink="false">8958@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;See response &#60;a href=&#34;http://www.k-wave.org/forum/topic/wrong-pressure-of-focus-in-bowl-focused-transducer-simulation&#34;&#62;here&#60;/a&#62;.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>Bradley Treeby on "wrong  Pressure of Focus in bowl focused transducer simulation"</title>
			<link>http://www.k-wave.org/forum/topic/wrong-pressure-of-focus-in-bowl-focused-transducer-simulation#post-8956</link>
			<pubDate>Fri, 24 Nov 2023 16:33:42 +0000</pubDate>
			<dc:creator>Bradley Treeby</dc:creator>
			<guid isPermaLink="false">8956@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;It sounds like the simulation hasn't converged. When you run nonlinear simulations, the grid needs to be fine enough to supported the generated higher frequency harmonics. If it's not, you will get a numerical error called spectral blocking. So in short, either reduce the amplitude of your source, or keep decreasing the grid size until the simulation output doesn't depend on the computational settings.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>Arlen on "wrong  Pressure of Focus in bowl focused transducer simulation"</title>
			<link>http://www.k-wave.org/forum/topic/wrong-pressure-of-focus-in-bowl-focused-transducer-simulation#post-8931</link>
			<pubDate>Mon, 09 Oct 2023 09:23:04 +0000</pubDate>
			<dc:creator>Arlen</dc:creator>
			<guid isPermaLink="false">8931@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi, Bradley&#60;br /&#62;
    I have changed the number of grid points (Nx, Ny, Nz), keeping the x_size (y_size, z_size) nearly same.  But when I delete 'medium.BonA=7', the pressure of focus converges, changing the grid size (dx, dy, dz).
&#60;/p&#62;</description>
		</item>
		<item>
			<title>Bradley Treeby on "wrong  Pressure of Focus in bowl focused transducer simulation"</title>
			<link>http://www.k-wave.org/forum/topic/wrong-pressure-of-focus-in-bowl-focused-transducer-simulation#post-8929</link>
			<pubDate>Sun, 08 Oct 2023 12:05:13 +0000</pubDate>
			<dc:creator>Bradley Treeby</dc:creator>
			<guid isPermaLink="false">8929@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Do you also change the number of grid points (Nx etc) as you change the grid spacing to keep the overall grid size constant?
&#60;/p&#62;</description>
		</item>
		<item>
			<title>Arlen on "High intensity focused ultrasound simualtion"</title>
			<link>http://www.k-wave.org/forum/topic/high-intensity-focused-ultrasound-simualtion#post-8924</link>
			<pubDate>Fri, 06 Oct 2023 10:15:47 +0000</pubDate>
			<dc:creator>Arlen</dc:creator>
			<guid isPermaLink="false">8924@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;hi everyone，&#60;br /&#62;
   I'm doing simulation about a HIFU transducer, but I found that when I set the grids' size smaller, the pressure of focus doesn't converge. But when I set the medium linear(delete medium.BonA=7), the results show convergency. Can anyone help me to solve this problem?&#60;br /&#62;
   Here are my codes:&#60;/p&#62;
&#60;p&#62;Nx = 380;            % number of grid points in the x direction&#60;br /&#62;
Ny = 240;            % number of grid points in the y direction&#60;br /&#62;
Nz = 240;            % number of grid points in the z direction&#60;br /&#62;
dx =0.3e-3;        % grid point spacing in the x direction [m]&#60;br /&#62;
dy =0.3e-3;        % grid point spacing in the y direction [m]&#60;br /&#62;
dz =0.3e-3;        % grid point spacing in the z direction [m]&#60;br /&#62;
x_size=dx*Nx;&#60;br /&#62;
y_size=dy*Ny;&#60;br /&#62;
z_size=dz*Nz;&#60;/p&#62;
&#60;p&#62;sound_speed=1500;         % [m/s]媒介声速&#60;br /&#62;
density = 1000 ;          % [kg/m^3]媒介密度&#60;/p&#62;
&#60;p&#62;kgrid = kWaveGrid(Nx, dx, Ny, dy, Nz, dz);&#60;/p&#62;
&#60;p&#62;% define the properties of the propagation medium&#60;br /&#62;
medium.BonA=7;                             %水里的超声非线性参数&#60;br /&#62;
medium.sound_speed = sound_speed * ones(Nx, Ny, Nz);	% [m/s]&#60;br /&#62;
medium.density = density * ones(Nx, Ny, Nz);       % [kg/m^3]&#60;br /&#62;
kgrid.makeTime(medium.sound_speed,0.3,80e-6);&#60;/p&#62;
&#60;p&#62;% define a centered circular sensor&#60;br /&#62;
% define a series of Cartesian points to collect the data&#60;br /&#62;
sensor.mask = zeros(Nx, Ny, Nz);&#60;br /&#62;
sensor.mask(:, :, Nz/2) = 1;&#60;/p&#62;
&#60;p&#62;sensor.record = {'p_max'};&#60;/p&#62;
&#60;p&#62;% % input arguments&#60;br /&#62;
 input_args = {'PlotPML', true, ...&#60;br /&#62;
     'DataCast', 'single', 'CartInterp', 'linear','PlotSim',true,'PlotLayout',true,'PMLInside',true,'PMLSize',[20,20,20]};&#60;/p&#62;
&#60;p&#62;% define a time varying sinusoidal source&#60;br /&#62;
source_mag = 543.36e3;     % [Pa]&#60;br /&#62;
% create empty array&#60;br /&#62;
karray = kWaveArray('SinglePrecision',true);&#60;br /&#62;
%position = [1, Ny/2, Nz/2];&#60;br /&#62;
position = [-x_size/2+20e-3,0,0];&#60;br /&#62;
% define arc properties&#60;br /&#62;
radius    = 63.2e-3;              % [m]&#60;br /&#62;
diameter  = 64e-3;              % [m]&#60;/p&#62;
&#60;p&#62;focus_pos = [x_size/2, 0, 0];&#60;/p&#62;
&#60;p&#62;karray.addBowlElement(position, radius, diameter, focus_pos);&#60;/p&#62;
&#60;p&#62;source.p_mask = karray.getArrayBinaryMask(kgrid);&#60;br /&#62;
voxelPlot(double(source.p_mask));&#60;br /&#62;
source_freq = 1e6;&#60;br /&#62;
sig1 = source_mag * sin(2 * pi * source_freq * kgrid.t_array);&#60;br /&#62;
 % smooth the source&#60;br /&#62;
sig1 = filterTimeSeries(kgrid, medium, sig1,'PlotSignals',true,'PlotSpectrums',true);&#60;/p&#62;
&#60;p&#62;source_signal = zeros(1,length(sig1));&#60;br /&#62;
source_signal(1,1:length(sig1)) = sig1;&#60;br /&#62;
source.p = karray.getDistributedSourceSignal(kgrid, source_signal);&#60;br /&#62;
sensor_data = kspaceFirstOrder3DG(kgrid, medium, source, sensor, input_args{:});&#60;/p&#62;
&#60;p&#62;sensor_data.p_max = reshape(sensor_data.p_max, [Nx, Ny]);&#60;br /&#62;
sensor_data.p_max = reshape(sensor_data.p_max, [Nx, Ny]);&#60;/p&#62;
&#60;p&#62;figure;&#60;br /&#62;
imagesc(kgrid.x_vec, kgrid.y_vec,sensor_data.p_max);&#60;br /&#62;
xlabel('x [m]');&#60;br /&#62;
ylabel('y [m]');&#60;br /&#62;
%zlabel('z [m]');&#60;br /&#62;
title('Maximum Pressure');&#60;br /&#62;
c = colorbar;&#60;br /&#62;
c.Label.String = 'pressure()';&#60;/p&#62;
&#60;p&#62;max = sensor_data.p_max(1,1);&#60;br /&#62;
maxi = [1,1];&#60;br /&#62;
[max, maxi];&#60;br /&#62;
    for a=floor(0.3*Nx):Nx&#60;br /&#62;
        for b=1:Ny&#60;br /&#62;
            if sensor_data.p_max(a,b)&#38;gt;max&#60;br /&#62;
           max= sensor_data.p_max(a,b);&#60;br /&#62;
           maxi=[a,b];&#60;br /&#62;
            end&#60;br /&#62;
        end&#60;br /&#62;
     end&#60;/p&#62;
&#60;p&#62;focus_x = 0;&#60;br /&#62;
focusx_max = 0;&#60;br /&#62;
focusy_max = 0;&#60;br /&#62;
focus_y = 0;&#60;br /&#62;
focus_l = 0;&#60;br /&#62;
focus_r = 0;&#60;br /&#62;
focus_u = 0;&#60;br /&#62;
focus_d = 0;&#60;br /&#62;
[focus_x,focus_y];&#60;br /&#62;
for a=floor(0.3*Nx):(Nx - 1)&#60;br /&#62;
    for b=1:(Ny - 1)&#60;br /&#62;
        if sensor_data.p_max(a,b)&#38;lt;0.71*max&#38;amp;&#38;amp;sensor_data.p_max(a,b+1)&#38;gt;0.71*max&#60;br /&#62;
           %sensor_data.p_max(a,b)=0;&#60;br /&#62;
           focus_l = b+1;&#60;br /&#62;
        end&#60;br /&#62;
        if sensor_data.p_max(a,b)&#38;gt;0.71*max&#38;amp;&#38;amp;sensor_data.p_max(a,b+1)&#38;lt;0.71*max&#60;br /&#62;
           %sensor_data.p_max(a,b)=0;&#60;br /&#62;
           focus_r = b+1;&#60;br /&#62;
        end&#60;br /&#62;
         if sensor_data.p_max(a,b)&#38;lt;0.71*max&#38;amp;&#38;amp;sensor_data.p_max(a+1,b)&#38;gt;0.71*max&#60;br /&#62;
           focus_u = a+1;&#60;br /&#62;
        end&#60;br /&#62;
        if sensor_data.p_max(a,b)&#38;gt;0.71*max&#38;amp;&#38;amp;sensor_data.p_max(a+1,b)&#38;lt;0.71*max&#60;br /&#62;
           %sensor_data.p_max(a,b)=0;&#60;br /&#62;
           focus_d = a+1;&#60;br /&#62;
        end&#60;br /&#62;
    end&#60;br /&#62;
    focus_x = focus_r - focus_l;&#60;br /&#62;
    focus_y = focus_d - focus_u;&#60;br /&#62;
    if focus_x &#38;gt; focusx_max&#60;br /&#62;
        focusx_max = focus_x;&#60;br /&#62;
    end&#60;br /&#62;
    if focus_y &#38;gt; focusy_max&#60;br /&#62;
        focusy_max = focus_y;&#60;br /&#62;
    end &#60;/p&#62;
&#60;p&#62;end&#60;br /&#62;
%ONeil solution&#60;br /&#62;
% define transducer parameters&#60;br /&#62;
radius      = 63.2e-3;   % [m]&#60;br /&#62;
diameter    = 64e-3;   % [m]&#60;/p&#62;
&#60;p&#62;frequency   = 1e6;      % [Hz]&#60;br /&#62;
sound_speed = 1500;     % [m/s]&#60;br /&#62;
density     = 1000;     % [kg/m^3]&#60;br /&#62;
Z = density*sound_speed;&#60;br /&#62;
p = 543.36e3;&#60;br /&#62;
velocity    = p/Z;   % [m/s]&#60;br /&#62;
% define position vectors&#60;br /&#62;
axial_position   = 0:5e-4:150e-3;       % [m]&#60;br /&#62;
lateral_position = -15e-3:5e-4:15e-3;   % [m]&#60;br /&#62;
% evaluate pressure&#60;br /&#62;
[p_axial, p_lateral] = focusedBowlONeil(radius, diameter, velocity, ...&#60;br /&#62;
    frequency, sound_speed, density, axial_position, lateral_position);&#60;/p&#62;
&#60;p&#62;% plot&#60;br /&#62;
figure;&#60;br /&#62;
subplot(4, 1, 1);&#60;br /&#62;
plot(axial_position .* 1e3, p_axial .* 1e-6, 'k-');&#60;br /&#62;
xlabel('Axial Position [mm]');&#60;br /&#62;
ylabel('Pressure [MPa]');&#60;br /&#62;
subplot(4, 1, 2);&#60;br /&#62;
plot((0:dx:(Nx-1)*dx) .* 1e3, sensor_data.p_max(:,Ny/2).* 1e-6, 'k-');&#60;br /&#62;
xlabel('Axial Position [mm]');&#60;br /&#62;
ylabel('Pressure [MPa]');&#60;br /&#62;
subplot(4, 1, 3);&#60;br /&#62;
plot(lateral_position .* 1e3, p_lateral .* 1e-6, 'k-');&#60;br /&#62;
xlabel('Lateral Position [mm]');&#60;br /&#62;
ylabel('Pressure [MPa]');&#60;br /&#62;
subplot(4, 1, 4);&#60;br /&#62;
plot((0:dy:(Ny-1)*dy).* sensor_data.p_max(Ny/2,:) .* 1e-6, 'k-');&#60;br /&#62;
xlabel('Lateral Position [mm]');&#60;br /&#62;
ylabel('Pressure [MPa]');&#60;/p&#62;
&#60;p&#62;figure;&#60;br /&#62;
imagesc(kgrid.x_vec, kgrid.y_vec,sensor_data.p_max);&#60;br /&#62;
xlabel('x [m]');&#60;br /&#62;
ylabel('y [m]');&#60;/p&#62;
&#60;p&#62;title('Maximum Pressure');&#60;br /&#62;
c = colorbar;&#60;br /&#62;
c.Label.String = 'pressure()';
&#60;/p&#62;</description>
		</item>
		<item>
			<title>Arlen on "High intensity focused ultrasound simualtion"</title>
			<link>http://www.k-wave.org/forum/topic/high-intensity-focused-ultrasound-simualtion#post-8923</link>
			<pubDate>Fri, 06 Oct 2023 08:40:31 +0000</pubDate>
			<dc:creator>Arlen</dc:creator>
			<guid isPermaLink="false">8923@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;hi jackYANG,&#60;br /&#62;
   I have omes problems with the High intensity focused ultrasound simualtion, can you give some help to me?I'm a Chinese too.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>Arlen on "wrong  Pressure of Focus in bowl focused transducer simulation"</title>
			<link>http://www.k-wave.org/forum/topic/wrong-pressure-of-focus-in-bowl-focused-transducer-simulation#post-8917</link>
			<pubDate>Mon, 25 Sep 2023 14:09:21 +0000</pubDate>
			<dc:creator>Arlen</dc:creator>
			<guid isPermaLink="false">8917@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi，&#60;br /&#62;
   I'm doing bowl focused transducer simulation, with signal of 1Mhz and 543.36e3 pa. But when I use smaller dx, dy, dz ,the  pressure of focus(max pressure) is  getting higher. And when I use 0.3mm of grid size, the max pressure is about 30 Mpa, and 0.2mm of grid size, the max pressure is about 40 Mpa! While the same parameters I put in focusedBowlONeil() to calculate, the max pressure at focus is just about 20 Mpa, almost the same 20 Mpa results when I use  0.5mm of grid size(dx,dy,dz). Am I use so large amplitude?&#60;br /&#62;
   My English isn't very well , hope you understand my confusion and help me to solve this problem.&#60;br /&#62;
   Thanks!!!&#60;/p&#62;
&#60;p&#62;   Here are my codes:&#60;br /&#62;
clear;&#60;br /&#62;
clf;&#60;br /&#62;
close all;&#60;br /&#62;
addpath('D:\k-wave-toolbox-version-1.4\k-Wave');&#60;/p&#62;
&#60;p&#62;Nx = 130*3;            % number of grid points in the x direction&#60;br /&#62;
Ny = 80*3;            % number of grid points in the y direction&#60;br /&#62;
Nz = 80*3;            % number of grid points in the z direction&#60;br /&#62;
dx =0.3e-3;        % grid point spacing in the x direction [m]&#60;br /&#62;
dy =0.3e-3;        % grid point spacing in the y direction [m]&#60;br /&#62;
dz =0.3e-3;        % grid point spacing in the z direction [m]&#60;br /&#62;
x_size=dx*Nx;&#60;br /&#62;
y_size=dy*Ny;&#60;br /&#62;
z_size=dz*Nz;&#60;/p&#62;
&#60;p&#62;sound_speed=1500;         % [m/s]媒介声速&#60;br /&#62;
density = 1000 ;          % [kg/m^3]媒介密度&#60;/p&#62;
&#60;p&#62;% radius    = 63*2;         %换能器曲率半径&#60;br /&#62;
% diameter  = 63*2 - 1;          %换能器直径（奇数）&#60;/p&#62;
&#60;p&#62;kgrid = kWaveGrid(Nx, dx, Ny, dy, Nz, dz);&#60;/p&#62;
&#60;p&#62;% define the properties of the propagation medium&#60;br /&#62;
medium.BonA=7;                             %水里的超声非线性参数&#60;br /&#62;
medium.sound_speed = sound_speed * ones(Nx, Ny, Nz);	% [m/s]&#60;br /&#62;
medium.density = density * ones(Nx, Ny, Nz);       % [kg/m^3]&#60;br /&#62;
kgrid.makeTime(medium.sound_speed,0.3,80e-6);&#60;/p&#62;
&#60;p&#62;% define a centered circular sensor&#60;br /&#62;
% define a series of Cartesian points to collect the data&#60;br /&#62;
sensor.mask = zeros(Nx, Ny, Nz);&#60;br /&#62;
sensor.mask(:, :, Nz/2) = 1;&#60;br /&#62;
% set the record mode such that only the max and peak values are stored&#60;br /&#62;
sensor.record = {'p_max'};&#60;/p&#62;
&#60;p&#62;% % input arguments&#60;br /&#62;
 input_args = {'PlotPML', true, ...&#60;br /&#62;
     'DataCast', 'single', 'CartInterp', 'linear','PlotSim',true,'PlotLayout',true,'PMLInside',true,'PMLSize',[20,20,20]};&#60;br /&#62;
% grid_size = [Nx, Ny, Nz];%网格空间&#60;br /&#62;
% bowl_pos  = [1, Ny/2,Nz/2];%bowl的中心点&#60;br /&#62;
% %radius    = Nx/2;%曲率半径&#60;br /&#62;
% %diameter  =Nx-1;%圆的直径&#60;br /&#62;
% focus_pos = [Nx/2, Ny/2, Nz/2 ];%与bowl_pos连线为对称轴（确定方向） 和法向量有一点点像 决定换能器姿态&#60;br /&#62;
% source.p_mask=makeBowl(grid_size, bowl_pos, radius, diameter, focus_pos, 'Plot', true);&#60;/p&#62;
&#60;p&#62;% define a time varying sinusoidal source&#60;br /&#62;
source_mag = 543.36e3;     % [Pa]&#60;br /&#62;
% create empty array&#60;br /&#62;
karray = kWaveArray('SinglePrecision',true);&#60;br /&#62;
%position = [1, Ny/2, Nz/2];&#60;br /&#62;
position = [-x_size/2+20e-3,0,0];&#60;br /&#62;
% define arc properties&#60;br /&#62;
radius    = 63.2e-3;              % [m]&#60;br /&#62;
diameter  = 64e-3;              % [m]&#60;/p&#62;
&#60;p&#62;focus_pos = [x_size/2, 0, 0];&#60;/p&#62;
&#60;p&#62;karray.addBowlElement(position, radius, diameter, focus_pos);&#60;/p&#62;
&#60;p&#62;source.p_mask = karray.getArrayBinaryMask(kgrid);&#60;br /&#62;
voxelPlot(double(source.p_mask));&#60;/p&#62;
&#60;p&#62;source_freq = 1e6;      % [Hz]声源频率&#60;br /&#62;
sig1 = source_mag * sin(2 * pi * source_freq * kgrid.t_array);&#60;br /&#62;
 % smooth the source&#60;br /&#62;
sig1 = filterTimeSeries(kgrid, medium, sig1,'PlotSignals',true,'PlotSpectrums',true);&#60;/p&#62;
&#60;p&#62;source_signal = zeros(1,length(sig1));&#60;br /&#62;
source_signal(1,1:length(sig1)) = sig1;&#60;br /&#62;
source.p = karray.getDistributedSourceSignal(kgrid, source_signal);&#60;br /&#62;
sensor_data = kspaceFirstOrder3DG(kgrid, medium, source, sensor, input_args{:});&#60;/p&#62;
&#60;p&#62;sensor_data.p_max = reshape(sensor_data.p_max, [Nx, Ny]);&#60;br /&#62;
sensor_data.p_max = reshape(sensor_data.p_max, [Nx, Ny]);&#60;/p&#62;
&#60;p&#62;figure;&#60;br /&#62;
imagesc(kgrid.x_vec, kgrid.y_vec,sensor_data.p_max);&#60;br /&#62;
xlabel('x [m]');&#60;br /&#62;
ylabel('y [m]');&#60;br /&#62;
%zlabel('z [m]');&#60;br /&#62;
title('Maximum Pressure');&#60;br /&#62;
c = colorbar;&#60;br /&#62;
c.Label.String = 'pressure()';&#60;/p&#62;
&#60;p&#62;max = sensor_data.p_max(1,1);&#60;br /&#62;
maxi = [1,1];&#60;br /&#62;
[max, maxi];&#60;br /&#62;
    for a=floor(0.3*Nx):Nx&#60;br /&#62;
        for b=1:Ny&#60;br /&#62;
            if sensor_data.p_max(a,b)&#38;gt;max&#60;br /&#62;
           max= sensor_data.p_max(a,b);&#60;br /&#62;
           maxi=[a,b];&#60;br /&#62;
            end&#60;br /&#62;
        end&#60;br /&#62;
     end&#60;/p&#62;
&#60;p&#62;focus_x = 0;&#60;br /&#62;
focusx_max = 0;&#60;br /&#62;
focusy_max = 0;&#60;br /&#62;
focus_y = 0;&#60;br /&#62;
focus_l = 0;&#60;br /&#62;
focus_r = 0;&#60;br /&#62;
focus_u = 0;&#60;br /&#62;
focus_d = 0;&#60;br /&#62;
[focus_x,focus_y];&#60;br /&#62;
for a=floor(0.3*Nx):(Nx - 1)&#60;br /&#62;
    for b=1:(Ny - 1)&#60;br /&#62;
        if sensor_data.p_max(a,b)&#38;lt;0.71*max&#38;amp;&#38;amp;sensor_data.p_max(a,b+1)&#38;gt;0.71*max&#60;br /&#62;
           %sensor_data.p_max(a,b)=0;&#60;br /&#62;
           focus_l = b+1;&#60;br /&#62;
        end&#60;br /&#62;
        if sensor_data.p_max(a,b)&#38;gt;0.71*max&#38;amp;&#38;amp;sensor_data.p_max(a,b+1)&#38;lt;0.71*max&#60;br /&#62;
           %sensor_data.p_max(a,b)=0;&#60;br /&#62;
           focus_r = b+1;&#60;br /&#62;
        end&#60;br /&#62;
         if sensor_data.p_max(a,b)&#38;lt;0.71*max&#38;amp;&#38;amp;sensor_data.p_max(a+1,b)&#38;gt;0.71*max&#60;br /&#62;
           focus_u = a+1;&#60;br /&#62;
        end&#60;br /&#62;
        if sensor_data.p_max(a,b)&#38;gt;0.71*max&#38;amp;&#38;amp;sensor_data.p_max(a+1,b)&#38;lt;0.71*max&#60;br /&#62;
           %sensor_data.p_max(a,b)=0;&#60;br /&#62;
           focus_d = a+1;&#60;br /&#62;
        end&#60;br /&#62;
    end&#60;br /&#62;
    focus_x = focus_r - focus_l;&#60;br /&#62;
    focus_y = focus_d - focus_u;&#60;br /&#62;
    if focus_x &#38;gt; focusx_max&#60;br /&#62;
        focusx_max = focus_x;&#60;br /&#62;
    end&#60;br /&#62;
    if focus_y &#38;gt; focusy_max&#60;br /&#62;
        focusy_max = focus_y;&#60;br /&#62;
    end&#60;br /&#62;
%     if focus_d &#38;gt; 0&#60;br /&#62;
%         break;&#60;br /&#62;
%     end&#60;br /&#62;
end&#60;/p&#62;
&#60;p&#62;% define transducer parameters&#60;br /&#62;
radius      = 63.2e-3;   % [m]&#60;br /&#62;
diameter    = 64e-3;   % [m]&#60;/p&#62;
&#60;p&#62;frequency   = 1e6;      % [Hz]&#60;br /&#62;
sound_speed = 1500;     % [m/s]&#60;br /&#62;
density     = 1000;     % [kg/m^3]&#60;br /&#62;
Z = density*sound_speed;&#60;br /&#62;
p = 543.36e3;&#60;br /&#62;
velocity    = p/Z;   % [m/s]&#60;br /&#62;
% define position vectors&#60;br /&#62;
axial_position   = 0:5e-4:150e-3;       % [m]&#60;br /&#62;
lateral_position = -15e-3:5e-4:15e-3;   % [m]&#60;br /&#62;
% evaluate pressure&#60;br /&#62;
[p_axial, p_lateral] = focusedBowlONeil(radius, diameter, velocity, ...&#60;br /&#62;
    frequency, sound_speed, density, axial_position, lateral_position);&#60;/p&#62;
&#60;p&#62;% plot&#60;br /&#62;
figure;&#60;br /&#62;
subplot(4, 1, 1);&#60;br /&#62;
plot(axial_position .* 1e3, p_axial .* 1e-6, 'k-');&#60;br /&#62;
xlabel('Axial Position [mm]');&#60;br /&#62;
ylabel('Pressure [MPa]');&#60;br /&#62;
subplot(4, 1, 2);&#60;br /&#62;
plot((0:dx:(Nx-1)*dx) .* 1e3, sensor_data.p_max(:,Ny/2).* 1e-6, 'k-');&#60;br /&#62;
xlabel('Axial Position [mm]');&#60;br /&#62;
ylabel('Pressure [MPa]');&#60;br /&#62;
subplot(4, 1, 3);&#60;br /&#62;
plot(lateral_position .* 1e3, p_lateral .* 1e-6, 'k-');&#60;br /&#62;
xlabel('Lateral Position [mm]');&#60;br /&#62;
ylabel('Pressure [MPa]');&#60;br /&#62;
subplot(4, 1, 4);&#60;br /&#62;
plot((0:dy:(Ny-1)*dy).* sensor_data.p_max(Ny/2,:) .* 1e-6, 'k-');&#60;br /&#62;
xlabel('Lateral Position [mm]');&#60;br /&#62;
ylabel('Pressure [MPa]');&#60;/p&#62;
&#60;p&#62;figure;&#60;br /&#62;
imagesc(kgrid.x_vec, kgrid.y_vec,sensor_data.p_max);&#60;br /&#62;
xlabel('x [m]');&#60;br /&#62;
ylabel('y [m]');&#60;br /&#62;
%zlabel('z [m]');&#60;br /&#62;
title('Maximum Pressure');&#60;br /&#62;
c = colorbar;&#60;br /&#62;
c.Label.String = 'pressure()';
&#60;/p&#62;</description>
		</item>
		<item>
			<title>jackYANG on "High intensity focused ultrasound simualtion"</title>
			<link>http://www.k-wave.org/forum/topic/high-intensity-focused-ultrasound-simualtion#post-7168</link>
			<pubDate>Mon, 06 Jan 2020 04:51:08 +0000</pubDate>
			<dc:creator>jackYANG</dc:creator>
			<guid isPermaLink="false">7168@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;hi tahere,&#60;br /&#62;
    can you help me ?are you a chinese,i am doing the same some like yours
&#60;/p&#62;</description>
		</item>
		<item>
			<title>tahere on "High intensity focused ultrasound simualtion"</title>
			<link>http://www.k-wave.org/forum/topic/high-intensity-focused-ultrasound-simualtion#post-5978</link>
			<pubDate>Thu, 08 Jun 2017 07:51:29 +0000</pubDate>
			<dc:creator>tahere</dc:creator>
			<guid isPermaLink="false">5978@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;hello dear silvia&#60;br /&#62;
for my project i need to acquire the pressure due to a HIFU transducer in a heterogeneous soft tissue. i have a couple of questions. may you help me? thanks in  advance
&#60;/p&#62;</description>
		</item>
		<item>
			<title>Bradley Treeby on "High intensity focused ultrasound simualtion"</title>
			<link>http://www.k-wave.org/forum/topic/high-intensity-focused-ultrasound-simualtion#post-5879</link>
			<pubDate>Tue, 04 Apr 2017 08:55:12 +0000</pubDate>
			<dc:creator>Bradley Treeby</dc:creator>
			<guid isPermaLink="false">5879@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi Silvia,&#60;/p&#62;
&#60;p&#62;Glad you got it sorted. Let us know if you get stuck.&#60;/p&#62;
&#60;p&#62;Brad.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>spozzi on "High intensity focused ultrasound simualtion"</title>
			<link>http://www.k-wave.org/forum/topic/high-intensity-focused-ultrasound-simualtion#post-5841</link>
			<pubDate>Fri, 24 Feb 2017 08:48:28 +0000</pubDate>
			<dc:creator>spozzi</dc:creator>
			<guid isPermaLink="false">5841@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi again,&#60;/p&#62;
&#60;p&#62;I found all these info in manual/articles. Sorry to have bothered!&#60;/p&#62;
&#60;p&#62;Silvia
&#60;/p&#62;</description>
		</item>
		<item>
			<title>spozzi on "High intensity focused ultrasound simualtion"</title>
			<link>http://www.k-wave.org/forum/topic/high-intensity-focused-ultrasound-simualtion#post-5840</link>
			<pubDate>Wed, 22 Feb 2017 08:53:19 +0000</pubDate>
			<dc:creator>spozzi</dc:creator>
			<guid isPermaLink="false">5840@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi,&#60;/p&#62;
&#60;p&#62;I am playing with kWave to see whether I can use it to estimate the effect of HIFU on tissues when used for ablation. I have a couple of questions regarding the transducer:&#60;/p&#62;
&#60;p&#62;- I have a single transducer with the shape of a spherical cap with radius of curvature 80 mm, radius of the base 25 mm and height 4 mm. I used the function makeSphericalSection(radius, height, width) but the width can be at maximum equal to half of the radius of curvature. Is there another way to create it with the correct dimensions?&#60;/p&#62;
&#60;p&#62;- These transducers are used at a central frequency of the order of MHz, however I see that the maximum supported frequency is 750 kHz, did I understand correctly? &#60;/p&#62;
&#60;p&#62;Thanks in advance,&#60;br /&#62;
Silvia&#60;/p&#62;
&#60;p&#62;The source frequency is of the order of MHz.&#60;br /&#62;
However in the log messages I see that the maximum supported frequency is 750kHz.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>Bradley Treeby on "High intensity focused ultrasound simualtion"</title>
			<link>http://www.k-wave.org/forum/topic/high-intensity-focused-ultrasound-simualtion#post-5826</link>
			<pubDate>Sun, 12 Feb 2017 19:24:46 +0000</pubDate>
			<dc:creator>Bradley Treeby</dc:creator>
			<guid isPermaLink="false">5826@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi Timo,&#60;/p&#62;
&#60;p&#62;The nonlinearity depends on the value of the pressure. In principle, you could see strong nonlinearity in either 2D or 3D. However, if you are using a focused transducer, the focusing gain in 2D (cylindrical focusing) is much weaker than in 3D (spherical focusing), so you will need much higher transmit pressures. The grid point spacing should be at least half the wavelength at the highest frequency harmonic. To assess this, you should do a convergence analysis (see &#60;a href=&#34;&#34;&#62;here, Fig. 3&#60;/a&#62; for an example).&#60;/p&#62;
&#60;p&#62;Hope that helps.&#60;/p&#62;
&#60;p&#62;Brad.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>timo_kuhn on "High intensity focused ultrasound simualtion"</title>
			<link>http://www.k-wave.org/forum/topic/high-intensity-focused-ultrasound-simualtion#post-5813</link>
			<pubDate>Tue, 17 Jan 2017 13:01:39 +0000</pubDate>
			<dc:creator>timo_kuhn</dc:creator>
			<guid isPermaLink="false">5813@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi Anthony,&#60;/p&#62;
&#60;p&#62;I am trying to model a shock wave as it is used in shock wave lithotripsy. You mentioned 50 MPa, this sounds like you simulated something similar? Do you think you could send me the code you used for the simulation? It would help me a lot and I would really appreciate it! I have played with a lot of parameters (power, medium.BonA, grid spacing, wavelength etc.) but I have never managed to see the formation of a shock front. It does not matter if I define the medium.BonA value or not, the result is the same. Do you have a suggestion for the grid point spacing at a wavelength of 1.5e-3 m? Does it matter if I do the simulation in 2D or 3D?&#60;/p&#62;
&#60;p&#62;Thanks in advance,&#60;br /&#62;
Timo
&#60;/p&#62;</description>
		</item>
		<item>
			<title>Anthony on "High intensity focused ultrasound simualtion"</title>
			<link>http://www.k-wave.org/forum/topic/high-intensity-focused-ultrasound-simualtion#post-5171</link>
			<pubDate>Tue, 28 Jul 2015 11:14:41 +0000</pubDate>
			<dc:creator>Anthony</dc:creator>
			<guid isPermaLink="false">5171@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi Alex,&#60;/p&#62;
&#60;p&#62;From my personal experience (I am a simple user, not a dev), I would say that you have two main points to check:&#60;br /&#62;
- your grid is fine enough to enable the propagation of the high harmonics&#60;br /&#62;
- the medium heterogeity: see some topics on this forum and paragraph V.B of Brad's paper in JASA 2012 (Modeling nonlinear ultrasound propagation in heterogeneous media with power law absorption using a k-space pseudospectral method).  &#60;/p&#62;
&#60;p&#62;I am not sure of what you call &#34;strong&#34; nonlinear case, I made a few simulations in water with B/A = 5 at quite high power (100W) at it seems to compare well with hydrophone measurements with 50 MPa peak positive pressure. However, I only have very old experimental data I did not acquire myself so it is not rigorous at all: don't consider this as a validation! See &#34;Modelling nonlinear ultrasound propagation in absorbing media using the k-Wave toolbox: experimental validation&#34; (2012) for a validation but the peak pressures seems quite low (a few MPa figure 2).&#60;/p&#62;
&#60;p&#62;By the way, use the C code instead of the Matlab version (it's much faster).&#60;br /&#62;
Good luck,&#60;br /&#62;
Anthony
&#60;/p&#62;</description>
		</item>
		<item>
			<title>alex_wang on "High intensity focused ultrasound simualtion"</title>
			<link>http://www.k-wave.org/forum/topic/high-intensity-focused-ultrasound-simualtion#post-5170</link>
			<pubDate>Sun, 26 Jul 2015 04:09:19 +0000</pubDate>
			<dc:creator>alex_wang</dc:creator>
			<guid isPermaLink="false">5170@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi,&#60;/p&#62;
&#60;p&#62;I am new user of the this software, what I am want to do is to use this toolbox to simulate very strong  non-linear wave propagation in water or in a layered medium, but I didn't see any discussions in this forum and didn't find any example that shows how to simulate the strong nonlinear wave propagation, is this tool box applicable for the strong non-linear wave case? can anyone give me some examples or told me what should I take care of in the simulation?&#60;/p&#62;
&#60;p&#62;regards&#60;/p&#62;
&#60;p&#62;Alex
&#60;/p&#62;</description>
		</item>

	</channel>
</rss>
