今天发现这个问题折腾了小半天也没解决,恳请大家帮忙分析一下:
非稳态计算过程中需要连续的向模型中注入流体,由于尺度的问题无法使用“显式”的入口,而是使用一个“隐式”的方法:添加一个体积源项到压力方程中实现注入;
体积源项定义:
volScalarField wellSource(
IOobject("wellSource",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::NO_WRITE),
mesh,
dimensionedScalar("Scalar", dimVol / dimTime, Zero)
);
需要添加体积源项的网格对应的wellSource有数值,否则为零,注入量是一个固定不变的值。
整体求解流程类似PISOFoam 前后代码就没有列出来,压力方程源项添加如下:
fvScalarMatrix pEqn((fvm::laplacian(rTU, p) == fvc::div(phiHbyA))-(wellSource/mesh.V()));
但是在计算过程出现问题是:每一个时间步求解一次的压力方程后压力都会增加,对应的库朗数也一直增加(如下):
Courant Number mean: 0.000925584 max: 0.19292
Courant Number mean: 0.00103634 max: 0.331209
Courant Number mean: 0.00132796 max: 3.74959
Courant Number mean: 0.00177495 max: 4.40821
Courant Number mean: 0.00422436 max: 24.4105
Courant Number mean: 0.0173964 max: 47.9946
Courant Number mean: 0.0974709 max: 287.174
Courant Number mean: 0.679524 max: 1792.34
Courant Number mean: 39.8774 max: 147650
...........
Courant Number mean: 8.97372e+11 max: 6.71492e+15
看上去是每一个时间步的源项和上一个时间步的结果都在累加,从压力方程上每个时间步计算的过程来看的确也是这样的。
从物理过程的角度来说,连续的向模型中注入流体,每个时间步的压力方程都应该有源项存在的,如果源项大小不变,压力应该是稳态的,
不知道要如何避免这种压力不断增加的结果~,希望大家提提意见。