How do I make an object in heat transfer transparent?
Show older comments
Hello,
I am trying to model heat transfer between two slabs that are laser-heated. The laser-heating is accounted for by a Gaussian heat equation and I am using the pde toolbox. However, the slab at which the laser acts is transparent. Right now I have a model where the laser heating source acts on the slab as if it WERE NOT transparent. How would I account for the fact that it is transparent so that the heating source acts on the second slab?
Thanks,
%set parameters----------------------------------------------------
samp_thick = 5e-6; % sample thickness (m)
samp_radius = 20e-6; % sample thickness (m)
sam_k = 85; % sample themral condcutivty (W/mK)
sam_cp = 440; % sample specific heat (J/kgK)
sam_rho = 7800; % sample density (kg/m^3)
ins_thick = 4.5e-6; % insulation thickness (m)
ins_radius = 20e-6; % sample thickness (m)
ins_k = 18; % insulation themral condcutivty (W/mK)
ins_cp = 880; % insulation specific heat (J/kgK)
ins_rho = 370; % insulation density (kg/m^3)
P0 = 30; % (W)
R = 10e-6; % beam waist (m)
%B = P0/(pi*samp_thick*R^2); % heat flux (W/m^2)
B = P0/(pi*R^2); % heat flux (W/m^2)
r_center = 0; % Center of the Gaussian distribution (m)
alpha = 0.1*1e5; % absorption coeff (m^-1)
%absorp = (1-exp(-1*alpha*samp_thick));
absorp = 1;
T0 = 300; % initial temp (K)
%set geometry-----------------------------------------------------
r1 = [3 4 0 samp_radius samp_radius 0 -1*samp_thick/2 -1*samp_thick/2 samp_thick/2 samp_thick/2];
r2 = [3 4 0 ins_radius ins_radius 0 samp_thick/2 samp_thick/2 ins_thick ins_thick];
gdm = [r1; r2]';
[g, bt] = decsg(gdm,'R1+R2',['R1'; 'R2']');
%build model---------------------------------------------------------
model = createpde('thermal', 'steadystate-axisymmetric');
geometryFromEdges(model, g);
generateMesh(model);
% Define the Gaussian heat flux function----------------------------------
x0 = 0; %change these to apply the laser spot to different places on sample
y0 = 0;
%gaussianHeatFlux = @(region,state) B * exp(-((region.x -x0).^2) / (R^2)); %center at r=0
gaussianHeatFlux = @(region,state) B * exp( -(((region.x -x0).^2) / (R^2))+ ( ( (region.y -y0).^2) / (R^2))); %center at r=0
%Set BCs------------------------------------------------------------------
thermalBC(model,"Edge",[1,2,4,5],"Temperature",T0); % ambient temp (K)
thermalBC(model, 'Edge',2, 'HeatFlux',gaussianHeatFlux);
%Set material properties---------------------------------------------------
thermalProperties(model, 'ThermalConductivity', sam_k,'Face',1); %sample properties
thermalProperties(model, 'ThermalConductivity', ins_k,'Face',2); %insulation properties
%solve model--------------------------------------------------------
results = solve(model);
T = results.Temperature;
msh = results.Mesh;
%plot figures------------------------------------------------------
figure
pdegplot(g,EdgeLabels="on",Facelabels="on");
xticks = get(gca, 'XTick');
yticks = get(gca, 'YTick');
set(gca, 'XTickLabel', xticks * 1e6); % Convert X-axis labels to microns
set(gca, 'YTickLabel', yticks * 1e6); % Convert Y-axis labels to microns
%axis([0 30 -10 10]);
title("Sample Geometry")
xlabel('r [\mum]'); % \mum for the micron symbol in LaTeX formatting
ylabel('z [\mum]'); % \mum for the micron symbol in LaTeX formatting
figure
axis equal
pdeplot(msh,XYData=T(:,end),Contour="on",ColorMap="jet");
axis equal
title("Temperature, Steady-State Solution")
% Scaling the axis labels to microns
xticks = get(gca, 'XTick');
yticks = get(gca, 'YTick');
set(gca, 'XTickLabel', xticks * 1e6); % Convert X-axis labels to microns
set(gca, 'YTickLabel', yticks * 1e6); % Convert Y-axis labels to microns
%clim([min(T_K(:)) max(T_K(:))]); % Set color axis to match the range of temperature in Kelvin
xlabel('r [\mum]'); % \mum for the micron symbol in LaTeX formatting
ylabel('z [\mum]'); % \mum for the micron symbol in LaTeX formatting
% Define a line along the top sample surface being heated
xline = linspace(0, samp_radius, 5000);
yline = ones(size(xline))*samp_thick/2;
y2 = ones(size(xline))*1e-6;
y3 = ones(size(xline))*-1e-6;
y4 = zeros(size(xline));
y5 = ones(size(xline))*-1*samp_thick/2;
% Extract temperature at the specified points and time
T_x = interpolateTemperature(results, xline, yline);
T_x2 = interpolateTemperature(results, xline, y2);
T_x3 = interpolateTemperature(results, xline, y3);
T_x4 = interpolateTemperature(results, xline, y4);
T_x4 = interpolateTemperature(results, xline, y5);
% Plot the temperature as a function of x
figure
hold on
plot(xline, T_x, 'LineWidth', 2)
plot(xline, T_x2, 'LineWidth', 2)
plot(xline, T_x4, 'LineWidth', 2)
plot(xline, T_x3, 'LineWidth', 2)
plot(xline, T_x4, 'LineWidth', 2)
xticks = get(gca, 'XTick');
%yticks = get(gca, 'YTick');
set(gca, 'XTickLabel', xticks * 1e6); % Convert X-axis labels to microns
xlim([0 samp_radius/2])
legend('sample surface','z = 1 um','z = 0', 'z = -1 um','bottom sample surface')
xlabel('r [\mum]'); % \mum for the micron symbol in LaTeX formatting
ylabel('Temperature (K)')
title('Temperature across sample heated surface')
grid off
hold off
%-------------------------------------------------------------------
Answers (1)
Altaïr
on 18 Oct 2024
1 vote
Heat transfer through a transparent material predominantly involves radiative heat transfer.
The thermal model created using MATLAB function ‘createpde’ can be used to ‘solve conduction-dominant heat transfer problems with convection and radiation occurring at boundaries’ as stated in the following documentation page:
I would suggest using the Unified Model approach and more specifically the ‘setupRadiation’ function should serve your need. Here are the relevant links.
- Unified Model - https://www.mathworks.com/help/pde/setup-and-solve.html
- setupRadiation - https://www.mathworks.com/help/pde/ug/femodel.setupradiation.html
I believe this will assist you!
Categories
Find more on Heat Transfer in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!