Subversion Repositories slepc-dev

Rev

Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1283 Rev 1288
Line 205... Line 205...
 
 
  if (svd->ncv != svd->n) {
  if (svd->ncv != svd->n) {
    /* free memory for previous solution  */
    /* free memory for previous solution  */
    if (svd->n) {
    if (svd->n) {
      ierr = PetscFree(svd->sigma);CHKERRQ(ierr);
      ierr = PetscFree(svd->sigma);CHKERRQ(ierr);
 
      ierr = PetscFree(svd->errest);CHKERRQ(ierr);
      for (i=0;i<svd->n;i++) {
      for (i=0;i<svd->n;i++) {
        ierr = VecDestroy(svd->U[i]); CHKERRQ(ierr);
        ierr = VecDestroy(svd->U[i]); CHKERRQ(ierr);
      }
      }
      ierr = PetscFree(svd->U);CHKERRQ(ierr);
      ierr = PetscFree(svd->U);CHKERRQ(ierr);
      for (i=0;i<svd->n;i++) {
      for (i=0;i<svd->n;i++) {
Line 216... Line 217...
      }
      }
      ierr = PetscFree(svd->V);CHKERRQ(ierr);
      ierr = PetscFree(svd->V);CHKERRQ(ierr);
    }
    }
    /* allocate memory for next solution */
    /* allocate memory for next solution */
    ierr = PetscMalloc(svd->ncv*sizeof(PetscReal),&svd->sigma);CHKERRQ(ierr);
    ierr = PetscMalloc(svd->ncv*sizeof(PetscReal),&svd->sigma);CHKERRQ(ierr);
 
    ierr = PetscMalloc(svd->ncv*sizeof(PetscReal),&svd->errest);CHKERRQ(ierr);
    ierr = PetscMalloc(svd->ncv*sizeof(Vec),&svd->U);CHKERRQ(ierr);
    ierr = PetscMalloc(svd->ncv*sizeof(Vec),&svd->U);CHKERRQ(ierr);
    ierr = PetscMalloc(svd->ncv*sizeof(Vec),&svd->V);CHKERRQ(ierr);
    ierr = PetscMalloc(svd->ncv*sizeof(Vec),&svd->V);CHKERRQ(ierr);
    for (i=0;i<svd->ncv;i++) {
    for (i=0;i<svd->ncv;i++) {
      ierr = MatGetVecs(svd->A,svd->V+i,svd->U+i);CHKERRQ(ierr);
      ierr = MatGetVecs(svd->A,svd->V+i,svd->U+i);CHKERRQ(ierr);
    }
    }