[petsc-users] SuperLU_4.0 with petsc-3.1-p3 - flipped output inKSPSolve.

Chetan Jhurani chetan.jhurani at gmail.com
Mon Dec 6 23:25:52 CST 2010


Thanks Hong.  It does work now.

Chetan

> -----Original Message-----
> From: petsc-users-bounces at mcs.anl.gov 
> [mailto:petsc-users-bounces at mcs.anl.gov] On Behalf Of Hong Zhang
> Sent: Monday, December 06, 2010 09:58 PM
> To: PETSc users list
> Subject: Re: [petsc-users] SuperLU_4.0 with petsc-3.1-p3 - 
> flipped output inKSPSolve.
> 
> Chetan:
> 
> Move
> ierr = KSPSetFromOptions(ksp); CHKERRQ(ierr);
> 
> right before
> ierr = KSPSolve()
> and run your code with
> -pc_type lu -pc_factor_mat_solver_package superlu
> 
> I got correct answer.
> Attached is my modified code.
> 
> Hong
> >
> > I have a small code that solves a 3x3 system with and without
> > SuperLU.  If SuperLU is used, vectors x and b (in A x = b) come
> > out flipped after KSPSolve.  Am I doing something stupid?  The two
> > outputs, the code, and the configure command are pasted below.
> >
> > Thanks,
> >
> > Chetan
> >
> > 
> --------------------------------------------------------------
> ------------
> >
> > Run with SuperLU:
> >
> > ~> lu_test -pc_factor_mat_solver_package superlu
> > x before solve
> > -10
> > -10
> > -10
> > b before solve
> > 200
> > 200
> > 200
> > x after solve
> > 200
> > 200
> > 200
> > b after solve
> > 0.2
> > 0.2
> > 0.2
> >
> > 
> --------------------------------------------------------------
> ------------
> >
> > Run without SuperLU (default KSP, PC options)
> >
> > ~> lu_test
> > x before solve
> > -10
> > -10
> > -10
> > b before solve
> > 200
> > 200
> > 200
> > x after solve
> > 0.2
> > 0.2
> > 0.2
> > b after solve
> > 200
> > 200
> > 200
> >
> > 
> --------------------------------------------------------------
> ------------
> >
> > Program:
> >
> > int main(int argc, char* argv[])
> > {
> >    PetscErrorCode ierr;
> >
> >    ierr = PetscInitialize(&argc, &argv, PETSC_NULL, PETSC_NULL);
> > CHKERRQ(ierr);
> >
> >    Mat A;
> >    ierr = MatCreateSeqAIJ(PETSC_COMM_SELF, 3, 3, 1, PETSC_NULL, &A);
> > CHKERRQ(ierr);
> >    ierr = MatAssemblyBegin(A, MAT_FINAL_ASSEMBLY);
> >    ierr = MatAssemblyEnd(A, MAT_FINAL_ASSEMBLY);
> >
> >    ierr = MatShift(A, 1000); CHKERRQ(ierr);
> >
> >    Vec x, b;
> >    ierr = VecCreateSeq(PETSC_COMM_SELF, 3, &x); CHKERRQ(ierr);
> >    ierr = VecShift(x, -10); CHKERRQ(ierr);
> >
> >    ierr = VecCreateSeq(PETSC_COMM_SELF, 3, &b); CHKERRQ(ierr);
> >    ierr = VecShift(b, 200); CHKERRQ(ierr);
> >
> >    KSP ksp;
> >    ierr = KSPCreate(PETSC_COMM_SELF, &ksp); CHKERRQ(ierr);
> >    ierr = KSPSetFromOptions(ksp); CHKERRQ(ierr);
> >
> >    printf("x before solve\n");
> >    ierr = VecView(x, PETSC_VIEWER_STDOUT_SELF); CHKERRQ(ierr);
> >    printf("b before solve\n");
> >    ierr = VecView(b, PETSC_VIEWER_STDOUT_SELF); CHKERRQ(ierr);
> >
> >    ierr = KSPSetOperators(ksp, A, A, SAME_NONZERO_PATTERN); 
> CHKERRQ(ierr);
> >    ierr = KSPSolve(ksp, b, x); CHKERRQ(ierr);
> >
> >    printf("x after solve\n");
> >    ierr = VecView(x, PETSC_VIEWER_STDOUT_SELF); CHKERRQ(ierr);
> >    printf("b after solve\n");
> >    ierr = VecView(b, PETSC_VIEWER_STDOUT_SELF); CHKERRQ(ierr);
> >
> >    ierr = PetscFinalize(); CHKERRQ(ierr);
> > }
> >
> > 
> --------------------------------------------------------------
> ------------
> >
> > configure command:
> >
> > python ./config/configure.py -with-clanguage=C++ -with-debugging=no
> > --with-gnu-compilers=1 --with-mpi=1 --with-umfpack=1 
> --with-superlu=1
> > --with-hypre=1 --download-umfpack=1 --download-superlu=1
> > --download-hypre=1 --with-mumps=1 --download-mumps=1 
> --with-parmetis=1
> > --download-parmetis=1 --with-scalapack=1 --download-scalapack=1
> > --with-blacs=1 --download-blacs=1 -with-c-support=1
> >
> > 
> --------------------------------------------------------------
> ------------
> >
> >
> 



More information about the petsc-users mailing list