<?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: Differences in focus pressure between k-Wave and analytical transducer model</title>
		<link>http://www.k-wave.org/forum/topic/differences-in-focus-pressure-between-k-wave-and-analytical-transducer-model</link>
		<description>Support for the k-Wave MATLAB toolbox</description>
		<language>en-US</language>
		<pubDate>Wed, 13 May 2026 00:14:34 +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/differences-in-focus-pressure-between-k-wave-and-analytical-transducer-model" rel="self" type="application/rss+xml" />

		<item>
			<title>Deepak Sonker on "Differences in focus pressure between k-Wave and analytical transducer model"</title>
			<link>http://www.k-wave.org/forum/topic/differences-in-focus-pressure-between-k-wave-and-analytical-transducer-model#post-8283</link>
			<pubDate>Fri, 06 Aug 2021 21:03:18 +0000</pubDate>
			<dc:creator>Deepak Sonker</dc:creator>
			<guid isPermaLink="false">8283@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Thank you I have got the correct pressure with kWaveArray class.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>Bradley Treeby on "Differences in focus pressure between k-Wave and analytical transducer model"</title>
			<link>http://www.k-wave.org/forum/topic/differences-in-focus-pressure-between-k-wave-and-analytical-transducer-model#post-8254</link>
			<pubDate>Wed, 21 Jul 2021 16:13:41 +0000</pubDate>
			<dc:creator>Bradley Treeby</dc:creator>
			<guid isPermaLink="false">8254@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi deepak11,&#60;/p&#62;
&#60;p&#62;There are some examples of doing this comparison in the new &#60;a href=&#34;http://www.k-wave.org/forum/topic/alpha-version-of-kwavearray-off-grid-sources&#34;&#62;kWaveArray&#60;/a&#62; class that might show you where you're going wrong. Note, if you're using a grid-based source, you'll have to include an extra scaling factor (or weight the source amplitudes) as discuss in &#60;a href=&#34;http://bug.medphys.ucl.ac.uk/papers/2016-Martin-IEEETUFFC.pdf&#34;&#62;this paper&#60;/a&#62;.&#60;/p&#62;
&#60;p&#62;Brad
&#60;/p&#62;</description>
		</item>
		<item>
			<title>deepak11 on "Differences in focus pressure between k-Wave and analytical transducer model"</title>
			<link>http://www.k-wave.org/forum/topic/differences-in-focus-pressure-between-k-wave-and-analytical-transducer-model#post-8244</link>
			<pubDate>Tue, 20 Jul 2021 23:51:29 +0000</pubDate>
			<dc:creator>deepak11</dc:creator>
			<guid isPermaLink="false">8244@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi,&#60;br /&#62;
