Hi folks,

I am trying to use the user-defined preconditioner for my Stokes problem. I
first add my preconditioning matrix by
system.add_matrix("Preconditioner");

then assemble this matrix by a subroutine. My question is how I can tell
libmesh solver to use this preconditioner when the problem is being solved.
I looked at ImplicitProblem::solve(), in which the preconditioner is
delivered through
linear_solver
<http://libmesh.github.io/doxygen/classlibMesh_1_1LinearImplicitSystem.html#a7cc68891fa9f44ded49b9b84c057cb32>->solve
(*matrix
<http://libmesh.github.io/doxygen/classlibMesh_1_1ImplicitSystem.html#a549bd875b4fc99cbd5d1f7ba169feca7>,
this->request_matrix
<http://libmesh.github.io/doxygen/classlibMesh_1_1ImplicitSystem.html#a0f497ae21ddc216ca57b4cbdb7429f67>
("Preconditioner"), *solution
<http://libmesh.github.io/doxygen/classlibMesh_1_1System.html#ae1846816118b13d942071124f8a74808>,
*rhs
<http://libmesh.github.io/doxygen/classlibMesh_1_1ExplicitSystem.html#a98fde3a02d1256dbc31891c88986bddc>,
tol, maxits);

However, from the output, I can still see the KSP type is gmres and PC type
is block jacobi (by default in PETSc). It seems to me that the solver
applied two PCs, one is bjacobi, and the other is the user-defined??? How
can I fixed this and only use my own PC?

Should I use -pc_type none? If so, will my own PC matrix be neglected by
the solver?

Thanks.
Xujun
------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to