Date: 2013-07-02T14:44:01+00:00

Actual source code: ex34.c
petsc-3.4.2 2013-07-02

      2: static char help[] = "Reads a matrix and vector from a file and writes to another. Input options:\n\
      3:   -fin <input_file> : file to load.  For example see $PETSC_DIR/share/petsc/datafiles/matrices\n\
      4:   -fout <output_file> : file for saving output matrix and vector\n\n";

      6: #include <petscmat.h>

     10: int main(int argc,char **args)
     11: {
     13:   PetscBool      flg;
     14:   Vec            x;
     15:   Mat            A;
     16:   char           file[256];
     17:   PetscViewer    fd;

     19:   PetscInitialize(&argc,&args,(char*)0,help);

     21:   /* Read matrix and RHS */
     22:   PetscOptionsGetString(NULL,"-fin",file,256,&flg);
     23:   if (!flg) SETERRQ(PETSC_COMM_WORLD,1,help);
     24:   PetscViewerBinaryOpen(PETSC_COMM_WORLD,file,FILE_MODE_READ,&fd);
     25:   MatCreate(PETSC_COMM_WORLD,&A);
     26:   MatSetType(A,MATSEQAIJ);
     27:   MatLoad(A,fd);
     28:   VecCreate(PETSC_COMM_WORLD,&x);
     29:   VecLoad(x,fd);
     30:   PetscViewerDestroy(&fd);

     32:   /* Write matrix and vector */
     33:   PetscOptionsGetString(NULL,"-fout",file,256,&flg);
     34:   if (!flg) SETERRQ(PETSC_COMM_WORLD,1,help);
     35:   PetscViewerBinaryOpen(PETSC_COMM_WORLD,file,FILE_MODE_WRITE,&fd);
     36:   MatView(A,fd);
     37:   VecView(x,fd);

     39:   /* Free data structures */
     40:   MatDestroy(&A);
     41:   VecDestroy(&x);
     42:   PetscViewerDestroy(&fd);

     44:   PetscFinalize();
     45:   return 0;
     46: }