<?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: odd thermal diffusion in a heterogeneous air/skin media</title>
		<link>http://www.k-wave.org/forum/topic/odd-thermal-diffusion-in-a-heterogeneous-airskin-media</link>
		<description>Support for the k-Wave MATLAB toolbox</description>
		<language>en-US</language>
		<pubDate>Wed, 13 May 2026 07:02:20 +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/odd-thermal-diffusion-in-a-heterogeneous-airskin-media" rel="self" type="application/rss+xml" />

		<item>
			<title>Bradley Treeby on "odd thermal diffusion in a heterogeneous air/skin media"</title>
			<link>http://www.k-wave.org/forum/topic/odd-thermal-diffusion-in-a-heterogeneous-airskin-media#post-7710</link>
			<pubDate>Tue, 28 Jul 2020 09:00:28 +0000</pubDate>
			<dc:creator>Bradley Treeby</dc:creator>
			<guid isPermaLink="false">7710@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;HI Charlie,&#60;/p&#62;
&#60;p&#62;Yes - eventually &#60;code&#62;kWaveDiffusion&#60;/code&#62; will allow the world boundaries to be conducting. I'm working on this at the moment. In the meantime, you can make the domain bigger as you say.&#60;/p&#62;
&#60;p&#62;The thermal boundary conditions in the MATLAB PDE toolbox are analogous to the ones in &#60;code&#62;kWaveDiffusion&#60;/code&#62;, but can also be made more general. Setting &#60;code&#62;&#38;#39;Temperature&#38;#39;, 0&#60;/code&#62; in MATLAB is equivalent to a conducting BC in &#60;code&#62;kWaveDiffusion&#60;/code&#62;, and setting &#60;code&#62;&#38;#39;HeatFlux&#38;#39;, 0&#60;/code&#62; is equivalent to an insulating BC. You can also specify more complicated BC (and combinations) in MATLAB which are not possible in &#60;code&#62;kWaveDiffusion&#60;/code&#62;.&#60;/p&#62;
&#60;p&#62;The general PDE solved using &#60;code&#62;createpde(&#38;#39;thermal&#38;#39;, &#38;#39;transient&#38;#39;)&#60;/code&#62; is the same as &#60;code&#62;kWaveDiffusion&#60;/code&#62; (ignoring the perfusion which is modelled in k-Wave). In other words, the thermal physics is the same.&#60;/p&#62;
&#60;p&#62;Hope that helps,&#60;/p&#62;
&#60;p&#62;Brad.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>cgenes on "odd thermal diffusion in a heterogeneous air/skin media"</title>
			<link>http://www.k-wave.org/forum/topic/odd-thermal-diffusion-in-a-heterogeneous-airskin-media#post-7686</link>
			<pubDate>Fri, 03 Jul 2020 14:11:01 +0000</pubDate>
			<dc:creator>cgenes</dc:creator>
			<guid isPermaLink="false">7686@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;ON further thought  - perhaps the air/surface interface is much more complicated than just changing the coefficients for thermal diffusion, as I would have though radiative or convection processes take over? &#60;/p&#62;
&#60;p&#62;the Matlab thermal toolbox has this 'boundaries' function&#60;br /&#62;
&#60;a href=&#34;https://www.mathworks.com/help/pde/ug/pde.thermalmodel.thermalbc.html&#34; rel=&#34;nofollow&#34;&#62;https://www.mathworks.com/help/pde/ug/pde.thermalmodel.thermalbc.html&#60;/a&#62;&#60;br /&#62;
which I think accounts for convection and radiative heat transfer&#60;/p&#62;
&#60;p&#62;is this a much more likely reason why kWave isn't great at modelling the air/surface boundary?
&#60;/p&#62;</description>
		</item>
		<item>
			<title>cgenes on "odd thermal diffusion in a heterogeneous air/skin media"</title>
			<link>http://www.k-wave.org/forum/topic/odd-thermal-diffusion-in-a-heterogeneous-airskin-media#post-7676</link>
			<pubDate>Mon, 29 Jun 2020 13:34:35 +0000</pubDate>
			<dc:creator>cgenes</dc:creator>
			<guid isPermaLink="false">7676@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;HI Brad &#60;/p&#62;
