| Line 149... |
Line 149... |
else { ierr = MatShift(&alpha,st->A);CHKERRQ(ierr); }
|
else { ierr = MatShift(&alpha,st->A);CHKERRQ(ierr); }
|
}
|
}
|
ierr = KSPSetOperators(st->ksp,st->A,st->A,SAME_NONZERO_PATTERN);CHKERRQ(ierr);
|
ierr = KSPSetOperators(st->ksp,st->A,st->A,SAME_NONZERO_PATTERN);CHKERRQ(ierr);
|
break;
|
break;
|
case STMATMODE_SHELL:
|
case STMATMODE_SHELL:
|
|
ierr = KSPSetOperators(st->ksp,st->mat,st->mat,SAME_NONZERO_PATTERN);CHKERRQ(ierr);
|
break;
|
break;
|
default:
|
default:
|
ierr = MatCopy(st->A, st->mat, DIFFERENT_NONZERO_PATTERN); CHKERRQ(ierr);
|
ierr = MatCopy(st->A, st->mat,SUBSET_NONZERO_PATTERN); CHKERRQ(ierr);
|
if (newshift != 0.0) {
|
if (newshift != 0.0) {
|
alpha = -newshift;
|
alpha = -newshift;
|
if (st->B) { ierr = MatAXPY(&alpha,st->B,st->mat,st->str);CHKERRQ(ierr); }
|
if (st->B) { ierr = MatAXPY(&alpha,st->B,st->mat,st->str);CHKERRQ(ierr); }
|
else { ierr = MatShift(&alpha,st->mat);CHKERRQ(ierr); }
|
else { ierr = MatShift(&alpha,st->mat);CHKERRQ(ierr); }
|
}
|
}
|