On Wed, Aug 31, 2011 at 10:02, Likun Tan <likunt at andrew.cmu.edu> wrote:
> MatCreateSeqDense(PETSC_COMM_SELF, M, M, PESTC_NULL, &A) > yes > MatCreateMPIDense(PETSC_COMM_WORLD, PETSC_DECIDE, PETSC_DECIDE, M, N, > PETSC_NULL, &B) > No, use MatCreateSeqDense() here too. Do you also need the result array on every process? PetscInt n = PETSC_DECIDE; PetscSplitOwnership(PETSC_COMM_WORLD,&n,&N); MatCreateSeqDense(PETSC_COMM_SELF,M,n,PETSC_NULL,&B); MatSetValues() //Set values to A and B > MatCholeskyFactor()// Factorization > MatDuplicate(B,MAT_DO_NOT_COPY_VALUES,&X); > MatMatSolve() > > The 3D array is generated before setting values to A and B. It comes from > some known function evaluation, an i need the array in every process. > Okay, just do the same thing on every process, but only set the values into B for the part that will be done locally. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20110831/49e13c6c/attachment.htm>
