How to provide variable boundary conditions to second order partial differential equation?

3 Ansichten (letzte 30 Tage)
Kx (∂^2 T)/(∂x^2 )+Ky (∂^2 T)/(∂y^2 )=0 Subjected to @y = 0; ∂T/∂y=0 @x = 0; - Kx ∂T/∂x=f(y)=h_c (T_c (y)-T(x,y)) @x = a; - Kx ∂T/∂x=g(y)=h_h (T(x,y)-T_h (y))

Antworten (1)

Shishir Reddy
Shishir Reddy am 28 Mai 2025
Hi Kiran
As per my understanding, you would like to solve the 2D steady-state heat conduction PDE with variable boundary conditions in MATLAB.
Kindly refer to the following steps which helps in implementing the same.
1. Create the model and define the rectangular geometry –
a = 1; % Length in x-direction
b = 1; % Length in y-direction
hL = 50; %convection coefficient
hR = 40;
TL = 300; % Temperature
TR = 350;
Kx = 10; % Thermal conductivity
% Create PDE model
model = createpde('thermal','steadystate');
% Define rectangular geometry
R1 = [3,4,0,a,a,0,0,0,b,b]';
g = decsg(R1,'R1',char('R1')');
geometryFromEdges(model,g);
2. Set thermal conductivity ‘Kx’ and apply the boundary conditions –
thermalProperties(model,'ThermalConductivity', Kx);
% Plot edge labels to get edge IDs
figure, pdegplot(model,'EdgeLabels','on'),title('Edge Labels'),axis equal
% Use the edge numbers shown in the plot
bottom = 1; % y = 0
left = 4; % x = 0
right = 2; % x = a
thermalBC(model,"Edge",bottom,"HeatFlux",0);
% At x = 0
thermalBC(model,"Edge",left, "ConvectionCoefficient",hL, "AmbientTemperature", TL);
% At x = a
thermalBC(model,"Edge",right, "ConvectionCoefficient",hR, "AmbientTemperature", TR);
3. Solve and plot –
% Solve
generateMesh(model,'Hmax',0.02);
result = solve(model);
% Plot result
figure
pdeplot(model,'XYData',result.Temperature);
title('Temperature Distribution');
colorbar;
For more information regarding ‘thermalBC’ function, kindly refer the following documentation –
I hope this helps.

Kategorien

Mehr zu Partial Differential Equation Toolbox finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by