diff --git a/Solver/linearSystemPETSc.hpp b/Solver/linearSystemPETSc.hpp
index 02f6d48a9f627a234f641351577099e2b2f8d9ac..f2711884198bfbb813e822911ace485e2e22e062 100644
--- a/Solver/linearSystemPETSc.hpp
+++ b/Solver/linearSystemPETSc.hpp
@@ -103,7 +103,7 @@ void linearSystemPETSc<scalar>::preAllocateEntries()
   int blockSize = _getBlockSizeFromParameters();
   std::vector<int> nByRowDiag (_localSize), nByRowOffDiag (_localSize);
   if (_sparsity.getNbRows() == 0) {
-    PetscInt prealloc = 300;
+    PetscInt prealloc = 500;
     PetscBool set;
     PetscOptionsGetInt(PETSC_NULL, "-petsc_prealloc", &prealloc, &set);
     prealloc = std::min(prealloc, _localSize);