First of all thank you for building this amazing toolbox.&#60;/p&#62;
&#60;p&#62;I have simulated the bowel transducer in 3D and then compared the focus pressure amplitude with the analytical model of a concave spherical transducer (from Theory of Focusing Radiators by H.T. O'Neil). I also checked this analytical model results from the Sonic Concepts transducer (H-276) and it was correct. I couldn't find the mistake in my code I think I have done everything correctly but the results shouldn't deviate that much (like the peak pressure at the focus must be 58 MHz but the simulated pressure is 46.8 MHz ). I have posted the code below:&#60;/p&#62;
&#60;p&#62;(`% define the grid parameters 3D&#60;br /&#62;
Nx = 150;   % [grid points]&#60;br /&#62;
Ny = 150;    % [grid points]&#60;br /&#62;
Nz = 92;&#60;br /&#62;
dx = 0.1e-3;               % [m]&#60;br /&#62;
dy = 0.1e-3;               % [m]&#60;br /&#62;
dz = 0.1e-3;               % [m]&#60;/p&#62;
&#60;p&#62;% create the computational grid&#60;br /&#62;
kgrid = kWaveGrid(Nx, dx, Ny, dy, Nz, dz);&#60;/p&#62;
&#60;p&#62;% define the properties of the propagation medium water&#60;/p&#62;
&#60;p&#62;medium.sound_speed = 1500;	% [m/s]&#60;br /&#62;
medium.density = 1000;       % [kg/m^3]&#60;br /&#62;
medium.alpha_coeff = 0.025;  % [dB/(MHz^y cm)]&#60;br /&#62;
medium.alpha_power = 1.5;&#60;/p&#62;
&#60;p&#62;% define parameters&#60;br /&#62;
grid_size = [150,150,92];&#60;br /&#62;
bowl_pos  = [Nx/2, Ny/2, 2];&#60;br /&#62;
diameter = 15e-3;           % [m]&#60;br /&#62;
radius   = 8.5e-3;           % [m]&#60;br /&#62;
focus_pos = [Nx/2, Ny/2, 87];&#60;br /&#62;
freq = 1.5e6;       % [Hz]&#60;br /&#62;
amp = 2.06e6;        % [Pa] &#60;/p&#62;
&#60;p&#62;% create bowl&#60;br /&#62;
source.p_mask = makeBowl(grid_size, bowl_pos, round(radius / dx), round(diameter / dx)+1, focus_pos, 'Plot', true);&#60;/p&#62;
&#60;p&#62;% calculate the time step using an integer number of points per period&#60;br /&#62;
ppw = max(medium.sound_speed(:)) / (freq * dx); % points per wavelength&#60;br /&#62;
cfl = 0.3;                              % cfl number&#60;br /&#62;
ppp = ceil(ppw / cfl);                  % points per period&#60;br /&#62;
T   = 1 / freq;                         % period [s]&#60;br /&#62;
dt  = T / ppp;                          % time step [s]&#60;/p&#62;
&#60;p&#62;% calculate the number of time steps to reach steady state&#60;br /&#62;
t_end = sqrt( kgrid.x_size.^2 + kgrid.y_size.^2 + kgrid.z_size.^2 ) / max(medium.sound_speed(:));&#60;br /&#62;
Nt = round(t_end / dt);&#60;/p&#62;
&#60;p&#62;% create the time array&#60;br /&#62;
kgrid.setTime(Nt, dt);&#60;/p&#62;
&#60;p&#62;% define the input signal&#60;br /&#62;
source.p = createCWSignals(kgrid.t_array, freq, amp, 0);&#60;/p&#62;
&#60;p&#62;% set the sensor mask to cover the entire grid&#60;br /&#62;
sensor.mask = ones(Nx, Ny, Nz);&#60;br /&#62;
sensor.record = {'p','p_rms','u','u_rms', 'I','I_avg'};&#60;/p&#62;
&#60;p&#62;% record the last 3 cycles in steady state&#60;br /&#62;
num_periods = 3;&#60;br /&#62;
T_points = round(num_periods * T / kgrid.dt);&#60;br /&#62;
sensor.record_start_index = Nt - T_points + 1;&#60;/p&#62;
&#60;p&#62;% set the input arguements&#60;br /&#62;
input_args = {'PMLInside', false, 'PlotPML', false, 'DisplayMask', ...&#60;br /&#62;
    'off', 'PlotScale', [-1, 1] * amp};&#60;/p&#62;
&#60;p&#62;% run the acoustic simulation&#60;br /&#62;
sensor_data = kspaceFirstOrder3D(kgrid, medium, source, sensor, input_args{:});&#60;/p&#62;
&#60;p&#62;% convert the absorption coefficient to nepers/m&#60;br /&#62;
alpha_np = db2neper(medium.alpha_coeff, medium.alpha_power) * ...&#60;br /&#62;
    (2 * pi * freq).^medium.alpha_power;&#60;/p&#62;
&#60;p&#62;% extract the pressure amplitude at each position&#60;br /&#62;
p = extractAmpPhase(sensor_data.p, 1/kgrid.dt, freq);&#60;/p&#62;
&#60;p&#62;% reshape the data, and calculate the volume rate of heat deposition&#60;br /&#62;
p = reshape(p, Nx, Ny, Nz);
&#60;/p&#62;</description>
		</item>

	</channel>
</rss>
