3D conduction in cylinder

How can I access T=1200 C° at a Point on the face (not all the Face, just a Point in the middle)?
I have used this codes, but i can only access the temperature for whole face.
type = 'thermal';
model = createpde(type);
R=5;
H=15;
geom = multicylinder(R,H);
model.Geometry = geom;
pdegplot(model);
grid on
generateMesh(model);
pdemesh(model);
T1 =700;
T2 = 1200;
%Specify the thermal conductivity as a linear function of temperature, k=25.8+0.003T
%k = @(location,state)25.8 + 0.003*state.u;
%
thermalProperties(model,'ThermalConductivity',25.8,'MassDensity',1.1614,'SpecificHeat',1.007);
thermalBC(model,'Face',1,'Temperature',T1);
%thermalBC(model,'Face',2,'Temperature',T2);
%Apply a heat flux boundary condition to the bottom of the block.
thermalBC(model,'Face',2,'HeatFlux',T1);
results = solve(model);
pdeplot3D(model,'ColorMapData',results.Temperature)
caxis([700 1200])
%
nrows = 4;
ncols = 6;
A = ones(nrows,ncols);
for c = 1:ncols
for r = 1:nrows
if r == c
A(r,c) = 2;
elseif abs(r-c) == 1
A(r,c) = -1;
else
A(r,c) = 0;
end
end
end
A

1 Comment

Can you export your results and model variables? I have older MATLAB version and can't run your code

Sign in to comment.

Answers (1)

Steven Hopkins
Steven Hopkins on 26 Mar 2021
I'm a beginner in Matlab, but from my experience the best way is to define another cylinder of the same height with the radius size you'd want. Then you'd select that the face created by the added cylinder.
I've been spending some time trying to specifically define a heat flux across a whole face or a temperature at a specific point. This seems to be the closest solution that would work in your case.

Asked:

on 9 Jun 2020

Answered:

on 26 Mar 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!