Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
加上圆项就可以了啊?
fvScalarMatrix CEqn ( fvm::ddt(C)+fvm::div(phi,C)+ fvm::laplacian(turbulence->nu()/Sc,C) == Source ); CEqn.solve();
不太懂你的意思,不过我之前都是写一个字典,根据读取的参数在程序中计算源项的值,这样能解决你的问题吗?
@cfdngu 直接写一个字典加源项相当于在整个场里都加了源,我只想在某个区域加源项
@李东岳 我是想只在固定区域加一个源不是整个场,但是不知道如何去设置
@kadan 定义一个标记函数,每个网格上的初值为0,通过setFields指定某一区域为1就可以了,我就是这么做的
@cfdngu 非常感谢,很好的建议
@cfdngu 您好,请问这个标记函数要怎么定义呢
@kadan 请问您怎么定义的标记函数
首先通过topoSet对需要赋值的区域进行设定,设定为一个cellZone
然后在求解器里面手动对此cellZone进行赋值,比如
labelList testZone = mesh.cellZones().findIndices("c0"); const labelList& cells = mesh.cellZones()[testZone[0]]; //forAll forAll(cells, i) { label celli = cells[i];//this is missing s[celli] = 1.0; }
@李东岳 您好,李老师,请问"c0"是我所设定的cellZone的名字吗,然后"s"是所设定的源的值。我本来是想先通过toposet选定一个cellZone,然后在fvoption里面对所选cellZone进行源的赋值,但是不清楚浓度源应该选择哪种type。