I just tried the following [with both c & fortran examples
ksp/examples/tutorials/ex2.c, ex2f.F] And I get the expected behavior.
Maybe KSPSetType() was not called before KSPCGSetType()?
Satish
--------
call KSPCreate(PETSC_COMM_WORLD,ksp,ierr)
call KSPSetType(ksp,KSPCG,ierr)
call KSPCGSetType(ksp,KSP_CG_SYMMETRIC,ierr)
call KSPSetOperators(ksp,A,A,DIFFERENT_NONZERO_PATTERN,ierr)
asterix:/home/balay/spetsc/src/ksp/ksp/examples/tutorials>./ex2f -ksp_view
KSP Object:
type: cg
CG or CGNE: variant SYMMETRIC
maximum iterations=10000, initial guess is zero
tolerances: relative=1e-05, absolute=1e-50, divergence=10000
left preconditioning
PC Object:
type: ilu
ILU: 0 levels of fill
ILU: max fill ratio allocated 1
ILU: tolerance for zero pivot 1e-12
out-of-place factorization
matrix ordering: natural
Factored matrix follows
Matrix Object:
type=aij, rows=9, cols=9
total: nonzeros=33, allocated nonzeros=45
not using I-node routines
linear system matrix = precond matrix:
Matrix Object:
type=aij, rows=9, cols=9
total: nonzeros=33, allocated nonzeros=45
not using I-node routines
Norm of error 0.1215E-05 iterations 4
asterix:/home/balay/spetsc/src/ksp/ksp/examples/tutorials>
On Thu, 23 Feb 2006, Barry Smith wrote:
Satish,
Can you please check this? We should be able to
call KSPCGSetType() either before or afterwards. It could
be that KSPSetFromOptions_CG() wrongly resets to the default
value. I looked at the code and didn't see any wrong logic.
Probably it may be easiest to just run in the debugger and
check if it wrongly reset.
Thanks
Barry
On Thu, 23 Feb 2006, abdul-rahman@tu-harburg.de wrote:
On Wed, 22 Feb 2006, Satish Balay wrote:
I know where I did wrong now: the call below:
call KSPCGSetType( ksp, KSP_CG_SYMMETRIC, ierr )
should have come _after_:
call KSPSetFromOptions(ksp,ierr)
Otherwise it just goes with the default Hermitian even if I don't set the
switch to Hermitian.
You should be able to verify if the correct type is used with
'-ksp_view' option.
Satish
Thank you again
Razi