用的是openfoam5的话,可以试试下面的命令:
simpleFoam -postProcess -func "turbulenceFields(devReff)"
如果还需要求div,再用一下div就行了
用的是openfoam5的话,可以试试下面的命令:
simpleFoam -postProcess -func "turbulenceFields(devReff)"
如果还需要求div,再用一下div就行了
尝试在可压缩类的求解器rhoPimpleFoam中使用externalWallHeatFluxTemperature边界条件,选择的算例是rhoPimpleFoam/RAS/cavity,将其T边界条件修改为以下后,发现可以正常计算,因此externalWallHeatFluxTemperature应该不是只能在传热类的求解器中使用,也可以用于可压缩类求解器。
分析上述出错的原因,可能在于能量方程的选择。在可以计算的cavity算例中能量方程为sensibleEnthalpy,而在上述出错的算例中能量方程为sensibleInternalEnergy。
据此,我修改了能量方程,但是fvschems和fvsolution可能还有点问题,目前还没有计算收敛。
怎么用openfoam提供的工具实现我不知道,我是利用paraview提取出乱序的数据后,利用python脚本重新排序,再作图
@宝丁 我的意思是比如case 1背压是p1,case 2背压是p2,case 1计算收敛后,将case 1的结果mapFields到case 2,再进行计算,case 2的边界条件是可以修改的
mapFields如果不添加-consistent,应该就不会映射边界条件,可以先修改边界条件,再mapFields;
也可以mapFields后,直接修改边界条件
@wwzhao 在 关于tmp<volScalarField>&用法的疑问 中说:
tmp是智能指针,不应该用引用的方式返回。
请问是指这句
const tmp<volScalarField>& tmuEff = turbModel.muEff();
还是指这句
const volScalarField& muEff = tmuEff();
我是照着下面写的,把三句并成了两句
const volVectorField& U = lookupObject<volVectorField>(fieldName_);
const tmp<volTensorField> tgradU(fvc::grad(U));
const volTensorField& gradU = tgradU();
@东岳
那没用tmp时,有时出错可能是内存占完了?
我是在functionobject里用,只是后处理时算一下,倒是不太在意速度,只求不要时不时出错。
在编写涉及到muEff的后处理函数时发现,使用下面方法得到muEff时,可以编译,但是计算结果是错的,或者浮点数溢出
const volScalarField& muEff = turbModel.muEff();
而改成以下形式时,计算结果是正确的
const tmp<volScalarField>& tmuEff = turbModel.muEff();
const volScalarField& muEff = tmuEff();
而对于其他变量,如T,U等,两种形式的写法没发现对计算结果有影响,请问tmp<volScalarField>&有什么意义吗?为什么有的变量要用这种写法?谢谢!
@东岳
另一个alphatJayatillekeWallFunction和Fluent中的壁面函数一样,根据$y^+$使用不同的公式计算,打算试一下这个