Skip to content
Snippets Groups Projects
Commit 8dda57dd authored by laurence's avatar laurence
Browse files

ENH: foamyHexMesh: correct rayShooting point addition on intersection

parent 7531ccba
No related branches found
No related tags found
No related merge requests found
...@@ -121,7 +121,7 @@ List<Vb::Point> rayShooting::initialPoints() const ...@@ -121,7 +121,7 @@ List<Vb::Point> rayShooting::initialPoints() const
geometryToConformTo().findSurfaceNearest geometryToConformTo().findSurfaceNearest
( (
fC, fC,
sqr(SMALL), sqr(pert),
surfHitStart, surfHitStart,
hitSurfaceStart hitSurfaceStart
); );
...@@ -145,63 +145,62 @@ List<Vb::Point> rayShooting::initialPoints() const ...@@ -145,63 +145,62 @@ List<Vb::Point> rayShooting::initialPoints() const
hitSurfaceEnd hitSurfaceEnd
); );
vectorField normEnd(1, vector::min); if (surfHitEnd.hit())
geometryToConformTo().getNormal
(
hitSurfaceEnd,
List<pointIndexHit>(1, surfHitEnd),
normEnd
);
if
(
surfHitEnd.hit()
&& ((normStart[0] & normEnd[0]) < 0)
)
{ {
line<point, point> l(fC, surfHitEnd.hitPoint()); vectorField normEnd(1, vector::min);
geometryToConformTo().getNormal
(
hitSurfaceEnd,
List<pointIndexHit>(1, surfHitEnd),
normEnd
);
if (Pstream::parRun()) if ((normStart[0] & normEnd[0]) < 0)
{ {
// Clip the line in parallel line<point, point> l(fC, surfHitEnd.hitPoint());
pointIndexHit procIntersection =
decomposition().findLine if (Pstream::parRun())
(
l.start() + l.vec()*SMALL,
l.end() - l.vec()*maxRayLength_
);
if (procIntersection.hit())
{ {
l = // Clip the line in parallel
line<point, point> pointIndexHit procIntersection =
decomposition().findLine
( (
l.start(), l.start() + l.vec()*SMALL,
procIntersection.hitPoint() l.end() - l.vec()*maxRayLength_
); );
if (procIntersection.hit())
{
l =
line<point, point>
(
l.start(),
procIntersection.hitPoint()
);
}
} }
}
Foam::point midPoint(l.centre()); Foam::point midPoint(l.centre());
const scalar minDistFromSurfaceSqr = const scalar minDistFromSurfaceSqr =
minimumSurfaceDistanceCoeffSqr_ minimumSurfaceDistanceCoeffSqr_
*sqr(cellShapeControls().cellSize(midPoint)); *sqr(cellShapeControls().cellSize(midPoint));
if if
( (
magSqr(midPoint - l.start()) > minDistFromSurfaceSqr magSqr(midPoint - l.start()) > minDistFromSurfaceSqr
&& magSqr(midPoint - l.end()) > minDistFromSurfaceSqr && magSqr(midPoint - l.end()) > minDistFromSurfaceSqr
) )
{
if (randomiseInitialGrid_)
{ {
midPoint.x() += pert*(rndGen().scalar01() - 0.5); if (randomiseInitialGrid_)
midPoint.y() += pert*(rndGen().scalar01() - 0.5); {
midPoint.z() += pert*(rndGen().scalar01() - 0.5); midPoint.x() += pert*(rndGen().scalar01() - 0.5);
midPoint.y() += pert*(rndGen().scalar01() - 0.5);
midPoint.z() += pert*(rndGen().scalar01() - 0.5);
}
initialPoints.append(toPoint(midPoint));
} }
initialPoints.append(toPoint(midPoint));
} }
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment