Skip to content
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
CFD中文网

CFD中文网

  1. CFD中文网
  2. OpenFOAM
  3. LU-SGS求解器

LU-SGS求解器

已定时 已固定 已锁定 已移动 OpenFOAM
37 帖子 9 发布者 45.2k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 赵 离线
    赵 离线
    赵一铭
    写于 最后由 编辑
    #9

    我咋没法编辑答案了。有些地方我想最好修改一下。

    之前有人问问题之后,获得到答案之后就把问题删除了,后来我们就说防止编辑,不准确的可以继续回帖。
    你这个答案我也学习学习.... 目前双曲PDE这面对流格式的精准度也是个问题,不知道LU-SGS和我这个有没有关系,当时我只是有这么个想法.

    1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 李东岳 编辑
    #10

    @程迪

    SGS有:
    \begin{equation}
    (L+D)x^{ * }=b-Ux^n , (U+D)x^{n+1}=b-Lx^{ * }
    \end{equation}
    给定一个初始$x^0$,可以依次推进。从你提供的LU-SGS公式来看,SGS实际求解的是:
    \begin{equation}
    (L+D)D^{-1}(D+U)\cdot x = b-LD^{-1}U\cdot x
    \end{equation}
    然后忽略掉$-LD^{-1}U\cdot x$,方程变成为:
    \begin{equation}
    (L+D)D^{-1}(D+U)\cdot x = b
    \end{equation}
    这个就是LU-SGS最后求解的系统,不存在一个迭代的过程?是一个非迭代的求解器?

    $-LD^{-1}U\cdot x$这一项忽略掉了是LU-SGS的一个假设,也就是说LU-SGS中认为在对角占优的情况下$-LD^{-1}U\cdot x$足够小。我测试了一下,确实相比原矩阵要小。然后我尝试计算了以下矩阵,结果看起来也还凑合?
    0_1497165115792_草图6.png
    上图为通过逆的方法直接求解

    0_1497165122459_草图4.png
    上图为LU-SGS非迭代求解

    咱们先从LU-SGS求解器开始,暂且不讨论效率和线性化,各个击破:sunglasses:
    如果我的理解LU-SGS是一个非迭代的求解系统是正确的,问题是从我测试的那个矩阵求解来看,结果只能说是凑合。还是说我的理解有偏差?

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    程 2 条回复 最后回复
  • 程 离线
    程 离线
    程迪
    在 中回复了 李东岳 最后由 编辑
    #11

    @李东岳

    没错,我的理解也是,LU-SGS是一个非迭代的求解器。只有sweep,没有iteration, convergence check之类的东西。

    我尝试过随机生成不对称对角占优的稀疏矩阵,精确解和LU-SGS解的相关性很高。估计是有理论证明的。

    已婚,勿扰。
    本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

    1 条回复 最后回复
  • 程 离线
    程 离线
    程迪
    在 中回复了 李东岳 最后由 编辑
    #12

    @李东岳

    这涉及到非线性误差和线性代数求解器误差的相对关系。

    迭代开始前的初始残差基本可以认为是非线性误差,一般线性求解器的收敛准则都设置为下降2个量级,也就是relTol 0.01,甚至有的是relTol 0.1。大部分情况LU-SGS应该是足够了的。

    其实线性代数问题只要愿意迭代,总有收敛的时候,精度只受条件数和机器精度限制,和你采用什么数值方法没关系,只是收敛效率有所区别。但是非线性问题的精度和采用的格式、步长啥的关系都比较大了。

    但是即使线性代数问题解到1e-16,下一个时间步或者非线性迭代步的初始误差又回去了,通常是1e-3左右,和CFL数一般呈正相关,所以线性代数问题解到1e-16没有意义,只要解到1e-5左右就好了,CFL数越大可以考虑继续减少线性问题的求解精度。

    已婚,勿扰。
    本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

    W 1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #13

    刚才看了一下一楼那个论文,从方程12,13来看应该确认了LU-SGS是一个非迭代的求解器。测试来看LU-SGS应该可以达到稳态外循环每一步收敛的要求(relTol 0.01或者0.1),但是瞬态的情况下,是需要收敛的。且在可压缩高速密度基求解器中,连外循环都没有。不过文章中说他也可以适用于瞬态算法,看起来LUSGS主要用于高速可压缩流。

    另外,rhoCentralFoam中,以及一些文献中,高马赫数都要采取通量分裂处理,这个原因是什么?
    在我的多相流算法中,也采用了通量分裂处理,不过我们那个的原因只是为了数值稳定,再详细的我就不在这说了有点跑题。可压缩流中不进行通量分裂会如何?

    我再仔细看看那个文章再继续讨论。

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    程 1 条回复 最后回复
  • 程 离线
    程 离线
    程迪
    在 中回复了 李东岳 最后由 编辑
    #14

    @李东岳

    高速采用通量分裂是为了在某个特征方向上搞成上风。不然激波、接触间断啥的搞不定。

    不分裂,纯上风也没问题呀,

    已婚,勿扰。
    本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

    1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #15

    抱歉最近在准备一些课程资料,这个我看看这周末有没有时间详细看看,嘿嘿。

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    1 条回复 最后回复
  • Y 离线
    Y 离线
    youmengtian
    写于 最后由 编辑
    #16

    最近着手做matrix-free的LU-SGS实现,本质上是不需要matrix数据结构的。但同时也遇到多重网格如何与之协同工作的问题。目前还只是尝试阶段,希望顺利

    天命之谓性;率性之谓道;修道之谓教。
    道也者,不可须臾离也;可离,非道也。是故君子戒慎乎其所不睹,恐惧乎其所不闻。
    莫见乎隐,莫显乎微。故君子慎其独也

    程 1 条回复 最后回复
  • 程 离线
    程 离线
    程迪
    在 中回复了 youmengtian 最后由 编辑
    #17

    @youmengtian
    感觉MG和LUSGS好像不是一路的吧。不过LU-SGS当个smoother应该问题不大。

    已婚,勿扰。
    本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

    Y 1 条回复 最后回复
  • Y 离线
    Y 离线
    youmengtian
    在 中回复了 程迪 最后由 编辑
    #18

    @程迪 目前fluent的做法是使用point gs法或ILU(0)做smoother。目前的问题就在无矩阵,或更科学的叫jacobian-free,其本质不再是传统的Ax=b的形式,很难直接用相应的solver。

    天命之谓性;率性之谓道;修道之谓教。
    道也者,不可须臾离也;可离,非道也。是故君子戒慎乎其所不睹,恐惧乎其所不闻。
    莫见乎隐,莫显乎微。故君子慎其独也

    程 1 条回复 最后回复
  • 程 离线
    程 离线
    程迪
    在 中回复了 youmengtian 最后由 编辑
    #19

    @youmengtian
    明显Jacobian Free和matrix free不是一回事儿吧。JFNK虽然是Jacobian free,但是Krylov没有preconditioner不是很好使,加preconditioner又很难避免要存、算矩阵,至少算矩阵系数是免不了的,不过这个preconditioner反正是approximation,似乎不需要非常consistent。

    而且preconditioner整的不好就是并行的性能瓶颈。

    已婚,勿扰。
    本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

    Y 1 条回复 最后回复
  • Y 离线
    Y 离线
    youmengtian
    在 中回复了 程迪 最后由 编辑
    #20

    @程迪 怎么jacobian-free,在JVNK中也是以matrix-free实现的。AIAA很多论文都是如此表述的。matrix-free的LU-SGS还真心free的飞起

    天命之谓性;率性之谓道;修道之谓教。
    道也者,不可须臾离也;可离,非道也。是故君子戒慎乎其所不睹,恐惧乎其所不闻。
    莫见乎隐,莫显乎微。故君子慎其独也

    程 1 条回复 最后回复
  • 程 离线
    程 离线
    程迪
    在 中回复了 youmengtian 最后由 编辑
    #21

    @youmengtian
    Jacobian free是不算Jacobian,JFNK的方法压根就没出现Jacobian,既不存,也不算;Matrix free主要是不存系数矩阵,至于这个矩阵是不是Jacobian无所谓的,但是一般多少都有点儿关系。Matrix free不代表不算矩阵元素,preconditioner免不了要算全部或者部分矩阵元素的,但是往往算完之后可以扔掉一些,不用都存下来。SGS就是一例,按照LU-SGS的搞法,就是Matrix free的,计算过程中用到了某些系数,就算一下,用完了就扔了,下次要用再算。

    已婚,勿扰。
    本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

    Y 1 条回复 最后回复
  • Y 离线
    Y 离线
    youmengtian
    在 中回复了 程迪 最后由 编辑
    #22

    @程迪 是这么说,目前的问题就是还是对于编写这类耦合隐式算法没有思路。OpenFOAM也没有相关可以借鉴的代码。不知您在这方面是否已经有相关工作开展了?可以进行进一步交流。

    天命之谓性;率性之谓道;修道之谓教。
    道也者,不可须臾离也;可离,非道也。是故君子戒慎乎其所不睹,恐惧乎其所不闻。
    莫见乎隐,莫显乎微。故君子慎其独也

    程 1 条回复 最后回复
  • 程 离线
    程 离线
    程迪
    在 中回复了 youmengtian 最后由 编辑
    #23

    @youmengtian
    没,网上有个那个Chun Shen的代码,AETK,我正在看。
    https://github.com/chengdi123000/AETKv1

    已婚,勿扰。
    本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

    1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 李东岳 编辑
    #24

    不好意思,最近除了上班,就是在准备课程资料和写CFD界,一直没空看这个LUSGS。等我忙完了我看看

    • 11楼我的测试初步感觉LUSGS一步求解稀疏矩阵求解精度不高,大约残差在0.01左右,这在SIMPLE算法里面是可以容忍的,因此本身SIMPLE就是迭代求解的过程。但是对于非迭代求解的PISO算法,瞬态问题需要每个时间步都收敛,在这种情况下,LUSGS如何能保证准确性?

    这是目前我需要理解的地方,谁敢兴趣也可以交流一下。
    LUSGS比较有意思,等搞明白了发个CFD界,毕竟之前都是迭代求解矩阵,LUSGS一步求解,我觉得不错。

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    Y 程 2 条回复 最后回复
  • Y 离线
    Y 离线
    youmengtian
    在 中回复了 李东岳 最后由 编辑
    #25

    @李东岳 感兴趣呀😄

    天命之谓性;率性之谓道;修道之谓教。
    道也者,不可须臾离也;可离,非道也。是故君子戒慎乎其所不睹,恐惧乎其所不闻。
    莫见乎隐,莫显乎微。故君子慎其独也

    1 条回复 最后回复
  • 程 离线
    程 离线
    程迪
    在 中回复了 李东岳 最后由 编辑
    #26

    @李东岳

    lusgs主要算空动问题,和piso算法可能从来没有过交集吧。

    而且计算代价比较低可以当预条件用。

    已婚,勿扰。
    本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

    yhdthuY 1 条回复 最后回复
  • yhdthuY 离线
    yhdthuY 离线
    yhdthu 大神
    在 中回复了 程迪 最后由 编辑
    #27

    @程迪 请问什么叫空动问题?

    长风破浪会有时,直挂云帆济沧海

    程 1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #28

    估计是空气动力学问题。如果是密度基求解器的话,每个时间步一次性收敛是更重要的了。

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    程 1 条回复 最后回复

  • 登录

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]