I am trying to solve a 2D dynamic plasticity Problem with Drucker Prager and von Mises Model. Initially, I was using the 'hypre amg' preconditioner for running the von Mises model. When I switched to Drucker Prager model, I found that the 'hypre_amg' is now working quite slow and that 'ilu' preconditioner works twice as fast as 'hypre amg' but gives an error when run in parallel with MPI. For vonMises model, 'hypre_amg' runs twice as fast as it does for Drucker Prager model. Can someone please give any suggestion on what can be done to increase the current efficiency.
The following are the relevant parameters for nonlinear solver.
dolfin::NewtonSolver nonlinear_solver;
nonlinear_solver.parameters["convergence_criterion"] = "residual";
nonlinear_solver.parameters["linear_solver"] = "gmres";
nonlinear_solver.parameters["preconditioner"] = "hypre_amg";
I use mpirun -np 4 demo_name
. It works for hypre_amg but not for 'ilu'. The error is noted in comment below.