diff --git a/applications/utilities/mesh/generation/cvMesh/cellSizeAndAlignmentGrid/cellSizeAndAlignmentGrid.C b/applications/utilities/mesh/generation/cvMesh/cellSizeAndAlignmentGrid/cellSizeAndAlignmentGrid.C index 18109761a5..454416299d 100644 --- a/applications/utilities/mesh/generation/cvMesh/cellSizeAndAlignmentGrid/cellSizeAndAlignmentGrid.C +++ b/applications/utilities/mesh/generation/cvMesh/cellSizeAndAlignmentGrid/cellSizeAndAlignmentGrid.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2012-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -174,12 +174,7 @@ Foam::tmp buildAlignmentField(const T& mesh) continue; } - alignments[vit->index()] = triad - ( - vit->alignment().x(), - vit->alignment().y(), - vit->alignment().z() - ); + alignments[vit->index()] = vit->alignment(); } return tAlignments; @@ -214,6 +209,61 @@ Foam::tmp buildPointField(const T& mesh) } +void refine +( + cellShapeControlMesh& mesh, + const conformationSurfaces& geometryToConformTo, + const label maxRefinementIterations, + const scalar defaultCellSize +) +{ + for (label iter = 0; iter < maxRefinementIterations; ++iter) + { + DynamicList ptsToInsert; + + for + ( + CellSizeDelaunay::Finite_cells_iterator cit = + mesh.finite_cells_begin(); + cit != mesh.finite_cells_end(); + ++cit + ) + { + const point newPoint = + topoint + ( + CGAL::centroid + ( + cit->vertex(0)->point(), + cit->vertex(1)->point(), + cit->vertex(2)->point(), + cit->vertex(3)->point() + ) + ); + + if (geometryToConformTo.inside(newPoint)) + { + ptsToInsert.append(newPoint); + } + } + + Info<< " Adding " << returnReduce(ptsToInsert.size(), sumOp