新代码长这样子:
创造场变量时需要设置初始值,否则程序调用的构造函数一定会去文件中找,会报错说找不到该变量文件。
Info<< "Creating field alphaUPrimeij and rhoUPrimeij\n" << endl;
volSymmTensorField alphaUPrimeij
(
IOobject
(
"alphaUPrimeij",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh,
dimensionedSymmTensor(dimensionSet(0, 2, -2, 0, 0, 0, 0), symmTensor(0., 0., 0., 0., 0., 0.))
);
volSymmTensorField rhoUPrimeij
(
IOobject
(
"rhoUPrimeij",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh,
dimensionedSymmTensor(dimensionSet(1, -1, -2, 0, 0, 0, 0), symmTensor(0., 0., 0., 0., 0., 0.))
);
volScalarField myepsilon
(
IOobject
(
"myepsilon",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh,
dimensionedScalar(dimensionSet(0, 2, -3, 0, 0, 0, 0), 0.)
);
if (mesh.thisDb().foundObject<volVectorField>("UMean"))
{
const volVectorField& UMean_ = mesh.thisDb().lookupObject<volVectorField>("UMean");
const volVectorField UPrime = U - UMean_;
// const volScalarField UPrimeX = UPrime.component(0);
// const volScalarField UPrimeY = UPrime.component(1);
// const volScalarField UPrimeZ = UPrime.component(2);
const volTensorField gradUPrime(fvc::grad( UPrime ));
myepsilon = mixture.nu()*gradUPrime && gradUPrime;
scalar rhoCell,alphaCell,UPrimeX,UPrimeY,UPrimeZ;
forAll(rhoUPrimeij,celli)
{
rhoCell=rho[celli];
alphaCell=alpha1[celli];
UPrimeX=UPrime[celli][0];
UPrimeY=UPrime[celli][1];
UPrimeZ=UPrime[celli][2];
rhoUPrimeij[celli]=symmTensor(
rhoCell*UPrimeX*UPrimeX,
rhoCell*UPrimeX*UPrimeY,
rhoCell*UPrimeX*UPrimeZ,
rhoCell*UPrimeY*UPrimeY,
rhoCell*UPrimeY*UPrimeZ,
rhoCell*UPrimeZ*UPrimeZ
);
alphaUPrimeij[celli]=symmTensor(
alphaCell*UPrimeX*UPrimeX,
alphaCell*UPrimeX*UPrimeY,
alphaCell*UPrimeX*UPrimeZ,
alphaCell*UPrimeY*UPrimeY,
alphaCell*UPrimeY*UPrimeZ,
alphaCell*UPrimeZ*UPrimeZ
);
}
}