有限体积法编程
接触计算流体力学已经有一段时间,本意是想用有限体积法进行洪水溃坝的模拟计算。虽然看了不少资料,但当真正编起程序来,困难还真不少。我想主要原因还是没有真正弄懂是怎么回事。不知道各位高手可不可以帮助我一下。我想使用Ming Hseng Tseng 在《The simulation of dam-break fows by an improved predictor-corrector TVD scheme》中提到的预测-校正TVD方法来做。(其实,用什么无所谓,只要能作出来就行,只不过我这里正好有这篇文章。还有一篇与之类似的中文)。现在主要问题是没有搞懂那个二维浅水方程到底怎么求解。求解步骤是什么。编程时需要设置什么初始条件。不知道有没有人可以帮助我。什么方式都可以。我的联系方式zbdllg@sohu.com.
有限体积法编程
老大,你是揽了个苦差事,没有老板创造条件和积累是很难的。看看谭维炎清华版的书《计算浅水动力学-有限体积法的应用》吧,现在仅仅从文献出发,自己写code作一个新的领域是很难的。有限体积法编程
我本人现在就是在弄这东西,可也没有弄懂。同病相怜啊。谭维炎的书根本就不能看出什么东西来。有限体积法编程
看看这篇文章会不会对你有所启发。有限体积法编程
谭维炎的书属于和他同等水平的人才能看懂的东西,对刚开始编程的人没什么帮助
建议作者看看文献,有些国外的文献还是介绍的很详细的。asce j hydr. engrg.有许多
有限体积法编程
我也在搞这个方面呀~~,感觉现在有限体积法还是很多人用的!对了,请问大家,为什么有限体积求解数值通量时,可以把它看作黎曼问题来求解?
有限体积法编程
前辈:我是刚刚接触fluent,能否指点一些入门之路,比如中文资料、有关书籍......不胜感激!有限体积法编程
如果采用矩形网格,你可以采用dimension by dimension的方法求解二维问题,就是把原方程作为两个一维方程分别逼近x和y方向的流通量。这样的话,实际上就是一维问题。初始条件Tseng的文章应该都给的,你看得不仔细吧?
有限体积法编程
下面引用由ajww在 2004/09/27 08:00pm 发表的内容:我也在搞这个方面呀~~,感觉现在有限体积法还是很多人用的!
对了,请问大家,为什么有限体积求解数值通量时,可以把它看作黎曼问题来求解?
to ajww: 有限体积的思想就是利用分段常数逼近方程的解,因此实际上就是求解Riemann问题: 利用单元边界两边的常数值构造点值,从而求得数值流通量。其中的流体量函数必须满足单调性,相容性和Lip连续性。
有限体积法编程
非常同意“射天狼”的发言,照着paper编代码,没有前人的积累,确实!!!!#¥%¥#%。实在没法形容。不知道那位能帮我找到Tseng的另一篇文章Tseng M H. Two-dimensional shallow water flows simulation using TVD-MacCormack Scheme. Journal of Hydraulics Research. 2000,38(2):123-131
我想它们是应该互相补充的。兄弟我这里暂时谢过了。
有限体积法编程
把基本算法流程搞清,先捡简单的情况编(比如1D,迎风差分,显示Euler推进),然后再扩展到复杂点(多维,TVD,多步龙格库塔积分/隐式积分)先编个1D的,基本流程就是差不多
1 画网格,存好cell-center坐标和每个cell界面坐标
2 初始化,就是对流场数组设置初值
3 时间推进指定步数,或者推进倒指定条件
3.0 设置边界条件
3.1 对每个cell界面遍历,
根据界面两侧的cell内的变量计算该界面上的数值通量
将数值通量累计到各个cell的变化量中
3.2 根据计算得到cell变化量更新cell内的值
3.3 判断是否需要输出和结束计算,然后回到3.0进行下一步推进