问题遇到的现象和发生背景
freefem++怎么能让这个程序成功编译呢?
用代码块功能插入代码,请勿粘贴截图
verbosity=0;
real Dx=.2, R=10.;
border C(t=0.,2.*pi){x=R*cos(t);y=R*sin(t);label=1;};
mesh Th=buildmesh(C(floor(2.*pi*R/Dx)));
fespace Vh(Th,P2);
real dt=0.01,Tf=10., lambda=-1., p=3.,alpha=0.;
Vh<complex> uh, vh, uh0=exp(-x^2-y^2-5.*1i*x), uhk=uh0, TNL, B;
varf a(u,v) = int2d(Th)(u*v*1i/dt + u*v*1i*alpha/2. + (dx(u)*dx(v) + dy(u)*dy(v))/2.) + on(1,u=0);
matrix<complex> A = a(Vh,Vh);
varf b(u,v) = int2d(Th)(uh0*v*1i/dt - uh0*v*1i*alpha/2. - (dx(uh0)*dx(v) + dy(uh0)*dy(v))/2. - lambda*TNL*(uhk+uh0)*v/2.) + on(1,u=0);
Vh ABSU;
int kk=0;
real[int] NORML2(floor(Tf/dt)+1);
for (real t=0.;t<=Tf;t+=dt){
TNL=abs(uh0)^(p-1);
for (int i=0;i<2;i++){
B[] = b(0,Vh);
set(A,solver=sparsesolver);
uhk[] = A^-1*B[];
}
uh0[]=uhk[];
ABSU=abs(uh0);
NORML2[kk]=sqrt(int2d(Th)(abs(uh0)^2));
if ( !(kk % 10)){
plot(ABSU,cmm="t="+t+" ;||u||_L^2="+NORML2[kk], fill=true,value=true,dim=2);
{
ofstream gnufile("||u||_L2.gnu");
for (int i=0;i<=kk;i++)
gnufile<<i*dt<<" "<<NORML2(i)<<endl;
}
exec("echo 'plot \"||u||_L2.gnu\" w lp \pause 5 \quit' | gnuplot");}
kk++;
}
```c++
```
运行结果及报错内容
Error opening file ||u||_L2.gnu
current line = 32
Exec error : Error opening file
-- number :1
Exec error : Error opening file
-- number :1
err code 8 , mpirank 0