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

This commit is contained in:
mattijs
2011-03-23 16:18:28 +00:00

View File

@ -332,7 +332,19 @@ void timeVaryingMappedFixedValueFvPatchField<Type>::readSamplePoints()
( (
referenceCS().localPosition(samplePoints) referenceCS().localPosition(samplePoints)
); );
const vectorField& localVertices = tlocalVertices(); vectorField& localVertices = tlocalVertices();
// Shear to avoid degenerate cases
forAll(localVertices, i)
{
point& pt = localVertices[i];
const scalar magPt = mag(pt);
const point nptDir = pt/magPt;
if (magPt > ROOTVSMALL)
{
pt += pow(magPt, 1.1 + Foam::sqrt(SMALL))*nptDir;
}
}
// Determine triangulation // Determine triangulation
List<vector2D> localVertices2D(localVertices.size()); List<vector2D> localVertices2D(localVertices.size());
@ -342,7 +354,7 @@ void timeVaryingMappedFixedValueFvPatchField<Type>::readSamplePoints()
localVertices2D[i][1] = localVertices[i][1]; localVertices2D[i][1] = localVertices[i][1];
} }
tmp<pointField> localFaceCentres tmp<pointField> tlocalFaceCentres
( (
referenceCS().localPosition referenceCS().localPosition
( (
@ -350,6 +362,20 @@ void timeVaryingMappedFixedValueFvPatchField<Type>::readSamplePoints()
) )
); );
pointField& localFaceCentres = tlocalFaceCentres();
// Shear to avoid degenerate cases
forAll(localFaceCentres, i)
{
point& pt = localFaceCentres[i];
const scalar magPt = mag(pt);
const point nptDir = pt/magPt;
if (magPt > ROOTVSMALL)
{
pt += pow(magPt, 1.1 + Foam::sqrt(SMALL))*nptDir;
}
}
if (debug) if (debug)
{ {
OFstream str OFstream str
@ -360,9 +386,9 @@ void timeVaryingMappedFixedValueFvPatchField<Type>::readSamplePoints()
Pout<< "readSamplePoints :" Pout<< "readSamplePoints :"
<< " Dumping face centres to " << str.name() << endl; << " Dumping face centres to " << str.name() << endl;
forAll(localFaceCentres(), i) forAll(localFaceCentres, i)
{ {
const point& p = localFaceCentres()[i]; const point& p = localFaceCentres[i];
str<< "v " << p.x() << ' ' << p.y() << ' ' << p.z() << nl; str<< "v " << p.x() << ' ' << p.y() << ' ' << p.z() << nl;
} }
} }
@ -380,9 +406,9 @@ void timeVaryingMappedFixedValueFvPatchField<Type>::readSamplePoints()
Pout<< "readSamplePoints :" Pout<< "readSamplePoints :"
<< " Dumping face centres to " << str.name() << endl; << " Dumping face centres to " << str.name() << endl;
forAll(localFaceCentres(), i) forAll(localFaceCentres, i)
{ {
const point& p = localFaceCentres()[i]; const point& p = localFaceCentres[i];
str<< "v " << p.x() << ' ' << p.y() << ' ' << p.z() << nl; str<< "v " << p.x() << ' ' << p.y() << ' ' << p.z() << nl;
} }
} }