主要内容

点源泊松方程与自适应网格细化

这个例子展示了如何在单位圆盘上用函数点源求解泊松方程adaptmesh函数。

具体来说,就是解泊松方程

- Δ u δ x y

在零狄利克雷边界条件的单位盘上。极坐标下的精确解是

u r θ 日志 r 2 π

在原点处是奇异的。

通过使用自适应网格细化,偏方程工具箱™可以精确地找到远离原点的任何地方的解。

以下变量定义了问题:

  • c一个:偏微分方程系数。

  • f:在原点处捕获一个点源的函数。对于包含原点的三角形返回1/area,对于其他三角形返回0。

C = 1;A = 0;F = @circlef;

创建一个具有单个因变量的PDE模型。

numberOfPDE = 1;model = createpde(numberOfPDE);

创建一个几何图形并将其包含在模型中。

G = @circleg;geometryFromEdges(模型中,g);

绘制几何图形并显示边缘标签。

图;pdegplot(模型,“EdgeLabels”“上”);轴平等的标题(显示边缘标签的几何图形

图中包含一个轴对象。标题为Geometry with Edge Labels的axis对象包含5个类型为line, text的对象。

在圆的所有四个外缘指定零解。

applyBoundaryCondition(模型,“边界条件”“边缘”(1:4),“u”, 0);

adaptmesh利用自适应网格生成求解椭圆偏微分方程。的tripick参数使您可以指定一个函数,该函数返回哪些三角形将在下一次迭代中进行细化。circlepick返回计算误差估计值大于给定容差值的三角形。公差提供给circlepick使用“par”参数。

[u,p,e,t] = adaptmesh(g,model,c,a,f,“tripick”...“circlepick”...“maxt”, 2000,...“par”1 e - 3);
三角形数量:258三角形数量:515三角形数量:747三角形数量:1003三角形数量:1243三角形数量:1481三角形数量:1705三角形数量:1943三角形数量:2155获得的最大三角形数量。

绘制最细的网格。

图;pdemesh (p, e t);轴平等的

图中包含一个轴对象。axis对象包含2个line类型的对象。

画出误差值。

X = p(1,:)';Y = p(2,:)';R =√(x.^2+y.^2);Uu = -log(r)/2/pi;图;pdeplot (p, e t“XYData”u-uu,“ZData”u-uu,“网”“关闭”);

图中包含一个轴对象。axis对象包含一个patch类型的对象。

在最细网格上绘制有限元解。

图;pdeplot (p, e t“XYData”u“ZData”u“网”“关闭”);

图中包含一个轴对象。axis对象包含一个patch类型的对象。