Я решаю два связанных уравнения PDE, зависящих от времени, с помощью панели инструментов pde. Размер окна моделирования x = 6 и y = 10. В настоящее время я решаю его правильно и получаю доступ к данным решения, используя results =solve(model,tlist); u = results.NodalSolution(:,1,:);
Что мне нужно сделать, так это остановить код, когда решение u нестабильно по оси y. Это означает, что я хочу отслеживать решение u по оси y во время выполнения кода и останавливать его, когда оно соответствует критериям, которые я хочу. (Например, я хочу остановить код, когда решение u по y равно 0). Как я могу это сделать с помощью панели инструментов pde?
Вот что я пробовал до сих пор. Есть ли простой способ получить доступ к результатам во время выполнения кода? То есть я хочу получить доступ к решению для каждого временного шага.
%calculate solutions
n=4000;
tlist = linspace(0,200,n);
partial=zeros(49,1);
for i=1:n
results = solvepde(model,tlist(i:i+1));
u = results.NodalSolution(:,1,1);
v=results.NodalSolution(:,2,1);
u1=results.NodalSolution(113:161,1,1);
u2=results.NodalSolution(1,1,1);
u3=results.NodalSolution(4,1,1);
for j=1:49
partial(j)=u1(j)-0.5*u2-0.5*u3;
end
sigma=sum(partial);
if sigma>1e-4
disp('verified')
return
end
end