<?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: Simulation of a rigid reflector in air</title>
		<link>http://www.k-wave.org/forum/topic/simulation-of-a-rigid-reflector-in-air</link>
		<description>Support for the k-Wave MATLAB toolbox</description>
		<language>en-US</language>
		<pubDate>Wed, 13 May 2026 00:23:59 +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/simulation-of-a-rigid-reflector-in-air" rel="self" type="application/rss+xml" />

		<item>
			<title>Bradley Treeby on "Simulation of a rigid reflector in air"</title>
			<link>http://www.k-wave.org/forum/topic/simulation-of-a-rigid-reflector-in-air#post-6317</link>
			<pubDate>Wed, 07 Mar 2018 00:05:39 +0000</pubDate>
			<dc:creator>Bradley Treeby</dc:creator>
			<guid isPermaLink="false">6317@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Unfortunately, there's not currently a great way to define these kind of high-contrast boundaries in k-Wave. You might want to consider looking at the boundary element method, if what you're mainly interested in is rigid reflectors in otherwise free-space.&#60;/p&#62;
&#60;p&#62;Regarding k-Wave, for these properties, the reflection coefficient is basically 1. In air, you can reduce the sound speed and density of the steel reflector quite a lot, and still get a reflection coefficient close to 1. I would suggest experimenting a bit with the values, and the CFL. I managed to make it stable with various combinations. Note, you should also set the reference sound speed to the value in air, i.e., &#60;code&#62;medium.sound_speed_ref = 343;&#60;/code&#62;.&#60;/p&#62;
&#60;p&#62;Hope that helps,&#60;/p&#62;
&#60;p&#62;Brad.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>greatben on "Simulation of a rigid reflector in air"</title>
			<link>http://www.k-wave.org/forum/topic/simulation-of-a-rigid-reflector-in-air#post-6290</link>
			<pubDate>Sun, 18 Feb 2018 03:40:06 +0000</pubDate>
			<dc:creator>greatben</dc:creator>
			<guid isPermaLink="false">6290@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi Brad,&#60;/p&#62;
&#60;p&#62;I'm trying to simulate the reflection due to an arbitrarily shaped rigid reflector placed in air medium. I tried using the heterogeneous medium simulation method, where the reflector is modelled as steel (close enough to a rigid body, I suppose), but the simulation result shows some extremely high values. Some similar topics in the forum suggest that the significant difference in sound speed and medium density is probably causing this issue. I wonder if there is a better way to simulate this, or a better simulation setting that can accurately model this type of reflection?&#60;/p&#62;
&#60;p&#62;I know that one method is to set a source mask for the reflector and enforce a boundary condition. But in the case of rigid body, the normal particle velocity on the surface needs to be set to 0, which is easy to do for boundaries perpendicular to X,Y and Z axes; but for circular (or any other non-rectangular) shape, this would seem difficult. &#60;/p&#62;
&#60;p&#62;Here is my simulation code, please have a glimpse:&#60;/p&#62;
&#60;p&#62;clear;&#60;br /&#62;
clc;&#60;/p&#62;
&#60;p&#62;Nx=256;&#60;br /&#62;
Ny=256;&#60;br /&#62;
dx = 1e-3;        % grid point spacing in the x direction [m]&#60;br /&#62;
dy = 1e-3;        % grid point spacing in the y direction [m]&#60;br /&#62;
kgrid = kWaveGrid(Nx, dx, Ny, dy);&#60;br /&#62;
Nt=400;&#60;br /&#62;
Fs=48000*50;&#60;br /&#62;
dt=1/Fs;&#60;/p&#62;
&#60;p&#62;medium.sound_speed = 343.*ones(Nx,Ny);&#60;br /&#62;
medium.sound_speed(150:170,40:200)=5800;&#60;br /&#62;
medium.density = 7850 * ones(Nx, Ny);&#60;br /&#62;
medium.density(150:170,40:200)=7850;&#60;/p&#62;
&#60;p&#62;kgrid.setTime(Nt,dt);&#60;/p&#62;
&#60;p&#62;source.p_mask = zeros(Nx, Ny);&#60;br /&#62;
source.p_mask(80,80) = 1;&#60;br /&#62;
source.p=zeros(1,100);&#60;br /&#62;
source.p(30)=10;&#60;/p&#62;
&#60;p&#62;source.p = filterTimeSeries(kgrid, medium, source.p, 'ZeroPhase', true);&#60;/p&#62;
&#60;p&#62;sensor.mask=zeros(Nx,Ny);&#60;br /&#62;
sensor.mask(100,100)=1;&#60;br /&#62;
sensor.mask(80,80)=1;&#60;/p&#62;
&#60;p&#62;sensor_data = kspaceFirstOrder2D(kgrid, medium, source, sensor);&#60;/p&#62;
&#60;p&#62;plot(sensor_data.');&#60;/p&#62;
&#60;p&#62;Thank you.
&#60;/p&#62;</description>
		</item>

	</channel>
</rss>
