[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: PCSetOperators
On 11/16/06, Matt Funk <mafunk@xxxxxxxx> wrote:
Hi,
i had a question regarding PCSetOperators(...):
1) what is the difference between PCSetOperators and KSPSetOperators since the
description and the arguments for both functions are the same (i.e.):
"Sets the matrix associated with the linear system and a (possibly) different
one associated with the preconditioner"
KSPSetOperators() calls the PC version.
Right now, what i do to set my preconditioner is to call:
PCSetType(m_pc, PCJACOBI);
2) Is this sufficient or do i need to call PCSetOperators?
It should be sufficient.
3) Do PCSetType and PCSetOperators have the same function?
No. We allow the later in order to support construction of the PC very early on.
Right now what i basically do to set up my solver context is to call the
following functions (in this order):
- KSPCreate //create my context
- KSPSetOperators //associate my matrix with the context
- KSPSetType //set my solver type
- PCSetType
- KSPSetUp
It seems to work, but i don't know if it is efficient and preferred way (if
there is such a thing)?
This seems fine.
Also, do several successive solves on the same linear system with the same
preconditioner. So i pass SAME_NONZEROPATTERN as the MatStructure flag to the
KSPSetOperators call. So do i need to call PCSetOperators and pass it the
flag as well to reuse the preconditioner?
No.
Matt
thanks for all the help
mat
--
"Failure has a thousand explanations. Success doesn't need one" -- Sir
Alec Guiness