Subversion Repositories slepc-dev

Rev

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

Rev 2116 Rev 2213
Line 48... Line 48...
PetscErrorCode IPSetBilinearForm(IP ip,Mat mat,IPBilinearForm form)
PetscErrorCode IPSetBilinearForm(IP ip,Mat mat,IPBilinearForm form)
{
{
  PetscErrorCode ierr;
  PetscErrorCode ierr;
 
 
  PetscFunctionBegin;
  PetscFunctionBegin;
  PetscValidHeaderSpecific(ip,IP_COOKIE,1);
  PetscValidHeaderSpecific(ip,IP_CLASSID,1);
  if (mat) {
  if (mat) {
    PetscValidHeaderSpecific(mat,MAT_COOKIE,1);
    PetscValidHeaderSpecific(mat,MAT_CLASSID,1);
    PetscObjectReference((PetscObject)mat);
    PetscObjectReference((PetscObject)mat);
  }
  }
  if (ip->matrix) {
  if (ip->matrix) {
    ierr = MatDestroy(ip->matrix);CHKERRQ(ierr);
    ierr = MatDestroy(ip->matrix);CHKERRQ(ierr);
    ierr = VecDestroy(ip->Bx);CHKERRQ(ierr);
    ierr = VecDestroy(ip->Bx);CHKERRQ(ierr);
Line 85... Line 85...
          IPBilinearForm
          IPBilinearForm
@*/
@*/
PetscErrorCode IPGetBilinearForm(IP ip,Mat* mat,IPBilinearForm* form)
PetscErrorCode IPGetBilinearForm(IP ip,Mat* mat,IPBilinearForm* form)
{
{
  PetscFunctionBegin;
  PetscFunctionBegin;
  PetscValidHeaderSpecific(ip,IP_COOKIE,1);
  PetscValidHeaderSpecific(ip,IP_CLASSID,1);
  if (mat) *mat = ip->matrix;
  if (mat) *mat = ip->matrix;
  if (form) *form = ip->bilinear_form;
  if (form) *form = ip->bilinear_form;
  PetscFunctionReturn(0);
  PetscFunctionReturn(0);
}
}
 
 
Line 135... Line 135...
PetscErrorCode IPApplyMatrix(IP ip,Vec x,Vec y)
PetscErrorCode IPApplyMatrix(IP ip,Vec x,Vec y)
{
{
  PetscErrorCode ierr;
  PetscErrorCode ierr;
 
 
  PetscFunctionBegin;
  PetscFunctionBegin;
  PetscValidHeaderSpecific(ip,IP_COOKIE,1);
  PetscValidHeaderSpecific(ip,IP_CLASSID,1);
  if (ip->matrix) {
  if (ip->matrix) {
    ierr = IPApplyMatrix_Private(ip,x);CHKERRQ(ierr);
    ierr = IPApplyMatrix_Private(ip,x);CHKERRQ(ierr);
    ierr = VecCopy(ip->Bx,y);CHKERRQ(ierr);
    ierr = VecCopy(ip->Bx,y);CHKERRQ(ierr);
  } else {
  } else {
    ierr = VecCopy(x,y);CHKERRQ(ierr);
    ierr = VecCopy(x,y);CHKERRQ(ierr);