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