On 10/31/2013 04:53 PM, Jed Brown wrote:
Ted Sariyski <[email protected]> writes:
Hi,
I am about to use PETSc linear algebra. Two questions.
Q1: I have the stiffness matrix and the rhs vector assembled (outside)
and in PETSc order. Do I still need to create a scatter:"ierr =
VecScatterCreate(bb,isglobal,localX,islocal,&scatter)"?
What do you want to do with the Vec?
Use KSP for solving a linear system.
Q2: I have PETSc vectors and matrix set:
ierr = VecCreate(MPI_COMM_WORLD,&bb);CHKERRQ(ierr);
ierr = VecSetFromOptions(bb);CHKERRQ(ierr);CHKPT
ierr = VecSetSizes(bb,Nvlocal,Nvglobal);CHKERRQ(ierr);
ierr = MatCreate(PETSC_COMM_WORLD,&A);CHKERRQ(ierr);
ierr = MatSetSizes(A,Nvlocal,Nvlocal,Nvglobal,Nvglobal);CHKERRQ(ierr);
I passed the rhs myData to bb using VecSetValues:
ierr = VecSetValues(bb,Nvlocal,vertices,myData,INSERT_VALUES);CHKERRQ(ierr);
The matrix is in HYPRE sparse format. What is the recommended way to
pass it to A?
Best is to use MatSetValues while you are generating the matrix entries
(so that you don't store the Hypre format). You can always do this
afterward. (The Hypre matrix can't be used directly because Hypre does
not expose a complete set of functionality. There is not a conversion
routine in PETSc, though it would be easy to add.)
I'll do that. Thanks a lot.
--Ted