<?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; Forum: Elastic Wave Simulations - Recent Topics</title>
		<link>https://www.k-wave.org/forum/forum/elastic-wave-simulations</link>
		<description>Support for the k-Wave MATLAB toolbox</description>
		<language>en-US</language>
		<pubDate>Tue, 28 Jul 2026 21:03:10 +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>https://www.k-wave.org/forum/search.php</link>
		</textInput>
		<atom:link href="https://www.k-wave.org/forum/rss/forum/elastic-wave-simulations/topics" rel="self" type="application/rss+xml" />

		<item>
			<title>sgb2155 on "Instability Simulating a Constant Volume Force"</title>
			<link>https://www.k-wave.org/forum/topic/instability-simulating-a-constant-volume-force#post-9236</link>
			<pubDate>Thu, 18 Sep 2025 22:12:39 +0000</pubDate>
			<dc:creator>sgb2155</dc:creator>
			<guid isPermaLink="false">9236@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;I am running a simulation based on the elastic wave propagation example for pstd3dElastic(). &#60;/p&#62;
&#60;p&#62;I'm first running my simulation as described in the example to reach a steady state. I am then simulating a longer period, where instead of the velocity input as described in the example, I am simulating a volumetric velocity input based on the steady state (a constant velocity field spanning my whole volume, derived from the acoustic radiation force). &#60;/p&#62;
&#60;p&#62;I am able to simulate for exactly one time step with this volumetric input before reaching an instability and getting only NaN outputs. I've experimented with lowering my frequency (0.5e6) and reducing my CFL (0.08), but the former didn't get me any further than the first time step with my velocity field, and the latter led to issues with RAM. I have confirmed that my velocity field input contains real values across my simulated time range, so it does appear to me to be a convergence issue to me, but I want to make sure I am headed towards a solution and not completely in the wrong direction.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>Crusher on "I want to do a 2D elastic wave simulation on step geometry"</title>
			<link>https://www.k-wave.org/forum/topic/i-want-to-do-a-2d-elastic-wave-simulation-on-step-geometry#post-8920</link>
			<pubDate>Tue, 03 Oct 2023 11:53:34 +0000</pubDate>
			<dc:creator>Crusher</dc:creator>
			<guid isPermaLink="false">8920@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;I want to do a 2D elastic wave simulation on step geometry, like a small rectangle of different property placed on a big rectangle of different property. How to do that?
&#60;/p&#62;</description>
		</item>
		<item>
			<title>ClaireH on "pstdElastic3D in layered fluid and elastic media"</title>
			<link>https://www.k-wave.org/forum/topic/pstdelastic3d-in-layered-fluid-and-elastic-media#post-9211</link>
			<pubDate>Mon, 28 Apr 2025 14:23:22 +0000</pubDate>
			<dc:creator>ClaireH</dc:creator>
			<guid isPermaLink="false">9211@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi,&#60;br /&#62;
I'm a new k-Wave user interested in simulating ultrasound propagation through a layered medium that includes both fluid and elastic materials. The layers, in order of wave propagation, are:&#60;/p&#62;
&#60;p&#62;water → solid → soft tissue → solid → thin water layer → air&#60;/p&#62;
&#60;p&#62;I’m considering using the pstdElastic3D model for this simulation, and I’d like to know:&#60;/p&#62;
&#60;p&#62;Can pstdElastic3D handle a mixture of elastic and fluid media?&#60;/p&#62;
&#60;p&#62;Especially, can it accurately model the interface between water and air, given the large impedance mismatch and strong reflections at that boundary?&#60;/p&#62;
&#60;p&#62;Thanks so much for your help!
&#60;/p&#62;</description>
		</item>
		<item>
			<title>mperezdiego on "Source-sensor interaction"</title>
			<link>https://www.k-wave.org/forum/topic/source-sensor-interaction#post-9158</link>
			<pubDate>Fri, 15 Nov 2024 09:28:14 +0000</pubDate>
			<dc:creator>mperezdiego</dc:creator>
			<guid isPermaLink="false">9158@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi, &#60;/p&#62;
&#60;p&#62;I am performing a 2D elastic simulation between two media where the incident medium is a solid and the imepedance mismatch is very high. I am exciting an application specific time varying pulse. The source I am using is a 1D horizontal line and I want to sense the received echo at the exact same grid points, so I defined the sensor mask equal to the source mask. What I observe after siulation is the original pulse and then the echo. The echo is equal to the excitation pulse (totally reflected back), but the sensed sent pulse, instead of being the inverted original pulse (what I observe when the sensor and the source are in different positions), I observe a more complex waveform that then offsets the received echo too. &#60;/p&#62;
&#60;p&#62;I would like to know how the sensor and source are coupled in this  case to give that curious waveform. I am particularly interested in that waveform because I observed it in other experimental conditions but in the echoes.&#60;/p&#62;
&#60;p&#62;Thank you,&#60;/p&#62;
&#60;p&#62;M.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>mperezdiego on "Applying a different excitation to each source point"</title>
			<link>https://www.k-wave.org/forum/topic/applying-a-different-excitation-to-each-source-point#post-9184</link>
			<pubDate>Mon, 17 Feb 2025 13:53:34 +0000</pubDate>
			<dc:creator>mperezdiego</dc:creator>
			<guid isPermaLink="false">9184@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi,&#60;/p&#62;