&#60;p&#62;thanks very much for your reply. &#60;/p&#62;
&#60;p&#62;I think I might know what's going on and why it looks so weird - although I'm probably misunderstanding something LOL&#60;/p&#62;
&#60;p&#62;because air density and conductivity are orders of magnitude different than in tissue, heat from the tissue escapes into the air layer which then quickly diffuses to the 'boundaries' - where I think it gets stuck. so then the air layer massively heats up unrealistically, and causes all sorts of weird effects. To contradict myself here though (LOL), shouldn't the heat start appearing on the 'other side' (in my case the tissue side) of the world?&#60;/p&#62;
&#60;p&#62;if my first explanation does make sense,  I'm guessing if your plug-in worked with heterogeneous layers I could use that to make the world boundaries conducting? (is this analogous to the perfectly matched layer [PML] the user can turn on an off with the kspace function?)&#60;/p&#62;
&#60;p&#62;Or as a hack, I could make the world massive in comparison to the tissue block?&#60;/p&#62;
&#60;p&#62;thanks&#60;/p&#62;
&#60;p&#62;Charlie
&#60;/p&#62;</description>
		</item>
		<item>
			<title>Bradley Treeby on "odd thermal diffusion in a heterogeneous air/skin media"</title>
			<link>http://www.k-wave.org/forum/topic/odd-thermal-diffusion-in-a-heterogeneous-airskin-media#post-7648</link>
			<pubDate>Sat, 27 Jun 2020 13:02:31 +0000</pubDate>
			<dc:creator>Bradley Treeby</dc:creator>
			<guid isPermaLink="false">7648@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi Charlie,&#60;/p&#62;
&#60;p&#62;In the acoustic case, the large change in material properties between tissue and air can cause some problems (see for example &#60;a href=&#34;http://www.k-wave.org/forum/topic/simulation-of-ultrasonic-testing-borehole-in-solid&#34;&#62;this post&#60;/a&#62;). In the thermal case, I haven't actually tried simulating this example before. Do you think that the simulated temperature field looks non-physical? What happens if you decrease the time step, or if you artificially move the properties of air (in particular the density) closer to skin?&#60;/p&#62;
&#60;p&#62;Regarding the thermal boundary conditions, you first need to download this toolbox and add it to the MATLAB path (try running one of the included examples to make sure the compiled functions work). Then you can set &#60;code&#62;medium.boundary_condition = &#38;#39;insulating&#38;#39;&#60;/code&#62; or &#60;code&#62;medium.boundary_condition = &#38;#39;conducting&#38;#39;&#60;/code&#62;. Unfortunately, these flags are only compatible with homogeneous material properties. It's on the to-do list to extend it to the more general case.&#60;/p&#62;
&#60;p&#62;Hope that helps,&#60;/p&#62;
&#60;p&#62;Brad
&#60;/p&#62;</description>
		</item>
		<item>
			<title>cgenes on "odd thermal diffusion in a heterogeneous air/skin media"</title>
			<link>http://www.k-wave.org/forum/topic/odd-thermal-diffusion-in-a-heterogeneous-airskin-media#post-7616</link>
			<pubDate>Tue, 16 Jun 2020 11:26:06 +0000</pubDate>
			<dc:creator>cgenes</dc:creator>
			<guid isPermaLink="false">7616@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;just to add to that: the way I'm setting up my air/surface media is like this &#60;/p&#62;
