Merge branch 'master' of /home/dm4/OpenFOAM/OpenFOAM-dev

This commit is contained in:
sergio 2012-04-25 16:17:49 +01:00
commit e2b50cc8cb
2 changed files with 38 additions and 12 deletions

View File

@ -1036,6 +1036,22 @@ int main(int argc, char *argv[])
( (
UIndirectList<label>(faceProcAddressing, map().faceMap()) UIndirectList<label>(faceProcAddressing, map().faceMap())
); );
// Detect any flips.
const labelHashSet& fff = map().flipFaceFlux();
forAllConstIter(labelHashSet, fff, iter)
{
label faceI = iter.key();
label masterFaceI = faceProcAddressing[faceI];
faceProcAddressing[faceI] = -masterFaceI;
if (masterFaceI == 0)
{
FatalErrorIn(args.executable()) << "problem faceI:" << faceI
<< " masterFaceI:" << masterFaceI << exit(FatalError);
}
}
} }
if (pointProcAddressing.headerOk()) if (pointProcAddressing.headerOk())
{ {
@ -1083,9 +1099,13 @@ int main(int argc, char *argv[])
); );
Info<< "After renumbering :" << nl Info<< "After renumbering :" << nl
<< " band : " << band << nl << " band : " << band << nl
<< " profile : " << profile << nl << " profile : " << profile << nl;
<< " rms frontwidth : " << rmsFrontwidth << nl if (doFrontWidth)
<< endl; {
Info<< " rms frontwidth : " << rmsFrontwidth << nl;
}
Info<< endl;
} }
if (orderPoints) if (orderPoints)

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -377,18 +377,24 @@ Foam::fvFieldReconstructor::reconstructFvSurfaceField
// take care of the face direction offset trick. // take care of the face direction offset trick.
// //
{ {
labelList curAddr(faceProcAddressing_[procI]); const labelList& faceMap = faceProcAddressing_[procI];
forAll(curAddr, addrI) // Addressing into original field
labelList curAddr(faceMap.size());
// Correctly oriented copy of internal field
Field<Type> procInternalField(procField.internalField());
forAll(faceMap, addrI)
{ {
curAddr[addrI] -= 1; curAddr[addrI] = mag(faceMap[addrI])-1;
if (faceMap[addrI] < 0)
{
procInternalField[addrI] = -procInternalField[addrI];
}
} }
internalField.rmap // Map
( internalField.rmap(procInternalField, curAddr);
procField.internalField(),
curAddr
);
} }
// Set the boundary patch values in the reconstructed field // Set the boundary patch values in the reconstructed field