| Line 324... |
Line 324... |
/* BcX <- [BcX auxV(i)] */
|
/* BcX <- [BcX auxV(i)] */
|
ierr = VecCopy(d->auxV[i], d->BcX[d->size_cX+i]); CHKERRQ(ierr);
|
ierr = VecCopy(d->auxV[i], d->BcX[d->size_cX+i]); CHKERRQ(ierr);
|
ierr = IPOrthogonalize(d->ipI, 0, PETSC_NULL, d->size_cX+i, PETSC_NULL,
|
ierr = IPOrthogonalize(d->ipI, 0, PETSC_NULL, d->size_cX+i, PETSC_NULL,
|
d->BcX, d->BcX[d->size_cX+i], PETSC_NULL,
|
d->BcX, d->BcX[d->size_cX+i], PETSC_NULL,
|
&norm, &lindep); CHKERRQ(ierr);
|
&norm, &lindep); CHKERRQ(ierr);
|
if(lindep) SETERRQ(1, "Error during orth(BcX, B*cX(new))!");
|
if(lindep) SETERRQ(((PetscObject)d->ipI)->comm,1, "Error during orth(BcX, B*cX(new))");
|
ierr = VecScale(d->BcX[d->size_cX+i], 1.0/norm); CHKERRQ(ierr);
|
ierr = VecScale(d->BcX[d->size_cX+i], 1.0/norm); CHKERRQ(ierr);
|
}
|
}
|
|
|
/* Harmonics restarts wiht right eigenvectors, and other with
|
/* Harmonics restarts wiht right eigenvectors, and other with
|
the left ones */
|
the left ones */
|
| Line 358... |
Line 358... |
ldpX, d->size_H, d->size_H); CHKERRQ(ierr);
|
ldpX, d->size_H, d->size_H); CHKERRQ(ierr);
|
d->V+= npreconv;
|
d->V+= npreconv;
|
inc_V = npreconv;
|
inc_V = npreconv;
|
d->max_size_V-= npreconv;
|
d->max_size_V-= npreconv;
|
} else {
|
} else {
|
SETERRQ(1, "Untested case!");
|
SETERRQ(((PetscObject)d->ipI)->comm,1, "Unimplemented");
|
/*ierr = SlepcUpdateVectorsZ(&d->cX[d->nconv], 0.0, 1.0, d->V, d->size_V,
|
/*ierr = SlepcUpdateVectorsZ(&d->cX[d->nconv], 0.0, 1.0, d->V, d->size_V,
|
d->pX, d->ldpX, d->size_H, npreconv);
|
d->pX, d->ldpX, d->size_H, npreconv);
|
CHKERRQ(ierr);
|
CHKERRQ(ierr);
|
ierr = SlepcUpdateVectorsZ(d->V, 0.0, 1.0, d->V, d->size_V,
|
ierr = SlepcUpdateVectorsZ(d->V, 0.0, 1.0, d->V, d->size_V,
|
&pX[ldpX*npreconv], ldpX,
|
&pX[ldpX*npreconv], ldpX,
|