From 27f86a8342f2575e28aa7e57604c06121a409c5e Mon Sep 17 00:00:00 2001 From: graham Date: Mon, 29 Sep 2008 11:56:24 +0100 Subject: [PATCH] Moved edge processing to a separate function fed by blocks of edge points separated into individual lists. Fixed two logic errors in edge processing. --- .../mesh/generation/CV3DMesher/CV3D.C | 7 +- .../mesh/generation/CV3DMesher/CV3D.H | 18 +- .../insertSurfaceNearestPointPairs.C | 637 +++++++++++++----- .../mesh/generation/CV3DMesher/tolerances.C | 14 + 4 files changed, 487 insertions(+), 189 deletions(-) diff --git a/applications/utilities/mesh/generation/CV3DMesher/CV3D.C b/applications/utilities/mesh/generation/CV3DMesher/CV3D.C index da9cc442e1..f4c4a7155c 100644 --- a/applications/utilities/mesh/generation/CV3DMesher/CV3D.C +++ b/applications/utilities/mesh/generation/CV3DMesher/CV3D.C @@ -164,7 +164,12 @@ void Foam::CV3D::insertGrid() { for (int k=0; k& edgeLabels ) const; + void smoothEdge + ( + List& edgePoints, + List& edgeDistances, + const label edgeI + ) const; + //- Insert point-pairs at the nearest points on the surface to the // control vertex of dual-cells which intersect the boundary in order // to provide a boundary-layer mesh. diff --git a/applications/utilities/mesh/generation/CV3DMesher/insertSurfaceNearestPointPairs.C b/applications/utilities/mesh/generation/CV3DMesher/insertSurfaceNearestPointPairs.C index c569ef300f..41caf8db1b 100644 --- a/applications/utilities/mesh/generation/CV3DMesher/insertSurfaceNearestPointPairs.C +++ b/applications/utilities/mesh/generation/CV3DMesher/insertSurfaceNearestPointPairs.C @@ -194,235 +194,469 @@ void Foam::CV3D::smoothEdgePositions edgeDistances.transfer(copyEdgeDistances); } + // Create a List to hold each edge, process them individually, then + // recombine the edges into a single list. + + List > edgePointIndividualLists(edgeLabelJumps.size()); + + List > edgeDistanceIndividualLists(edgeLabelJumps.size()); + + List