&#60;p&#62;%% specify the medium parameters&#60;br /&#62;
% create the computational grid&#60;br /&#62;
Nx = 65;           % number of grid points in the x (row) direction&#60;br /&#62;
Ny = 65;           % number of grid points in the y (column) direction&#60;br /&#62;
% Nz = 201; &#60;/p&#62;
&#60;p&#62;% calculate grid point spacing&#60;br /&#62;
dx =  (20 * 1e-3) / 65 % this is the height (or width / depth) of the 'world' in mm * m / the resolution aka grid points&#60;br /&#62;
dy =  (20 * 1e-3) / 65&#60;/p&#62;
&#60;p&#62;dx = dx;        % grid point spacing in the x direction [m]&#60;br /&#62;
dy = dy;        % grid point spacing in the y direction [m]&#60;br /&#62;
% dz =  1e-4;&#60;/p&#62;
&#60;p&#62;kgrid = kWaveGrid(Nx, dx, Ny, dy);&#60;/p&#62;
&#60;p&#62;% define medium properties&#60;/p&#62;
&#60;p&#62;airStart = 40; &#60;/p&#62;
&#60;p&#62;medium.density = ones(Nx, Ny);&#60;br /&#62;
medium.density(:, :)  = 1079;     % of tissue [kg/m^3]&#60;br /&#62;
% medium.density(:, airStart:end)  = 1.255; % of air [kg/m^3]&#60;br /&#62;
medium.density(airStart:end, :)  = 1.255; % of air [kg/m^3]&#60;br /&#62;
figure, imagesc(medium.density)&#60;/p&#62;
&#60;p&#62;medium.thermal_conductivity = ones(Nx, Ny);&#60;br /&#62;
medium.thermal_conductivity(:, :)  = 0.52;     % tissue [W/(m.K)]&#60;br /&#62;
% medium.thermal_conductivity(:, airStart:end)  = 26.02;  % of air [W/(m.K)]&#60;br /&#62;
medium.thermal_conductivity(airStart:end,:)  = 26.02;  % of air [W/(m.K)]&#60;/p&#62;
&#60;p&#62;medium.specific_heat = ones(Nx, Ny);&#60;br /&#62;
medium.specific_heat(:, :)   = 3540;     % of tissue [J/(kg.K)]&#60;br /&#62;
% medium.specific_heat(:, airStart:end)  = 0718;        % of air [J/(kg.K)]&#60;br /&#62;
medium.specific_heat(airStart:end, :)  = 718;        % of air [J/(kg.K)]&#60;/p&#62;
&#60;p&#62;% define medium properties related to perfusion&#60;br /&#62;
medium.blood_density                = ones(Nx, Ny);     % [kg/m^3]&#60;br /&#62;
medium.blood_density(:, :)          = 1060;     % [kg/m^3]&#60;br /&#62;
% medium.blood_density(:, airStart:end)    = 0;     % [kg/m^3]&#60;br /&#62;
medium.blood_density(airStart:end, :)    = 0;     % of air [kg/m^3]&#60;/p&#62;
&#60;p&#62;medium.blood_specific_heat          = ones(Nx, Ny);     % [J/(kg.K)]&#60;br /&#62;
medium.blood_specific_heat(:, :)    = 3617;     % [J/(kg.K)]&#60;br /&#62;
% medium.blood_specific_heat(:, airStart:end)    = 0;  % [J/(kg.K)]&#60;br /&#62;
medium.blood_specific_heat(airStart:end, :)    = 0;  % of air [J/(kg.K)]&#60;/p&#62;
&#60;p&#62;medium.blood_perfusion_rate         = ones(Nx, Ny);    % [1/s]&#60;br /&#62;
medium.blood_perfusion_rate(:, :)   = 0.01;     % [1/s]&#60;br /&#62;
% medium.blood_perfusion_rate(:, airStart:end) = 0;     % [1/s]&#60;br /&#62;
medium.blood_perfusion_rate(airStart:end, :) = 0;     % of air [1/s]&#60;/p&#62;
&#60;p&#62;medium.blood_ambient_temperature    = ones(Nx, Ny);       % [degC]&#60;br /&#62;
medium.blood_ambient_temperature(:, :)    = 37;       % [degC]&#60;br /&#62;
% medium.blood_ambient_temperature(:, airStart:end)   = 22;       % [degC]&#60;br /&#62;
medium.blood_ambient_temperature(airStart:end, :)   = 22;      % of air [degC]
&#60;/p&#62;</description>
		</item>
		<item>
			<title>cgenes on "odd thermal diffusion in a heterogeneous air/skin media"</title>
			<link>http://www.k-wave.org/forum/topic/odd-thermal-diffusion-in-a-heterogeneous-airskin-media#post-7615</link>
			<pubDate>Tue, 16 Jun 2020 11:18:19 +0000</pubDate>
			<dc:creator>cgenes</dc:creator>
			<guid isPermaLink="false">7615@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi&#60;/p&#62;
&#60;p&#62;I'm doing a simulation of thermal diffusion from a skin/air surface; kwave gives very odd results (I would copy in an image but the box won't let me)&#60;/p&#62;
&#60;p&#62;I'll describe: it has pronounced 'stripes' in it rather than smooth continuous diffusion as when doing a homogenous medium&#60;/p&#62;
&#60;p&#62;also, I can't set the boundaries to be insulating, so heat doesn't 'diffuse back round' - but I believe that is the topic of another post  (I'm not quite sure how to implement this code though &#60;a href=&#34;https://www.mathworks.com/matlabcentral/fileexchange/75071-matlab-discrete-trigonometric-transform-library)&#34; rel=&#34;nofollow&#34;&#62;https://www.mathworks.com/matlabcentral/fileexchange/75071-matlab-discrete-trigonometric-transform-library)&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;thanks&#60;/p&#62;
&#60;p&#62;Charlie
&#60;/p&#62;</description>
		</item>

	</channel>
</rss>
