diff --git a/src/Solvers/petsc_solver.hpp b/src/Solvers/petsc_solver.hpp
index 928d5bb44521d92794cf692a7bdaaf04277528ed..b8e272441df57abb3244c91a5c1cae0319e0da31 100644
--- a/src/Solvers/petsc_solver.hpp
+++ b/src/Solvers/petsc_solver.hpp
@@ -21,7 +21,6 @@
 
 #define UMFPACK_NONE 0
 
-
 template<typename T>
 class petsc_solver
 {
@@ -600,7 +599,7 @@ class petsc_solver<double>
 
 		// We set the pre-conditioner
 		PETSC_SAFE_CALL(KSPGetPC(ksp,&pc));
-		PETSC_SAFE_CALL(PCSetType(pc,PCJACOBI));
+		PETSC_SAFE_CALL(PCSetType(pc,PCNONE));
 
 		// if we are on on best solve set-up a monitor function
 
@@ -783,6 +782,16 @@ public:
 		try_solve = true;
 	}
 
+	/*! \brief Set the Petsc solver
+	 *
+	 * \see KSPType in PETSC manual for a list of all PETSC solvers
+	 *
+	 */
+	void log_monitor()
+	{
+		PetscOptionsSetValue("-ksp_monitor",0);
+	}
+
 	/*! \brief Set the Petsc solver
 	 *
 	 * \see KSPType in PETSC manual for a list of all PETSC solvers
diff --git a/src/Vector/Vector_petsc.hpp b/src/Vector/Vector_petsc.hpp
index 79d80cf579670ab1442ad255aa89285bd0d4d108..544249643fdc24530d71a1b33c5ce38db8bc358c 100644
--- a/src/Vector/Vector_petsc.hpp
+++ b/src/Vector/Vector_petsc.hpp
@@ -86,7 +86,7 @@ class Vector<T,PETSC_BASE>
 	mutable Vec v;
 
 	// Mutable row value vector
-	mutable openfpm::vector<rval<T,PETSC_RVAL>,HeapMemory,typename memory_traits_inte<rval<T,PETSC_RVAL>>::type > row_val;
+	mutable openfpm::vector<rval<PetscScalar,PETSC_RVAL>,HeapMemory,typename memory_traits_inte<rval<PetscScalar,PETSC_RVAL>>::type > row_val;
 
 	// Global to local map
 	mutable std::unordered_map<size_t,size_t> map;
@@ -210,7 +210,7 @@ public:
 	 * \return reference to the element vector
 	 *
 	 */
-	inline T & insert(size_t i)
+	inline PetscScalar & insert(size_t i)
 	{
 		row_val.add();
 
@@ -228,7 +228,7 @@ public:
 	 * \return reference to the element vector
 	 *
 	 */
-	inline const T & insert(size_t i) const
+	inline const PetscScalar & insert(size_t i) const
 	{
 		row_val.add();
 
@@ -248,7 +248,7 @@ public:
 	 * \return reference to the element vector
 	 *
 	 */
-	const T & operator()(size_t i) const
+	const PetscScalar & operator()(size_t i) const
 	{
 		// Search if exist
 
@@ -269,7 +269,7 @@ public:
 	 * \return reference to the element vector
 	 *
 	 */
-	T & operator()(size_t i)
+	PetscScalar & operator()(size_t i)
 	{
 		// Search if exist