[petsc-users] SuperLU_4.0 with petsc-3.1-p3 - flipped output in KSPSolve.
Chetan Jhurani
chetan.jhurani at gmail.com
Mon Dec 6 21:47:36 CST 2010
Hello,
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