Menu ▾ ▴

#11 настройки одномерного решателя.

open
1
2008-05-13
2008-05-13
Melifaro
No

баг в функции:

function saveparams(handles)

mainhandl=guidata(handles.main);
TaskName=get(mainhandl.edit1,'string');

sol_NumOfEls=str2num(get(handles.edit1,'string'));
sol_FunOfEsizeA=get(handles.edit2,'string');
sol_FunOfEsizeC=get(handles.edit3,'string');
sol_NonunifSizeA=str2num(get(handles.edit4,'string'));
sol_NonunifSizeC=str2num(get(handles.edit5,'string'));
sol_TimeStep=str2num(get(handles.edit6,'string'));
sol_ConvParam=str2num(get(handles.edit7,'string'));
sol_MaxIter=str2num(get(handles.edit8,'string'));

sol_id=1; %Номер соответсвующего решателя

%Характерный параметр времени, t1
%Если шаг по времени > t1, схема без стационарных итераций необоснована

load(TaskName);
!!!!загружаються из файла все переменные, и даже вновь переобозначенные переменные решателя

sol_t1=pre_ElDist^2/(sol_NumOfEls*str2num(pre_Voltage)*max(pre_MobPlus1,pre_MobMinus))
!!!!переменная pre_Voltage вообще говоря содержит строковое выражение функции, и не может быть переведено в число

%Дописываем размерность задачи в конфигурационный файл
save(TaskName,'sol_*','-append');

помеченные ошибки исправляю так:
load(TaskName,'pre_*');
t = 0:sol_TimeStep:pre_SimTime;
sol_t1=pre_ElDist^2/(sol_NumOfEls*max(eval(pre_Voltage))*max(pre_MobPlus1,pre_MobMinus))

Discussion


Log in to post a comment.