Unable to meet integration tolerances
1 次查看(过去 30 天)
显示 更早的评论
I am using the 'pdepe' solver in Matlab but I get this error-
Warning: Failure at t=1.000000e+00. Unable to meet integration tolerances without reducing the step size below the smallest value allowed (3.552714e-15) at time t.
> In ode15s (line 653)
In pdepe (line 289)
In differential (line 5)
Warning: Time integration has failed. Solution is available at requested time points up to t=1.000000e+00.
> In pdepe (line 303)
In differential (line 5)
Here's the code I have-
clc
x = linspace(0,10,20);
t = linspace(1, 1000, 100);
m = 0;
sol = pdepe(m, @pde1pde, @pde1ic, @pde1bc, x, t)
function [c,f,s] = pde1pde(x, t, u, dudx)
rho = 906;
Cp = 0.4365;
MW = 104.15;
dH = -17800;
k = (1.22-0.002*u)/36;
xp = 1-x;
A0 = 1.964*(10^5)*exp(-10040./u);
A1 = 2.57-5.05*u*(10^(-3));
A2 = 9.56-1.76*u*(10^(-2));
A3 = -3.03+7.85*u*(10^(-3));
A = A0*exp(A1*(xp) + A2*(xp^2) + A3*(xp^3));
c = (rho*Cp)/k;
f = dudx;
s = (((rho/MW)*x)^(2.5))*A*(-dH)/k;
end
function u0 = pde1ic(x)
T0 = 20 + 273.15;
u0 = T0;
end
function [pl, ql, pr, qr] = pde1bc(xl, ul, xr, ur, t)
pl = 0;
ql = 1;
pr = 0;
qr = 1;
end
I have tried changing the arguements of t = linspace(1,1000, 100) but I get always get the same error. The solution is provided only for the first value of the vector t and it is equal to T0 irrespective of the value of t. Any hellp is appreciated
0 个评论
回答(1 个)
Bill Greene
2020-7-12
Your equations have a fundamental error. Just calculate the "s" term along the length at the initial temperature and the problem will be obvious.
2 个评论
Bill Greene
2020-7-12
I suggest you edit your question to describe your equations in mathematical form, defining all symbols, and including boundary and initial conditions.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Eigenvalue Problems 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!