IOobject phiaHeader ( "phia", runTime.timeName(), mesh, IOobject::NO_READ ); surfaceScalarField* phiaPtr; if (phiaHeader.headerOk()) { Info<< "Reading face flux field phia\n" << endl; phiaPtr = new surfaceScalarField ( IOobject ( "phia", runTime.timeName(), mesh, IOobject::MUST_READ, IOobject::AUTO_WRITE ), mesh ); } else { Info<< "Calculating face flux field phia\n" << endl; wordList phiTypes ( Ua.boundaryField().size(), calculatedFvPatchScalarField::typeName ); for (label i=0; i(Ua.boundaryField()[i])) { phiTypes[i] = fixedValueFvPatchScalarField::typeName; } } phiaPtr = new surfaceScalarField ( IOobject ( "phia", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::AUTO_WRITE ), fvc::interpolate(Ua) & mesh.Sf(), phiTypes ); } surfaceScalarField& phia = *phiaPtr;