From d29420817da043def5963677e8975664c2ed1b7b Mon Sep 17 00:00:00 2001
From: sergio <sergio>
Date: Tue, 31 Jan 2017 16:06:44 -0800
Subject: [PATCH] ENH: Modification of the start point for ray shooting to
 avoid self-hit in distorted meshes

---
 .../solarLoad/faceShading/faceShading.C         | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/src/thermophysicalModels/radiation/radiationModels/solarLoad/faceShading/faceShading.C b/src/thermophysicalModels/radiation/radiationModels/solarLoad/faceShading/faceShading.C
index f976ceb902c..b522df0e561 100644
--- a/src/thermophysicalModels/radiation/radiationModels/solarLoad/faceShading/faceShading.C
+++ b/src/thermophysicalModels/radiation/radiationModels/solarLoad/faceShading/faceShading.C
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2015 OpenFOAM Foundation
-     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
+     \\/     M anipulation  | Copyright (C) 2017 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -264,15 +264,13 @@ void Foam::faceShading::calculate()
                 {
                     includeAllFacesPerPatch[patchI].insert
                     (
-                        faceI //pp.start()
+                        faceI
                     );
                 }
             }
         }
     }
 
-    labelList triSurfaceToAgglom(5*nFaces);
-
     triSurface localSurface = triangulate
     (
         includePatches,
@@ -294,9 +292,10 @@ void Foam::faceShading::calculate()
         dict
     );
 
-    surfacesMesh.searchableSurface::write();
-
-    triSurfaceToAgglom.resize(surfacesMesh.size());
+    if (debug)
+    {
+        surfacesMesh.searchableSurface::write();
+    }
 
     scalar maxBounding = 5.0*mag(mesh_.bounds().max() - mesh_.bounds().min());
 
@@ -324,7 +323,7 @@ void Foam::faceShading::calculate()
 
                 const vector d(direction_*maxBounding);
 
-                start.append(fc - SMALL*d);
+                start.append(fc - 0.001*d);
 
                 startIndex.append(myFaceId);
 
@@ -355,7 +354,7 @@ void Foam::faceShading::calculate()
             (
                 mesh_.time().path()/"allVisibleFaces.obj",
                 end,
-                Cfs
+                start
             );
         }
 
-- 
GitLab