&#60;p&#62;I am using a disk as a source for a 3D elastic simulation, and I want to excite a temporal pulse but with the source vibrating with a parabolic spatial distribution in order to keep the boundaries of the disk fixed. How can I do that? Because source.sxx = time_pulse asignes the same temporal pulse to all the points in the source mask.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>TWC on "Simulate thin-layered phantom using shear modulus input directly"</title>
			<link>https://www.k-wave.org/forum/topic/simulate-thin-layered-phantom-using-shear-modulus-input-directly#post-9180</link>
			<pubDate>Wed, 12 Feb 2025 03:25:52 +0000</pubDate>
			<dc:creator>TWC</dc:creator>
			<guid isPermaLink="false">9180@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Thank you for providing such a convenient and free simulation tool.&#60;/p&#62;
&#60;p&#62;Currently, I am using &#60;code&#62;pstdElastic3D&#60;/code&#62; to simulate shear wave propagation in thin-layered phantoms and to calculate shear wave speed. However, it is known that when the thickness of the layer is smaller than the wavelength of the shear wave, guided waves can occur. In such cases, the shear modulus cannot be derived using the simplified formula: shear modulus = density*(shear wave speed)^2.&#60;/p&#62;
&#60;p&#62;In &#60;code&#62;pstdElastic3D.m&#60;/code&#62;, we input &#60;code&#62;medium.sound_speed_shear&#60;/code&#62; to calculate lame parameter using&#60;br /&#62;
&#60;code&#62;mu     = medium.sound_speed_shear.^2       .* medium.density;&#60;/code&#62;. &#60;/p&#62;
&#60;p&#62;I would like to ask if it is possible to:&#60;/p&#62;
&#60;p&#62;1. Modify the input to directly provide the shear modulus (&#60;code&#62;mu&#60;/code&#62;) instead of &#60;code&#62;medium.sound_speed_shear&#60;/code&#62; while maintaining simulation accuracy.&#60;br /&#62;
2. Set &#60;code&#62;flags.kelvin_voigt_model&#60;/code&#62; to &#60;code&#62;false&#60;/code&#62; to simulate an anisotropic, incompressible, and nonlinear thin layer.&#60;/p&#62;
&#60;p&#62;Best ragards,&#60;br /&#62;
Ting-Wei
&#60;/p&#62;</description>
		</item>
		<item>
			<title>Moein0114 on "GPU version of k-wave for elastic mode simulations"</title>
			<link>https://www.k-wave.org/forum/topic/gpu-version-of-k-wave-for-elastic-mode-simulations#post-8402</link>
			<pubDate>Mon, 03 Jan 2022 14:41:30 +0000</pubDate>
			<dc:creator>Moein0114</dc:creator>
			<guid isPermaLink="false">8402@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi,&#60;br /&#62;
In &#34;Comparison of compressional and elastic wave simulations for patient-specific planning prior to transcranial photoacoustic-guided neurosurgery&#34;, authors claim to use GPU version of kwave for elastic-mode simulations. However, I could not find it in the k-wave toolbox. Could you please let me know how I can have access to this mode? &#60;/p&#62;
&#60;p&#62;Regards,&#60;br /&#62;
Moein.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>Zakc on "Photoacoustic Image Reconstruction(Time reversal) in Elastic Model"</title>
			<link>https://www.k-wave.org/forum/topic/photoacoustic-image-reconstructiontime-reversal-in-elastic-model#post-9088</link>
			<pubDate>Thu, 02 May 2024 09:16:37 +0000</pubDate>
			<dc:creator>Zakc</dc:creator>
			<guid isPermaLink="false">9088@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi everyone,&#60;/p&#62;
&#60;p&#62;  I am doing well in photoacoustic image reconstruction by using time reversal and interpolating data in fluid model based on &#34;2D Time Reversal Reconstruction For A Circular Sensor Example&#34;. Hence, I am trying to do the same in the elastic model because the medium includes the skull. I encountered a problem in that the circular sensors emit waves in an axisymmetric manner and the reconstructed image is incorrect and axisymmetric. But everything went well by interpolating data and creating an equivalent continuous circle. The codes of sensor, source, time reversal are as follows.&#60;/p&#62;
&#60;p&#62;Yours,&#60;br /&#62;
Zak&#60;br /&#62;
------------------------------------------------------------&#60;br /&#62;
&#60;pre&#62;&#60;code&#62;% assign the source
sampling_freq = 1/kgrid.dt;     % [Hz]
source.s_mask = makeDisc(Nx, Ny, disc_x_pos, disc_y_pos, disc_radius);
source.sxx = -disc_magnitude.* toneBurst(sampling_freq, tone_burst_freq, tone_burst_cycles,&#38;#39;Plot&#38;#39;,false);
source.syy = source.sxx;

% define sensor
sensor_radius = 12e-2;     % [m]
sensor_angle = 4*pi/2;      % [rad]
sensor_pos = [0, 0];        % [m]
num_sensor_points = 40;
sensor.mask = makeCartCircle(sensor_radius, num_sensor_points, sensor_pos, sensor_angle);
% sensor.mask = makeCircle(Nx, Ny, sensor_pos(1,1), sensor_pos(1,2), round(sensor_radius/dx), sensor_angle);

% set the input options
input_args = {&#38;#39;Smooth&#38;#39;, false, &#38;#39;PMLInside&#38;#39;, false, &#38;#39;PlotPML&#38;#39;, false,...
    &#38;#39;PlotSim&#38;#39;,true};

% run the elastic simulation
sensor_data_elastic = pstdElastic2D(kgrid, medium, source, sensor, input_args{:});

% =========================================================================
% ELASTIC RECONSTRUCTION
% =========================================================================

% redefine kgrid_recon
kgrid_recon = kWaveGrid(Nx, dx, Ny, dy);
kgrid_recon.makeTime(cp1,cfl);

% add noise to the recorded sensor data
signal_to_noise_ratio = 40;	% [dB]
sensor_data_elastic = addNoise(sensor_data_elastic, signal_to_noise_ratio, &#38;#39;peak&#38;#39;);

% reset the initial pressure
source.sxx = 0;
source.syy = source.sxx;

% assign the time reversal data(elastic)
sensor.time_reversal_boundary_data = sensor_data_elastic;

% run the time-reversal reconstruction
p0_recon_elastic = pstdElastic2D(kgrid_recon, medium, source, sensor, input_args{:});

% create a binary sensor mask of an equivalent continuous circle
sensor_radius_grid_points = round(sensor_radius / kgrid_recon.dx);
binary_sensor_mask = makeCircle(kgrid_recon.Nx, kgrid_recon.Ny, ...
kgrid_recon.Nx/2 + 1, kgrid_recon.Ny/2 + 1, sensor_radius_grid_points, sensor_angle);

% assign to sensor structure
sensor.mask = binary_sensor_mask;

cart_sensor_mask = makeCartCircle(sensor_radius, num_sensor_points, sensor_pos, sensor_angle);

% interpolate data to remove the gaps and assign to sensor structure
sensor.time_reversal_boundary_data = interpCartData(kgrid_recon, sensor_data_elastic, cart_sensor_mask, binary_sensor_mask);

% run the time-reversal reconstruction
p0_recon_interp_elastic = pstdElastic2D(kgrid_recon, medium, source, sensor, input_args{:});&#60;/code&#62;&#60;/pre&#62;
&#60;p&#62;------------------------------------------------------------------
&#60;/p&#62;</description>
		</item>
		<item>
			<title>Amita on "Zero or exceptionally high pressure output from pstdElastic3D function"</title>
			<link>https://www.k-wave.org/forum/topic/zero-or-exceptionally-high-pressure-output-from-pstdelastic3d-function#post-8908</link>
			<pubDate>Mon, 11 Sep 2023 08:39:30 +0000</pubDate>
			<dc:creator>Amita</dc:creator>
			<guid isPermaLink="false">8908@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi,&#60;br /&#62;
I am trying to simulate the pressure distribution in a viscoelastic medium using pstdElastic3D. When I am using a velocity source with a rectangular source mask and getting exceptionally high-pressure values (P_max). I am not sure where I am going wrong. Please help. Code is pasted below.&#60;/p&#62;
&#60;p&#62;clear; close all; clc;&#60;br /&#62;
%Define the medium and grids (Sampling) &#60;/p&#62;
&#60;p&#62;L_x=(20*10^-3);% Unit:m&#60;br /&#62;
L_y=(20*10^-3);% Unit:m&#60;br /&#62;
L_z=(20*10^-3);% Unit:m&#60;br /&#62;
C_L=1540; % compressional sound speed; unit: m/s&#60;br /&#62;
Frequency_US=1*10^6; %unit: Hz (Maximum frequency)&#60;br /&#62;
Wavelength_Min=C_L/Frequency_US; % Unit: m&#60;br /&#62;
dx=Wavelength_Min/5;&#60;br /&#62;
dy=dx;&#60;br /&#62;
dz=dx;&#60;br /&#62;
Nx=ceil(L_x/dx); % Number of grids in the x direction; ceil rounds the number to next integer.&#60;br /&#62;
Ny=ceil(L_y/dy); % Number of grids in the y direction&#60;br /&#62;
Nz=ceil(L_z/dz); % Number of grids in the z direction&#60;br /&#62;
kgrid = kWaveGrid(Nx, dx, Ny, dy, Nz, dz); % kWavegrid class makes and store grid points&#60;/p&#62;
&#60;p&#62;%Assigning the temporal grids&#60;br /&#62;
CFL=0.5;&#60;br /&#62;
dt=CFL*dx/C_L;% CFL=c*dt/dx&#60;br /&#62;
simulation_time=40*10^-6; % unit: seconds&#60;br /&#62;
Nt=ceil(simulation_time/dt);% round-off to the next integer&#60;br /&#62;
kgrid.setTime(Nt, dt);% it sets the time grid and makes time array&#60;/p&#62;
&#60;p&#62;%medium properties for pstdElastic3D&#60;br /&#62;
medium.sound_speed_compression=C_L; %m/s&#60;br /&#62;
medium.sound_speed_shear=1.7; %Unit: m/s&#60;br /&#62;
medium.density=980; %in kg/m^3&#60;br /&#62;
medium.alpha_coeff_compression=0.1; %dB/MHz^2-cm&#60;br /&#62;
medium.alpha_coeff_shear=0.3; %dB/MHz^2-cm&#60;/p&#62;
&#60;p&#62;%Defining the source input&#60;br /&#62;
% define properties of the input signal&#60;br /&#62;
source_strength = 1e-6;          % [m/s]&#60;br /&#62;
tone_burst_freq = Frequency_US;        % [Hz]&#60;br /&#62;
tone_burst_cycles = 5;&#60;br /&#62;
input_signal = source_strength*toneBurst(1/kgrid.dt, tone_burst_freq, tone_burst_cycles);&#60;/p&#62;
&#60;p&#62;Transducer_height=46;% in grid points&#60;br /&#62;
transducer_width = 32;&#60;br /&#62;
source.u_mask = zeros(Nx, Ny, Nz);&#60;br /&#62;
source.u_mask(11, ceil(Ny/2 - transducer_width/2) + 1:ceil(Ny/2 + transducer_width/2), ceil(Nz/2 - Transducer_height/2) + 1:ceil(Nz/2 + Transducer_height/2)) = 1&#60;br /&#62;
source.u_mode='dirichlet';&#60;br /&#62;
focus_position=[0, 0, 0];&#60;br /&#62;
focus_signal = focus(kgrid, input_signal, source.u_mask, focus_position, C_L);&#60;br /&#62;
% plot(focuse_signal((93*0)+101,:))&#60;br /&#62;
source.ux=focus_signal; %focused_signal;&#60;/p&#62;
&#60;p&#62;%% define the sensor mask&#60;br /&#62;
sensor.mask = zeros(Nx, Ny, Nz);&#60;br /&#62;
%taking the sensor mask at the X-Y plane at the center of the medium (z=0&#60;br /&#62;
%plane)&#60;br /&#62;
sensor.mask(:,:,round(Nz/2)) = 1;&#60;br /&#62;
sensor.record = {'p', 'p_max', 'u', 'I', 'I_avg'};&#60;br /&#62;
sensor.record_start_index=1; %(default=1)&#60;/p&#62;
&#60;p&#62;%set input values for PML boundary layer&#60;br /&#62;
alpha_coeff_PML=2.5; % dB/MHz-cm (default=2)&#60;br /&#62;
PML_size=[10,10,10]; %(default=10)&#60;br /&#62;
% set the optional input as input arguements&#60;/p&#62;
&#60;p&#62;input_args = {'PlotPML', false, 'PMLAlpha', alpha_coeff_PML, 'PMLSize', PML_size};&#60;br /&#62;
% RUN the elastic simulation&#60;br /&#62;
%use pstdElastic3D function to simulate propagation of elastic wave in this&#60;br /&#62;
%homogenous viscoelastic medium&#60;br /&#62;
sensor_data=pstdElastic3D(kgrid, medium, source, sensor, input_args{:});
&#60;/p&#62;</description>
		</item>
		<item>
			<title>masud407 on "Recording shear stress value"</title>
			<link>https://www.k-wave.org/forum/topic/recording-shear-stress-value#post-8933</link>
			<pubDate>Tue, 31 Oct 2023 20:23:23 +0000</pubDate>
			<dc:creator>masud407</dc:creator>
			<guid isPermaLink="false">8933@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hello, I am trying to record/print the shear stress value for pstd2Delastic() function. I can see a previous discussion:&#60;/p&#62;
&#60;p&#62; &#60;a href=&#34;http://www.k-wave.org/forum/topic/failed-to-record-shear-stress&#34; rel=&#34;nofollow&#34;&#62;http://www.k-wave.org/forum/topic/failed-to-record-shear-stress&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;Unfortunately, I still could not solve it? Can anyone please explain the step by step process to print the sxy.&#60;/p&#62;
&#60;p&#62;I tried to follow Dr. Treeby's instruction from that discussion, bit it still says &#34;'sxy' is not a valid input for sensor.record.&#34;&#60;/p&#62;
&#60;p&#62;Thanks for your time.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>EVickers on "How to use k-wave to measure bone-conduction acoustics (skull transfer function)"</title>
			<link>https://www.k-wave.org/forum/topic/how-to-use-k-wave-to-measure-bone-conduction-acoustics-skull-transfer-function#post-8820</link>
			<pubDate>Sat, 10 Jun 2023 16:38:33 +0000</pubDate>
			<dc:creator>EVickers</dc:creator>
			<guid isPermaLink="false">8820@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;I'm a retired audio DSP engineer who's intrigued by the research on how dolphins hear using bone conduction. They get exceptional localization in the median plane, despite have no pinnae (the external ear junk we use for sensing elevation).&#60;/p&#62;
&#60;p&#62;I'd like to estimate the skull-related transfer function for a human skull, using a CT scan of a relatively normal skull (mine). &#60;/p&#62;
&#60;p&#62;What would be involved in using k-wave for this analysis? (I'm trying to decide whether to use acoustic measurements and accelerometers instead.) Is there anyone who'd be interested in consulting for this (for fun, or possibly publication)?
&#60;/p&#62;</description>
		</item>
		<item>
			<title>masud407 on "Simulation of Shear wave propagation using volume Force"</title>
			<link>https://www.k-wave.org/forum/topic/simulation-of-shear-wave-propagation-using-volume-force#post-8906</link>
			<pubDate>Fri, 08 Sep 2023 03:42:29 +0000</pubDate>
			<dc:creator>masud407</dc:creator>
			<guid isPermaLink="false">8906@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Dr. Treeby,&#60;/p&#62;
&#60;p&#62;I was simulating the shear wave propagation based on the following paper:&#60;br /&#62;
&#34;https://asa.scitation.org/doi/pdf/10.1121/2.0000398&#34;&#60;/p&#62;
&#60;p&#62;So I can use the stress calculated from ARF using the pstdElstic. I managed to do that. But there is another way mentioned using volume force. According to the paper, the&#60;br /&#62;
input velocity is automatically scaled to a force per mass (m/s2) by multiplying it with the factor 2c0/dxi where dxi is the spatial step in the chosen direction. To get a volume&#60;br /&#62;
force Fi as input, we can therefore use an input velocity equal to (Fi*pho)/(2c*dx).&#60;/p&#62;
&#60;p&#62;As K-wave only takes the stress or velocity as input. So Should I convert the ARF in to the velocity using the above relation and input it as velocity_x, velocity_y, and velocity_z in pstdElstic3D? Thanks for your time and looking forward to having your suggestions.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>masud407 on "Kspaceorder2D and pstdelastic2D simultaneous use"</title>
			<link>https://www.k-wave.org/forum/topic/kspaceorder2d-and-pstdelastic2d-simultaneous-use#post-8815</link>
			<pubDate>Fri, 09 Jun 2023 18:44:53 +0000</pubDate>
			<dc:creator>masud407</dc:creator>
			<guid isPermaLink="false">8815@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Can anyone please explain to me how I can use Kspaceorder2D and pstdelastic2D simultaneously for the following example?&#60;/p&#62;
&#60;p&#62;&#60;a href=&#34;http://www.k-wave.org/documentation/example_us_beam_patterns.php&#34; rel=&#34;nofollow&#34;&#62;http://www.k-wave.org/documentation/example_us_beam_patterns.php&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;What should be the input for the pstdelastic2d case? Any code example for this type of study? Thanks
&#60;/p&#62;</description>
		</item>
		<item>
			<title>bth012 on "How to implement the ARF induced shear wave propagation"</title>
			<link>https://www.k-wave.org/forum/topic/how-to-implement-the-arf-induced-shear-wave-propagation#post-6998</link>
			<pubDate>Thu, 15 Aug 2019 22:33:57 +0000</pubDate>
			<dc:creator>bth012</dc:creator>
			<guid isPermaLink="false">6998@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hello,&#60;/p&#62;
&#60;p&#62;I would like to simulate the ARF induced shear wave propagation and compute the displacement. Now I am following some simulation in the article &#34;https://asa.scitation.org/doi/pdf/10.1121/2.0000398&#34;&#60;br /&#62;
I have a question. How do I put the ARF data into &#34;pstdElastic2D.m&#34;, as an input? This part has not been resolved for a long time.&#60;br /&#62;
Could you please give me some comments about that?&#60;/p&#62;
&#60;p&#62;Thanks,
&#60;/p&#62;</description>
		</item>
		<item>
			<title>bhaskara.chintada on "Shear wave displacements induced by acoustic radiation force."</title>
			<link>https://www.k-wave.org/forum/topic/shear-wave-displacements-induced-by-acoustic-radiation-force#post-7146</link>
			<pubDate>Fri, 13 Dec 2019 18:55:30 +0000</pubDate>
			<dc:creator>bhaskara.chintada</dc:creator>
			<guid isPermaLink="false">7146@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hello, &#60;/p&#62;
&#60;p&#62;I am trying to simulate shear waves induced by acoustic radiation force using k-Wave toolbox as described in the article [1]. I am able to reproduce shear wave displacements profiles similar to the plots in Figures 5 &#38;amp; 6 of [1]. The displacement profiles obtained at different propagation distances (i.e. at different Ny indices) when stresses are given as input to the solver pstdElastic2D() as described in [1] are shown in the figure available at &#60;a href=&#34;https://polybox.ethz.ch/index.php/s/ztlYYumUxqQBNgZ&#34; rel=&#34;nofollow&#34;&#62;https://polybox.ethz.ch/index.php/s/ztlYYumUxqQBNgZ&#60;/a&#62;. However, I am curious to know the possible reasons behind obtaining negative displacements in k-Wave as shear wave displacements induced by acoustic radiation force are usually positive similar to the shear wave displacement profiles obtained from FEM simulation and analytical solution as shown in the Figure 3 of [1]. Please feel free to comment your intuitions and suggestions regarding this observation. Thank you.  &#60;/p&#62;
&#60;p&#62;[1] &#60;a href=&#34;https://asa.scitation.org/doi/pdf/10.1121/2.0000398?class=pdf&#34; rel=&#34;nofollow&#34;&#62;https://asa.scitation.org/doi/pdf/10.1121/2.0000398?class=pdf&#60;/a&#62;
&#60;/p&#62;</description>
		</item>
		<item>
			<title>masud407 on "Elastic wave simulation for two medium"</title>
			<link>https://www.k-wave.org/forum/topic/elastic-wave-simulation-for-two-medium#post-8774</link>
			<pubDate>Sat, 27 May 2023 22:59:39 +0000</pubDate>
			<dc:creator>masud407</dc:creator>
			<guid isPermaLink="false">8774@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hello, I am a new K-wave user. I want to simulate a linear transducer array that will generate ARF at the interface of the two medium. I used the example code for defining the diagnostic transducer. I am not sure if the following code is correct or not. Anyone please help?&#60;/p&#62;
&#60;p&#62;close all;&#60;br /&#62;
clear all;&#60;br /&#62;
clearvars;&#60;/p&#62;
&#60;p&#62;% simulation settings&#60;br /&#62;
DATA_CAST = 'single';&#60;/p&#62;
&#60;p&#62;% =========================================================================&#60;br /&#62;
% DEFINE THE K-WAVE GRID&#60;br /&#62;
% =========================================================================&#60;/p&#62;
&#60;p&#62;% set the size of the perfectly matched layer (PML)&#60;br /&#62;
PML_X_SIZE = 20;            % [grid points]&#60;br /&#62;
PML_Y_SIZE = 10;            % [grid points]&#60;br /&#62;
PML_Z_SIZE = 10;            % [grid points]&#60;/p&#62;
&#60;p&#62;% set total number of grid points not including the PML&#60;br /&#62;
Nx = 128 - 2*PML_X_SIZE;    % [grid points]&#60;br /&#62;
Ny = 128 - 2*PML_Y_SIZE;    % [grid points]&#60;br /&#62;
Nz = 64 - 2*PML_Z_SIZE;     % [grid points]&#60;/p&#62;
&#60;p&#62;% set desired grid size in the x-direction not including the PML&#60;br /&#62;
x = 40e-3;                  % [m]&#60;/p&#62;
&#60;p&#62;% calculate the spacing between the grid points&#60;br /&#62;
dx = x/Nx;                  % [m]&#60;br /&#62;
dy = dx;                    % [m]&#60;br /&#62;
dz = dx;                    % [m]&#60;/p&#62;
&#60;p&#62;% create the k-space grid&#60;br /&#62;
kgrid = kWaveGrid(Nx, dx, Ny, dy, Nz, dz);&#60;/p&#62;
&#60;p&#62;% =========================================================================&#60;br /&#62;
% DEFINE THE MEDIUM PARAMETERS&#60;br /&#62;
% =========================================================================&#60;/p&#62;
&#60;p&#62;%define the properties of the propagation medium&#60;/p&#62;
&#60;p&#62;medium.sound_speed = 2000.*ones(Nx,Ny,Nz) ; % [m/s] 2nd&#60;br /&#62;
medium.sound_speed(1:Nx/2,:,:) = 1000 ; % [m/s] 1st 101&#60;br /&#62;
medium.density = 2000*ones(Nx,Ny,Nz); % [kg/m^3] 2nd&#60;br /&#62;
medium.density(1:round(Nx/2),:,:) = 1134 ; % [kg/m^3] 1st&#60;/p&#62;
&#60;p&#62;medium.alpha_coeff = 0.001*ones(Nx,Ny,Nz); % [dB/(MHz^y cm)] 2nd&#60;br /&#62;
medium.alpha_coeff(1:round(Nx/2),:,:)=0.01 ; % [dB/(MHz^y cm)] 1st&#60;br /&#62;
medium.alpha_power = 1.5;&#60;br /&#62;
medium.BonA = 6;&#60;/p&#62;
&#60;p&#62;% create the time array&#60;br /&#62;
t_end = 40e-6;                  % [s]&#60;br /&#62;
kgrid.makeTime(medium.sound_speed, [], t_end);&#60;/p&#62;
&#60;p&#62;% =========================================================================&#60;br /&#62;
% DEFINE THE INPUT SIGNAL&#60;br /&#62;
% =========================================================================&#60;/p&#62;
&#60;p&#62;% define properties of the input signal&#60;br /&#62;
source_strength = 1e6;          % [Pa]&#60;br /&#62;
tone_burst_freq = 0.5e6;        % [Hz]&#60;br /&#62;
tone_burst_cycles = 5;&#60;/p&#62;
&#60;p&#62;% create the input signal using toneBurst&#60;br /&#62;
input_signal = toneBurst(1/kgrid.dt, tone_burst_freq, tone_burst_cycles);&#60;/p&#62;
&#60;p&#62;% scale the source magnitude by the source_strength divided by the&#60;br /&#62;
% impedance (the source is assigned to the particle velocity)&#60;/p&#62;
&#60;p&#62;input_signal = (source_strength ./ (1000 .* 1134)) .* input_signal;&#60;/p&#62;
&#60;p&#62;% =========================================================================&#60;br /&#62;
% DEFINE THE ULTRASOUND TRANSDUCER&#60;br /&#62;
% =========================================================================&#60;/p&#62;
&#60;p&#62;% physical properties of the transducer&#60;br /&#62;
transducer.number_elements = 72;    % total number of transducer elements&#60;br /&#62;
transducer.element_width = 1;       % width of each element [grid points]&#60;br /&#62;
transducer.element_length = 12;     % length of each element [grid points]&#60;br /&#62;
transducer.element_spacing = 0;     % spacing (kerf width) between the elements [grid points]&#60;br /&#62;
transducer.radius = inf;            % radius of curvature of the transducer [m]&#60;/p&#62;
&#60;p&#62;% calculate the width of the transducer in grid points&#60;br /&#62;
transducer_width = transducer.number_elements * transducer.element_width ...&#60;br /&#62;
    + (transducer.number_elements - 1) * transducer.element_spacing;&#60;/p&#62;
&#60;p&#62;% use this to position the transducer in the middle of the computational grid&#60;br /&#62;
transducer.position = round([1, Ny/2 - transducer_width/2, Nz/2 - transducer.element_length/2]);&#60;/p&#62;
&#60;p&#62;% properties used to derive the beamforming delays&#60;br /&#62;
transducer.sound_speed = 1540;                  % sound speed [m/s]&#60;br /&#62;
transducer.focus_distance = 10e-3;              % focus distance [m]&#60;br /&#62;
transducer.elevation_focus_distance = 19e-3;    % focus distance in the elevation plane [m]&#60;br /&#62;
transducer.steering_angle = 0;                  % steering angle [degrees]&#60;/p&#62;
&#60;p&#62;% apodization&#60;br /&#62;
transducer.transmit_apodization = 'Rectangular';&#60;br /&#62;
transducer.receive_apodization = 'Rectangular';&#60;/p&#62;
&#60;p&#62;% define the transducer elements that are currently active&#60;br /&#62;
transducer.active_elements = zeros(transducer.number_elements, 1);&#60;br /&#62;
transducer.active_elements(21:52) = 1;&#60;/p&#62;
&#60;p&#62;% append input signal used to drive the transducer&#60;br /&#62;
transducer.input_signal = input_signal;&#60;/p&#62;
&#60;p&#62;% create the transducer using the defined settings&#60;br /&#62;
transducer = kWaveTransducer(kgrid, transducer);&#60;/p&#62;
&#60;p&#62;% print out transducer properties&#60;br /&#62;
transducer.properties;&#60;/p&#62;
&#60;p&#62;% =========================================================================&#60;br /&#62;
% DEFINE SENSOR MASK&#60;br /&#62;
% =========================================================================&#60;/p&#62;
&#60;p&#62;% create a binary sensor mask with four detection positions&#60;br /&#62;
sensor.mask = zeros(Nx, Ny, Nz);&#60;br /&#62;
sensor.mask([Nx/4, Nx/2, 3*Nx/4], Ny/2, Nz/2) = 1;&#60;/p&#62;
&#60;p&#62;% =========================================================================&#60;br /&#62;
% RUN THE SIMULATION&#60;br /&#62;
% =========================================================================&#60;/p&#62;
&#60;p&#62;% set the input settings&#60;br /&#62;
input_args = {'DisplayMask', transducer.all_elements_mask &#124; sensor.mask, ...&#60;br /&#62;
    'PMLInside', false, 'PlotPML', false, 'PMLSize', [PML_X_SIZE, PML_Y_SIZE, PML_Z_SIZE], ...&#60;br /&#62;
    'DataCast', DATA_CAST, 'PlotScale', [-1/2, 1/2] * source_strength};&#60;/p&#62;
&#60;p&#62;% run the simulation&#60;br /&#62;
[sensor_data] = kspaceFirstOrder3D(kgrid, medium, transducer, sensor, input_args{:});&#60;/p&#62;
&#60;p&#62;% calculate the amplitude spectrum of the input signal and the signal&#60;br /&#62;
% recorded each of the sensor positions&#60;br /&#62;
[f_input, as_input] = spect([input_signal, zeros(1, 2 * length(input_signal))], 1/kgrid.dt);&#60;br /&#62;
[~, as_1] = spect(sensor_data(1, :), 1/kgrid.dt);&#60;br /&#62;
[~, as_2] = spect(sensor_data(2, :), 1/kgrid.dt);&#60;br /&#62;
[f, as_3] = spect(sensor_data(3, :), 1/kgrid.dt);&#60;/p&#62;
&#60;p&#62;% =========================================================================&#60;br /&#62;
% VISUALISATION&#60;br /&#62;
% =========================================================================&#60;/p&#62;
&#60;p&#62;% plot the input signal and its frequency spectrum&#60;br /&#62;
figure;&#60;br /&#62;
subplot(2, 1, 1);&#60;br /&#62;
plot((0:kgrid.dt:(length(input_signal) - 1) * kgrid.dt) * 1e6, input_signal, 'k-');&#60;br /&#62;
xlabel('Time [\mus]');&#60;br /&#62;
ylabel('Particle Velocity [m/s]');
&#60;/p&#62;</description>
		</item>
		<item>
			<title>uuu81704 on "【simulation reflected shear wave propagation problems】"</title>
			<link>https://www.k-wave.org/forum/topic/%e3%80%90simulation-reflected-shear-wave-propagation-problems%e3%80%91#post-8299</link>
			<pubDate>Sun, 22 Aug 2021 10:45:05 +0000</pubDate>
			<dc:creator>uuu81704</dc:creator>
			<guid isPermaLink="false">8299@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;I follow the paper &#60;a href=&#34;https://doi.org/10.1121/2.0000398&#34; rel=&#34;nofollow&#34;&#62;https://doi.org/10.1121/2.0000398&#60;/a&#62; mainly.&#60;br /&#62;
I separate it into 2 parts.&#60;br /&#62;
make different medium shear_speed(5 m/s and 1 m/s) to reflect shear wave.&#60;/p&#62;
&#60;p&#62;===== code &#38;amp; Procedure =====&#60;br /&#62;
run &#34;main.m&#34;&#60;br /&#62;
1. push focus ARF to generate stress(input of Part2)&#60;br /&#62;
2. record the ux &#38;amp; uy to get displacement&#60;br /&#62;
&#60;a href=&#34;https://drive.google.com/drive/folders/1tTkO4KDsLASSqUZvQRmDz5sw4kX3plqR&#34; rel=&#34;nofollow&#34;&#62;https://drive.google.com/drive/folders/1tTkO4KDsLASSqUZvQRmDz5sw4kX3plqR&#60;/a&#62;&#60;br /&#62;
(I will update more details in the slide on the drive)&#60;/p&#62;
&#60;p&#62;======= Problems ========&#60;br /&#62;
1. there seems a fake shear wave generated from the wall.&#60;br /&#62;
2. I am not sure about my code design right, or not?
&#60;/p&#62;</description>
		</item>
		<item>
			<title>hamids on "To define different phase and amplitude for each source in multi-source medium"</title>
			<link>https://www.k-wave.org/forum/topic/to-define-different-phase-and-amplitude-for-each-source-in-multi-source-medium#post-8697</link>
			<pubDate>Thu, 26 Jan 2023 04:57:42 +0000</pubDate>
			<dc:creator>hamids</dc:creator>
			<guid isPermaLink="false">8697@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;I defined a medium with several elastic wave sources according to the following codes. In this simulation, all sources have the same phase and amplitude. Now, I need to define different phases and amplitudes for each source. For instance, source #1 has a phase equal to 0 and an amplitude equal to 1, source #2 has a phase equal to 90 and an amplitude equal to 2, and so on. Is there any way to do so?&#60;/p&#62;
&#60;p&#62;source_y_pos=[ceil(Ny/8), ceil(Ny/4), ceil(3*Ny/8), ceil(Nz/2), ceil(5*Ny/8), ceil(3*Ny/4), ceil(7*Ny/8)];&#60;br /&#62;
source.u_mask (source_y_pos, source_y_pos, 1)= 1;&#60;br /&#62;
source.u_mask (source_y_pos, 1, source_y_pos)= 1;&#60;br /&#62;
source.u_mask (1, source_y_pos, source_y_pos)= 1;&#60;br /&#62;
source.u_mask (source_y_pos, source_y_pos, end)= 1;&#60;br /&#62;
source.u_mask (source_y_pos, end, source_y_pos)= 1;&#60;br /&#62;
source.u_mask (end, source_y_pos, source_y_pos)= 1;&#60;br /&#62;
source_freq = 500;&#60;br /&#62;
source_mag = 50;&#60;/p&#62;
&#60;p&#62;source.uz = source_mag*sin(2*pi*source_freq*kgrid.t_array);
&#60;/p&#62;</description>
		</item>
		<item>
			<title>s148275 on "Similarity between elastic and fluid models"</title>
			<link>https://www.k-wave.org/forum/topic/similarity-between-elastic-and-fluid-models#post-8602</link>
			<pubDate>Mon, 05 Sep 2022 09:35:22 +0000</pubDate>
			<dc:creator>s148275</dc:creator>
			<guid isPermaLink="false">8602@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hello,&#60;/p&#62;
&#60;p&#62;I have been using both the k-space fluid model with power-law attenuation (kspaceFirstOrder) and the viscoelastic model (pstdElastic). I was wondering if the viscoelastic model will reduce to the fluid model with power-law attenuation if you set the shear velocity and attenuation to zero for the viscoelastic model and the power-law coefficient to y=2 for the fluid model?&#60;/p&#62;
&#60;p&#62;Thanks in advance!&#60;/p&#62;
&#60;p&#62;Best regards,&#60;br /&#62;
Frank
&#60;/p&#62;</description>
		</item>
		<item>
			<title>anil on "Simulations Time vs. Absorption Coeffiecitents"</title>
			<link>https://www.k-wave.org/forum/topic/simulations-time-vs-absorption-coeffiecitents#post-8612</link>
			<pubDate>Tue, 27 Sep 2022 01:13:06 +0000</pubDate>
			<dc:creator>anil</dc:creator>
			<guid isPermaLink="false">8612@https://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi Bradley,&#60;/p&#62;
&#60;p&#62;Thank you for this useful simulation toolbox. Could briefly explain or direct me to any sources which explain why simulation time increases with higher absorption values in elastic simulations?&#60;/p&#62;
&#60;p&#62;For instance, when I try to run simulations with bone absorption coefficients (compressional absorption = 8.83, shear absorption = 19.5, grid size = 1024 x 2048 ), the simulation times is around 4 hours. Are there any ways to lower simulation time?&#60;/p&#62;
&#60;p&#62;Best regards,&#60;br /&#62;
Anil
&#60;/p&#62;</description>
		</item>

	</channel>
</rss>
