Subversion Repositories slepc-dev

Rev

Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1802 Rev 1804
Line 55... Line 55...
 
 
  if (!st->setupcalled) { ierr = STSetUp(st); CHKERRQ(ierr); }
  if (!st->setupcalled) { ierr = STSetUp(st); CHKERRQ(ierr); }
 
 
  ierr = PetscLogEventBegin(ST_Apply,st,x,y,0);CHKERRQ(ierr);
  ierr = PetscLogEventBegin(ST_Apply,st,x,y,0);CHKERRQ(ierr);
  st->applys++;
  st->applys++;
  ierr = (*st->ops->apply)(st,x,y);CHKERRQ(ierr);
  if (st->D) { /* with balancing */
 
    ierr = VecPointwiseDivide(st->wb,x,st->D);CHKERRQ(ierr);
 
    ierr = (*st->ops->apply)(st,st->wb,y);CHKERRQ(ierr);
 
    ierr = VecPointwiseMult(y,y,st->D);CHKERRQ(ierr);
 
  }
 
  else {
 
    ierr = (*st->ops->apply)(st,x,y);CHKERRQ(ierr);
 
  }
  ierr = PetscLogEventEnd(ST_Apply,st,x,y,0);CHKERRQ(ierr);
  ierr = PetscLogEventEnd(ST_Apply,st,x,y,0);CHKERRQ(ierr);
  PetscFunctionReturn(0);
  PetscFunctionReturn(0);
}
}
 
 
#undef __FUNCT__  
#undef __FUNCT__  
#define __FUNCT__ "STGetBilinearForm"
#define __FUNCT__ "STGetBilinearForm"
/*@
/*@
   STGetBilinearForm - Returns the matrix used in the bilinear form with a semi-definite generalised problem.
   STGetBilinearForm - Returns the matrix used in the bilinear form with a
 
   generalized problem with semi-definite B.
 
 
   Collective on ST and Mat
   Collective on ST and Mat
 
 
   Input Parameters:
   Input Parameters:
.  st - the spectral transformation context
.  st - the spectral transformation context
Line 137... Line 145...
 
 
  if (!st->setupcalled) { ierr = STSetUp(st); CHKERRQ(ierr); }
  if (!st->setupcalled) { ierr = STSetUp(st); CHKERRQ(ierr); }
 
 
  ierr = PetscLogEventBegin(ST_ApplyTranspose,st,x,y,0);CHKERRQ(ierr);
  ierr = PetscLogEventBegin(ST_ApplyTranspose,st,x,y,0);CHKERRQ(ierr);
  st->applys++;
  st->applys++;
  ierr = (*st->ops->applytrans)(st,x,y);CHKERRQ(ierr);
  if (st->D) { /* with balancing */
 
    ierr = VecPointwiseMult(st->wb,x,st->D);CHKERRQ(ierr);
 
    ierr = (*st->ops->applytrans)(st,st->wb,y);CHKERRQ(ierr);
 
    ierr = VecPointwiseDivide(y,y,st->D);CHKERRQ(ierr);
 
  }
 
  else {
 
    ierr = (*st->ops->applytrans)(st,x,y);CHKERRQ(ierr);
 
  }
  ierr = PetscLogEventEnd(ST_ApplyTranspose,st,x,y,0);CHKERRQ(ierr);
  ierr = PetscLogEventEnd(ST_ApplyTranspose,st,x,y,0);CHKERRQ(ierr);
  PetscFunctionReturn(0);
  PetscFunctionReturn(0);
}
}
 
 
#undef __FUNCT__  
#undef __FUNCT__