Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 通过FiPy处理圆柱体外网格表面的最佳方法,_Python 2.7_Numpy_Mesh_Fipy_Numpy Ufunc - Fatal编程技术网

Python 2.7 通过FiPy处理圆柱体外网格表面的最佳方法,

Python 2.7 通过FiPy处理圆柱体外网格表面的最佳方法,,python-2.7,numpy,mesh,fipy,numpy-ufunc,Python 2.7,Numpy,Mesh,Fipy,Numpy Ufunc,我可以通过任何FiPy或。。。模块? 对于半径为“R”的圆柱体,相关网格将按其上的“栅格扫描”创建。看起来,“R”大于最外层的网格面中心;因此,它们之间存在差异(图),不容易用“R”来表示 我需要提及圆柱体壁周围的所有外部网格面中心(不是顶部和底部壁)。网格系统由“FiPy Gmsh”(FiPy版本=3.1和Python 2.7)导入。FiPy“solver.mesh.getFaceCenter()”获取网格面中心的简单数组。我认为外六角形网格层的圆柱壁相关外表面可以通过以下代码进行处理: r

我可以通过任何FiPy或。。。模块? 对于半径为“R”的圆柱体,相关网格将按其上的“栅格扫描”创建。看起来,“R”大于最外层的网格面中心;因此,它们之间存在差异(图),不容易用“R”来表示

我需要提及圆柱体壁周围的所有外部网格面中心(不是顶部和底部壁)。网格系统由“FiPy Gmsh”(FiPy版本=3.1和Python 2.7)导入。FiPy“solver.mesh.getFaceCenter()”获取网格面中心的简单数组。我认为外六角形网格层的圆柱壁相关外表面可以通过以下代码进行处理:

reduce(numpy.logical_and, (FORMULAs))               # where FORMULAs are specifying mesh face center coordinates limits
我尝试使用以下代码,但如果公式适用,则需要对R'段进行一些更改

x,y,z = solver.mesh.getFaceCenters()
np.sqrt(x ** 2 + y  ** 2) > R       #  as FORMULAs
如果有人能帮助我克服这个问题,我将不胜感激。 我认为最好的方法应该是使用FiPy和numpy模块。

中讨论了这一点

虽然可以参数化定义此类面,但由于离散化网格的有限分辨率,有必要允许某些位置误差。更好的方法是在抽象几何体定义中定义所需的面并直接引用它们,例如,Gmsh中的GEO文件将具有以下内容

Physical Volume("FORMULA") = {5, 6, 7};
然后你的FiPy脚本将使用

formula\u faces=solver.mesh.physicalffaces[“FORUMULA”]

感谢您回答Guyer博士的问题,meshing源代码在该问题中不可用。我认为确定外边界的内边界网格面中心不如确定外边界容易,因为内点大小小于内圆柱壁半径,但外边界点小于外圆柱壁半径,这使得解决它们很困难,特别是当网格系统的网格尺寸不合适时。我通过循环到边界网格的数量来解决边界点问题,以找到离圆柱壁半径最近的点。如果您能建议一个简单的代码或方法来自动找到外圆柱壁网格的数量,而不是像我那样手动,我将不胜感激。@Ali_Sh正如我已经说过的,这都在中讨论过。具体地说,请参见
NW
的定义。如果您没有地理定义,您如何让Gmsh首先生成网格?网格文件由另一个人从OpenFOAM软件创建并导出,然后收到转换文件,'.msh',由FiPy导入,只生成点和数字,不是定义。