【问题标题】:Numerical integration on a constrained surface约束曲面上的数值积分
【发布时间】:2021-09-12 19:50:17
【问题描述】:

我对空间中表面积分的数值计算感兴趣,二次约束由非对角矩阵 g 确定,它有效地限制了椭球表面上的积分。到目前为止,我尝试通过狄拉克函数的高斯近似将积分符号下的约束包括在内,但这显着减慢了收敛速度。

是否有一个最佳的库来有效地实现这种集成?可能在 Python 中?

【问题讨论】:

    标签: continuous-integration numerical-integration geometry-surface


    【解决方案1】:

    一个好的方法是首先生成域的三角剖分,例如,使用pygalmesh

    import pygalmesh
    import numpy as np
    
    
    class Surface(pygalmesh.DomainBase):
        def __init__(self):
            self.G = np.array([
                [1.0, 3.0, -1.0],
                [2.0, 1.0, 2.0],
                [0.0, 0.0, 1.0],
            ])
            super().__init__()
    
        def eval(self, x):
            return np.dot(x, self.G @ x) - 1.0
    
        def get_bounding_sphere_squared_radius(self):
            return 10.0
    
    
    d = Surface()
    mesh = pygalmesh.generate_surface_mesh(d, max_radius_surface_delaunay_ball=0.1)
    mesh.write("out.vtk")
    

    然后您可以使用quadpy 在三角剖分上集成任何函数。

    【讨论】:

      猜你喜欢
      • 2020-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-28
      • 1970-01-01
      • 2021-06-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多