我在对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]的报错,我的理解是因为这两个名称不同所导致的。这个问题要怎么去解决?我想的是,或许可以把这三项在方程外部导入到一个临时变量,再输入到方程里,但是不知道怎么用代码去实现。求各位大佬指点。