[petsc-users] Petsc creates a random vector

Matthew Knepley knepley at gmail.com
Mon Aug 17 10:57:07 CDT 2015


On Mon, Aug 17, 2015 at 10:49 AM, Xujun Zhao <xzhao99 at gmail.com> wrote:

> Hi all,
>
> I want PETSc to generate random vector using VecSetRandom() following
> given examples, but failed and showed some "out of memory" error. The
> following is the code, which goes well until it reaches VecSetRandom(). Can
> anyone help me figure out the reason? Thanks a lot.
>

Does src/vec/vec/examples/tests/ex43.c run for you?

 Thanks,

    Matt


> XZ
>
>
>
> --------------------------------------------------------------------------------------------
>   Vec             u;
>   PetscRandom     rand_ctx;     /* random number generator context */
>   PetscMPIInt     size, rank;
>   PetscInt        n, dn;
>
>
>   MPI_Comm_rank(PETSC_COMM_WORLD,&rank);//CHKERRQ(ierr);
>   MPI_Comm_size(PETSC_COMM_WORLD,&size);//CHKERRQ(ierr);
>   n  = N/size + 1;
>   dn = n*size - N;
>   if ( dn>0 && rank<dn ) n -= 1;
>   printf("--->test in petsc_random_vector(): rank = %d, n = %d\n",rank,n);
>
>
>   VecCreate(PETSC_COMM_WORLD,&u);
>   VecSetSizes(u,n,N);
>   PetscRandomCreate(PETSC_COMM_WORLD, &rand_ctx);
> #if defined(PETSC_HAVE_DRAND48)
>   PetscRandomSetType(rand_ctx,PETSCRAND48);
> #elif defined(PETSC_HAVE_RAND)
>   PetscRandomSetType(rand_ctx,PETSCRAND);
> #endif
>   PetscRandomSetFromOptions(rand_ctx);
>
>
>   VecSetRandom(u,rand_ctx);
>   PetscRandomDestroy(&rand_ctx);
>



-- 
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their
experiments lead.
-- Norbert Wiener
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20150817/98e29d57/attachment.html>


More information about the petsc-users mailing list