@Aeronastro 我觉得是这样的:
where |S|= sqrt(2Sij Sij)
,这句话可能来自LES,这只是一个定义,它不是正常意义上的magnitude.
正常的magnitude就是|S|= sqrt(SijSij)
浪迹天大
帖子
-
-
并行计算时,利用
gMax
获取了某个volScalarField
的全局最大值,然后我想找到这个网格的cell_ID
,因为我想输出这个网格的其它的一些volScalarField
值,我写的代码只能在串行下实现这个功能,请问如何在并行下实现这个想法呢?
我的串行代码如下:scalar theMax = gMax(oneVolScalarField); forAll (oneVolScalarField,cellI) { if ( oneVolScalarField[cellI] >= theMax ) { Info<<" When oneVolScalarField peaks, anotherVolScalarField ======"<<anotherVolScalarField[cellI]<<endl; } }
-
@cfd-china 我是直接把图片拖进来
-
@wwzhao
谢谢您更新了我的认知!
现在我消化一下:
假如我们要求解方程 $\frac{\ \rho k}{\p t} = -30 + 50$。
左边这项当然变成了:fvm::ddt(rho, k)
右边第一项可以变成:- fvm::Sp(30/k, k)
,移动这一项到左边,即把负号去掉了,然后把Sp
的定义代入,即变成了fvm.diag += V*30/k
。这项加到对角元素上去了,和我们要求解的方程是一致的,并且使对角更占优了。
右边第二项可以变成:fvm::Su(50, k)
,移动这一项到左边,并且把Su
的定义代入,即变成了fvm.source += V*50
,与我们要求解的方程是一致的。如果右边第一项写成这样:
- fvm::Su(30, k)
,那么它移动到左边后,将会使fvm.source -= V*30
,与我们要求解的方程是一致的。
如果右边第二项写成这样:fvm::Sp(50/k, k)
,那么它移到左边后,将会使fvm.diag -= V*50/k
。这不利于对角占优,因此不推荐这样做。
结论:对于方程右边的项:
负数,写成Sp
——推荐这样做,因为可以使对角更占优。
负数,写成Su
——可以这样做。
正数,写成Sp
——不推荐这样做,因为会损害对角占优。
正数,写成Su
——应该这样做。
还有一种没讨论的情况:正负未知就写成SuSp
。
@wwzhao 请问我这里的理解正确吗? -
在Chalmers大学的Lars Davidson教授的讲义《Fluid mechanics, turbulent flow and turbulence modeling》
里边提到,RANS 代码改成 LES,需要做的就是,1.加入SGS模型,2.修改对流项离散格式,3.修改时间离散格式。
修改这两个格式是因为不能引入额外的 numerical dissipation。
他还给了一个例子,把对流项离散格式改成中心差分,时间离散改成Crank-Nicolson 格式。
另外, Davidson提到,SIMPLE算法也是允许的:
-
@alex 有关注某个帖子的按钮啊,并且还可以关注某条回答,加入书签即可。这些都可以在你的个人主页查看。
-
@浪迹天大 在 最快速的上google的方式是什么? 中说:
购买国外服务器,推荐digitalOcean啊,5美元1个月。另外github学生优惠可以获得50美元。首次使用必须充值5美元,加上github的50美元,就可以使用一年了。
这是我昨晚折腾一个加速软件之后的网速测试结果。
关于张量的知识,一个二阶张量的模是怎么求的?
并行,获取某个量达到最大值的这个网格中的其它值
关于两相流计算某一相流过某一个面上的流量
关于源项处理方法fvm::su和fvm::sp的疑问
LES和RANS在代码中实现过程是怎样的?
RSS 如何订阅
最快速的上google的方式是什么?