| Line 48... |
Line 48... |
|
|
/* Check some constraints and set some default values */
|
/* Check some constraints and set some default values */
|
ierr = VecGetSize(eps->vec_initial,&N);CHKERRQ(ierr);
|
ierr = VecGetSize(eps->vec_initial,&N);CHKERRQ(ierr);
|
ierr = VecGetLocalSize(eps->vec_initial,&n);CHKERRQ(ierr);
|
ierr = VecGetLocalSize(eps->vec_initial,&n);CHKERRQ(ierr);
|
|
|
if (!eps->max_it) eps->max_it = PetscMax(100,N);
|
if (!eps->max_it) eps->max_it = PetscMax(1000,N);
|
if (!eps->tol) eps->tol = 1.e-7;
|
|
ierr = STGetOperators(eps->OP, &ops->A, PETSC_NULL);
|
ierr = STGetOperators(eps->OP, &ops->A, PETSC_NULL);
|
if (!ops->A) SETERRQ(PETSC_ERR_ARG_WRONGSTATE,"The problem matrix has to be specified first");
|
if (!ops->A) SETERRQ(PETSC_ERR_ARG_WRONGSTATE,"The problem matrix has to be specified first");
|
if (!eps->ishermitian)
|
if (!eps->ishermitian)
|
SETERRQ(PETSC_ERR_SUP,"PRIMME is only available for Hermitian problems");
|
SETERRQ(PETSC_ERR_SUP,"PRIMME is only available for Hermitian problems");
|
if (eps->isgeneralized)
|
if (eps->isgeneralized)
|