PeriodicInterpolation在ElementMeshInterpolation

2021-02-04 23:31

I中不起作用我想使用ElementMeshInterpolation生成具有周期性边界条件的插值函数。I以下面的数据为例data=Flatten[表[{i,j,Sin[i+j]},{i,0,2\[Pi],2\[Pi]/5

解答动态

  • 正确地生成周期插值函数。插值可以做到这一点的事实取决于所构造的数据。在其他工作中,对于表示非矩形域的网格,我接下来要展示的内容通常不容易实现;这是FEM网格的常见情况。
    您可以使用extractionhandler选项对其进行。
    需要[quot;]data=Flatten[Table[{I,j,Sin[I+j]},{I,0,2\[Pi],2\[Pi]/50},{j,0,2\[Pi],2\[Pi]/50}],1];mesh=ToElementMesh[data[[;,1;;2]]];f=elementmesh interpolation[{mesh},data[;;,-1]]; 现在,我们可以在外推处理程序中使用f作为函数,并将域外的坐标映射回f。这种映射回原始域通常很难做到。这里我们使用Mod.
    f2=elementmesh interpolation[{mesh},data[[;,-1]],quot;->;{Function[{x,y},f[Mod[x,2\[Pi]],Mod[y,2\[Pi]]}]{tourplot[f2[x,y],{x,0,2\[Pi]},{y,0,2\[Pi]}],tourplot[f2[x,y],{x,0,4\[Pi]},{y,0,4\[Pi]}]}
    也许是未来实现的一个想法。

    • 由于目前elementmesh插值不支持周期性插值,插值只支持矩形网格上的周期性插值。除了user21的解决方法之外,我还开发了一个任意并行或并行插值网格周期插值的解决方法。
      这个想法很幼稚,只是通过基向量将区域外的点拉回来。以下是助手函数。
      pullback2dcom=编译{x1,x2,y1,y2,x,y},x,y},Mod{(x2 y+x x y2)/(-x2 y1+x1y2),(x11 y-x y1)/(-x2y1+x11,x2,y1,y2,y2,x,x,y},x,y},Mod,Mod{(x2{(x2 x 2 y+x x x x x x x x x x x x x x x x x x x y2)y2(x11 1 1 1)2(x2 x x x x x x x x y2年x x x x x x y2)y2(x11(x x x x x x x x x x x x x x x x x x 1)y1 1(x(x x 1)1 1 1 1/(((((Y3Z1-x3 y1 z2+x1 y3 z2+x2 y1 z3-x1 y2 z3),(x3 y1 z-x1 y3 z-x3 y z1+x y3z1+x1 YZ3-x y z3-x x y z3-x y y y z3-x y3 z3-x3 z1-x3 y3 z1-x3 z2-x1 y3-x1 y3 z2-x1 z3-x1 z3-x1 z3-x1 y z3-x1 y3 z1-x3 z1-x3 z1+x3 y3 z1-x3 y2-x1 z2-x2-x1 z2-x3-x1-x3 y3-x3 z2-z2-x3-z3-x3-z3-x3-x3 z2-z3 z2-z2-z3,1,1,1.{{{1,y1,z1,z1,z1},},{},{},{},{x2,y2,y2}},{x,y}]:=pullBack2Dcom[x1,x2,y1,y2,x,y];pullBack3D[{x1,y1,y1,z1},{x2,y2,z2},{x3,y3},z3},{x,y,z}]:=pullBack3Dcom[x1,y1,z1,x2,y2,z2,x3,y3,z3,x,y,z]; 上面的表达式看起来很复杂,但它们只是使用Mod函数的LinearSolve plus的解。
      data=N@展平[表[Append[i{1,0}+j*{1,1},Sin[Total[i{1,0}+j*{1,1}]*2*\[Pi]],{i,0,1.]。,1/100},{j,0,1.,1/100}],1];ListContourPlot[data,AspectRatio-gt;自动] gives
      这很好。
      现在我们可以使用pullBack2D来生成一个周期函数,使用基向量bvecs
      bvecs={1,0},{1,1}}g[x\u?数字,是吗?NumericQ]:=f@@pullBack2D[bvecs,{x,y}] 使用
      等高线图[g[x,y],{x,0,2},{y,0,2},AspectRatio->;自动] we get



      绘制它

      • End

      免责声明:

      本页内容仅代表作者本人意见,若因此产生任何纠纷由作者本人负责,概与琴岛网公司无关。本页内容仅供参考,请您根据自身实际情况谨慎操作。尤其涉及您或第三方利益等事项,请咨询专业人士处理。