数组变量边界条件的设置
-
单独计算和通过数组循环计算的结果分别如下(取相同方向):
循环计算时在四个顶点处有数据错误。在计算各方向的方程时为了方便使用了数组进行循环,所设的变量如下:
PtrList<volScalarField> PHI(nRay_); forAll(PHI, nRay_) { PHI.set ( nRay_, new volScalarField ( IOobject ( "PHI"+i, runTime.timeName(), mesh, IOobject::MUST_READ, IOobject::AUTO_WRITE ), mesh ) ); }
计算方程如下:
while (simple.loop()) { Info<< "Time = " << runTime.timeName() << nl << endl; i = 0; forAll(PHI,i) { while (simple.correctNonOrthogonal()) { fvScalarMatrix TEqn ( fvm::ddt(PHI[i]) + fvc::div(phiA[i],PHI[i]) == - fvm::Sp(v*sigmaT,PHI[i]) + fvOptions(PHI[i]) ); TEqn.relax(); fvOptions.constrain(TEqn); TEqn.solve() ; fvOptions.correct(PHI[i]); } }
变量的边界条件设置如下:
dimensions [0 -1 0 0 0 0 0]; internalField uniform 0; boundaryField { movingWall1 { type empty; } movingWall2 { type zeroGradient; } fixedWall1 { type zeroGradient; } fixedWall2 { type empty; } fixedWall3 { type zeroGradient; } fixedWall4 { type zeroGradient; } }
单独调出每个变量的边界条件均与所设相同。求教这是什么问题?