Hi all, I have some questions basically about the MatRelax_SeqAIJ routine:
If I understand correctly there are 2 versions of the sor routine depending on whether or not there is a zero guess, so that with a zero guess in the forward sweep you don't need to multiply the upper diagonal part U with the part of the x vector that is still zero. Why then does it look like that both versions log the same number of flops? I would have expected that the full forward sweep (i.e. no zero guess) takes 2*a->nz flops (i.e. the same as a matvec) and not a->nz. Why does the Richardson iteration with sor not take the zero guess into account, i.e. why does PCApplyRichardson_SOR not set SOR_ZERO_INIT_GUESS in the call to MatRelax if the Richardson ksp has a zero initial guess set? In parallel if you specify SOR_LOCAL_FORWARD_SWEEP or SOR_LOCAL_BACKWARD_SWEEP it calls MatRelax on the local part of the matrix, mat->A, with its=lits and lits=PETSC_NULL (?). However the first line of MatRelax_SeqAIJ then says: its = its*lits. Is that right? Please tell me if I'm totally misunderstanding how the routine works, thanks for any help. Cheers Stephan -- Stephan Kramer <s.kramer at imperial.ac.uk> Applied Modelling and Computation Group, Department of Earth Science and Engineering, Imperial College London
