我在对coalChemistryFoam改写,想把它和随机场方程进行结合。简单来说是对于连续相用一系列随机场进行计算,颗粒相不用(单独计算)。但这就遇到了一个问题,我结合着输运方程来说明:
for(label i=0; i<Y.size(); i++)
{
{
volScalarField Yi = Ysf[nsf][i];
volScalarField Ymean = Y[i];
WienerTermYi = pow(2*gamma,0.5)*( fvc::grad(Yi) & dW_sf);
fvScalarMatrix YiEqn
(
fvm::ddt(rho, Yi)
+ mvConvection->fvmDiv(phi, Yi)
- fvm::laplacian(turbulence->muEff()/Sct, Yi)
==
coalParcels.SYi(i, Ymean)
+ combustion->R(Ymean)
+ fvOptions(rho, Ymean)
+ (rho*WienerTermYi/deltaT)
);
YiEqn.relax();
fvOptions.constrain(YiEqn);
YiEqn.solve(mesh.solver("Yi"));
YiEqn.solve();
fvOptions.correct(Yi);
Yi.max(0.0);
Ysf[nsf][i] = Yi;
Yt += Yi;
}
}
在这个方程里,Yi指的是随机场的组分项(比如名为N2__01),Ymean指的是平均场的组分项(也就是组分场,名为N2)。颗粒的求解不考虑随机场,来自颗粒的源项被输入到每一个随机场中。但这里就会有一个问题,在计算时,会出现类似incompatible fields for operation [N2] + [N2__01]的报错,我的理解是因为这两个名称不同所导致的。这个问题要怎么去解决?我想的是,或许可以把这三项在方程外部导入到一个临时变量,再输入到方程里,但是不知道怎么用代码去实现。求各位大佬指点。