CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    如何实现非结构网格求变量的梯度?

    OpenFOAM
    1
    1
    442
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 尚
      尚佳林 最后由 编辑

      其实我只是想实现tecplot里面的ddx函数,但是我找不到tecplot讨论区,所以先发这里了。
      我得到的数据变量在储存在节点,而不是cell中心。网格是二维四边形网格。因为是非结构的,所以不能像笛卡尔网格那样直接求差商。我看了tecplot帮助文档里面ddx的实现方法是Moving Least-Squares,说是假定变量关于节点是二次函数,之后最小二乘法拟合出二次函数,然后将二次函数在节点的梯度近似为该变量在节点的梯度。我不明白对于二维的二次函数,tecplot是否考虑了交叉项xy?
      如果不考虑的话,那我是否可以偷懒:假设需要求f的梯度,求对x的偏导的时候,完全不管y坐标。对单元的四个节点的x坐标x1,x2,x3,x4,和他们的函数值f1,f2,f3,f4进行一维的二次函数拟合。如果得到的拟合结果是f(x,y)=ax^2+bx+c,那第一个节点的x方向梯度就是把x1带入f'(x)=2ax+b中?

      手机打字不太方便,请见谅。

      1 条回复 最后回复 回复 引用
      • First post
        Last post