如何使用MeshRefinementFunction细化边界网格?

2021-02-02 19:08

MeshRefinementFunction可以很好地细化定义的空间域中的元素(这里xgt;0gt;0.001,True,False]];m=ToElementMesh[Disk[],MeshRefinementFunction->;

解答动态

  • 在我对嵌入3D的2D曲面上的问题MeshRefinementFunction的扩展评论中,我说明了MaxCellMeasurecould可以应用于嵌入3D的2D曲面,但是MeshRefinementFunction似乎被忽略了。
    是一个潜在的解决方法是使用FEMAddOns中的功能连接两个以不同分辨率进行网格划分的边界网格。显示了使用BoundaryElementMeshJoin的示例工作流下图:
    (*如果未安装FEMAddOns,则取消注释以下函数*)(*ResourceFunction[quot;][]*)需要[quot;];rl=ImplicitRegion[x^2+y^2+z^2==1lt;=0,{x,y,z}];rr=ImplicitRegion[x^2+y^2==1gt;=0,{x,y,z}];(bml=ToBoundaryMesh[rl]);(bmr=ToBoundaryMesh[rr,MaxCellMeasure-quot;线框quot;MeshElementStylegt;FaceForm[Yellow]]]

    • 这里有一个在2D中工作的想法(不确定它是否在3D中工作)
      首先我们用一个meshfinementfunction
      f2d=Function[{vertices,area},Block[{x,y},{x,y}=Mean[vertices];if[xamp;areagt;f2d]; 然后从中提取边界网格即:
      bmesh=ToBoundaryMesh[m];bmesh[quot;[quot;-quot;PointElementsquot;Wireframe";]
      给它一个镜头,看看它在3D中是否也能工作,可能不行。

      • End

      免责声明:

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