【发布时间】:2017-08-04 01:20:07
【问题描述】:
我正在尝试使用 OpenModelica 对边界条件 u(0,t)=t^2 和 u_x(0,t)=0 的非常简单的 PDE du/dx=du/dt 进行数值求解。我已经写了下面的代码:
model pdetest_1
parameter Real L=1;
parameter Integer N=100;
parameter Real dx=L/(N-1);
parameter Real[N] x=array(i*dx for i in 0:N-1);
Real u[N],ux[N];
initial equation
for i in 1:N loop
u[i]=0;
end for;
equation
u[1]=(time)^2;
ux[1]=0;
for i in 2:N loop
u[i]=u[i-1]+dx*ux[i-1];
der(u[i])=ux[i];
end for;
end pdetest_1;
它确实可以编译,但是它没有完成模拟退出并出现以下错误:
Blocstdout | OMEditInfo |
C:/Users/.../AppData/Local/Temp/OpenModelica/OMEdit/pdetest_1.exe -port=50450 -logFormat=xmltcp -override=startTime=0,stopTime=1,stepSize=0.002,tolerance= 1e-6,solver=dassl,outputFormat=mat,variableFilter=.* -r=pdetest_1_res.mat -jacobian=coloredNumerical -w -lv=LOG_STATS
kquote LOG_INIT |错误 |由于以下等式,初始化问题不一致:0!= 0.000204061 = u[4]
标准输出 |警告 |初始化错误。存储结果并退出。
标准输出 |错误 |
使用 -lv=LOG_INIT -w 了解更多信息。模拟过程失败。以代码 -1 退出。
如果您能帮助我了解问题所在以及如何解决,我将不胜感激?
【问题讨论】:
标签: modelica pde openmodelica