@李东岳 在 函数调用出现未知类型 中说:
const Thermo& thermo是什么变量?
是个Thermo变量。Thermo是一个类型。
谢谢李老师!该如何定义Thermo类型的变量呢?我想调用Tvenewdefinition这个函数,需要输入该类型的变量,但我输出thermo发现是个关于组分信息的矩阵,不知道该如何定义。
@李东岳 在 函数调用出现未知类型 中说:
const Thermo& thermo是什么变量?
是个Thermo变量。Thermo是一个类型。
谢谢李老师!该如何定义Thermo类型的变量呢?我想调用Tvenewdefinition这个函数,需要输入该类型的变量,但我输出thermo发现是个关于组分信息的矩阵,不知道该如何定义。
有一个比较基础的问题想要请教:仿照其他函数格式构造下列函数,目的是调用Tv温度场,必须加入const Thermo& thermo才能实现thermo.Tv() 调用,但不了解const Thermo& thermo是什么变量?Tvenewdefinition该如何调用?
scalar Tvenewdefinition
(
const Thermo& thermo
) const
{
return thermo.Tv();
}
当前化学反应速率均只包含一个控制温度,想更改成与两个温度相关,通过插值读表获取反应速率。编写新函数inline scalar HoffertLienReactionRate::interpolate(double T) 实现上述功能,代码可以成功编译,但输出Tv检查时发现其值一直为0,这是不是表示未能成功调用?具体代码如下。向各位大佬求助!!!HoffertLienReactionRate.H HoffertLienReactionRateI.H
求助,目前在使用hy2Foam求解器计算类似乘波体外形,已经计算过钝头算例可以得到收敛解。但目前计算外形相对复杂,二维计算,计算域为1*0.55m,网格数量42000。计算过程中经常报错,求问有没有什么调试建议。下面是报错信息。
Mean and max Courant Numbers = 5.29417e-05 0.0491796
deltaT = 3.99074e-11
Time = 2.017990284e-06
diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
DILUPBiCG: Solving for N2, Initial residual = 0.000161695, Final residual = 3.0494e-13, No Iterations 1
DILUPBiCG: Solving for O2, Initial residual = 0.000148597, Final residual = 1.8029e-13, No Iterations 1
DILUPBiCG: Solving for NO, Initial residual = 0, Final residual = 0, No Iterations 0
DILUPBiCG: Solving for N, Initial residual = 0, Final residual = 0, No Iterations 0
DILUPBiCG: Solving for O, Initial residual = 0, Final residual = 0, No Iterations 0
diagonal: Solving for rhoUx, Initial residual = 0, Final residual = 0, No Iterations 0
diagonal: Solving for rhoUy, Initial residual = 0, Final residual = 0, No Iterations 0
smoothSolver: Solving for Ux, Initial residual = 1.07385e-06, Final residual = 1.49309e-06, No Iterations 1000
smoothSolver: Solving for Uy, Initial residual = 8.83461e-07, Final residual = 1.19425e-06, No Iterations 1000
diagonal: Solving for rhoE, Initial residual = 0, Final residual = 0, No Iterations 0
smoothSolver: Solving for e, Initial residual = 2.94288e-05, Final residual = 3.15326e+222, No Iterations 400
[1;31mAttempt to use rho2ReactionThermo out of temperature range 11152 times during this iteration.
-1.64159e+236 < Tlow: 200[0m
Phase no 1.0 ExecutionTime = 3564.14 s ClockTime = 3564 s Iteration no 4641 (0.79 s)
Mean and max Courant Numbers = 5.41311e-05 0.0489379
deltaT = 4.07806e-11
Time = 2.018031064e-06
diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
DILUPBiCG: Solving for N2, Initial residual = 0.000162296, Final residual = 1.67236e-16, No Iterations 2
DILUPBiCG: Solving for O2, Initial residual = 0.000148383, Final residual = 6.70388e-18, No Iterations 2
DILUPBiCG: Solving for NO, Initial residual = 0, Final residual = 0, No Iterations 0
DILUPBiCG: Solving for N, Initial residual = 0, Final residual = 0, No Iterations 0
DILUPBiCG: Solving for O, Initial residual = 0, Final residual = 0, No Iterations 0
diagonal: Solving for rhoUx, Initial residual = 0, Final residual = 0, No Iterations 0
diagonal: Solving for rhoUy, Initial residual = 0, Final residual = 0, No Iterations 0
#0 Foam::error::printStack(Foam::Ostream&) at ??:?
#1 Foam::sigFpe::sigHandler(int) at ??:?
#2 ? in "/lib/x86_64-linux-gnu/libc.so.6"
#3 Foam::GaussSeidelSmoother::smooth(Foam::word const&, Foam::Field<double>&, Foam::lduMatrix const&, Foam::Field<double> const&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, int) at ??:?
#4 Foam::GaussSeidelSmoother::smooth(Foam::Field<double>&, Foam::Field<double> const&, unsigned char, int) const at ??:?
#5 Foam::smoothSolver::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const at ??:?
#6 Foam::fvMatrix<Foam::Vector<double> >::solveSegregated(Foam::dictionary const&) at ??:?
#7 Foam::fvMatrix<Foam::Vector<double> >::solveSegregatedOrCoupled(Foam::dictionary const&) at ??:?
#8 Foam::fvMesh::solve(Foam::fvMatrix<Foam::Vector<double> >&, Foam::dictionary const&) const at ??:?
#9 ? in "/home/sy/OpenFOAM/sy-v1706/platforms/linux64GccDPInt32Opt/bin/hy2Foam"
#10 ? in "/home/sy/OpenFOAM/sy-v1706/platforms/linux64GccDPInt32Opt/bin/hy2Foam"
#11 ? in "/home/sy/OpenFOAM/sy-v1706/platforms/linux64GccDPInt32Opt/bin/hy2Foam"
#12 __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6"
#13 ? in "/home/sy/OpenFOAM/sy-v1706/platforms/linux64GccDPInt32Opt/bin/hy2Foam"
@biaowai 在 使用mapFields 操作更改网格计算出错 中说:
印象可以修改差值方式或者用mapFieldsPar试试
我用的1706版本,尝试过修改差值方式还是不行。去试试mapFieldsPar。
@学流体的小明 确实是数据插值有问题,手动把右下角网格点数据改掉了,大概两行,一百多个点,现在可以跑起来了
计算域不变,边界条件不变,将12000个网格加密到15000个后,使用 mapFields -consistent ../sourceFolder 命令进行结果映射的时候,映射之后的场是这个样子,感觉分布不合理,是不是 mapFields 操作有问题。
使用hy2Foam求解器做RamC模型验证,在驻点线画图时发现异常,组分质量分数结果使用线性坐标为正常曲线,如下所示。
但当转换为指数坐标时,曲线出现奇怪波动,请问是为什么呢?
但计算过程中会出现CFL数突然增大之后报错的问题Mean and max Courant Numbers = 0.0196702 0.2
deltaT = 1.34917e-09
Time = 1.381229231e-07
diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
DILUPBiCG: Solving for N2, Initial residual = 0.102714, Final residual = 8.31435e-10, No Iterations 11
DILUPBiCG: Solving for O2, Initial residual = 0.0998228, Final residual = 2.97854e-08, No Iterations 11
DILUPBiCG: Solving for NO, Initial residual = 0.00103043, Final residual = 4.54498e-07, No Iterations 11
DILUPBiCG: Solving for N2+, Initial residual = 0.157236, Final residual = 1.27729e-09, No Iterations 11
DILUPBiCG: Solving for O2+, Initial residual = 0.157241, Final residual = 1.44374e-09, No Iterations 11
DILUPBiCG: Solving for NO+, Initial residual = 0.157279, Final residual = 1.20494e-09, No Iterations 11
DILUPBiCG: Solving for N, Initial residual = 0.00643012, Final residual = 4.19377e-07, No Iterations 11
DILUPBiCG: Solving for O, Initial residual = 0.00193657, Final residual = 2.2919e-07, No Iterations 11
DILUPBiCG: Solving for N+, Initial residual = 0.157174, Final residual = 1.12526e-09, No Iterations 11
DILUPBiCG: Solving for O+, Initial residual = 0.156703, Final residual = 1.23372e-08, No Iterations 11
DILUPBiCG: Solving for e-, Initial residual = 0.0591289, Final residual = 2.85246e-15, No Iterations 5
diagonal: Solving for rhoUx, Initial residual = 0, Final residual = 0, No Iterations 0
diagonal: Solving for rhoUy, Initial residual = 0, Final residual = 0, No Iterations 0
diagonal: Solving for rhoUz, Initial residual = 0, Final residual = 0, No Iterations 0
smoothSolver: Solving for Ux, Initial residual = 5.41102e-05, Final residual = 5.24963e-09, No Iterations 120
smoothSolver: Solving for Uy, Initial residual = 0.00128686, Final residual = 1.27448e-07, No Iterations 160
smoothSolver: Solving for Uz, Initial residual = 0.000139985, Final residual = 1.28962e-08, No Iterations 70
diagonal: Solving for rhoEv, Initial residual = 0, Final residual = 0, No Iterations 0
diagonal: Solving for rhoE, Initial residual = 0, Final residual = 0, No Iterations 0
smoothSolver: Solving for hevel, Initial residual = 0.000257938, Final residual = 3.98118e-07, No Iterations 400
smoothSolver: Solving for e, Initial residual = 0.00686842, Final residual = 6.70799e-06, No Iterations 140
[1;31mAttempt to use rho2ReactionThermo out of temperature range 139 times during this iteration.
[1;31m Thigh: 40000 < 640000[0m
Phase no 1.0 ExecutionTime = 4.97 s ClockTime = 5 s Iteration no 112 (0.04 s)
Mean and max Courant Numbers = 0.0196515 0.552368
deltaT = 4.88502e-10
Time = 1.386114254e-07
diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
DILUPBiCG: Solving for N2, Initial residual = 0.0831271, Final residual = 4.94891e-09, No Iterations 11
DILUPBiCG: Solving for O2, Initial residual = 0.0830444, Final residual = 6.0302e-09, No Iterations 11
DILUPBiCG: Solving for NO, Initial residual = 0.0225179, Final residual = 4.10796e-07, No Iterations 11
DILUPBiCG: Solving for N2+, Initial residual = 0.070932, Final residual = 1.23497e-08, No Iterations 11
DILUPBiCG: Solving for O2+, Initial residual = 0.0707959, Final residual = 1.16027e-08, No Iterations 11
DILUPBiCG: Solving for NO+, Initial residual = 0.0712528, Final residual = 1.38649e-08, No Iterations 11
DILUPBiCG: Solving for N, Initial residual = 0.117227, Final residual = 8.58776e-08, No Iterations 11
DILUPBiCG: Solving for O, Initial residual = 0.209694, Final residual = 8.63459e-07, No Iterations 11
DILUPBiCG: Solving for N+, Initial residual = 0.240723, Final residual = 1.5458e-05, No Iterations 11
DILUPBiCG: Solving for O+, Initial residual = 0.0709349, Final residual = 3.14266e-08, No Iterations 11
DILUPBiCG: Solving for e-, Initial residual = 0.0330941, Final residual = 7.94061e-14, No Iterations 3
diagonal: Solving for rhoUx, Initial residual = 0, Final residual = 0, No Iterations 0
diagonal: Solving for rhoUy, Initial residual = 0, Final residual = 0, No Iterations 0
diagonal: Solving for rhoUz, Initial residual = 0, Final residual = 0, No Iterations 0
smoothSolver: Solving for Ux, Initial residual = 1.89119e-05, Final residual = 1.65027e-09, No Iterations 70
smoothSolver: Solving for Uy, Initial residual = 0.000264353, Final residual = 2.41377e-08, No Iterations 102
smoothSolver: Solving for Uz, Initial residual = 5.29899e-05, Final residual = 5.01779e-09, No Iterations 70
diagonal: Solving for rhoEv, Initial residual = 0, Final residual = 0, No Iterations 0
diagonal: Solving for rhoE, Initial residual = 0, Final residual = 0, No Iterations 0
smoothSolver: Solving for hevel, Initial residual = 0.278772, Final residual = 249.287, No Iterations 400
smoothSolver: Solving for e, Initial residual = 0.00510102, Final residual = 1.56626e+32, No Iterations 400
[1;31mAttempt to use rho2ReactionThermo out of temperature range 3106 times during this iteration.
-2.31822e+10 < Tlow: 200[0m
[1;31m Thigh: 40000 < 3.66402e+10[0m
Phase no 1.0 ExecutionTime = 5.02 s ClockTime = 5 s Iteration no 113 (0.05 s)
已经解决了,需要在controlDic中修改输出精度,至少在12以上
使用pointwise输出二维网格,网格检查结果良好
但是用
makeAxialMesh -case ~/OpenFOAM/sy-v1706/run/00mesh -axis symmetry -wedge BaseAndTop
collapseEdges指令生成楔形网格后检查网格质量,正交性变差,导致计算不断报错。
想请教一下,相同算例直接计算可以得到收敛结果,但并行运算时算到大概一半时间时报错。下面是decomposeParDict文件和报错信息。
报错信息.txt
@ShaneHEEE 设置的是从x方向流入 我再检查一下
@李东岳 好的,谢谢老师,我再检查看看
已经计算至0.001s,按照我设置的初始速度应该已经走过一半距离,但现在数值还是只存在与第一层网格。有点搞不懂到底是哪个部分出现了问题
不是标准算例 是自己建的模型 是可压缩流动
使用hy2Foam求解器计算三维翼型流场过程中出现内场维持初值不变的情况,建立一个简单的长方体算例出现相同情况,仅入口两层网格存在数值,下面是计算至0.001s的情况
采用100x10x10的结构化网格,下面是入口,上面是出口,四周设置为零梯度条件。
仿照https://www.cfd-online.com/Forums/openfoam-solving/60471-call-fortran-program-openfoam.html进行Fortran程序的调用,编译过程中报错: from chemistryModel/rho2ChemistryModel/rho2ChemistryModels.C:37:
/home/sy/OpenFOAM/sy-v1706/src/thermophysicalModels/strath/strathSpecie/lnInclude/CEATransportI.H:152:7: error: expected constructor, destructor, or type conversion before ‘(’ token
phypro(&TG, &TE, &PT, &PE, &CON[0], &CP_FINAL[0][0], &H_FINAL[0][0], &MIU_FINAL, &K_FINAL[0]);
但仿照https://www.cnblogs.com/snake553/p/6962386.html编写C++程序可以实现Fortran程序的调用
增加了一种读取表格计算物性的方法,编译无报错但实际应用时显示下列报错信息
@Elysiumor 在 使用hy2Foam求解器,更换bluntedCone算例网格便计算报错 中说:
@sy2315317 请问您按照官网操作,使用gnuplot可以实时查看残差吗
不能,提示缺了一个库,但装不上