| Line 61... |
Line 61... |
ierr = STPrecondSetKSPHasMat(eps->OP,PETSC_FALSE);CHKERRQ(ierr);
|
ierr = STPrecondSetKSPHasMat(eps->OP,PETSC_FALSE);CHKERRQ(ierr);
|
|
|
eps->OP->ops->getbilinearform = STGetBilinearForm_Default;
|
eps->OP->ops->getbilinearform = STGetBilinearForm_Default;
|
eps->ops->solve = EPSSolve_Davidson;
|
eps->ops->solve = EPSSolve_Davidson;
|
eps->ops->setup = EPSSetUp_Davidson;
|
eps->ops->setup = EPSSetUp_Davidson;
|
eps->ops->destroy = EPSDestroy_Davidson;
|
eps->ops->reset = EPSReset_Davidson;
|
eps->ops->backtransform = EPSBackTransform_Default;
|
eps->ops->backtransform = EPSBackTransform_Default;
|
eps->ops->computevectors = EPSComputeVectors_QZ;
|
eps->ops->computevectors = EPSComputeVectors_QZ;
|
eps->ops->view = EPSView_Davidson;
|
eps->ops->view = EPSView_Davidson;
|
|
|
ierr = PetscMalloc(sizeof(EPS_DAVIDSON),&data);CHKERRQ(ierr);
|
ierr = PetscMalloc(sizeof(EPS_DAVIDSON),&data);CHKERRQ(ierr);
|
| Line 297... |
Line 297... |
else eps->reason = EPS_DIVERGED_ITS;
|
else eps->reason = EPS_DIVERGED_ITS;
|
PetscFunctionReturn(0);
|
PetscFunctionReturn(0);
|
}
|
}
|
|
|
#undef __FUNCT__
|
#undef __FUNCT__
|
#define __FUNCT__ "EPSDestroy_Davidson"
|
#define __FUNCT__ "EPSReset_Davidson"
|
PetscErrorCode EPSDestroy_Davidson(EPS eps)
|
PetscErrorCode EPSReset_Davidson(EPS eps)
|
{
|
{
|
EPS_DAVIDSON *data = (EPS_DAVIDSON*)eps->data;
|
EPS_DAVIDSON *data = (EPS_DAVIDSON*)eps->data;
|
dvdDashboard *dvd = &data->ddb;
|
dvdDashboard *dvd = &data->ddb;
|
PetscErrorCode ierr;
|
PetscErrorCode ierr;
|
|
|
| Line 313... |
Line 313... |
DVD_FL_DEL(dvd->startList);
|
DVD_FL_DEL(dvd->startList);
|
DVD_FL_DEL(dvd->endList);
|
DVD_FL_DEL(dvd->endList);
|
|
|
ierr = SlepcVecDestroyVecs(data->size_wV,&data->wV);CHKERRQ(ierr);
|
ierr = SlepcVecDestroyVecs(data->size_wV,&data->wV);CHKERRQ(ierr);
|
ierr = PetscFree(data->wS);CHKERRQ(ierr);
|
ierr = PetscFree(data->wS);CHKERRQ(ierr);
|
ierr = PetscFree(data);CHKERRQ(ierr);
|
|
PetscFunctionReturn(0);
|
PetscFunctionReturn(0);
|
}
|
}
|
|
|
#undef __FUNCT__
|
#undef __FUNCT__
|
#define __FUNCT__ "EPSView_Davidson"
|
#define __FUNCT__ "EPSView_Davidson"
|