⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 aaa-adp.edp

📁 FreeFem++可以生成高质量的有限元网格。可以用于流体力学
💻 EDP
字号:
//  -----  real eps =  0.0001;real h=1;real hmin=0.000005;real val=10; real coef=50; // err = 1/100int nbiter=6,firstplot=3;func f = y*x*x+y*y*y+h*tanh(val*(sin(5.0*y)-2.0*x));cout << atanh(1) << endl;func fx = .0*y*x-0.2E1*h*(1.0-pow(tanh(val*(sin(0.5E1*y)-0.2E1*x)),2.0))*val;func fy =  x*x+3.0*y*y+0.5E1*h*(1.0-pow(tanh(val*(sin(0.5E1*y)-0.2E1*x)),2.0))*val*cos(0.5E1*y);func  fxy =   2.0*(x*pow(cosh(val*sin(5.0*y)-2.0*val*x),3.0)+10.0*h*val*val*cos(5.0*y)		   *sinh(val*sin(5.0*y)-2.0*val*x))/pow(cosh(val*sin(5.0*y)-2.0*val*x),3.0);func  fxx= 2.0*(y*pow(cosh(val*sin(5.0*y)-2.0*val*x),3.0)-4.0*h*val*val		*sinh(val*sin(5.0*y)-2.0*val*x))/pow(cosh(val*sin(5.0*y)-2.0*val*x),3.0);func  d = fx*fy - fxy*fxy;func  fyy=(6.0*y*pow(cosh(val*sin(5.0*y)-2.0*val*x),3.0)-50.0*h*val*val*	   pow(cos(5.0*y),2.0)*sinh(val*sin(5.0*y)-2.0*val*x)-25.0*h*val*sin(5.0*y)*cosh(val*           sin(5.0*y)-2.0*val*x))/pow(cosh(val*sin(5.0*y)-2.0*val*x),3.0);           border cercle(t=0,2*pi){ x=cos(t);y=sin(t);}mesh Th=buildmesh(cercle(20));fespace Ph(Th,P0);fespace Vh(Th,P1);fespace V2h(Th,P2);Vh fh=f;plot(fh,wait=0); //for (int i=0;i<nbiter;i++){  //  Th=adaptmesh(Th,f);  verbosity=4;  Vh fxxh=fxx, fxyh=fxy, fyyh = fyy;  cout << " min max f_xx :  " <<  fxxh[].min << " " << fxxh[].max << endl;  cout << " min max f_yy :  " <<  fyyh[].min << " " << fyyh[].max << endl;  cout << " min max f_xy :  " <<  fxyh[].min << " " << fxyh[].max << endl;  Th=adaptmesh(Th,fxx*coef,fxy*coef,fyy*coef,IsMetric=1,nbvx=10000,hmin=hmin,ratio  = 5, 	       nbsmooth = 0, omega = 1);  fh=f;  Ph e=log10(abs(fh-f));  Vh dh=(d>0)*2-1;  plot(Th,fh,dh);  real[int] vviso(20);  for (int i=0;i<20;i++)    vviso[i]=(-20+i)/2.;  cout << " min max fh " << fh[].min << " " << fh[].max << endl;    cout << " min max log(e) " << e[].min << " " << e[].max << endl;    if (i>=firstplot)     {      plot(e,fill=1,value=1,wait=0,viso=vviso,cmm="log10(e) err="+1./coef);      savemesh(Th,"Thh"+i+".mesh");      savemesh(Th,"Th"+i,[x,y,fh/2]);      {         Vh eh=e;	ofstream file("Th"+i+".BB");	file << "2 1 1 "<< fh[].n << " 2 \n";	int j;	for (j=0;j<fh[].n ; j++)  {	  file << eh[][j] << endl; }      }	      exec("ffmedit `pwd`/Th"+i);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -