From 05dc042bb406a8e5bf7d70d75d19a571d5e4fa3c Mon Sep 17 00:00:00 2001
From: Pietro Incardona <incardon@mpi-cbg.de>
Date: Sat, 1 Dec 2018 16:35:00 +0100
Subject: [PATCH] Numerics fixed test for GCC7

---
 src/FiniteDifference/eq_unit_test.cpp    | 7 ++++++-
 src/FiniteDifference/eq_unit_test_3d.cpp | 7 ++++++-
 src/Vector/Vector_petsc.hpp              | 5 ++---
 3 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/src/FiniteDifference/eq_unit_test.cpp b/src/FiniteDifference/eq_unit_test.cpp
index 80173ac7..d7f47663 100644
--- a/src/FiniteDifference/eq_unit_test.cpp
+++ b/src/FiniteDifference/eq_unit_test.cpp
@@ -249,7 +249,12 @@ template<typename solver_type,typename lid_nn> void lid_driven_cavity_2d()
 
 #else
 
-	#if __GNUC__ == 6
+	#if __GNUC__ == 7
+
+    std::string file1 = std::string("test/") + s + "lid_driven_cavity_p" + std::to_string(v_cl.getProcessingUnits()) + "_grid_" + std::to_string(v_cl.getProcessUnitID()) + "_test_GCC7.vtk";
+    std::string file2 = s + "lid_driven_cavity_p" + std::to_string(v_cl.getProcessingUnits()) + "_grid_" + std::to_string(v_cl.getProcessUnitID()) + ".vtk";
+
+	#elif __GNUC__ == 6
 
 	std::string file1 = std::string("test/") + s + "lid_driven_cavity_p" + std::to_string(v_cl.getProcessingUnits()) + "_grid_" + std::to_string(v_cl.getProcessUnitID()) + "_test_GCC6.vtk";
 	std::string file2 = s + "lid_driven_cavity_p" + std::to_string(v_cl.getProcessingUnits()) + "_grid_" + std::to_string(v_cl.getProcessUnitID()) + ".vtk";
diff --git a/src/FiniteDifference/eq_unit_test_3d.cpp b/src/FiniteDifference/eq_unit_test_3d.cpp
index 18665e6d..26cbd274 100644
--- a/src/FiniteDifference/eq_unit_test_3d.cpp
+++ b/src/FiniteDifference/eq_unit_test_3d.cpp
@@ -214,7 +214,12 @@ template<typename solver_type,typename lid_nn_3d> void lid_driven_cavity_3d()
 
 #else
 
-	#if __GNUC__ == 5
+	#if __GNUC__ == 7
+
+        std::string file1 = std::string("test/") + s + "lid_driven_cavity_3d_p" + std::to_string(v_cl.getProcessingUnits()) + "_grid_" + std::to_string(v_cl.getProcessUnitID()) + "_test_GCC7.vtk";
+        std::string file2 = s + "lid_driven_cavity_3d_p" + std::to_string(v_cl.getProcessingUnits()) + "_grid_" + std::to_string(v_cl.getProcessUnitID()) + ".vtk";
+
+	#elif __GNUC__ == 5
 
         std::string file1 = std::string("test/") + s + "lid_driven_cavity_3d_p" + std::to_string(v_cl.getProcessingUnits()) + "_grid_" + std::to_string(v_cl.getProcessUnitID()) + "_test_GCC5.vtk";
         std::string file2 = s + "lid_driven_cavity_3d_p" + std::to_string(v_cl.getProcessingUnits()) + "_grid_" + std::to_string(v_cl.getProcessUnitID()) + ".vtk";
diff --git a/src/Vector/Vector_petsc.hpp b/src/Vector/Vector_petsc.hpp
index c34b774b..23a5e491 100644
--- a/src/Vector/Vector_petsc.hpp
+++ b/src/Vector/Vector_petsc.hpp
@@ -106,7 +106,7 @@ class Vector<T,PETSC_BASE>
 	mutable Vec v;
 
 	//! Mutable row value vector
-	mutable openfpm::vector<rval<PetscScalar,PETSC_RVAL>,HeapMemory,typename memory_traits_inte<rval<PetscScalar,PETSC_RVAL>>::type > row_val;
+	mutable openfpm::vector<rval<PetscScalar,PETSC_RVAL>,HeapMemory,typename memory_traits_inte<rval<PetscScalar,PETSC_RVAL>>::type, memory_traits_inte > row_val;
 
 	//! Global to local map
 	mutable std::unordered_map<size_t,size_t> map;
@@ -123,11 +123,10 @@ class Vector<T,PETSC_BASE>
 		if (v_created == false)
 		{PETSC_SAFE_CALL(VecSetType(v,VECMPI));}
 
-
 		// set the vector
 
 		if (row_val.size() != 0)
-			PETSC_SAFE_CALL(VecSetValues(v,row_val.size(),&row_val.template get<row_id>(0),&row_val.template get<val_id>(0),INSERT_VALUES))
+		{PETSC_SAFE_CALL(VecSetValues(v,row_val.size(),&row_val.template get<row_id>(0),&row_val.template get<val_id>(0),INSERT_VALUES))}
 
 		PETSC_SAFE_CALL(VecAssemblyBegin(v));
 		PETSC_SAFE_CALL(VecAssemblyEnd(v));
-- 
GitLab