找回密码
 注册
Simdroid-非首页
查看: 161|回复: 2

[F. 求解器/误差] 诡异的收敛率

[复制链接]
发表于 2011-10-25 22:08:56 | 显示全部楼层 |阅读模式 来自 陕西西安
本帖最后由 chentao807 于 2011-10-25 22:08 编辑

我们知道有限元的收敛率和单元的形状函数次数p和网格尺寸h两个因素有关,对于泊松方程而言,场变量的L2范数误差E(精确解和近似解之差的平方和在区域上求积分)与p和h有这样的关系E<C*h^p,这里C是个常识。
这里考虑单位正方形区域上泊松方程,如附图。网格采用均匀正交的结构网格。


对于第一个问题的收敛率
横坐标是网格尺寸取log10缩放,纵坐标是误差取log10,可以看出收敛率是1,2,3阶(对应于线性,二次和三次拉格朗日单元),这一点是和理论一致的。


但是对于问题2,立马收敛率就很诡异了。


也就是在网格很粗糙的方法已经很精确,随着网格细化结果反而更差。同样的结论已经用Comsol验证了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2011-10-25 22:23:15 | 显示全部楼层 来自 陕西西安
Simdroid开发平台
本帖最后由 chentao807 于 2011-10-25 22:24 编辑



这里附上Comsol做的两段代码,用3.5的朋友可以测试一下。另外各位帮我看一下代码是否有问题。

第一个问题
  1. clear all; clc;
  2. hmax = ones(1,5)./[5 10 20 40 80];
  3. mat = ones(1,5);
  4. for s = 1:5
  5.     fem.geom = rect2;
  6.     fem.mesh = meshinit(fem, 'hmax', hmax(s));
  7.     fem.equ.f = '2*pi^2*sin(pi*x)*sin(pi*y)'; fem.equ.c = 1;
  8.     fem.bnd.h = 1; fem.bnd.r = 'sin(pi*x)*sin(pi*y)';
  9.     fem.shape = 2;
  10.     fem.xmesh = meshextend(fem);
  11.     fem.sol = femstatic(fem);
  12.     mat(s) = postint(fem, '(u-sin(pi*x)*sin(pi*y))^2');
  13. end
  14. loglog(hmax, mat);
复制代码

第二个问题
  1. clear all; clc;
  2. hmax = ones(1,5)./[5 10 20 40 80];
  3. mat = ones(1,5);
  4. for s = 1:5
  5.     fem.geom = rect2;
  6.     fem.mesh = meshinit(fem, 'hmax', hmax(s));
  7.     fem.equ.f = 1; fem.equ.c = 1;
  8.     fem.bnd.h = 1; fem.bnd.r = '(1-x^2-y^2)/4';
  9.     fem.shape = 3;
  10.     fem.xmesh = meshextend(fem);
  11.     fem.sol = femstatic(fem);
  12.     mat(s) = postint(fem, '(u-(1-x^2-y^2)/4)^2');
  13. end
  14. loglog(hmax, mat);
复制代码



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 不支持

使用道具 举报

 楼主| 发表于 2011-10-27 13:34:23 | 显示全部楼层 来自 陕西西安
这个问题没人有兴趣嘛?
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-9-25 13:22 , Processed in 0.042522 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表