Subversion Repositories slepc-dev

Rev

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

Rev 1256 Rev 1257
Line 90... Line 90...
PetscErrorCode SVDView(SVD svd,PetscViewer viewer)
PetscErrorCode SVDView(SVD svd,PetscViewer viewer)
{
{
  PetscErrorCode ierr;
  PetscErrorCode ierr;
  const char     *type;
  const char     *type;
  PetscTruth     isascii;
  PetscTruth     isascii;
 
  const char      *mode_list[3] = { "default" , "explicit", "user" };
 
 
  PetscFunctionBegin;
  PetscFunctionBegin;
  PetscValidHeaderSpecific(svd,SVD_COOKIE,1);
  PetscValidHeaderSpecific(svd,SVD_COOKIE,1);
  if (!viewer) viewer = PETSC_VIEWER_STDOUT_(svd->comm);
  if (!viewer) viewer = PETSC_VIEWER_STDOUT_(svd->comm);
  PetscValidHeaderSpecific(viewer,PETSC_VIEWER_COOKIE,2);
  PetscValidHeaderSpecific(viewer,PETSC_VIEWER_COOKIE,2);
Line 102... Line 103...
  ierr = PetscTypeCompare((PetscObject)viewer,PETSC_VIEWER_ASCII,&isascii);CHKERRQ(ierr);
  ierr = PetscTypeCompare((PetscObject)viewer,PETSC_VIEWER_ASCII,&isascii);CHKERRQ(ierr);
  if (isascii) {
  if (isascii) {
    ierr = PetscViewerASCIIPrintf(viewer,"SVD Object:\n");CHKERRQ(ierr);
    ierr = PetscViewerASCIIPrintf(viewer,"SVD Object:\n");CHKERRQ(ierr);
    ierr = SVDGetType(svd,&type);CHKERRQ(ierr);
    ierr = SVDGetType(svd,&type);CHKERRQ(ierr);
    if (type) {
    if (type) {
      ierr = PetscViewerASCIIPrintf(viewer,"  method: %s",type);CHKERRQ(ierr);
      ierr = PetscViewerASCIIPrintf(viewer,"  method: %s\n",type);CHKERRQ(ierr);
    } else {
    } else {
      ierr = PetscViewerASCIIPrintf(viewer,"  method: not yet set\n");CHKERRQ(ierr);
      ierr = PetscViewerASCIIPrintf(viewer,"  method: not yet set\n");CHKERRQ(ierr);
    }
    }
 
    ierr = PetscViewerASCIIPrintf(viewer,"  transpose mode: %s\n",mode_list[svd->transmode]);CHKERRQ(ierr);
    if (svd->ops->view) {
    if (svd->ops->view) {
      ierr = PetscViewerASCIIPushTab(viewer);CHKERRQ(ierr);
      ierr = PetscViewerASCIIPushTab(viewer);CHKERRQ(ierr);
      ierr = (*svd->ops->view)(svd,viewer);CHKERRQ(ierr);
      ierr = (*svd->ops->view)(svd,viewer);CHKERRQ(ierr);
      ierr = PetscViewerASCIIPopTab(viewer);CHKERRQ(ierr);
      ierr = PetscViewerASCIIPopTab(viewer);CHKERRQ(ierr);
    }
    }
Line 151... Line 153...
@*/
@*/
PetscErrorCode SVDCreate(MPI_Comm comm,SVD *outsvd)
PetscErrorCode SVDCreate(MPI_Comm comm,SVD *outsvd)
{
{
  PetscErrorCode ierr;
  PetscErrorCode ierr;
  SVD            svd;
  SVD            svd;
  PetscMPIInt    size;
 
 
 
 
 
  PetscFunctionBegin;
  PetscFunctionBegin;
  PetscValidPointer(outsvd,2);
  PetscValidPointer(outsvd,2);
  ierr = MPI_Comm_size(comm,&size);CHKERRQ(ierr);
 
 
 
  PetscHeaderCreate(svd,_p_SVD,struct _SVDOps,SVD_COOKIE,-1,"SVD",comm,SVDDestroy,SVDView);
  PetscHeaderCreate(svd,_p_SVD,struct _SVDOps,SVD_COOKIE,-1,"SVD",comm,SVDDestroy,SVDView);
  PetscLogObjectCreate(svd);
  PetscLogObjectCreate(svd);
  *outsvd = svd;
  *outsvd = svd;
 
 
Line 168... Line 167...
  ierr = PetscMemzero(svd->ops,sizeof(struct _SVDOps));CHKERRQ(ierr);
  ierr = PetscMemzero(svd->ops,sizeof(struct _SVDOps));CHKERRQ(ierr);
 
 
  svd->type_name   = PETSC_NULL;
  svd->type_name   = PETSC_NULL;
  svd->A           = PETSC_NULL;
  svd->A           = PETSC_NULL;
  svd->AT          = PETSC_NULL;
  svd->AT          = PETSC_NULL;
  svd->transmode   = size == 1 ? SVD_TRANSPOSE_DEFAULT : SVD_TRANSPOSE_EXPLICIT;
  svd->transmode   = SVD_TRANSPOSE_EXPLICIT;
  svd->sigma       = PETSC_NULL;
  svd->sigma       = PETSC_NULL;
  svd->U           = PETSC_NULL;
  svd->U           = PETSC_NULL;
  svd->V           = PETSC_NULL;
  svd->V           = PETSC_NULL;
  svd->nconv       = -1;
  svd->nconv       = -1;
  svd->data        = PETSC_NULL;
  svd->data        = PETSC_NULL;