How to fill a matrix with a vector parallelly
Barry Smith
bsmith at mcs.anl.gov
Sun Nov 29 19:53:13 CST 2009
Since evenvectors will (almost always) be dense vectors you will
want to use a MPIDENSE matrix to store them. So create a MPIDENSE
matrix with the same row layout as the eigenvector then on each
process use VecGetArray() to access that processes part of the vector
and MatGetArray() to access that part of the matrix and copy the
values over from the vector array to the matrix array.
Barry
On Nov 29, 2009, at 7:41 PM, ming zhu wrote:
> HI
> I am trying to solve an eigenvalue problem. A = U * LAMBDA*U'.
> While SLEPC proivdes a solver to get an eigenvector and the related
> eigenvalue, I have to fill the eigenvector to form the eigen matrix.
> However, there seems no such function to do this directly. I was
> trying to use VecGetValues and filled the matrix one by one.
> Howevevr, it can not do that in parallel.
>
> Is there anyone can help me ?
>
> Thank you
>
>
> 好玩贺卡等你发，邮箱贺卡全新上线！
More information about the petsc-users
mailing list