<?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; Topic: High intensity focused ultrasound simualtion</title>
		<link>http://www.k-wave.org/forum/topic/high-intensity-focused-ultrasound-simualtion</link>
		<description>Support for the k-Wave MATLAB toolbox</description>
		<language>en-US</language>
		<pubDate>Tue, 12 May 2026 22:27:09 +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/topic/high-intensity-focused-ultrasound-simualtion" rel="self" type="application/rss+xml" />

		<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 17: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>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 11: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 09: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>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 05: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 08: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 09: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 09: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 09: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 20: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 14: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 12: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 05: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>
