From 4f46fdff1a53be2575a53f2c13575ca3c8dda7a9 Mon Sep 17 00:00:00 2001
From: Franjo Juretic <franjo.juretic@c-fields.com>
Date: Mon, 17 Apr 2017 01:13:02 +0200
Subject: [PATCH] Backward compatibility with other distributions

---
 meshLibrary/Make/options                         |  6 +++++-
 .../geometry/quadricFitting/quadricFittingI.H    |  4 ++++
 .../tetMeshOptimisation/tetMeshOptimisation.C    | 16 ++++++++++++++++
 .../triSurface2DCheck/triSurface2DCheck.C        |  8 ++++++++
 4 files changed, 33 insertions(+), 1 deletion(-)

diff --git a/meshLibrary/Make/options b/meshLibrary/Make/options
index 512214bb..2c956d3c 100644
--- a/meshLibrary/Make/options
+++ b/meshLibrary/Make/options
@@ -6,7 +6,7 @@ endif
 
 ifeq (OpenFOAM,$(findstring OpenFOAM,$(WM_PROJECT)))
     ifeq (Int,$(findstring Int,$(WM_LABEL_OPTION)))
-	CFMESH_MACROS = -DNoSizeType
+        CFMESH_MACROS = -DNoSizeType
         LIBS =
     else
         CFMESH_MACROS =
@@ -14,6 +14,10 @@ ifeq (OpenFOAM,$(findstring OpenFOAM,$(WM_PROJECT)))
     endif
 endif
 
+ifeq (v, $(findstring v, $(WM_PROJECT_VERSION)))
+    CFMESH_MACROS += -DOpenCFDSpecific
+endif
+
 ifeq ($(WM_PROJECT), foam)
     VER := $(shell expr `echo $(WM_PROJECT_VERSION)` \>= 3.2)
     ifeq ($(VER), 1)
diff --git a/meshLibrary/utilities/helperClasses/geometry/quadricFitting/quadricFittingI.H b/meshLibrary/utilities/helperClasses/geometry/quadricFitting/quadricFittingI.H
index e2dbf5f7..98f15684 100644
--- a/meshLibrary/utilities/helperClasses/geometry/quadricFitting/quadricFittingI.H
+++ b/meshLibrary/utilities/helperClasses/geometry/quadricFitting/quadricFittingI.H
@@ -52,7 +52,11 @@ void quadricFitting::calculateNormalVector()
 
     //- estimate the normal as the eigenvector associated
     //- to the smallest eigenvalue
+    # ifdef OpenCFDSpecific
     normal_ = eigenVectors(mat, ev).x();
+    # else
+    normal_ = eigenVector(mat, ev[0]);
+    # endif
 }
 
 void quadricFitting::calculateCoordinateSystem()
diff --git a/meshLibrary/utilities/smoothers/geometry/meshOptimizer/tetMeshOptimisation/tetMeshOptimisation.C b/meshLibrary/utilities/smoothers/geometry/meshOptimizer/tetMeshOptimisation/tetMeshOptimisation.C
index b9e214b9..2f07cabc 100644
--- a/meshLibrary/utilities/smoothers/geometry/meshOptimizer/tetMeshOptimisation/tetMeshOptimisation.C
+++ b/meshLibrary/utilities/smoothers/geometry/meshOptimizer/tetMeshOptimisation/tetMeshOptimisation.C
@@ -495,16 +495,32 @@ void tetMeshOptimisation::optimiseBoundaryVolumeOptimizer
                         if( mag(ev[2]) > (mag(ev[1]) + mag(ev[0])) )
                         {
                             //- ordinary surface vertex
+                            # ifdef OpenCFDSpecific
                             vector normal = eigenVectors(nt, ev).z();
+                            # else
+                            vector normal = eigenVector(nt, ev[2]);
+                            # endif
+
                             normal /= (mag(normal)+VSMALL);
                             disp -= (disp & normal) * normal;
                         }
                         else if( mag(ev[1]) > 0.5 * (mag(ev[2]) + mag(ev[0])) )
                         {
                             //- this vertex is on an edge
+                            # ifdef OpenCFDSpecific
                             vector normal1 = eigenVectors(nt, ev).y();
+                            # else
+                            vector normal1 = eigenVector(nt, ev[1]);
+                            # endif
+
                             normal1 /= (mag(normal1)+VSMALL);
+
+                            # ifdef OpenCFDSpecific
                             vector normal2 = eigenVectors(nt, ev).z();
+                            # else
+                            vector normal2 = eigenVector(nt, ev[2]);
+                            # endif
+
                             normal2 /= (mag(normal2)+VSMALL);
 
                             vector eVec = normal1 ^ normal2;
diff --git a/meshLibrary/utilities/triSurfaceTools/triSurface2DCheck/triSurface2DCheck.C b/meshLibrary/utilities/triSurfaceTools/triSurface2DCheck/triSurface2DCheck.C
index 00c31ae9..051efadf 100644
--- a/meshLibrary/utilities/triSurfaceTools/triSurface2DCheck/triSurface2DCheck.C
+++ b/meshLibrary/utilities/triSurfaceTools/triSurface2DCheck/triSurface2DCheck.C
@@ -86,11 +86,19 @@ bool triSurface2DCheck::is2DSurface() const
 
     //- calculate the plane normal as a cross prduct of the two
     //- eigenVectors spanning the plane
+    # ifdef OpenCFDSpecific
     const vector n
     (
         eigenVectors(covarianceMatrix_, eigenVal).y() ^
         eigenVectors(covarianceMatrix_, eigenVal).z()
     );
+    # else
+    const vector n
+    (
+        eigenVector(covarianceMatrix_, eigenVal[1]) ^
+        eigenVector(covarianceMatrix_, eigenVal[2])
+    );
+    # endif
 
     //- check if the plane is in the x-y plane of the coordinate system
     if( mag(n.x()) > SMALL || mag(n.y()) > SMALL )
-- 
GitLab