共形几何点类正在工作

2021-02-25 04:35:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个代码可以读取非结构化网格。我为sympy.geometry的几何实体编写了包装器,例如:

class Point:
    def __init__(self, x, y, parent_mesh):
        self.shape = sympy.geometry.Point(x,y)
        self.parent_mesh = parent_mesh
        self.parent_cell = list()

一切正常,但是初始化sympy.geometry.Point每个Point都要花很多时间。实际上,代码没有完成数千点的执行。用C++编写的类似代码在几秒钟内完成。没有它,代码已经足够快了(我删除它并计时)。我读到一个可能的原因是sympy.geometry将浮点数转换为有理数以保证精度。有没有一种方法(标志)来加速sympy.geometry,因为我不需要精确的精度?在

1条回答
网友
1楼 ·

请看一下^{} class documentation,具体地说,在第一个示例中:

Floats are automatically converted to Rational unless the evaluate flag is False.

因此,您可以在初始化Point类时传递一个名为evaluate的标志:

self.shape = sympy.geometry.Point(x,y, evaluate=False)

很明显你在找什么。在

相关问题