Skip to content
Snippets Groups Projects
Commit 38d068c4 authored by mattijs's avatar mattijs
Browse files

ENH: createShellMesh: guarantee 0'th vertex ordered

parent d2979826
Branches
Tags
No related merge requests found
...@@ -2,7 +2,7 @@ ...@@ -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) 2010-2010 OpenCFD Ltd. \\ / A nd | Copyright (C) 2010-2011 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
...@@ -453,6 +453,7 @@ void Foam::createShellMesh::setRefinement ...@@ -453,6 +453,7 @@ void Foam::createShellMesh::setRefinement
label region0 = pointRegions_[eFaces[0]][fp0]; label region0 = pointRegions_[eFaces[0]][fp0];
label region1 = pointRegions_[eFaces[0]][fp1]; label region1 = pointRegions_[eFaces[0]][fp1];
// Pick up points with correct normal
if (layerI == 0) if (layerI == 0)
{ {
newF[0] = f[fp0]; newF[0] = f[fp0];
...@@ -468,6 +469,22 @@ void Foam::createShellMesh::setRefinement ...@@ -468,6 +469,22 @@ void Foam::createShellMesh::setRefinement
newF[3] = addedPoints[nLayers*region0+layerI]; newF[3] = addedPoints[nLayers*region0+layerI];
} }
// Optionally rotate so e[0] is always 0th vertex. Note that
// this normally is automatically done by coupled face ordering
// but with NOORDERING we have to do it ourselves.
if (f[fp0] != e[0])
{
// rotate one back to get newF[1] (originating from e[0])
// into newF[0]
label v0 = newF[0];
for (label i = 0; i < newF.size()-1; i++)
{
newF[i] = newF[newF.fcIndex(i)];
}
newF.last() = v0;
}
label minCellI = addedCells[nLayers*eFaces[0]+layerI]; label minCellI = addedCells[nLayers*eFaces[0]+layerI];
label maxCellI; label maxCellI;
label patchI; label patchI;
...@@ -569,6 +586,21 @@ void Foam::createShellMesh::setRefinement ...@@ -569,6 +586,21 @@ void Foam::createShellMesh::setRefinement
newF[3] = addedPoints[nLayers*region0+layerI]; newF[3] = addedPoints[nLayers*region0+layerI];
} }
// Optionally rotate so e[0] is always 0th vertex. Note that
// this normally is automatically done by coupled face
// ordering but with NOORDERING we have to do it ourselves.
if (f[fp0] != e[0])
{
// rotate one back to get newF[1] (originating
// from e[0]) into newF[0].
label v0 = newF[0];
for (label i = 0; i < newF.size()-1; i++)
{
newF[i] = newF[newF.fcIndex(i)];
}
newF.last() = v0;
}
////if (ePatches.size() == 0) ////if (ePatches.size() == 0)
//{ //{
// Pout<< "Adding from MULTI face:" // Pout<< "Adding from MULTI face:"
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment